다시 이음

추천 시스템 - Neural Collaborative Filtering 논문 리뷰 본문

채우기/추천 시스템

추천 시스템 - Neural Collaborative Filtering 논문 리뷰

Taeho(Damon) 2023. 1. 4. 16:34

Neural Collaborative Filtering(2017)

 

Abstract

 

최근 동향에서는 추천 시스템을 위한 딥러닝은 보조적인 영향을 보였지만 matrix factorization(행렬분해)과 user, item의 latent feature(잠재 요인)에 내적을 적용하는 user, item feature 사이의 interaction인 협업 필터링에서는 key factor(핵심요인)이 되었다.

 

Neural network based Collaborative Fiterling의 약어인 NCF는 일반적이며 행렬분해(MF)을 사용할 수 있습니다.

비선형으로 NCF 모델링을 강화하기 위해서 퍼셉트론을 활용하여 user-item interaction을 학습할 것을 제안합니다.

 

1. INTRODUCTION

 

많은 서비스에서 추천 시스템은 활용되고 있고 협업 필터링이라고 알려져 있는 개인화 추천 시스템은 사용자의 과거 이력(평점, 클릭수..)에 기반한 item 선호를 알려주는 것이 핵심입니다.

다양한 협업필터링 기술 중에 가장 자주 사용되는 행렬분해(MF) 방법은 사용자와 품목을 표현하는 latent features vector(잠재 요인 벡터)를 사용하여 latent space(잠재 공간)에 투영하고 이후에 item에 대한 user의 interation은 잠재요인벡터의 내적을 통해 모델링됩니다.

 

행렬분해(MF) 모델링을 발전시키기 위해 여러가지 방법이 시도되었습니다.

MF의 효율성에도 불구하고 interaction 기능은 내적의 단순한 선택으로 인해 성능이 저하될 수 있습니다. 이를 개선하기 위한 예로 MF모델에 user, item bias term을 interaction 기능에 통합하는 것이 있습니다.

비록  내적에 대한 사소한 조정으로 보일 수 있지만 모델에 맞춘 interaction 기능을 설계하는 것이 더 좋다는 것을 보여줍니다.

간단하게 잠재 요인들을 곱하고 선형적으로 더하는 내적은 복잡한 user interaction을 파악하기에는 충분하지 않을 수 있습니다.

 

암시적 feedback(사용자의 행동을 통한 선호도,클릭, 구입, 시청한 품목)은 명시적 feedback(평점, 리뷰)보다 자동으로 수집하기 쉽지만 사용자 만족도나 부정적 피드백을 확인하기 어렵기 때문에 활용하기가 어렵습니다.

 

이 논문에서는 노이즈가 있는 암시적 feedback 신호를 모델링하는 DNN을 탐구합니다.

 

1.  user, item의 잠재 특성들을 모델링하기 위한 신경망 네트워크 구조를 제시, 신경망 기반 협업 필터링을 위한 일반적인 NCF를 고안합니다.

2. 행렬분해(MF) 방식이 NCF의 전문화된 모델링이며 다층 퍼셉트론을 활용하여 높은 레벨의 비선형성을 가지는 NCF 모델링을 만들 수 있습니다.

3. 2개의 데이터를 사용하여 NCF 방식의 효율성과 효과적인 딥러닝 CF를 위해 필요한 것들을 소개합니다.

 

2. PRELIMINARIES

이 단원에서는 암시적 피드백들의 문제점을 정규화 하고 그에 대한 해결방법을 제시합니다.

널리 쓰이는 MF 모델들을 확인하여 내적 사용의 한계점을 더 알아봅니다.

 

2.1 Learning from Implicit Data

 

M : user의 수

N : item의 수

Y ∈ R(M*N) : 사용자의 암시적 피드백에서의 user-item interaction matrix 

위의 값 1의 의미는 user, u와 item, i 사이의 interaction가 있다는 것을 나타내지만 u와 i가 같다는 뜻은 아닙니다.

유사하게 값 0의 의미는 u와 i가 다르다는 뜻은 아닙니다.

즉, 1은 user의 흥미가 있는 item이 있음을 발견했다는 뜻이고 반대로는 missing data거나 부정적 피드백으로 쓰기에도 부족하다는 것을 뜻합니다. 

 

암시적 피드백을 사용하는 추천 시스템의 문제점은 unobserved(상관관계가 없음)일때 item ranking에 사용되는 Y(interaction matrix)에서 유사도를 어떻게 측정할지 입니다.

 

Model-based approaches는 데이터가 모델에 의하여 생성된다고 가정합니다. 

ˆyui = f(u, i|Θ)에서

ˆyui는 interaction yui의 예측점수를 의미하고

Θ는 모델의 파라미터

f는 모델의 파라미터와 예측점수들을 mapping 시키는 기능을 뜻합니다.

 

모델의 파라미터(Θ)를 측정하기 위해서 존재하는 방법은 두가지의 머신러닝 패러다임을 따릅니다.

1. pointwise loss

 

위의 방법은 명백한 피드백(explicit)안에서의 많은 계산을 통한 자연스러운 확장이며 주로 ˆyui 와 그의 타겟값 인 yui의 제곱오차(the squared loss)를 최소화하는 regression framework를 따릅니다.

 

2. pairwise loss

 

부정적인 데이터의 부족함을 해결하기 위해서 부정적 feedback에서의 모든 발견되지않는(unobserved) 항목들을 확인하거나 발견되지않는 항목들에서 부정적 인스턴스를 샘플링하여야 합니다.

 

이를 위해서 pairwise loss 방법에서는 발견된(observed) 항목들은 발견되지않는 항목들보다 high rank되어야합니다.

즉, ˆyui 와 그의 타겟값 인 yui의 제곱오차(the squared loss)를 최소화하는 대신에 발견된 항목(^yui)와 발견되지 않은 항목(yui)간의 margin을 극대화하는 방법입니다.

 

2.2 Matrix Factorization

 

MF는 각각의 user와 item의 실제값 벡터의 latent feature(잠재요인)을 규합한 것입니다.

MF 관계식

pu : user의 latent vector

qi : item의 latent vector

K :  the dimension of the latent space

행렬분해(MF)는 pu와 qi의 내적을 통해 interaction을 측정합니다.

행렬분해 모델은 두개 user와 item의 latent factor의 interaction을 가지고 있으며 각각의 the latent space 의dimention은 서로 독립적이면서 선형적으로 결합이 될 수 있는 같은 가중치 크기를 가집니다.

즉, 행렬분해 모델은 latent factor(잠재요인)의 linear model(선형모델)이라고 볼 수 있습니다.

 

Figure 1은 MF의 표현이 내적을 통해 얼마나 정보를 긍정적으로 제한하는지 보여줍니다.

 

(a)의 경우 간단한 내적을 통해 user4가 user1과 가장 비슷하고 user3, user2 순으로 비슷하다는 것을 확인 할 수 있습니다.

그러나 (b)의 경우에는 코사인 각도에 따라 p'4, p4에 두가지 방법으로 설정할 수 있게되고 그렇게된다면 p4가 p3보다 p2에 가깝게 되어 기존 유사도의 형태와 달라지게 됩니다(large ranking loss 발생).

 

3. NEURAL COLLABORATIVE FILTERING

NCF framework 에서의 선형적의 특징을 가지는 행렬분해(MF) 와 비선형적 특징을 가지는 MLP(다층 퍼셉트론) 방식을 제시합니다.

 

3.1 General Framework

신경망 협업 필터링 구조

위의 구조와 같이 multi-layer representation 구조를 협업 필터링에 적용합니다.

 

가장 아래의 layer에 input은 user와 Item의 feature vector로 구성됩니다.

input은 context-based, content-based, neigbor-based 모델링에 따라 customize할 수 있습니다.

 

협업필터링을 위해 input 데이터는 순수하게 binary값을 가지는 원핫인코딩을 통해 변환할 수 있었고 이는 multi-layer 구조가 cold-start 문제를 현재의 user, item의 content feature을 사용하여 쉽게 해결할 수 있다는 걸 알 수 있습니다.

 

input layer 위의 embedding layer를 통해 input 데이터는 latent factor model의 context 안의 latent vector가 됩니다.

 

마지막 layer는 ^yui의 예측 점수를 출력하고 앞서 기술한 pointwise loss 방법을 통해 ^yui와 yui의 오차를 최소화하게 훈련하게 됩니다.

(물론 다른 방법으로 Bayesian Personailzed Ranking, margin-based loss와 같은 pairwise 방법을 사용할 수 있습니다.)

 

3.1.1 Learning NCF

 

모델을 훈련하기 위해 regression에서 사용하는 squared loss 을 그대로 사용합니다.

예측값은 binary 값을 가지는데 probabilistic function을 사용하여 확률적 정보를 확인할 수 있습니다.

likelihood(우도) function은 binary cross-entropy loss 식과 같습니다.

 

3.2 Generalized Matrix Factorization (GMF)

 

원핫인코딩 덕분에 input layer의 user,item ID를 latent vector로 보이는 embedding vector를 얻을 수 있습니다.

여기서는 신경망 협업 필터링 첫 layer의 mapping function을 아래와 같이 정의합니다.

mapping function

⊙ :  the element-wise product of vectors.(각 행렬의 원소끼리만 곱한 것)

 

aout : activation function

h : outlput layer의 edge weights

 

만약 aout에 대해 항등함수를 사용하고 h가 1의 균일 벡터가 되게 한다면 MF 모델을 복구할 수 있습니다.

 

앞서말한 벡터의 균일 제약 조건 없이 데이터에서 h를 학습하도록 허용하면 latent dimension(잠재 차원)의 다양한 중요도를 허용하는 MF의 변형이 생성됩니다.

그리고 aout에 대해 비선형 함수를 사용한다면 선형 MF 모델보다 성능이 좋은 비선형 MF모델을 설정할 수 있습니다.

 

여기서의 GMF는 sigmoid function을 activation function으로 사용하며 weights를 log loss(binary cross-entropy loss)를 사용한 것으로 규정합니다.

 

3.3 Multi-Layer Perceptron (MLP)

 

NCF가 두개의 방법의 모델을 적용한 이래로, 두가지의 방법은 user,item의 feature를 단순 결합하는 방법을 사용하였습니다.

그러나, 심플하게 vector를 결합하는 방식은 모든 user,item latent feature의 interaction을 계산하기에 적합하지 않습니다.

 

여기서는 스탠다드한 MLP의 hidden layer를 사용하여 벡터를 결합하여 해결할 수 있다고 생각합니다. 이를 통해 고정된 element-wise product 방식을 사용하는 GMF 모델보다 pu,qi 간의 상호작용을 학습하기 위한 유연성과 비선형성을 부여합니다. 

MLP 모델 수식

W : weight matrix

b : bais vector

ax : activation function for x-th layer

 

MLP layer의 활성화 함수는 sigmoid, tanh, ReLU 등 자유롭게 사용할 수 있습니다.

 

3.4 Fusion of GMF and MLP

 

위에서 latent feature interation을 모델링하기 위해 선형 커널을 적용하는 GMF와 데이터에서 interaction function을 학습하기 위해 비선형 커널을 사용하는 MLP. 이 2가지의 NCF 개체를 개발하였습니다.


1) 간단한 해결책은 GMF, MLP가 같은 embedding layer를 사용하고 interaction function을 결합하는 것입니다.

GMF,MLP 결합식

하지만 이 결합방식에는 두 모델의 최적 embedding size가 다른 경우에는 최적의 효과를 낼 수 없다는 한계가 있습니다.

 

2) 두번째 해결책은 결합 모델의 유연성을 더하기 위해 GMF, MLP 모델은 각각의 embedding으로 학습을 하되 last hidden layer를 결합하는 것입니다.

2)번 방식 구조화
2)번 방식 결합식

pu^G : user embedding of GMF

pu^M : uesr embedding of MLP

qi^G : item embedding of GMF

qi^M : item embedding of MLP

 

이 방법을 통해 생성된 모델을 NeuMF 라고 명명합니다.

 

 

4. EXPERIMENTS

3가지의 질문에 답하기 위한 실험을 실행합니다.

  1. 암시적 협업 필터링 방법 중에 SOTA를 달성할수 있을까?
  2. 적용한 negative sampling을 사용한 log loss 최적화 방법은 얼마나 성과적일까?
  3. user-item interaction을 확인하는 데에 더 많은 layer가 도움이 되는가?

4.1 Experimental Settings

  • Dataset : MovieLens, Pinterest 데이터셋사용
  • Baselines 
    • ItemPop : 개인화 방법이 아님. item이 인기도에 따라 순위가 매겨집니다.
    • ItemKNN : item-based 협업 필터링의 스탠다드.
    • BPR : MF모델을 pairwise ranking loss를 사용하여 최적화한 방법
    • eALS : item 추천 모델 중 SOTA를 달성하고 있는 MF 모델
  • Parameter Settings
    • optimizing the model with mini-batch Adam
    • e batch size of [128, 256, 512, 1024]
    • the learning rate of [0.0001 ,0.0005, 0.001, 0.005]

4.2 Performance Comparison

실험 결과

4.3 Log Loss with Negative Sampling

1) iteration이 많아질수록 성능이 많이 좋아졌다.

2) NCF 방법들 중에 NeuMF > MLP > GMF 순으로 성능이 좋았다. Figure6

3) pairwise objective functions 방법과 다르게 pointwise log loss의 이점은 negative instances에 대한 sampling 비율을 조절할 수 있다는 것이다.Figure 7

'채우기 > 추천 시스템' 카테고리의 다른 글

Factorization Machines(FM)  (0) 2022.10.11
추천시스템 - Matrix Factorization(MF)  (0) 2022.09.08
추천 시스템 - 협업 필터링  (0) 2022.09.06
추천 시스템 - 시퀀셜  (0) 2022.07.14
추천 시스템 기초  (0) 2022.07.13