[Paper Review] Neural Collaborative Filtering 논문 리뷰

젠뉴·2022년 11월 17일
0

Paper Review

목록 보기
1/1
post-thumbnail

Abstract

  • neural networks에 기반을 두고 recommendation의 주요 문제(collaborative filtering의 implicit feedback)를 다룰 예정이다.
  • 최근 연구들에도 Deep Learning을 추천 시스템에 적용한 사례가 있었지만 기본적으로 text나 acoustic features of music과 같이 보조 information 용도로 사용하였는데, 추천 시스템의 핵심인 user와 item 간의 interaction에 대해서 latent features(잠재요소)를 위해 여전히 Matrix Factorization에 의존하였다.
  • 본 논문에서는 inner product(내적)을 neural architechture로 대체하여 임의의 기능을 학습할 수 있는 Neural Collaborative Filtering을 제안한다. 일반적이며 matrix factorization을 표현하고 일반화할 수 있다. Multi layer perceptron을 통해 user와 item의 interaction function을 학습하며 유연한 방식으로 user와 item의 관계를 표현한다.

📃 Matrix Factorization(MF)은 추천시스템에서 보편적으로 사용되는 방식이다. User와 Item의 interaction(상호작용)을 학습하는 방법으로 latent feature들의 inner product를 통해 두 관계를 표현한다. MF는 linear 방식에 기반하기에 한계가 있다.(Introduction에서 언급) 따라서 이를 발전시킬 수 있는 neural network에 기반한 NCF를 제안한 것이다.

Introduction

  • personalized recommender system의 핵심은 과거 상호작용(e.g 순위매김, 클릭 등)으로 부터 유저의 선호도를 모델링하는 것이다. (aka. collaborative filtering)
  • collaborative filtering의 기술들 중 Matrix Factorization은 가장 유명한 방법들 중 하나로, 유저와 아이템을 shared latent space로 project하는 방식이다.
  • 그러나 MF는 단순한 interaction function의 선택 (= inner product)으로 인해 성능이 저해되는 것으로 많이 알려져있다.
    - inner product : latent features를 선형적으로 곱하여 결합하는 방식으로, 복잡한 구조의 유저 상호작용 데이터를 나타내기 충분하지않다.
  • implicit feedback - 자동적으로 추적되기에 수집하기 훨씬 쉽지만, 활용하기에는 훨신 어렵다는 단점이 있다. (user의 만족도는 관찰되는게 아니며 부정적인 피드백은 자연적으로 부족하기 때문)

📃 앞서 언급했던 것 처럼, Collaborative filtering에서 자주 쓰이는 Matrix Factorization(MF) 방식은 linear하기 때문에 복잡한 user interaction data의 구조를 나타내기에 충분하지 않다. 따라서 본 연구는 DNN(=non linear)을 활용하여 어떻게 noisy한 implicit feedback의 signal을 모델링하는지에 대해 설명한다.

Preliminaries

Learning from Implicit Data

yuiy_{ui}가 유저 uu와 아이템 ii의 상호작용을 나타낸다고 하자.

  • yuiy_{ui}값이 1이면 interaction이 있음을 의미하지만 이것이 유저가 아이템을 좋아한다(선호관계)는 아니다. 마찬가지로 값이 0이라도, user가 item을 비선호하는 것이 아니라 단순히 interaction이 발생하지 않았다는 것을 의미한다.

  • 이처럼 사용자의 선호도에 대한 noise 신호만 제공하기 때문에 implicit data로부터 학습하는 데 어려움이 있다.

  • 이와 같은 문제는 다음과 같이 공식화 된다.

  • 일반적으로 parameter Θ를 추정하기 위해 objective function(목적함수)를 최적화하는데, 아래 두가지 경우가 대표적이다.

    • Pointwise learning (L1)
      : loss function에서 한번에 하나의 아이템만 고려한다. Regression 문제에 많이 활용되며 실제값과 예측값의 차이를 최소화하는 방식이다.
    • Pairwise learning (L2)
      : loss function에서 한번에 두개의 아이템을 고려한다. 관측값이 관측되지않은 값보다 더 큰 값을 갖도록 하여 두 값의 margin을 최대화하는 방식이다.
  • NCF는 DNN을 사용함으로써 자연스럽게 L1과 L2를 모두 사용한다.

Matrix Factorization

[source : data-artisans.com]

  • MF는 Y를 저차원의 행렬 2개 (P,QP, Q)로 분해하는 것으로 반복적인 내적(inner product)을 통해 yuiy_{ui}를 예측할 수 있다.

    • 그러나 MF의 linear space는 유저와 아이템간의 복잡한 관계를 저차원의 단순한 공간에 표현하려고 한다는 한계가 있다.
    • (a)의 user-item matrix를 통해 user간의 유사도를 나타낼 수 있는데, 우선 u1u_1에서 u3u_3까지의 유사도 관계를 나타내면 다음과 같다.

      이는 유저 2와 3이 가장 비슷하고 유저 1과 3이 가장 유사하지 않다는 것을 의미한다. 이를 (b)의 user latent space에 나타내면 해당 그림과 같다. 이때 linear space의 한계는 새로운 유저 u4u_4를 고려할 때 나타난다. u4u_4까지 고려했을 때의 유사도는 다음과 같다.

      이는 유저 4와 1의 유사도가 가장 높다는 것을 의미하는데, (b)에서 알 수 있듯이 4와 1을 가장 가깝게 함과 동시에 4와 2를 가장 멀게하는 p4p_4 vector를 위치시킬 수 없다는 것이다.
  • 따라서 이러한 문제를 해결하기위해 저자는 DNN을 활용한 방식을 제안한다.

📃 Matrix Factorization은 linear한 방식으로 user와 item간의 복잡한 관계를 저차원의 단순한 공간에 표현하는 데서 한계가 생긴다. 또한 linear space는 고정된(fixed) 특징이 있기 때문에 새로운 관계를 표현하는 데에도 유연하지 못한다. 따라서 저자는 non-linear한 DNN을 활용하여 이 문제를 해결하고자 한다.

Neural Collaborative Filtering

General Framework

  • Input layer : user와 item의 one-hot encoding이 input vector로 사용도니다.

  • Embedding Layer : input 단계의 sparse 벡터를 dense 벡터로 맵핑하는 단계이다. fully connected layer를 사용하여 가중치 행렬 P를 얻게된다. 예를들어 user dense vector를 나타내는 P 행렬의 경우, row는 각 user를 표현하는 저차원의 dense 벡터가 되고 이를 user latent vector로 사용하게 된다.

  • Neural CF Layers : user latent vector와 item latent vector를 concatenation한 벡터를 input으로 받아 Deep Neural Network를 통과하는 단계이다. 각 층을 거치며 인공신경망을 통해 복잡한 비선형의 데이터 관계를 학습할 수 있게 된다.

    • neural cf layers의 각 layer는 user-item interaction의 특정 latent structures를 발견하도록 customized 되어있다.
  • Output Layer : NCF Layer의 hidden vector를 input으로 받아 predictive score y^ui\widehat{y}_{ui}를 예측하며, Target yuiy_{ui}와의 비교를 통해 학습을 진행한다.

  • NCF 모델의 수식은 위와 같이 나타낼 수 있다. PPQQ는 embedding layer의 matrix를 의미하며 ΘfΘ_f는 interaction function ff의 model parameter를 의미한다. 이때 ff는 multi-layer neural network를 정의되었기 때문에 다시 아래와 같은 공식으로 나타낼 수 있다.

Learning NCF

  • 위와 같은 모델을 학습하기 위해서는 loss function을 정의해야하는데, pointwise 방법의 경우 가우시안 분포(like 정규분포)를 통해 관측값이 나왔음을 가정한다. 그러나 gaussian 분포가 implicit data와 잘 안맞을 수 있는데, 이는 implicit data의 타겟 변수인 yuiy_{ui}binary(1,0)하기 때문이다.
  • 이러한 이진 데이터는 일반적으로 bernouli distribution을 이용하는데 이때 likelihood function은 다음과 같다.

Generalized Matrix actorization (GMF)

  • MF는 NCF Framework의 특수한 경우로 해석될 수 있다. 첫번째 NC Layer의 mapping function 은 아래와 같다.
  • 그런 다음 벡터를 output layer에 project하면 다음과 같다.
  • 여기서 만약 aouta_{out}이 identity function(항등함수)이고, h가 [1,1,1,,] 형태의 uniform vector라면,NCF framework는 MF와 동일하다.
  • GMF는 aouta_{out}hTh^T를 다음과 같이 표현하여 MF를 일반화한 모델이다.

Multi-Layer Perceptron (MLP)

  • 단순히 vector를 concatenation(=GMF)하는 것은 user와 item의 latent features를 고려하지 못하므로 collaborative filtering의 효과를 모델링하기에는 충분하지 않다. 이 문제를 해결하기 위해 표준 MLP를 사용하여 user와 item의 latent features의 interaction을 학습한다.
profile
To be Data Analyst

0개의 댓글