한줄 요약
추천 학습에서 어떤 긍정 아이템을 학습에 쓸지를 순위 통계량으로 고르는 손실을 제안한다. 사용자가 좋아한 아이템 전부를 상위에 올리려 애쓰는 대신, 정렬된 순서에서 번째에 해당하는 것을 골라 학습한다. Weston et al., RecSys 2013.
기존 손실이 무엇을 요구하나
pairwise 손실은 사용자의 긍정 아이템 하나와 부정 아이템 하나를 뽑아 긍정이 위에 오게 만든다. 이때 모든 긍정 아이템이 동등하게 상위로 밀린다.
WARP 손실은 여기에 위치 가중을 넣는다. 긍정 아이템보다 위에 놓인 부정 아이템이 많을수록 벌점을 크게 줘서, 상위권에서 일어난 실수에 집중한다. 순위 지표와 학습 목표를 맞추는 방향이다.
그래도 남는 문제가 있다. 한 사용자가 좋아한 아이템이 수백 개면 그중에는 취향의 핵심에서 벗어난 것도 섞여 있다. 전부를 상위에 올리라고 요구하면 모델이 사용자의 여러 관심사를 한 벡터에 평균 내려다 어느 쪽도 제대로 못 맞추게 된다.
k-Order Statistic Loss
제안은 긍정 아이템을 선택 하는 단계를 손실에 넣는 것이다. 한 사용자의 긍정 아이템들을 현재 모델 점수로 정렬한 뒤, 그중 번째 순위 통계량에 해당하는 아이템만 학습에 쓴다.
를 어디에 두느냐가 학습의 성격을 정한다.
| 위치 | 고르는 아이템 | 효과 |
|---|---|---|
| 가장 높은 점수 (maximum) | 모델이 이미 잘 맞히는 것 | 확실한 관심사를 더 강화한다 |
| 중간값 | 중간 정도 | 극단값에 휘둘리지 않는다 |
| 가장 낮은 점수 (minimum) | 모델이 가장 못 맞히는 것 | 어려운 사례에 집중하지만 잡음에 취약하다 |
전부를 똑같이 올리라는 기존 방식은 이 선택지 중 어느 것도 아니고, 사실상 평균을 요구하는 셈이다.
실제 구현은 긍정 아이템 몇 개를 표본으로 뽑아 그중에서 번째를 고르는 방식으로 근사한다. 전체를 매번 정렬하면 비용이 크기 때문이다.
실무적 시사점
“어려운 사례에 집중” 이 항상 옳지 않다는 점이 이 논문에서 읽어갈 부분이다. 사용자 로그에는 잘못 클릭한 것, 한 번 스쳐간 것이 섞여 있어서, 모델이 가장 못 맞히는 긍정 아이템이 실은 잡음인 경우가 많다.
를 중간이나 상위 쪽에 두면 그런 사례를 학습에서 자연스럽게 덜어낼 수 있다. 손실 함수 안에 표본 선택을 넣어 잡음에 대한 견고함을 조절한다는 발상이 이 손실의 핵심이다.