Recommender System $\sim$ user와 item이라는 node type을 가지는 biparite graph
edge로 user와 item간의 상호작용을 표현 가능
추천 시스템 = user와 item의 상호작용에 관한 히스토리가 주어졌을 때, user가 미래에 상호작용할 item을 예측하는 것
⇒ Link prediction
⇒ $u \in U, v\in V$에 대해 $f(u,v)$를 계산해야 함
Problem: 모든 user-item 페어에 대하여 $f(u,v)$를 계산할 수 없음
Solution: 2-stage
$P_u$ : set of positive item
$R_u$ : set of items recomended by the model
In top-K recommendation, $|R_u| = K$
사용자와 이미 선택한 적이 있는 item은 제외
최대한 교집합의 사이즈를 키우는 것!
user u에 대한 Recall@K = $|P_u \cap R_u|/|P_u|$ ⇒ positive item에서 얼마나 많은 추천 item이 있었는가 최종 Recall@K = 모든 사용자에 대한 Recall@K 의 평균값 ****
Notation
각 user와 item에 대한 score function이 필요 & 해당 fuction을 기반으로 user에게 추천을 진행
⇒ 이 때, embedding-based model을 이용하여 user와 item간의 상호작용을 scoring
$\text{For } u \in U \text{ and } v \in V, \bf{u}, \bf{v} \in \mathbb{R}^D$ ; D-dimensional embedding.
Let $f_\theta(\cdot, \cdot): \mathbb{R}^D \times \mathbb{R}^D \rightarrow \mathbb{R}$.
Then $score(u, v) \equiv f_\theta({\bf u}, {\bf v})$.
user embedding, item embedding을 위한 encoder 2개, score function을 가지고 높은 Recall@K을 얻는 것
recall@K is not differentiable ⇒ gradient-based optimization을 효율적으로 적용할 수 없음!
$\therefore$ two surrogate loss functions (differentiable & training objective를 잘 만족)