안녕하세요, 기획자 팥씨입니다.🥮
오늘은 제가 좋아하는 컬리에서, 장바구니 추천 개발에 대해 다뤄주신 글을 들고 왔습니다.
함께 구매하면 좋은 상품이에요! - 장바구니 추천 개발기 1부
보완재 추천 모델을 적용하고 성과를 거둔 사례 소개
helloworld.kurly.com
컬리 데이터서비스개발팀에서는 다양한 영역에 머신러닝을 도입하여 여러 지표들을 개선하고 있는데요,
그중에서 '추천'은 컬리에서 상품 탐색 및 구매 의사 결정을 보조해줍니다.
이번에 장바구니 페이지와 결제 페이지 사이에 장바구니 바텀시트 UI를 도입했습니다.
결제 페이지로 넘어가기 전 함께 구매할만한 상품을 추천 제안하는 기능입니다.
해당 기능을 어떤 로직으로 개발하게 되었는지,
그 흐름을 정리해보겠습니다.
1. 추천을 하는 방법
1-1. 어떤 컨셉의 추천을 제공할까?
= 추천 모델이 제안하는 상품들은 어떤 특징을 보여야 지표를 유의미하게 향상시킬 수 있을까?🤔
=> 유저가 이커머스에서 상품을 구매하는 의사결정 두가지로 분기
- 다양한 상품셋에서 흥미있을만한 상품을 탐색하는 과정
- 후보 상품을 추리고 구매 결정을 위한 단계
- 바텀시트는 장바구니와 결제 페이지 사이에 존재하는 영역
- 2) 최종 구매 결정 위한 단계에서 추천하기로 결정
- 2)에 있는 유저들에게는 '대체재보다 보완재를 추천하는 것이 지불용의가 더 높다.
- 연구 결과 및 타 이커머스 사이트도 보완재 성격의 상품 추천
✅ 대체재
어느 한 재화가 다른 재화와 비슷한 유용성을 가지고 있어
한 재화의 가격이 상승하면 다른 재화의 수요가 증가하는 경우 서로 대체관계
콜라와 사이다, 밥과 라면, 커피와 홍차나 녹차, 쇠고기와 돼지고기
✅ 보완재
어떤 한 재화의 수요가 늘어날때 함께 수요가 늘어나는 재화
컴퓨터와 컴퓨터 소프트웨어, 콜라와 피자
https://terms.naver.com/entry.naver?docId=3570395&cid=58780&categoryId=58780
1-2. 가설
"바텀시트는 현재 장바구니에 담긴 상품의 보완재 성격의 상품을 제안하는 것이 성과 향상에 유의할 것이다."
1-3. 어떤 추천모델을 쓸까?
추천모델의 요구조건
1. 장바구니 담긴 상품들을 모두 고려하여 상품 추천
2. 실시간 추천 가능
3. 향후 추가 피쳐를 손쉽게 반영할 수 있어야 함
-> BERT4Rec 보완재 추천 모델 선정
▶︎ 전처리 과정에서의 문제
- 어떤 상품을 입력하든 E사 우유 상품이 계속해서 추천됨. 실제로 해당 우유는 컬리의 어느 상품과도 자주 구매됨.
- 직관적으로 보완재 추천이라는 느낌이 없었기에, 구매 패턴에서 의미 있는 보완재 관계를 찾아서 학습 시 반영해야
- 예시로, 우유와 채소는 같이 많이 구매되지만 우유와 베이커리가 더 적절한 보완재로 판단됨.
- 단순히 자주 같이 구매되는 카테고리가 아닌 직관에 부합하는 보완재 카테고리 발굴 필요
▶︎ 직관에 부합하는 보완재란 뭘까?
- "서로 같이 구매되는 카테고리이면서도, 서로 이외의 다른 카테고리와는 잘 구매되지 않는 관계에 있는 것"
- 정보이론에서 확률변수간 상호 정보량 측정하는 NPMI 활용
- '1'에 가까울수록 같이 많이 구매되며, 다른 상품들과는 많이 구매 안됨
-> 추천결과 개선
1-4. 내부 정성평가 (피드백 수렴) 및 후처리
- 사내에서 추천 결과를 바로 확인해볼 수 있는 데모 페이지 제작 (파이썬 gradio 패키지 활용
- '특정 카테고리에 추천 상품이 편중된다'는 피드백 수렴
- 상위 score에 특정 카테고리 상품이 몰려있고 하위 score로 갈수록 다양한 상품군이 존재
- 후처리 로직으로 편중현상 해결 - Spotify의 셔플링 알고리즘 참고
- 음악을 들을 때, 랜덤 재생을 설정해도 같은 가수의 노래가 연속으로 나올 때가 있음.
- 동일한 특성으로 클러스터가 생성되는 현상을 방지하고자 고안된 알고리즘
- 핵심은, 같은 특성을 지닌 개체 간에 랜덤한 간격을 설정한다는 것.
2. 서비스 적용과 A/B 테스트
⚙️ 실험 셋팅
- 대상 : 전체 유저의 약 8%
- 기간 : 일주일
- 실험그룹
🙆🏻♀️ 대조군 (50%) : 비개인화 추천
🙆♂️ 실험군 (50%) : BERT4Rec 보완재 추천(좌) 대조군 노출 (우) 실험군 노출 @컬리 기술블로그
테스트 결과
대조군 대비 보완재 추천을 해준 실험군에서
장바구니 전환 유저 비율, 유저당 담은 상품 개수, 유저당 담은 상품 고객이 100% 가까이 상승
-> 유저의 장바구니에 담긴 상품과 보완재 연관성이 있는 상품을 추천할 때 유저의 반응을 더 잘 이끌어낼 수 있다.
향후 과제
- 개인화 추천 : 모델 및 아키텍처 개선
- 현재) 개인화 피쳐나, 시간 등 맥락 정보 고려 못하기 때문에, 서로 다른 유저가 같은 상품을 담을 시 동일한 추천결과 보여줌
- 학습 과정 효율 개선
- 현재) 컬리의 상품은 매일 추가/삭제되기 때문에, 부득이하게 단어 사전을 매번 학습할 때마다 새로 만들어서 스크래치부터 학습하는 비효율
🥮 추천은 어떻게 하나요
'개인화 추천', '맞춤형 정보제공' 등의 표현을 관성처럼 쓰고 있었지만,
실제로 어떤 상황에서 어떤 알고리즘을 통해 구현되는지는 잘 알지 못했습니다.
컬리에서 나눠주신 장바구니 추천 글을 통해, 다음과 같은 것을 알게 되었습니다.
✅ 추천이 가능한 영역 두가지 (1) 상품 탐색 (2) 후보 상품 추려 구매 결정
✅ (2)의 경우, 대체제보다 보완재 추천이 유저 행동을 이끌어내는 데 주효
✅ '직관에 부합하는' 보완재 카테고리 발굴을 위한 NPMI 스코어 사용
✅ 추천 시 특정 카테고리 추천 상품 편중 방지를 위한 Spotify 셔플링 알고리즘 사용
'[기획자 시선]' 카테고리의 다른 글
Day19. 바통터치 잘하는 PO의 화법 (0) | 2024.06.25 |
---|---|
장보기 오픈런부터 B마트 장보기까지 : 온라인-오프라인 매끄러운 행사기획은 이렇게 (2) | 2024.06.21 |
Day17. 우아한 형제들에서 운송관리시스템(TMS) 만들기 (0) | 2024.05.31 |
Day16. ABC studio에서 데마에칸 머천트 앱 리뉴얼하기 (0) | 2024.05.28 |
Day15. (SaaS) 힐링페이퍼에서 고객도 모르는 고객의 모든 것을 알아내기 (0) | 2024.05.27 |