피드로 돌아가기
함께 구매하면 좋은 상품이에요! - 장바구니 추천 개발기 1부
컬리 기술블로그컬리 기술블로그
AI/ML

함께 구매하면 좋은 상품이에요! - 장바구니 추천 개발기 1부

컬리가 BERT4Rec 모델과 NPMI 기반 카테고리 필터링으로 장바구니 보완재 추천을 구현해 전환율 약 100% 상승

2024년 5월 20일12intermediate

Context

장바구니 페이지 다음 단계인 결제 페이지 진입 직전 사용자에게 적절한 추천을 제공할 필요가 있었습니다. 초기 모델이 구매 빈도만 반영하자 모든 상품에 대해 인기 상품(E사 우유)만 반복 추천되는 문제가 발생했습니다.

Technical Solution

  • BERT4Rec 모델 도입: Transformer 기반 sequential recommendation 모델로 장바구니의 모든 상품을 고려한 실시간 추천 가능
  • NPMI(Normalized Pointwise Mutual Information) 기반 카테고리 쌍 필터링: 단순 공동구매 빈도가 아닌 카테고리 간 의존성(-1~1 범위)을 정량 평가해 직관적 보완재 관계만 추출
  • 주문서 데이터 분할: 한 건의 구매 데이터를 식별된 보완재 카테고리쌍 기준으로 부분집합 분리 후 학습
  • 학습 지표 최적화: GPU OOM 방지를 위해 preprocess_logits_for_metrics 함수로 추론 결과 전처리 후 상위 K(5)개만 메트릭 계산
  • huggingface Trainer 활용: 커스텀 메트릭 함수로 HR@5, MRR@5를 특정 스텝마다 계산하고 mlflow로 모델·지표 관리

Impact

A/B 테스트 결과(전체 사용자 8%, 1주일, 50:50 split):

  • 장바구니 전환 유저 비율 약 100% 상승
  • 유저당 담은 상품 개수 약 100% 상승
  • 유저당 담은 상품 금액 약 100% 상승
  • 통계적 유의성 확보

Key Takeaway

행동경제학 기반 가설(고객 여정 후기 단계에서는 대체재보다 보완재 추천이 더 효과적)과 정보이론 지표(NPMI)를 결합하면, 단순 협업필터링보다 컨텍스트에 맞는 추천으로 전환 성과를 극대화할 수 있습니다.


이커머스 추천 시스템에서 구매 말기 단계(장바구니→결제)에 모델을 배치할 때, BERT4Rec으로 시퀀스를 처리하고 NPMI 스코어를 통해 카테고리 간 진정한 보완재 관계를 필터링하면 사용자의 담기 전환율을 크게 향상시킬 수 있습니다.

원문 읽기