Neural Collaborative Filtering 논문 리뷰

Myeonghyeon Ryu·2022년 10월 23일
0

논문리뷰

목록 보기
4/5

Abstract

최근 몇 년 동안 CV, NLP분야에서는 딥러닝으로 많은 성과를 냈지만 RecSys분야에서는 눈에 띄는 성과가 나오지 못했다.
그래서 본 논문에서는 추천시스템에서 주로 사용되는 MF기법의 한계를 지적하고 Neural network기반의 NCF를 제안해 이 문제를 해결한다.

1. Introduction

MF는 linear한 방식이기 때문에 user와 item간의 복잡한 관계를 표현하는데 한계가 있다. 그래서 본 논문에서는 implicit feedback을 모델링하기 위해 DNN을 활용하는 방법을 알아볼 것이다.

  • contribution
    1. 사용자와 아이템의 letent feature를 모델링하기 위한 neural net 아키텍처 NCF를 제안한다.
    1. MLP을 활용하여 NCF모델링에 높은 수준의 비선형성을 부여할 수 있음을 보여준다.
    2. 여러 실험을 통해 딥러닝의 가능성을 보여준다.

2. Preliminaries

먼저 문제를 공식화하고 implicit feedback CF을 위한 기존 솔루션에 대해 논의 해보자.

2.1 Learning from Implicit Data

user-item matrix를 YRM×NY ∈ R^{M×N}로 표현했을 때

yu,iy_{u,i}는 user u와 item i의 상호작용을 나타낸다.

  • 0이 negative를 뜻하는 것은 아니니 주의

이처럼 implicit data는 missing value와 negative value를 구분할 수 없기 때문에 학습하는데 어려움을 유발한다.

이러한 문제점들로 인해 implicit feedback을 활용한 추천문제는 관찰되지 않은 yu,iy_{u,i}가 1이 될 확률을 예측하는 문제로 공식화되며 다음과 같은 식으로 표현할 수 있다.

y^u,i=f(u,iΘ)\hat{y}_{u,i} = f(u,i|Θ)
Θ:model    parameterΘ: model \;\;parameter

2.2 Matrix Factorization

MF는 YY를 저차원의 행렬 두 개PP,QQ로 분해하여 표현하는 기법이다.

pup_uqiq_i의 내적으로 y^u,i\hat{y}_{u,i}를 추정한다.

figure1은 linear한 내적이 MF의 표현력을 제한하는 방법을 보여준다.

  • user-item matrix에선 user4가 user1, 3, 2 순으로 유사하다.
  • latent space에서는 user 1, 2, 3을 표현하고 있는 공간에 user 4를 나타낼 때 절대 (a)와 같이 표현할 수 없다.

위 예시는 저차원 letent 공간에서 복잡한 user-item 상호 작용을 추정하는데 발생하는 문제는 보여준다.
kk를 늘려 해결할 수 있긴하지만 over fitting과 같은 문제가 발생하기 때문에 오히려 부정적인 영향을 준다.

따라서 우리가 DNN을 사용해 이 문제를 해결한 것을 보여주겠다.

Neural Collaborative Filtering

먼저 2.1에서 봤던 데이터와 같은 binary implicit data를 해결하는 NCF모델을 살펴보자.

그런 다음 MF가 NCF에서 표현되고 일반화될 수 있음을 보여준다.

마지막으로 NCF 프레임워크에서 MF와 MLP를 앙상블하는 새로운 Neural MF model을 제시한다.

3.1 General Framework

  • Input Layer
    user와 item의 one-hot vector를 사용하였다.

  • Embedding Layer
    input layer로 부터 받은 sparse한 벡터를 dense한 letent 벡터로 변환해주는 역할을 한다.

  • Neural CF Layers
    Embedding Layer로부터 생성된 두 벡터, User Latent Vector와 Item Latent Vector를 concat해서 input으로 받는다.

NCF의 예측 모델을 공식화해보면 다음과같이 표현할 수 있다.

user  latent  vector=PTvuUuser \; latent\;vector = P^Tv_u^U
item  latent  vector=QTviiitem \; latent\;vector = Q^Tv_i^i
model  parameter=Θfmodel\; parameter = Θ_f
f(PTvuU,QTviI)=ϕout(ϕX(...ϕ2(ϕ1(PTvuU,QTviI))...))f(P^Tv^U_u , Q^Tv^I_i) = \phi_{out}(\phi_X(...\phi_2(\phi_1(P^Tv^U_u,Q^Tv_i^I))...))

P,Q,ΘP, Q, Θ에 대한 (PTvuU,QTviI)(P^Tv^U_u , Q^Tv^I_i)값으로 y^i,j\hat{y}_{i,j}을 예측한다.

3.1.1 Learning NCF

우리의 데이터는 0과 1로 이루어진 이진데이터이며, NCF는 0과 1사이의 예측값을 갖기 때문에 binary cross entropy loss를 사용하여 학습한다.

3.2 Generalized Matrix Factorization(GMF)

MF가 NCF의 특수한 경우로 해석될 수 있는 GMF를 알아보자.

input layer에서 ont-hot encoding으로 얻은 embedding vector는 사용자의 latent vector로 볼 수 있다.

user  latent  vector  pu:PTvuUuser \;latent\; vector\; p_u : P^Tv_u^U
item  latent  vector  qi:QTviIitem \;latent\; vector\; q_i : Q^Tv_i^I
first  neural  CF  layer:ϕ1(pu,qi)=puqifirst \; neural \; CF \; layer : \phi_1(p_u,q_i)=p_u\odot q_i
output  layer:y^ui=aout(hT(puqi))output\;layer : \hat{y}_{ui} = a_{out}(h^T(p_u\odot q_i))

여기서 aouta_{out}hh는 각각 출력층의 활성화함수와 edge weights를 나타낸다.

만약 aouta_{out}을 identity function, hh를 1의 uniform vector로 설정하면 기존 MF모델을 정확하게 복구할 수 있다.

이처럼 NCF프레임워크에서 MF를 쉽게 일반화하고 확장할 수 있다.

GMF란 aouta_{out}을 sigmoid function, hh를 학습이 되도록 설정한 것을 말한다.

3.3 Multi-Layer Perceptron (MLP)

GMF는 user와 item간의 interaction을 표현하기에 충분하지않다.
이 문제를 해결하기 위해 MLP를 사용하여 user와 item latent features 간의 interaction을 학습할 것을 제안한다.

GMF와 같이 element wise product를 쓰는 것이 아닌 pup_uqiq_i간의 interaction을 학습하는 NCF framework에서의 MLP모델을 알아보자.

z1=ϕ1(pu,qi)=[puqi]z_1 = \phi_1(p_u, q_i) = \begin{bmatrix}p_u \\ q_i\end{bmatrix}
ϕ2(z1)=a2(W2Tz1+b2),\phi_2(z_1) = a_2(W_2^Tz_1 + b_2), \\\cdots\cdots
ϕL(zL1)=aL(WLTzL1+bL),\phi_L(z_{L-1}) = a_L(W_L^Tz_{L-1} + b_L),
y^ui=σ(hTϕL(zL1)),\hat{y}_{ui} = \sigma(h^T\phi_L(z_{L-1})),

첫번째 layer에서 element-wise product가 아닌 두 latent vector를 concatenation한다. 이후 MLP층을 통과한 후 최종적으로 예측값 y^ui\hat{y}_{ui}를 얻는다.

본 논문에서는 활성화함수로 ReLU를 채택하였다.

3.4 Fusion of GMF and MLP

이번엔 앞에서 살펴본 linear한 특징을 갖는 GMF와 non-linear한 특징을 갖는 MLP를 Fusion해보자.

이 모델의 가장 큰 특징은 첫 레이어의 input으로 서로 다른 embedding layer를 사용한다는 것이다.

본 논문에서는 embedding을 공유하면 모델의 성능이 제한될 수 있다고 한다. 예를 들어 두 모델에 동일한 크기의 embedding을 사용해야하기 때문에 두 모델 각각에 최적화된 embedding 크기의 차이가 클 경우 성능이 매우 나빠진다.
따라서 서로 다른 embedding을 사용하는 것이다.

공식은 다음과 같다.

ϕGMF=puGqiG,\phi^{GMF} = p_u^G \odot q_i^G,
ϕMLP=aL(WLT(aL1(a2(W2T[puMqiM]+b2)))+bL),\phi^{MLP} = a_L(W_L^T(a_{L-1}(\ldots a_2(W_2^T\begin{bmatrix}p_u^M\\ q_i^M\end{bmatrix}+b_2)\ldots))+b_L),
y^ui=σ(hT[ϕGMFϕMLP])\hat{y}_{ui} = \sigma(h^T\begin{bmatrix}\phi^{GMF}\\ \phi^{MLP}\end{bmatrix})

앞에서 설명한 두 모델의 구조와 동일하며 두 모델을 결합하기 위해 두 모델의 출력값을 concatenation하고 Layer하나를 통과해 예측값 y^\hat{y}를 구한다.

저자는 이 모델을 Neural Matrix Factorization의 약자 NeuMF라고 하였다.

3.4.1 Pre-training

NeuMF는 GMF, MLP모델을 그대로 가져오는 특징이 있다.
따라서 본 논문에서는 GMF와 MLP모델을 학습 시킨 뒤 해당 파라미터 값으로 NeuMF를 초기화 하는 사전학습 기법을 사용할 것을 제안한다.

h[αhGMF(1α)hMLP]h \leftarrow\begin{bmatrix}\alpha h^{GMF}\\ (1-\alpha)h^{MLP}\end{bmatrix}
  • α\alpha는 가중치

처음 GMF와 MLP를 훈련하기 위한 optimizer로 Adam을 채택했다. 이후 사전 훈련된 parameter를 NeuMF에 init한 뒤 Adam이 아닌 바닐라 SGD로 최적화를 진행한다.

4. Experiments

이 섹션에선 세 가지 관점으로 실험을 진행한다.

  • RQ1 : 기존 sota를 능가했는가?
  • RQ2 : negative sampling을 사용한 log loss의 효과
  • RQ3 : 층이 깊어질수록 학습에 도움이 되는지

4.1 Experimental Settings

데이터로는 MovieLens(explicit feedback)와 Pinterest(implicit feedback)를 사용했다.

4.2 Performance Comparison(RQ1)

NeuMF가 두 데이터셋에서 sota를 달성했다.
특이사항으론 Pinterest 데이터셋에서 8개의 적은 factor만 사용하여 기존 sota모델이 64개의 factor를 사용한 것보다 훨씬 더 좋은 성능을 얻었다.

4.2.1 Utility of Pre-training

사전훈련의 유용성을 입증하기 위해 비교를 해봤다.

MovieLens 데이터에서 factor를 8로 설정했을 때를 제외하면 사전학습 모델을 사용했을 때 성능이 더 뛰어났다.

4.3 Log Loss with Negative Smapling(RQ2)

위 그림은 iteration 횟수와 number of Negatives에 따른 Training Loss 그래프를 보여준다.

  • iteration은 epoch를 나눠서 실행하는 횟수를 말한다.
    (ex. 1000개의 데이터 셋을 학습할때 batch_size를 100으로 설정한다면 학습 한 번에 10번의 iteration이 발생하고 10번의 iteration이 완료된 것이 바로 1 epoch다.)

위 그래프로 세 가지 특징을 알 수 있었다.

  1. interation 이 증가할 수록 training loss가 점점 감소하고, 추천 성능이 향상됨을 알 수 있다. 다만 가장 효과적인 update는 처음 10회의 iteration에서 발생하며 더 많은 iteration은 overfitting을 유발할 수 있다.

  2. NeuMF가 가장 낮은 Training Loss를 달성했고 추천 성능 역시 동일하다.

  3. positive instance당 하나의 negative sample만으론 최적의 성능을 달성하기에 충분하지 않으면 negative instance를 더 많이 sampling하는 것이 성능 향상에 유리하다는 것을 알 수 있다. 물론 너무 많이 하는 것도 좋지않다.

4.4 Is Deep Learning Helpful?(RQ3)

딥러닝이 정말 추천시스템에 유익한지 알아보기 위해 다른 수의 hidden layer를 갖는 MLP를 실험해봤다.

층을 깊게 쌓을수록 성능이 좋은 것을 실험을 통해 알 수 있었다.

Conclusion

본 논문은 MF의 기반의 추천 시스템의 한계를 지적하고 NCF(Neural Collaborative Framework)기반의 GMF와 MLP를 결합한 NeuMF(Neural Matrix Factorization)를 제시합니다.

기존에 딥러닝을 사용한 여러 모델들이 이미 존재했지만 CF의 핵심 아이디어(user, item interation modeling)를 표현하지 못해 MF에 의존해왔습니다.

NeuMF는 기존 MF의 장점과 MLP의 장점을 결합해 CF의 핵심 아이디어를 놓치지 않으면서 user, item간 복잡한 관계까지 표현해 높은 성능을 얻어냈습니다.

0개의 댓글