Neural Collaborative Filtering

numver_se·2021년 9월 29일
0

Abstract

collaborative filtering을 모델링하기 위해서 user와 item의 상호작용이 필요하며, user-item 공간의 latent feature들의 내적곱을 통해 두 관계를 표현하고 추천시스템에서 널리 사용되는 MF에 의존한다. 그러나 MF는 linear 방식으로, user와 item의 관계를 학습함에 있어 한계를 가진다.
비선형적인 특징을 모델에서 학습하기 위해, user과 item 간의 interaction을 학습할 수 있는 ㅂ방법론을 제안한다. 다시말해, 뉴럴넷 기반의 Neural Collaborative Filtering(NCF)를 사용하여 실제 데이터 셋에서 좋은 성능을 보인 일반화된 MF 모델을 제안한다.

Preliminaries

neural collaborative filtering의 배경 설명은 다음과 같다.

Leaning from implicit data

user과 item의 상호작용이 있을 경우 yu,i=1y_{u,i} = 1로 설정하고, 없으면 yu,i=0y_{u,i} = 0으로 설정한다. 상호작용은 user가 item을 열람했거나 구매했거나 등의 암시적인 정보를 의미하며, 이는 명시적인 선호를 의미하지는 않는다. 다시말해, yu,iy_{u,i}의 값은 user가 item을 선호한다거나 비선호한다는 의미가 아니다. u따라서 추천은 yu,iy_{u,i}가 1이 될 확률, 다시말해 user와 item의 관련 정도를 예측하는 문제라고 할 수 있다.

θ를 학습시키기 위한 방법은 크게 두가지가 존재한다.

  • Pointwise learning(L1L_1)
  • Pairwise learning(L2L_2)

pointwise learning

regression 문제에 활용되고 실제값과 예측값의 차이를 최소화

pairwise learning

관측값이 관측되지 않은 값보다는 큰 값을 갖도록 하여 두 값의 마진을 최대화

본 논문에서 제안하는 Neural Collborative Filtering는 뉴럴 넷 기반이므로 두가지 방법을 모두 사용함

Matrix factorization


MF는 ranking loss가 커지는 결과를 초래하기에, 단순히 fixed inner product를 사용하면 복잡한 user와 item 간의 상호작용을 latent space에서 측정할 때 문제가 발생한다.

Neural Collborative Filtering

general framework

GMF는 MF와 크게 다르지 않으나 내적이 아닌 element-wise product가 이뤄지고, edge weights와 활성화함수를 사용했다는 점에서 차이를 갖는다. 다시말해, GMF는 user와 item의 latent feature에 element-wise product를 한 후, Linear layer와 활성화 함수를 거쳐 기존의 MF보다 비선형성이 강해져 더욱 다양한 관계를 표현할 수 있다.

NCF 모델에서는 2가지 벡터(user, item)를 입력으로 받아 두 벡터를 concat하여 입력 벡터를 구성한다. user와 item간의 복잡한 상호작용 관계를 학습하기 위해 hidden layer를 여러개를 거쳐 비선형적인 딥러닝의 장점이 모델에 반영된다.

NeuMF는 GMF와 MLP 기반의 MF의 output을 서로 concat 한 후, Linear Layer와 활성화 함수를 거치는 방식으로 학습이 진행된다. 이 결과로 MF의 선형성과 DNN의 비선형성을 결합함으로써 유저와 아이템의 관계를 더욱 풍부하게 표현할 수 있다.

Experiments

Performance Comparison


각 성능 지표의 Top-K를 의미하며, 이 때에도 NeuMF가 가장 좋은 성능을 보입니다.

Log Loss with Negative Sampling


Iteration에 따른 각 history와 negative sampling ratio에 대한 성능 평가표입니다.

Is Deep Learning Helpful?


해당 성능 평가표는 마지막 hidden layer의 capacity인 factor와 layer-depth에 따른 각 성능 지표를 보여주며, layer가 깊어질수록 높은 성능을 보이고 있음을 알 수 있습니다.

0개의 댓글