U를 모든 유저의 집합, I를 모든 아이템의 집합이라 하고, Implicit feedback S ⊆ U×I 이라 하자.
추천 시스템의 목표는 모든 아이템의 Personalized total ranking인 >_u
를 제공하는 것이며, 이는 아래 total order의 3가지 특성을 만족해야한다.
편의상 유저가 소비한 아이템에 대한 Implicit Feedback의 유저와 아이템은 아래처럼 표현함
이전에 언급했듯 유저가 소비하지 않은 아이템(non-observed user-item pairs)은 아래의 혼합임
일반적으로 트레이닝 데이터는 아래와 같이 구성함
이제 모델이 데이터에 피팅되면.. S에 대해서는 1로 예측하고, 나머지에 대해 0으로 예측함
그래서 단순히 missing values를 negative ones로 교체하는 것보다 문제를 더 잘 표현하는 방법으로, 아래의 design matrix와 같이 single item(u,i)가 아닌 item pairs(u,i,j)를 트레이닝 데이터로 사용함
>_u
를 아래와 같은 가정으로 재구성함.실제 TensorFlow로 구현된 코드를 보면 더 쉽게 이해가 됨
likelihood란 >_u
에 대한 확률 분포로, i>_u
j, j>_u
i 두 가지 경우만 존재하므로, 베르누이 분포를 따른다고 볼 수 있다.
베르누이 분포에서 likelihood function은 아래와 같음
user가 item i보다 j를 선호할 확률은 아래처럼 정의되며, x_uij
는 Matrix Factorization(MF)이나 adaptive kNN으로 구함