[논문 리뷰] Improving Pairwise Learning for Item Recommendation from Implicit Feedback

Updated:

Recommender System

본 논문은 Bayesian Personalized Ranking(BPR)과 연결된 내용으로, BPR-optimization을 개선한 논문이다. 따라서 아래의 포스팅을 먼저 볼 것을 권장한다.

Abstract

BPR-optimization(이하 BPR-Opt)은 stochastic gradient descent(SGD)를 기반으로 한다. 이때 샘플을 뽑기위해 uniform sampler를 사용하는데, 이는 positive sample과 negative sample이 불균형 할때 수렴이 느려지는 문제가 있다. 따라서 저자는 context-dependent하며 informative 샘플을 뽑아주는 non-uniform sampler를 제안한다. 이는 BPR-Opt에 비해 수렴이 빠를 뿐만 아니라 성능면에서도 우수함을 보인다. 저자는 이를 다앙한 추천 모델에 사용하는데, 대표적으로 Matrix Factorization(MF)과 Factorization Machine(FM)에 적용한 결과를 살펴보겠다.

1. Introduction

해당 논문은 ‘클릭’이나 ‘시청’과 같은 implicit-feedback 하에서의 추천 문제를 다룬다. implicit-feedback은 ‘평점’과 같은 explicit-feedback과 달리 positive signal만 관측되는 것이 특징이다. 보통 ‘클릭’되지 않은 item을 모두 negative signal로 간주하는 경우도 있지만 이는 loss를 증가시키는 문제가 있다.

본 논문의 핵심인 pairwise learning은 이런 문제를 해결하는 한가지 방법이다. 이는 선택된 item $i$ (positive item)와 선택되지 않은 item $j$ (negative item)의 쌍 (item $i$ , item $j$)을 이용하여 모델을 학습한다. 일반적으로 발생할 수 있는 쌍의 개수가 무수히 많기 때문에 sampling을 하여 모델을 학습하게 된다. 그중 BPR은 uniform sampler*를 사용하는데, 이는 모든 샘플이 뽑힐 확률을 동일하게 가정한 것이다.

하지만 이는 item의 개수가 많고, positive item과 negative item 간의 개수 불균형이 심할수록 학습 속도가 저하되는 문제가 있다. 또한 학습을 하는 과정에서 gradient vanish 현상이 일어난다.

따라서 논문은 이런 문제를 해결하기 위해 non-uniform sampler를 제안한다. 이는 user의 context(선호도 등)와 현재 학습상태를 모두 고려한 방식으로, 속도와 gradient면에서 보다 효율적이다. 정리하자면 본 논문의 주제는 크게 2가지로 정리할 수 있겠다.

  • BPR에서 사용하는 uniform-sampler의 문제점 파악

  • context-dependent하며 informative 샘플을 뽑아주는 non-uniform-sampling distribution 제안

*positive item집단에서 item $i$ 를 뽑고, negative item집단에서 item $j$ 를 각각 뽑게된다. 일반적으로 추천 문제에서는 positive item의 개수보다 negative item의 개수가 훨씬 많기 때문에 negative item sampler가 더 중요하다. 해당 논문 역시 item $j$ 를 뽑는 방법에 대해 다루고 있다.

2. Problem statement

2장에서는 BPR에서의 pairwise learning을 살펴보겠다. 이어 uniform sampler가 갖는 문제를 알아볼 것이다.

Ranking from implicit Feedback

$C$와 $I$를 각각 user context, item 집단이라 하자. 여기서 user context란 user 식별자, 지역, 클릭시간 등등 user와 관련된 모든 정보를 의미한다. 이때 $S$를 user가 클릭한 item 정보라 할때, $S\subset C \times I$로 표현 가능하다.

item 추천의 목표는 각 user별로 선호할만한 item순서를 예측하는 것이다. 이는 다시말해 item들의 랭킹을 예측하는 것이며 다음과 같이 표현할 수 있다.

\[\begin{align*} \hat{r}: C \times I \rightarrow \{ 1,...,|I| \} \\ \end{align*}\]

즉 랭킹 함수 $\hat{r}$은 user-item정보를 바탕으로 item들의 랭킹을 예측하는 함수다. 이때 특정 context하에서의 item $i$의 랭킹을 다음과 같이 정의한다.

\[\begin{align*} \hat{r}(i|c) :=|\{j: \hat{y}(j|c) \geq \hat{y}(i|c) \}| \\ \end{align*}\]

여기서 $\hat{y}(i\mid c)$는 item $i$의 점수로, item $i$의 랭킹은 이 점수보다 크거나 같은 item 개수와 동치다. 이때 score 함수 $\hat{y}$는 아래와 같다.

\[\begin{align*} \hat{y}: C \times I \rightarrow \text{score of item } \\ \end{align*}\]

즉 $\hat{y}$는 user-item정보를 바탕으로 item 점수를 예측하는 함수로, 이에는 흔히 Matrix Factorization이나 Factorization Machine등이 사용된다.

Pairwise learning from implicit feedback

pairwise learning에 대한 설명은 BPR 포스팅의 4절을 참고바란다.

Issues in tailed item distributions

앞서 Introduction에서 BPR 알고리즘의 uniform sampler는 학습이 느리고, gradient vanish 현상이 나타난다고 하였다. 왜 이런 문제가 발생하는지 살펴보자.

Gradient magnitude

일반적으로 gradient는 학습 진행상황을 판단하는 척도다. 따라서 여기서도 파라미터 $\Theta$를 얼만큼 개선할 수 있을지 판단하는 척도로서 gradient magnitue를 정의한다.

먼저 BPR에서는 user가 item $j$ 보다 item $i$를 선호할 확률을 아래와 같이 정의한다. 여기서 $I_{c}^{+}$는 user가 선택한 item 집단, $I_{c}^{-}$는 그렇지 않은 집단이다.

\[\begin{align*} p(i >_{c} j) &:= \sigma(\hat{y}(i|c) -\hat{y}(j|c))\ \ \text{where} \ \ i \in I_{c}^{+},\ j \in I_{c}^{-} \\ \\ \ \ \sigma(x) &:= \frac{1}{1+e^{-x}} = \begin{cases} 0\ (i <_{c} j) & \mbox{if} \ \ x \rightarrow -\infty \\ 1\ (i >_{c} j) & \mbox{if} \ \ x \rightarrow \infty \end{cases} \end{align*} \\\]

이를 바탕으로, gradient magnitue는 아래와 같이 정의된다.

\[\begin{align*} \bigtriangleup_{c,i,j} \ := 1-p(i >_{c} j) = 1- \sigma(\hat{y}(i|c) -\hat{y}(j|c)) \end{align*}\]

즉 user가 item $i$ 보다 item $j$를 선호할 수록 $\bigtriangleup_{c,i,j}$는 1로 수렴하고, 반대의 경우 0으로 수렴한다. 이를 정리하면 다음과 같다.

\[\bigtriangleup_{c,i,j} = \begin{cases} \rightarrow 1 & \mbox{if} \ \ \hat{y}(i|c) < \hat{y}(j|c) \\ \rightarrow 0 & \mbox{if} \ \ \hat{y}(i|c) > \hat{y}(j|c) \end{cases}\]

Tailed item distributions

일반적으로 item분포는 tailed distribution(꼬리가 긴 분포)을 갖는다. 왜냐하면 인기가 많은 소수의 item들은 선택이 많이 되지만, 다수의 나머지는 거의 선택되지 않기 때문이다. 아래 그림은 이를 잘 보여준다.

이런 상황에서 $(c,i,j)$를 sampling 한다고 해보자. uniform sampler를 가정했으므로 $i$는 $I_{c}^ {+}$에서, $j$는 $I_{c}^ {-}$ 에서 각각 동일 확률로 뽑히게 된다. 하지만 이렇게 뽑힌 샘플은 $\bigtriangleup_{c,i,j} \rightarrow 0$이될 확률이 크다. 그 이유를 살펴보자.

예를 들어, 위 그림과 같이 item $i$가 10등으로 예측된 상황에서 item $j$를 뽑는다고 가정해보자. $\bigtriangleup_{c,i,j} \rightarrow 1$이 되기 위해서는 $ \hat{y}(i\mid c) < \hat{y}(j\mid c)$가 되어야 하므로, 파란색 부분에서 $j$를 뽑아야 한다. 즉 선택된 item $i$ 보다 더 좋아할 수도 있는 item $j$를 뽑는것이 학습에 도움이 된다는 것이다. 논문에 따르면 이런 item이 informative하다.

하지만 uniform sampler는 informative 샘플과 non-informative 샘플을 구분하지 못할뿐더러, 보통의 경우 파란색 부분의 item개수가 작다. 따라서 non-informative 샘플이 주로 뽑히게 되고, $\bigtriangleup_{c,i,j} \rightarrow 0$이 되어 graidnet가 소실되는 것이다.

또한 학습 속도가 느린 이유는 대부분의 샘플이 $\bigtriangleup_{c,i,j} \rightarrow 0$ 이 되기 때문에, gradient를 개선할수 있는 샘플을 뽑을때 까지 학습을 반복해야 되기 때문이다. 정리하자면 uniform sampler의 문제는 다음과 같다.

uniform sampler의 문제

  • informative 샘플 선별불가 $\rightarrow$ grdient vanish

  • informative 샘플이 뽑힐 때까지 학습 반복 $\rightarrow$ 속도 저하

3. Improved item sampling

지금까지 negative item $j$를 뽑는 상황에서 uniform sampler를 살펴봤다면, 이 장에서는 non-uniform sampler를 살펴볼 것이다. 이는 구체적으로 특정 user context $c$ 하에서 item $j$ 의 분포 $p(j\mid c)$를 정의하는 것으로, 논문은 2가지 방법을 제안한다.

  • Static & global distribution
  • Adaptive & context-dependent distribution

아래에서 각각의 내용을 구체적으로 살펴보겠다.

Static & global sampling

먼저 static & global 분포는 다음과 같은 성질을 동시에 만족하는 분포다.

  • static 학습이 진행됨에 따라 item $j$의 분포가 변하지 않는다.

  • global item $j$의 분포가 user context $c$ 와 독립이다. 따라서 user별로 contex는 다르지만, 분포는 동일하다.

논문은 이런 성질을 만족하는 분포를 2가지 케이스로 나눠 정의한다.

Distribution

  1. empirical distribution

    empirical 접근은, 아래와 같은 실제 데이터의 분포를 그대로 사용하는 것이다.

    예를 들어 특정 item $j$를 뽑는 상황을 가정해보자. 이때 위 분포의 $S (S\subset C \times I)$에서 무작위로 샘플 $(c^{‘}, j^{‘})$을 뽑는다. 다음 $c^{‘}$는 무시하고, $j^{‘}$를 $j$로 사용한다. 이를 표현하면 다음과 같다.

\[\begin{align*} p(j) \propto |\{ (c^{'}, j^{'}) \in S: j=j^{'} \}| \\ \\ \end{align*}\]

정리하자면, 모든 user가 선택한 item들 중에서 $j$를 뽑는 것이 특징이다.

  1. parametric distribution

    parametric 접근은, 주어진 문제에 맞게 데이터의 분포를 통계적으로 가정하는 것이다. 우리의 목표가 informative item $j$를 뽑는 것임을 고려해보자. 이를 위해 앞서 설명했던 파란색 부분에서 item $j$ 를 뽑아야 한다. 이런 상황을 표현할 수 있는 통계 분포로는 기하분포(geometric distribution)와 지수분포(exponential distribution)가 있다.

  • geometric distribution

    기하 확률변수는 처음 성공이 나올때 까지 실패횟수로 정의된다. 이때 성공을 item $i$의 등수라 한다면, 성공이 나올때 까지 실패횟수를 item $j$의 등수($= r(j)$)로 생각해볼 수 있다. 즉 기하분포는 item $i$ 보다 앞에있는 item $j$, 즉 informative item $j$를 다음과 같이 표현할 수 있다.

    $r(j)$ := 처음 성공( item $i$의 등수)이 나올때 까지 실패 횟수

    $\gamma$ := 성공 확률

    \[\begin{align*} r(j) \sim Geo(\gamma), \ \ \ \ p(r(j)) = \gamma(1-\gamma)^{r(j)} \end{align*}\]
  • exponential distribution

    지수 확률변수는 어떤 사건이 발생할 때까지 걸린 시간으로 정의된다. 이때 어떤 사건을 item $i$의 등장이라 한다면, 걸린 시간*은 item $j$의 등수($= r(j)$)로 생각해볼 수 있다. 마찬가지로 지수분포도 item $i$ 보다 앞에있는 item $j$, 즉 informative item $j$를 다음과 같이 표현할 수 있다.

    $r(j)$ := 어떤 사건(item $i$의 등장) 이 발생할 때까지 걸린 시간

    \[\begin{align*} r(j) \sim \exp(\frac{1}{\lambda}), \ \ \ \ \ p(r(j)) = \frac{1}{\lambda}e^{-\frac{1}{\lambda}r(j)} \end{align*}\]

    *시간은 연속적인 속성이고, 등수는 이산적인 속성으로 서로 상충되는 느낌이 있지만, 개념적만으로 생각하고 넘어가겠다.

Algorithm

위에서 제안된 분포가 모두 static & global 성질이 있기 때문에, 샘플링 알고리즘은 상대적으로 간단하다. 기하분포로 예를 들면 다음과 같다.

(1) $r(j) \sim Geo(\gamma)$에서 $r(j) $(=item $j$의 등수)를 샘플링 한다.

(2) (1)에서 $r(j)=k$ 라면, 전체 item순위 리스트에서 k등인 item을 선택한다.

Discussion

static과 global 분포는 간단하긴 하다. 하지만 현실적인 이슈들을 반영하지 못한다. 예를 들면 다음과 같은 문제들이 있다.

  • static

    처음에는 등수가 높았지만 학습이 진행됨에 따라 등수가 낮아질 수도 있다. 하지만 static 분포는 이런 특징을 반영하지 못한다. 그 이유는 다음과 같다.

    • 모든 user마다 $\ $$r(j)$ 고정 $\rightarrow $ $p(j)$ 고정
  • global

    user context에 따라 선호하는 item이 다를 수 있다. 하지만 global 분포는 이런 context를 전혀 반영하지 못한다.

따라서 저자는 이런 두가지 문제에 초점을 맞춰 adaptive($\leftrightarrow$static)하면서 context-dependent($\leftrightarrow$ global)인 분포를 제안한다.

Adaptive & context-dependent sampling

adaptive & context-dependent 분포는 다음과 같은 성질을 동시에 만족하는 분포다.

  • adaptive($\leftrightarrow$static)

    \(p(j \mid c)\)가 다음과 같은 과정을 거쳐 변한다.

    • 모델(ex. MF) 파라미터 $\Theta$ 변화 \(\rightarrow\) \(\hat{y}(j \mid c)\) 변화 \(\rightarrow\) \(\hat{r}(j\mid c )\) 변화 \(\rightarrow\) \(p(j\mid c)\) 변화
  • context-dependent ($\leftrightarrow$ global)

    item $j$의 분포가 user context $c$ 에 의존한다. 따라서 context 별로 분포가 차이난다.

아래 분포는 adaptive, context-dependent의 특징을 가진 분포 예시다.

\[\begin{align*} p(j|c) \propto \exp({-\frac{1}{\lambda}\hat{r}(j|c)}), \ \ \ \lambda \in \mathbb{R}^{+} \\ \end{align*}\]

먼저 이 분포는 \(\hat{r}(j\mid c)\)에 의존한다. 이는 다시말해 user context 마다 item $j$의 랭킹이 달라진다는 뜻이다. 나아가 다음 조건을 만족할 수록 보다 더 informative한 item $j$를 뽑을 수 있다.

$\hat{r}(j\mid c)$가 작을수록

$\Leftrightarrow$ $\hat{y}(j\mid c)$가 클수록

$\Leftrightarrow$ $\bigtriangleup_{c,i,j} \rightarrow 1 $ 수록

Trivial algorithm

(1) $r(j\mid c) \sim Geo(\gamma)$에서 $r(j\mid c) $를 샘플링 한다.

(2) (1)에서 $r(j\mid c) =k $라면, user context $c$ 하의 item순위 리스트에서 k등인 item을 선택한다.

​ 이때 item 순위 리스트는 $\hat{y}(.\mid c)$를 내림차순 정렬하여 구한다.

4. Efficient sampling algorithm

이 장에서는 위에서 설명한 샘플링 알고리즘을 보다 효율적으로 활용하는 방법을 알아볼 것이다. 논문에서 제안하는 방법으로는, 샘플링 분포의 믹스쳐 모델을 정의하여 사용하는 것이다. 여기서는 Matrix factorization(MF) 적용한 결과를 구체적으로 살펴보겠다.

Matrix factorization(MF)

Matrix Factorization이란, user-item matrix를 저차원 행렬 2개로 분해하여 표현하는 방법( NCF 포스팅 2절 참고)이다. $c$를 user-context, $l$을 item이라 한다면 user context $c$ 하에서의 item $l$의 점수는 다음과 같이 표현 가능하다. 여기서 \(\mathbf{v}_{c}\)와 \(\mathbf{v}_{l}\)은 각각 user-context, item의 latent 벡터다.

\[\begin{align*} \hat{y}(l|c) := \sum_{f=1}^k v_{c,f} \ v_{l,f} \end{align*}\] \[\begin{align*} where\ \ \mathbf{v}_{c}=[v_{c,1}, \ldots ,c_{c,k}], \ \ \ \mathbf{v}_{l}=[v_{l,1}, \ldots ,v_{l,k}] \end{align*}\]

Rank-invariant normalization

샘플링 분포의 효율적인 활용을 위해, 먼저 \(\hat{y}(l\mid c)\)을 아래와 같이 선형변환하여 사용하겠다.

\[\begin{align*} \hat{y}^*(l|c) &= \hat{y}(l|c) - b(c) \\ \\ \end{align*}\]

이어 변환 과정에서 \(\hat{y}^*(l\mid c)\)을 다음과 같이 정의할 수 있다.

\[\begin{align*} \hat{y}^*(l|c):= \sum_{f=1}^k p(f|c)\ \text{sgn}(v_{c,f}) \ v_{l,f}^* \end{align*}\]

$(proof)$

\[\begin{align*} \hat{y}(l|c) &= \sum_{f=1}^k v_{c,f} \ v_{l,f} \ \ \ \leftarrow \ \ v_{l,f}^* = \frac{v_{l,f}-\mu_{f}}{\sigma_{f}} \\ &= \sum_{f=1}^k |v_{c,f}|\text{sgn}(v_{c,f})(\sigma_{f}v_{l,f}^* + \mu_{f}) \\ &= \sum_{f=1}^k |v_{c,f}|\text{sgn}(v_{c,f})\sigma_{f}v_{l,f}^* + |v_{c,f}|\text{sgn}(v_{c,f})\mu_{f } \ \ \leftarrow \ \ p(f|c) \propto |v_{c,f}| \sigma_{f} \\ &= \sum_{f=1}^k p(f|c)\text{sgn}(v_{c,f})v_{l,f}^* + |v_{c,f}|\text{sgn}(v_{c,f})\mu_{f} \\ &= \hat{y}^*(l|c) + b(c) \\ \end{align*} \\\]

위 증명에서 $v_{l,f}^*$는 $v_{l,f}$를 표준화 시킨것으로, $\mu_{f}$와 $\sigma_{f}$는 아래처럼 계산된다.

$\hat{y}(l|c)$ 대신 $ \hat{y}^*(i|c)$을 사용할 수 있는 이유는 rank-invariant 성질을 만족하기 때문이다. 즉, 비록 $\hat{y}$ 은 달라도 rank는 불변한다. 이는 아래의 관계로 부터 확인할 수 있다.

\[\begin{align*} \hat{y}(i|c) \geq \hat{y}(j|c) &\Leftrightarrow a(c)\hat{y}(i|c) \geq a(c)\hat{y}(j|c) \\ &\Leftrightarrow a(c)\hat{y}(i|c) - b(c) \geq a(c)\hat{y}(j|c) - b(c) \\ &\Leftrightarrow \hat{y}^*(i|c) \geq \hat{y}^*(j|c) \end{align*}\]

Rank mixture

위에서 샘플링 알고리즘을 효율적으로 활용하는 방법은 샘플링 분포의 믹스쳐 모델을 정의하는 것이라 하였다. 믹스쳐 모델이란, 여러개의 분포를 적절한 확률로 가중합한 모델이라 생각하면 된다. 이때 이 확률을 mixing probability라고 하고, 논문에서는 다음과 같이 정의하여 사용한다.

\[\begin{align*} p(j|c) := \sum_{f=1}^{k}p(f|c)\ p(j|c,f) \end{align*}\]

여기서 $p(f\mid c)$가 확률, $p(j\mid c,f)$가 분포다. 이렇게 믹스쳐 모델을 사용하는 이유는 item $j$의 분포에서 user에게 더 중요한 부분을 찾고, 그 부근에서 샘플링을 하기 위해서다.

따라서 $p(f\mid c)$는 user와 관련된 부분이기 때문에 $v_{c}$의 원소에 대해 정의되고, $p(j\mid c,f)$는 item과 관련된 부분이기 때문에 $v_{j}$의 원소에 대해 정의된다. (아래 그림 참조)

아래는 $p(j\mid c)$를 구체적으로 정의한 것이다.

\[\begin{align*} p(j|c) &:= \sum_{f=1}^{k}p(f|c)\ p(j|c,f) \\ &\propto \sum_{f=1}^{k} |v_{c,f}| \sigma_{f} \ \exp({-\frac{1}{\lambda}\hat{r}^*(j|c,f)}) \end{align*} \\\]
  • $p(f\mid c)$ 의미

    user와 관련된 부분으로, $k$개의 원소중 user에게 더 중요한 원소를 찾는 것이 목적이다. 따라서 아래와 같이 $v_{c,f}$에 대해 정의된다.

    \[\begin{align*} p(f|c) \propto |v_{c,f}| \sigma_{f} \end{align*}\]

    즉 $v_{c, f}$가 클수록 $p (f\mid c)$가 커지고, user context $c$ 하에서 $f$번째 원소가 중요해짐을 의미한다.

  • $p(j\mid c,f)$ 의미

    item과 관련된 부분으로, user context $c$와 $f$ 번째 원소하에서의 item $j$의 분포를 정의한다.

    \[\begin{align*} p(j|c,f) \propto \exp({-\frac{1}{\lambda}\hat{r}^*(j|c,f)}) \end{align*}\]

    여기서 \(\hat{r}^*(j\mid c,f)\)는 user context $c$와 $f$번째 원소하에서 item $j$의 순위로, 아래의 \(\hat{y}^*(j\mid c,f)\)를 사용해서 계산된다.

\[\begin{align*} \hat{y}^*(j|c,f) := \text{sgn}(v_{c,f})v^{*}_{j,f} \end{align*}\]

Sampling from rank mixture

위에서 정의한 믹스쳐 모델을 바탕으로 negative item $j$를 샘플링 하는 방법을 알아보겠다.

(1) $r(j\mid c) \sim \text{exp}(\frac{1}{\lambda})$에서 $r(j\mid c)$를 샘플링 한다. ​ \(\rightarrow \text{ ex.} \ \ r(j\mid c)=3 \\\)

(2) $p(f\mid c), f=1,2,..,k$ 에서 가장 큰 값을 갖는 $f$를 선택한다. ​ \(\rightarrow \text{ ex.} \ \ f=2 \\\)

(3) 모든 item latent 벡터의 $f=2$번째 원소인 $v_{\cdot, f=2 }$를 가져와 내림차순 정렬한다.
​ \(\rightarrow \text{ ex.} \ \ v_{8,f=2} > v_{13,f=2}> v_{25,f=2}> ...\\\)

(4) 위의 (3)에서 \(\hat{r}^*(j\mid c,f=2)\)번째의 item을 선택한다.

\[\hat{r}^*(j|c,f=2) = \begin{cases} r(j|c) & \mbox{if} \ \ \text{sgn}(v_{c,f=2}) =1\\ |I|-r(j|c)+1 & \mbox{if} \ \ \text{sgn}(v_{c,f=2}) =-1 \\ \end{cases}\]

​ $\rightarrow \text{ ex.}$ 만약 $v_{c,f=2}>0$ 이라면 \(\hat{r}^*(j\mid c,f=2)=3\)이 되어 item 25를 선택한다.

정리하자면 (2)는 item $j$ 의 분포(믹스쳐모델) 중 user에게 더 중요한 분포를 찾는 것이고, (3)&(4)는 그 분포에서 샘플링 하는 것이 되겠다.

Conclusion

(이 부분은 논문의 결론이 아닌 제가 정리한 결론임을 미리 말씀드립니다.)

본 논문은 BPR에서 negative item을 샘플링할 때 발생하는 문제에 집중한다. 이는 구체적으로 uniform sampling에서 기인한 것으로, 수렴속도 저하와 gradient vanish 현상으로 학습이 진행되지 않는 문제가 있었다.

따라서 저자는 context-dependent하며 informative 샘플을 뽑아주는 adaptive & context-dependent sampling 분포를 제안하였다. 이는 user context 별로 각각 다른 분포에서 유의미한 negative item 샘플을 뽑는 것으로, 학습이 진행될 때마다 분포가 업데이트 되는 것이 특징이었다.

본문에서 experiment는 살펴보지 않았지만, 이 방식은 추천에 대한 효용 지표인 HLU(Half Life Utilty)나 gradient magnitue면에서 많은 개선을 보였다.

Updated:

Leave a comment