working_helen

[추천시스템 논문 리뷰] 5주차 : Neural Collaborative Filtering 본문

deep daiv./추천시스템 스터디

[추천시스템 논문 리뷰] 5주차 : Neural Collaborative Filtering

HaeWon_Seo 2023. 8. 27. 17:39

논문명 : Neural Collaborative Filtering

저자명 : Xiangnan He, Lizi Liao, Hanwang Zhang, Liqiang Nie, Xia Hu, Tat-Seng Chua

논문 링크 : https://arxiv.org/abs/1708.05031

 

 

 

본 논문에서는 recommandation problem에서 딥러닝 기반 모델의 활용 가능성을 보이고자 한다. 특히 현재 collaborative filtering에서 널리 사용되고 있는 Matrix Factorization 모델은 user-item 상호작용을 linear하게만 표현하기 때문에 implicit feedback에서의 상호작용을 잘 설명할 수 없음을 주장하며, 이에 대한 대안으로 deep neural networks 구조를 가지는 새로운 모델 Neural Collaborative Filtering NCF를 제안한다. NCF의 general framework를 설명하고, 서로 다른 방법으로 user-item 상호작용을 모델링하는 NCF instantiation 3가지를 소개한다.

 

 

 

✏️ 논문 내용 요약

1. recommandation problem에서 딥러닝 기반 모델이 많이 활용되고 있지 않음을 지적
1. implicit feedback CF에서 deep neural networks 구조로 user-item 상호작용을 모델링하는 NCF를 제안
2. MF가 NCF로 표현될 수 있이며, MF에 비해 NCF가 더 복잡한 상호작용까지 표현할 수 있음을 보임
3. 실제 데이터셋을 통해 NCF의 유용성을 증명

 


0. Abstract

  •  implicit feedback 기반 CF에 deep neural networks 구조로 접근한다.
  • MF의 inner product 대신, neural architecture를 사용해 user-item 상호작용을 설명하 NCF를 제안한다.
  • NCF는 generic하며 MF를 일반화할 수 있다.
  • multi-layer perceptron을 활용해 학습함으로써 복잡한 비선형적 관계도 모델링할 수 있다.

 

 

1. Introduction

1️⃣Matrix Factorization은 내적 연산으로 인해 모델 성능에 한계가 있을 수 있다.

 

"matrix factorization (MF) is the most popular one, which projects users and items into a shared latent space, using a vector of latent features to represent a user or an item. Thereafter a user’s interaction on an item is modelled as the inner product of their latent vectors.
Despite the effectiveness of MF for collaborative filtering, it is well-known that its performance can be hindered by the simple choice of the interaction function —inner product. The inner product, which simply combines the multiplication of latent features linearly, may not be sufficient to capture the complex structure of user interaction data"

 

- Collaborative Filtering(CF)의 latent factor model-based에 속하는 가장 유명한 모델 중 하나로, item과 user를 latent 공간의 latent feature로 표현하고  item-user 상호작용을 두 latent feature 간 내적 연산으로 계산한다.

- 추가적인 정보를 고려하는 방법을 사용하더라도 latent feature들을 단순히 선형적으로 결합하는 내적 계산은 복잡한 item-user 상호작용을 설명하기에 충분하지 않다.

 

 

2️⃣ DNNs을 적용한 신경망 모델링으로 CF를 구현할 수 있다.

 

"This paper explores the use of deep neural networks for learning the interaction function from data. there is relatively little work on employing DNNs for recommendation. we explore the central theme of how to utilize DNNs to model noisy implicit feedback signals."

 

- Deep Neural Networks (DNNs, 심층신경망)를 추천시스템에 사용하는 것은 많지 않다.

- DNNs를 적용해 데이터로부터 item-user 상호작용을 학습할 수 있다.

  DNNs 구조로 user-item latent feature를 모델링할 수 있다.

= DNNs를 적용해 신경망 구조 기반의 CF를 구현할 수 있다.

- MF의 단순 선형결합과 달리 DNNs에서는 노이즈가 많은 implicit feedback을 효과적으로 모델링할 수 있다.

 

 

📌NCF Neural network-based Collaborative Filtering

: DNNs 방식을 이용해 implicit feedback CF를 모델링하는 방법을 제안한다.

 

- neural networks로 user-item의 latent feature를 모델링하는 NCF를 고안

- MF는 NCF의 한 종류로 볼 수 있으며, MF와 달리 NCF는 다층 퍼셉트론을 활용해 비선형적인 관계도 모델링한다.
- NCF 접근 방식의 효과와 협업 필터링에서 딥러닝의 활용 가능성을 보이기 위해 두 개의 실제 데이터 실험을 제시한다.


 

 

 

2. Preliminaries

: implicit feedback 기반의 CF에 MF를 적용하는 것은 한계가 있으며, 이것이 내적 계산으로부터 기인함을 보인다.

 

 

2.1 Learning from Implicit Data

 

implicit feedback 기반 interaction matrix

 

  • M : users 수  /  N : items 수
  • Y : user–item interaction matrix ∈ R
  • y_ui : interaction between user u and item i
  • Θ : 예측 모델 parameters
  • f : 예측 모델
  • y_ui = f(u, i|Θ) : Θ일때 f로 계산한 y_ui 예측 interaction

- y_ui가 1이다 = user u와 item i 간 interaction이 존재한다  ≠  user u가 item i를 선호한다

  y_ui가 0이다 = user u와 item i 간 interaction이 업다    user u가 item i를 선호하지 않는다

 

- implicit feedback 기반 item-user 행렬에서 각 성분 값은 선호/불호를 의미하는 것이 아니라, 사용자가 해당 아이템을 인지하고 있는지 혹은 관심을 가진 적이 있는지를 의미한다. 따라서 y_ui가 0이라는 것이 단순히 사용자가 아이템이 있다는 것을 인지하지 못함으로 인한 누락된 데이터일 수 있으며, 전체 행렬에서 부정적인 feedback을 나타내는 정보가 전무하다는 문제점이 있다.

 

- implicit feedback 기반 추천 문제는 Y에서 관측되지 않은 성분의 점수를 추정하는 것이다.

- 오차를 최소화하는 매개 변수 Θ를 추정하기 위해 목적 함수를 최적화하는 학습 과정을 진행한다.

 

 

 

2.2 Matrix Factorization

 

출처 : https://leehyejin91.github.io/post-ncf/

  • p_u : user latent vector   /  q_i :  item latent vector
  • K : latent factor space의 dimension

- MF는 item과 user latent factor가 서로 독립적이고 동일한 가중치로 선형 결합한다는 가정에서 interaction을 표현한다.
- 두 사용자 사이의 유사성은 두 user latent vector의 내적값, 혹은 벡터 사잇각의 cosine 값으로 구해진다.

- 복잡한 item-user 상호작용을 단순하고 고정적인 저차원 latent space에서 추정하는 것에는 한계가 존재한다. 이를 해결하기 위해 latent factor의 수 K를 늘리는 방안이 있지만, sparse 조건인 경우 모델의 일반화에 악영향을 미친다.

 

 

 

 

 

3. Neural Collaborative Filtering

: implicit feedback 조건에서 NFC의 general framework에 대해 설명한 후, 3가지 instantiations를 소개한다.

 

✅ GMF : 기존의 MF를 NFC framework로 표현한 모델
✅ MLP :  non-linearity하고 복잡한 상호작용을 다루기 위해 NFC framework에 MLP를 적용한 모델
✅ NeuMF : NCF framwork 하에서 GMF의 선형성과 MLP의 비선형성의 강점을 통합 새로운 모델

 

 

3.1. General Framework

1) multi-layer를 이용해 item-user 상호작용을 모델링

  • v_i : item i의 one-hot encoding vector  /  v_u : user u의 one-hot encoding vector
  • Input Layer : v_i와 v_u, sparse한 상태
  • P ∈ R^M×K :  user latent factor matrix = user Embedding matrix
  • Q ∈ R^N×K  : item latent factor matrix = item Embedding matrix
  • Θ : 예측 모델 parameters
  • f : 예측 모델, multi-layer neural network
  • φ : 각 층의 mapping function 

 

Embedding Layer
: sparse 벡터를 dense 벡터로 바꿔 다층 신경망으로 전달해주는 연결층
 latent factor matrix (Embedding matrix)를 사용해 M, N 차원의 sparse vector를 K차원의 latent space의 dense vector로 표현한다. v_u는 P를, v_i는 Q를 통해 변환된다.

 

Neural CF Layers (Layer 1 ~ Layer X)
: user embedding vector와 item embedding vector를 예측 평점에 매핑하는 층
두 임베딩 벡터를 연결한(concatenate) 벡터를 시작으로 각 층에 입력되고 출력되는 과정을 거친다. 각 층은 item-user 상호작용의 특정 잠재 구조를 발견하도록 설계된다. 최종 출력층 X에서 출력된 값이 예측 평점 y_ui_hat이 된다.

 

Outout Layer
: 예측 평점 y_ui_hat으로 성능을 평가하고 학습을 진행하는 층
  y_ui_hat과 정답값 y_ui 사이의 loss를 최소화하도록 학습한다.

 

 

2) Learning NCF

  • Y : 관찰된(known) 상호작용 데이터 set
    -Y : 관찰되지 않은(unknown) 상호작용 데이터 set

- implicit feedback에서

  y_ui [0, 1] : 사용자 u와 아이템 i가 상호작용 했는지 그 여부를 나타내는 binary indicator 

  y_ui_hat : 사용자 u와 아이템 i가 상호작용 했을 확률

φout의 activation function을 (6)과 같은 확률 함수를 사용함으로써 y_ui_hat을 [0, 1] 범위로 제한한다.

 

- (6)에 음의 로그 취한 (7)을 학습시 objective function으로 사용하며, 최적화는 SGD로 수행된다.

- (7)의 식은 binary cross-entropy loss (log loss)의 수식과 동일하다. 즉 NCF 결과값에 확률적 처리를 진행함으로써 implicit feedback recommandation problem을 binary classification problem으로 해결하는 것이다.

 

 

 

 

3.2. Generalized Matrix Factorization (GMF)

: MF는 NCF의 특별한 한 형태로 해석될 수 있다.

 

p_u = P' * v_u : user latent vector

q_i = Q' * v_i : item latent vector

φ_1 : 1번 neural CF layer(Layer 1) 함수
a_out : output layer의 activation function

h : output layer의 edge weights

 

- (9) 식에서 a_out과  h를 적절히 설정하면, 기본 MF 모델뿐만 아니라 MF의 확장 모델까지 표현할 수 있다.

- a_out으로 항등 함수를 사용하고 h를 균등 벡터 1로 두면 MF 모델 (2) 식과 동일하다.

- h를 데이터에서 학습하도록 만들면 latent factor의 중요도를 반영하는 MF 확장 모델을 만들 수 있다.

  a_out으로 비선형 함수를 사용하면 비선형 설정으로 MF를 일반화할 수 있다.

 

- Generalized Matrix Factorization GMF

 : a_out으로 sigmoid 함수를 사용하고, 로그 손실 기반으로 h를 학습하는 일반화된 버전의 MF

 

 

 

 

3.3. Multi-Layer Perceptron (MLP)

- NCF는 input Layer로 item과 user 2가지 경로를 사용하기 때문에 두 경로를 연결하는 과정이 필요

- 다른 딥러닝 문제에서와 달리, item vector와 user vector를 단순연결하는 것은 user–item latent 상호작용 (latent 구조)을 설명하지 않으므로 CF를 모델링하기엔 불충분하다.

- 따라서 MLP를 사용해 concatenated vector에 hidden layers를 추가함으로써 사용자와 아이템의 latent feature 사이의 상호작용을 학습하는 방식을 사용한다.

 

 

  • W_x : x-th layer perceptron의 weight matrix
  • b_x : x-th layer perceptron의 bias vector
  • a_x : x-th layer perceptron의 activation function
  • φ_1 : 1번 neural CF layer(Layer 1) 함수 = user와 item의 latent vector를 concatenation하는 함수
  • φ_x (x: Neural Net 함수, weight matrix와 bias vector로 잠재 구조를 학

 

- activation function으로는 sigmoid, hyperbolic tangent (tanh), Rectifier(ReLU) 등을 사용할 수 있다.

- 본 논문의 실험 결과, ReLU를 사용할 때 가장 좋은 성능을 보였다.

 

- GMF는 linear구조이지만, MLP는 φ_x가 non-linear 구조이다.

- GMF보다 MLP를 사용한 모델의 flexibility와 non-linearity가 더 커 복잡한 item-user 상호작용 관계도 표현할 수 있게 된다.

 

 

 

 

 

3.4. Fusion of GMF and MLP

1) Neural Matrix Factorization NeuMF

: user–item latent 상호작용를 설명하기 위해, linear kernel을 사용하는 GMF와 non-linear kernel를 사용하는 MLP를 제시했다. NCF framework 안에서 GMF와 MLP를 융합한 새로운 모델을 제안한다.

 

- GMF와 MLP가 각각의 embedding layer를 사용한 후, 마지막 hidden layer에서 두 모델을 결합한다.

- MLP 계층의 활성화 함수로는 ReLU를 사용한다.

 

 

  • p_uG : user embedding for GMF   /   q_iG : item embedding for GMF
  • p_uM : user embedding for MLP   /   q_iM : item embedding for MLP
  • h_GMF : h vector of the pretrained GMF
  • h_MLP : vector of the pretrained MLP
  • α : hyper-parameter determining the trade-off between the pre-trained GMF and MLP

 

 

2) Pre-training

- GMF와 MLP의 사전 학습된 모델을 사용하여 NeuMF를 초기화한다.

→  GMF와 MLP 매개변수를 무작위로 초기화한 상태에서 학습이 시작되며 수렴할 때까지 진행한다.

      GMF와 MLP 최적화에는 Adaptive Moment Estimation(Adam) 방법을 사용한다.

→  사전 학습으로 얻은 매개 변수로 NeuMF 매개 변수를 초기화한다.

     가중치 α를 기준으로 두 모델를 연결한다. NeuMF 최적화에는 vanilla SGD를 사용한다.

 

 

 

 

 

6. Conclusion

✏️ 논문 내용 요약

 

1) 추천시스템 collaborative filtering을 neural network 구조로 구현하려는 시도

2) 새로운 모델 Neural Collaborative Filtering NCF를 고안하고, 3가지 instantiation (GMF, MLP, NeuMF)를 제안

3) 기존의 MF를 보완하는 딥러닝 기반 추천 모델의 유용성과 발전 가능성을 보임

 

 

 

 

 

Reference

https://velog.io/@minchoul2/%EC%B6%94%EC%B2%9C%EC%8B%9C%EC%8A%A4%ED%85%9C-Neural-Collaborative-Filtering-%EB%85%BC%EB%AC%B8-%EB%A6%AC%EB%B7%B0
https://julie-tech.tistory.com/34
https://supkoon.tistory.com/28
https://leehyejin91.github.io/post-ncf/