2024년 10월부터 11월까지 총 6주동안 진행했던 프로젝트를 이제 정리하고자 한다. ⭐
1. 어떤 프로젝트였는가?
부트캠프에서 진행했던 파이널 프로젝트로, 자세히 얘기하자면 BI DashBoard 과 추천시스템 개발이였다.
사실 추천시스템? 처음 접했다, 해당 주제에 대해서 아는 이론이라고는 Contents-Based 추천과 Collaborative-Based 추천정도.. 그리고 요즘은 Graph 기반의 추천을 사용한다는 정도가 다였다.
그래서 부트캠프에서 따로 제공해주는 강의들을 들으면서 지금 상황에서 무엇을 고민하고 어떤 모델을 고려해야하는지 공부했다. 어느정도 개발환경과 데이터에 대한 파악은 끝난 상태에서 바로 프로젝트를 진행했다.
2. 어떤 역할을 맡았는가?
인원이 총 5명인 팀에서 BI DashBoard 팀에는 3명 그리고 추천시스템 팀에는 2명이 배치되었다. 사실 나는 데이터 시각화보다는 AI(인공지능)에 더 관심이 많았기에 추천 시스템을 개발하기를 희망했고 해당 팀에 배치되었다.
자세히는 데이터 전처리와 함께 구매된 상품 추천 시스템, 프로모션 추천 시스템 개발을 맡아서 진행했다.
3. 구체적인 개요 및 목표 설정
상황
- 호텔 운영 효율성 및 매출 극대화를 위한 상품 추천 시스템 개발
- 기존 서비스에서는 상품 추천 시스템을 활용하고 있지 않음.
- 직원이 직접 수동으로 상품을 추천해주는 방법을 활용하고 있음
목표: 데이터 기반 상품 추천 시스템 개발
- 기존의 수동 추천 방식을 대체하여 자동화된 상품 추천 시스템을 도입해 호텔 운영 효울성 및 매출 극대화 달성
- 고객 선호도 데이터를 활용해 추천을 해줌으로써 고객 만족도 향상 및 평균 구매 금액 증대
액션
- 기존 서비스를 분석하여 UX 설계 및 추천 Product 정의
- 개발환경 및 데이터를 확인하여 적합한 추천 방법론 탐색
4. 개발환경이랑 데이터는?
고객 식별 불가능
- 비로그인 시에도 서비스 이용 가능
- 보안 이슈로 인해 고객 식별이 어려운 상황을 대비해야함
새로운 고객 (New User) 대비 필요
- 주요 서비스 대상 : 4~5성급 호텔
- 고객 맞춤형 서비스를 제공하되, 첫 방문시 호텔 서비스 만족도 및 평균 소비 금액을 높이는 방향으로 설정
오프라인 데이터 와 오프라인 계산 환경
- 실시간 데이터 접근 불가 : 시스템이 실시간으로 데이터를 수집 및 계산하지 않음.
- 사전에 계산된 데이터를 서비스에 노출
고객 행동 기반 상품 선호도 파악
- 고객 상품 선호도를 파악할 수 있는 주요 행동 지표 : 구매내역
5. 각 추천 Product 개발 방법 수립
5-1. 메인 상품 추천
목표 : 상품 추천 자동화 & 맞춤형 추천을 통한 고객 만족도 증대 및 호텔 운영 효율화
- 각 호텔별 상품 수요 패턴 분석
- 고려할 요소 : 시간대(time), 날씨(weather), 주말 및 공휴일 여부(isholiday), 월(month), 계절(season)
- Contents-Based 추천
5-2. 연관된 상품 추천
목표 : 고객이 선택한 상품 구매시 연관된 (같이 구매된) 상품을 추천해줌으로써 추가 구매 유도
- Retrieval : Item2Vec 기반의 KNN → 여러개의 아이템에서 연관된 후보 아이템 추출
- Filtering : 품절 상품 제외 → 비즈니스 목적에 따라 노출시키고 싶지 않은 아이템 추천 제외
- Ordering : 인기도 기반 순서 재조정 → 비즈니스 목표를 함께 적용하여 최종 노출 순서 결정
5-3. 프로모션 상품 추천
목표 : 호텔에서 진행하는 프로모션 또는 이벤트 중에서 적절한 프로션을 추천해줌으로써 참가 유도
- Text Embedding 모델을 활용해 고객 유형에 적합한 프로모션 추천
- 의미 기반 검색 (FAISS) 방법 활용
https://zzoming-25.tistory.com/136
[파이널 프로젝트] 호텔 상품 추천 시스템 개발 [2]
1. 관련 상품 추천 개발상황현재 고객이 선택한 상품을 주문하는 과정 중 추가적인 상품이 노출되지 않고 있음.목표고객이 선택한 상품과 함께 구매된 상품들을 자동으로 추천해줌으로써 추가
zzoming-25.tistory.com
6. 프로젝가 끝나고..
사실 기업 관계자 분들의 너무나 바쁜일정으로 인해 프로젝트 진행 기간동안 피드백이나 방향성을 조절하지 못했었던 상황이 발생했었는데.. 프로젝트가 마무리되고 나서 따로 미팅을 잡아주셔서 프로젝트 진행 중 놓쳤던 요구사항과 방향성을 확인할 수 있었다.
지금까지 데이터 분석과 인공지능을 공부해 온 나로써는 평소에 데이터의 품질을 굉장히 중요시 여겼다. 데이터는 모델의 성능과 분석 결과를 좌우하는 핵심이며, 주어진 데이터의 특성과 품질에 기반해 적합한 모델을 선택하고 최적의 결과를 도출하는 것이 중요하다고 생각해왔다. 따라서 이번 프로젝트 또한 진행하는 내내 주어진 데이터와 상황에 맞춰서 개발하려고 노력했다.
그러나, 기업과의 미팅을 통해 알게 된 사실은 기업은 기능 도입과 시연 자체에 중점을 두고 있었다는 점이다. 또한, 보안상의 이유로 완전한 데이터를 제공받기 어려운 상황이였다는 것을 미리 알았다면, 더미 데이터를 사용해 기업이 원하는 기능적 가능성을 입증하는 접근이 더 적합했을 수도 있었다는 생각이 들었다. 다소 마무리가 아쉬었던 프로젝트였지만 비즈니스적인 관점 또한 고려해야한다는 것을 배웠던 프로젝트였다.
배운 점
- 프로젝트 진행 중 정기적인 피드백과 소통은 성공적인 결과를 위해 필수적이다.
- 데이터 중심의 개발도 중요하지만, 우선 기업의 요구사항과 실질적인 비즈니스르 반영하는 유연한 접근 또한 필요하다.
- 보안, 데이터 제공의 한계와 같은 현실적인 제약을 고려하여 실현 가능한 대안을 제시하는 것 또한 중요하다.
'사이드 프로젝트' 카테고리의 다른 글
[파이널 프로젝트] 호텔 상품 추천 시스템 개발 [2] (1) | 2025.01.29 |
---|---|
[주식챗봇] - 페르소나 부여 [3] (1) | 2025.01.12 |
[주식챗봇] 프로젝트 개요 및 목표 [1] (0) | 2025.01.08 |
[미니 프로젝트] OpenWeather API를 활용한 날씨 DashBoard 개발 (0) | 2024.04.26 |