상품 구매 예측 및 추천 대회(Commerce Purchase Behavior Prediction)

진정·2025년 10월 17일
post-thumbnail

1. Competiton Info

Overview
'Commerce Behavior Purchase Prediction' 대회는 사용자의 쇼핑 패턴을 분석하여 향후 1주일 동안 구매할 상품을 추천하는 것을 목표로 한다. 추천 시스템은 개인의 쇼핑 습관과 과거 구매 이력을 분석해 맞춤형 상품을 제안함으로써, 사용자의 경험을 개선하고 기업의 매출을 증가시킨다. 이커머스 추천 시스템 구축 과정은 데이터 전처리부터 모델 선택, PyTorch와 라이브러리 활용, Feature Engineering 및 예측 수행을 포함한다. 대회에서는 평가 지표에 최적화된 파이프라인을 개발하는 것이 중요하다. 또한, 현업에서는 어려울 수 있는 복잡한 구조나 다중 모델 앙상블도 높은 점수를 위해 고려할 수 있다.

Dataset overview

학습데이터 : train.parquet

19년 11월 1일부터 20년 2월 29일까지 4개월간의 데이터
8,350,311개의 행으로 이루어져 있다.
user_id : 유저 id
item_id : 아이템 id
user_session : 사용자의 세션 ID. 사용자가 오랜 일시 중지 후 온라인 스토어로 돌아올 때마다 변경된다.
event_time : 이벤트가 일어난 시각(UTC기준)
category_code : 아이템의 카테고리 분류입니다.
brand : 아이템의 brand
price : 아이템의 가격
event_type : 이벤트의 종류
평가데이터

20년 3월 1일부터 20년 3월 7일까지 일주일 간의 데이터.
해당 기간 동안 유저가 구입한(event_type = 'purchase') 아이템 이력에 대한 데이터로 user_id와 item_id로 구성된다.
평가데이터는 무작위 (50:50 random split)로 public, private dataset으로 나뉨.
public dataset
대회 기간중 리더보드 점수 계산에 활용되는 정답 데이터.
private dataset

대회 종료후 최종 점수 계산에 활용되는 정답 데이터.
평가 데이터에는 학습데이터에 포함된 유저와 아이템으로만 이뤄져 있다.


모델링 및 추천 알고리즘

  1. ALS (Alternating Least Square)
    ALS는 협업 필터링 기법으로 빠른 학습 속도가 장점입니다. 기본 모델로 ALS를 적용하여 NDCG@10 지표를 기준으로 성능을 평가하였으며, 하이퍼파라미터 튜닝(정규화, 알파, epoch, 잠재 차원 조정)을 통해 기존 베이스라인 대비 약 13% 상승하는 성과를 확인했습니다.

  2. SasRec (Self-Attentive Sequential Recommendation)
    SasRec은 사용자의 아이템 상호작용 순서를 고려하는 모델로, 시계열 데이터를 활용하여 추천의 정확도를 높입니다. 단점으로는 학습 시간이 오래 걸리는 점이 있으나, 최소 상호작용 횟수를 조정하는 등의 방법으로 성능 최적화를 시도했습니다.

  3. 앙상블 기법
    두 모델(ALS와 SasRec)의 장점을 살리기 위해 앙상블 기법을 적용했습니다. 특히, 상호작용 횟수가 낮은 사용자에게는 ALS가, 상호작용이 많은 사용자에게는 SasRec이 효과적인 추천을 제공하도록 조합하여 최종 NDCG@10 스코어를 극대화하였습니다.


추가 시도 및 결과

  • 유저 행동 세분화 및 인기도 기반 추천 : 사용자 중 한번의 session만 있고, 사이트를 한번 방문하고 다시는 재방문이 없는 사용자(user)와, 사용자 중에서 카트에만 물건을 담은 경우 혹은 카트에 담고 구매까지 이어진 경우에 대한 행동등을 (이벤트 타입 view, cart, purchase) 데이터 수치화하여 계산에 반영하고자 하였음 / 사용자 행동의 “강도”를 점수화해 모델에 반영하면 상위 추천의 신뢰도가 높아질 것이라 가정. 특히, 카트만 담고 구매로 이어지지 않은 경우와 카트→구매로 완결된 경우를 구분하여, 후자에 더 큰 가중을 부여하고자 함

  • xgBoostRanker & catboost(boost 기반 랭킹 모델) : “한 유저가 한 아이템을 얼마나 선호하는가”를 수치화해 XGBoostRanker / CatBoostRanker에 투입 / 이벤트 강도(view < cart < purchase)와 최근성, 금액, 사용자 프로필을 피처화하여 item-wise 점수를 학습


회고

AI 부트캠프 프로젝트를 진행하며 팀원들은 깃을 통한 체계적인 협업 경험과 자유로운 아이디어 회의를 통해 많은 것을 배우고 성장할 수 있었습니다. 특히, 데이터 전처리부터 모델링, 평가까지 전 과정을 경험하며 추천 시스템의 다양한 측면을 이해하게 된 값진 시간이었습니다

-다채로운 모델 및 기법을 시도했지만, 시간 제약 등으로 일부 아이디어는 더 보완되어야 할 점이 남았습니다.
앞으로도 데이터 희소성과 Cold-start 문제, 그리고 실시간 추천 시스템 구현 등 다양한 도전 과제에 대해 지속적으로 연구할 계획입니다

0개의 댓글