AI 공부 기록 블로그

[논문 리뷰] Neural Collaborative Filtering 본문

논문 리뷰

[논문 리뷰] Neural Collaborative Filtering

dhgudxor 2021. 9. 13. 12:09

 

  본 논문의 저자는 기존 Matrix Factorization 기반의 추천시스템에 Neural Network(NN)를 결합하여 딥러닝 기반의 추천시스템을 제안하였습니다. 본 논문은 2017년 'the 26th international conference on world wide web' 에서 발표되었으며, 여기를 통해 논문을 확인하실 수 있습니다. 

 

논문의 리뷰는 저의 주관적인 해석과 오역이 있을 수 있습니다. 이에 대해서 댓글 남겨주시면 감사하겠습니다 :) 


1. INTRODUCTION

   여러 collaborative filtering(CF) 방법들 중에 유저와 아이템 간의 latent vector를 활용하는 matrix factorization(MF) 방법은 추천 시스템에서 널리 사용되었습니다. 하지만 이러한 latent vector의 내적을 통한 추천 방법은 유저와 아이템 간의 복잡한 구조를 모두 나타내기엔 부족하였습니다. 이에 따라 본 논문에서는 기존의 CF 모델의 선형 연산의 한계점을 비선형 방식인 neural network를 활용을 제안하고, 시청, 구매, 클릭 등 단순히 유저의 행동을 내포하는 implicit feedback 데이터를 활용하여 해당 모델을 검증을 진행하였습니다. 

 

 해당 논문을 통해 저자들이 주장하는 3가지는 다음과 같습니다. 

- 유저와 아이템의 latent features를 모델링하기 위한 neural network architecture를 제시하고, 신경망 기반의 Neural Collaborative Filtering(NCF) 프레임워크를 제안합니다.

- MF는 NCF의 전문화된경우임을 증명하고, multi-layer perceptron를 활용하여 NCF모델의 비선형성 연산이 가능함을 제시합니다.

- MovieLens와 Pinterest 데이터를 활용하여 NCF 모델의 유효성을 증명하고, CF 모델의 딥러닝적 접근이 가능함을 보여줍니다. 

 

2. PRELIMINARIES

2.1 Learning from Implicit Data

  Implicit Data는 유저가 아이템에 대해 구매하거나, 검색, 클릭 등에 대한 정보를 바탕으로 표현되는 데이터를 의미합니다. 유저와 아이템 간의 상호작용 매트릭스는 $Y \in \mathbb{R} ^ {M \times N} $로 나타낼 수 있으며, 여기서 $M$과 $N$은 유저와 아이템의 수를 나타내고 매트릭스 안의 원소 $y_{ui}$는 유저와 아이템 간의 상호작용이 있다면 1, 그렇지 않으면 0으로 표현됩니다. 이때 1은 유저가 아이템을 단순히 상호작용 했음을 의미하며, 유저가 아이템에 대해 좋아하거나 불만족함을 알 수 없습니다. 또한 0 역시 유저가 아이템에 대해 상호작용이 없었지만 이는 유저가 아이템을 싫어함을 나타내는 것이 아니라 인지하지 못하여 나타날 수 있습니다. 유저와 아이템 간의 상호작용 score는 $\hat{y}_{ui} = f\left( u, i | \Theta \right)$로 표현될 수 있으며, loss function으로는 (user, item)을 고려하는 pointwise loss와 (user, positive item, negative item)을 고려하는 pairwise loss를 사용할 수 있습니다.  

2.2 Matrix Factorization

< 그림 1 > Matrix Factorization의 한계 설명

  Matrix Factorization은 내적을 활용하여 유저와 아이템 간의 interaction을 표현하는데, 위 그림은 MF의 한계점을 보여줍니다. Jaccard coefficient (J(X,Y) = |X∩Y| / |X∪Y|)를 활용하여 유저들 간의 유사성을 구해보면,  $S_{23}$(0.66) > $S_{12}$(0.5) > $S_{13}$(0.4)로 표현할 수 있습니다. 위 값에 대한 기하학적 관계는 그림 (b)와 같이 표현될 수 있습니다. 이때, 만약 새로운 유저 4가 등장하여 이와 가장 비슷한 유저의 값을 구해보면 $S_{41}$(0.6) > $S_{43}$(0.4) > $S_{42}$(0.2)로 표현될 수 있습니다. 하지만 이 경우 그림 (b)에서 보듯이 낮은 차원을 갖는 latent space는 (유저4, 유저1) > (유저4, 유저3) > (유저4, 유저2)의 순서로 표현하는데 한계가 있습니다. 이를 해결하기 위해 latent space의 차원을 늘리면 되지만, sparse 한 setting으로 모델을 일반화하는데 부정적인 영향을 미칠 수 있습니다. 이와 같이 새로운 유저가 등장했을 때 표현의 한계점이 생기는 문제를 본 논문에서는 DNN을 활용하여 해결하고자 하였습니다.

 

3.  NEURAL COLLABORATIVE FILTERING

< 그림 2 > Neural collaborative filtering 프레임워크

  위 그림은 Neural collaborative filtering의 전체적인 구조를 보여줍니다. 먼저 Input Layer로는 유저와 아이템의 feature vectors들로 0과 1의 값이 sparse 한 형태로 입력됩니다. 이후 Embedding Layer를 통해 sparse 했던 입력값 들이 dense vector 형태로 투영되고 Neural collaborative filtering layers으로 전달되어 유저와 아이템 간의 최종 스코어를 출력하게 됩니다. 이때 최종 스코어 $ \hat{y}_{ui} $ 는 활성 함수에 Logistic이나 Probit을 사용하여 0 ~ 1의 값이 출력되도록 하여 확률론적인 접근이 가능하도록 합니다.

< 식 1 > NCF의 Loss function

  모델은 implicit feedback 데이터에 대해 이진 분류로 접근하기 때문에 위에서 보듯이 binary cross-entropy와 거의 유사한 손실 함수를 사용합니다. negative instances를 의미하는 $Y^-$는 유저와 아이템 간의 관측되지 않은 상호작용에서 관찰된 상호작용의 수만큼 균일하게 샘플링을 수행합니다. 이때 저자는 비균일 한 샘플링을 사용할 수 있지만, 이는 추후 연구로 남겨둔다고 합니다. 

 

Generalized Matrix Factorization (GMF)의 경우 아래의 식처럼 유저와 아이템의 latent vector $p_u$, $p_i$의 element-wise를 구한 값에 활성 함수$\alpha_{out}$ 와 latent vector들의 영향력을 조정하는 가중치$h^T$를 곱하여 유저와 아이템 간의 점수($\hat{y}_{ui}$)를 구할 수 있습니다. 이때 활성 함수 $\alpha_{out}$에 non-linear의 sigmoid를 적용하여 기존의 linear 방식의 Matrix Factorization 모델보다 더 많은 표현이 가능해졌습니다. 

< 식 2 > GMF의 유저와 아이템간의 점수

Mulit-Layer Perceptron (MLP)의 경우 유저와 아이템 간의 concatenated vector를 여러 hidden layers를 통과시켜 모델에게 높은 유연성과 비선형성을 부여할 수 있습니다.  아래의 식과 같이 MLP는 레이어의 수만큼 활성 함수를 통과시켜 유저와 아이템 간의 점수를 구하게 됩니다. 식에서 $W_x$는 가중치 매트릭스, $b_x$는 bias 벡터, $a_x$는 활성 함수를 의미합니다. 활성 함수에는 sigmoid, tanh, ReLU 등이 있지만 경험적으로 ReLU를 사용하였을 때 성능이 우수하여 이를 채택했다고 합니다. 

< 식 3 > MLP의 유저와 아이템간의 점수

Fusion of GMF and MLP

< 그림 3 > Neural matrix factorization model

  위 그림은 본 논문에서 핵심이 되는 선형 방식의 MF와 비선형 방식인 MLP를 새롭게 융합하여 나타낸 그림입니다. 모델의 입력으로 MF와 MLP가 같은 임베딩 레이어를 사용하게 된다면 제한된 성능을 보이게 될 것입니다. 이에 따라서 두 모델의 임베딩 레이어를 각각 다르게 사용하여 마지막 최종 hidden layer에 출력되는 값들을 concat 하여 최종 점수를 계산합니다. 모델의 식은 아래와 같으며 $p_u^G$, $p_i^G$는 GMF의 임베딩 값을, $p_u^M$, $p_i^M$은 MLP의 임베딩 값을 의미합니다. 또한 MLP의 활성 함수는 위에서 언급하였듯이 ReLU를 사용하였습니다. 

< 식 4 > Neural Collaborative Filtering의 점수

  모델 학습에 있어서 local optimum에 빠지지 않기 위해 GMF Layer와 MLP Layer에 각각 pre-trained을 적용하여 학습을 진행하고, 이후 두 모델을 concat 한 NeuMF Layer를 통해 예측값을 출력하였습니다. 이때 GMF와 MLP에는 Adam 옵티마이저를 적용하고 NeuMF에는 SGD 옵티마이저를 적용했다고 합니다. 

4. CONCLUSION

  새롭게 제안한 NCF 모델에 대한 실험은 다음과 같이 3가지의 관점에서 실험을 진행하였는데, 이에 대한 내용은 생략하도록 하겠습니다. 

 

1) NCF모델이 implicit collaborative filtering 보다 우수한 성능을 보이는지 확인

 

2) 제안된 최적화 프레임워크(log loss with negative sampling)는 추천시스템에서 어떻게 작동되는지 확인

 

3) 유저와 아이템 간의 상호작용을 학습하는 데 있어 hidden units의 깊은 Layers가 도움이 되는지 확인

 

  본 논문의 저자는 기존에 추천시스템에서 사용되었던 Matrix Factorization 방법에 새롭게 MLP를 적용하여 딥러닝 기반의 추천시스템 Neural Collaborative Filtering을 제안하였습니다. NCF 모델은 간단하고 일반적이었지만 추천시스템에 딥러닝을 적용할 수 있게 하는 가이드라인이 되어 큰 주목을 받게 되었습니다.  

Comments