XGboost를 사용해 Ranking 모델을 설계
XGBoost
- Extreme Gradient Boosting의 약자
- GBM대비 빠른 수행시간
- 과적합 규제로 Robust
Ranking
Set of data points
즉 query를 예측하는 것
ranking 알고리즘 접근법은 세 가지 방식으로 구분
Pointwise
한번에 하나의 아이템을 고려
- 하나의 Query(user)에, 하나의 Item만 가져와 score를 계산 후 이를 Label score와 비교하여 최적화
- Item과 Item 순서 관계를 무시하고 독립적으로 계산
- 직관적이고 일반적인 Loss
- LSE 등
Pairwise
한번에 2개의 아이템을 고려
- Positive item, Negative item을 고려
- Pos item > Neg item 이라는 Rank를 통해 ranking 학습
- 학습시 (User, Pos, Neg)로 전처리 하는 작업 필요
- 다만 대부분의 데이터 셋은 Negative item이 훨씬 많을 것 이므로, Sampling 기법이 활용 됨
- 일반적으로 Pointwise보다 성능이 좋음
- BPR, WARP, CLiMF 등
List-wise
한번에 전체 아이템을 모두 고려
- 전체 아이템간의 Rank를 학습하려 함
- 쉽고 잘 학습할 수 있다면 당연히 좋은 Loss function일테지만, 여러 문제가 존재
- Pairwise 방법론과의 적절한 협의점이 요구됨
본 모델은 Pairwise 방법론 중 LambdaMART 알고리즘을 사용
Preparation
한 user, session, query 의 정보와 targetd인 rank의 data를 준비
마지막 주문을 예측하는 것이 아닌, 이전까지의 데이터와 연관성 있는 query를 예측하는 것으로 연관성 예측과 유사한 양상