[논문 리뷰] Neural Collaborative Filtering

권유진·2022년 6월 26일
0

논문 리뷰

목록 보기
12/17
post-custom-banner

Abstract

  • 최근에 딥러닝이 음성인식, 컴퓨터비전, 자연어처리에서 엄청난 성공을 이루었다.
    • 하지만 추천시스템에서는 상대적으로 덜 적용되었다.
    • 이 연구에서는 암시적 피드백 기반의 협업 필터링 추천시스템의 주요 문제를 해결하기위해 신경망 기반의 기술을 발전시킬 것이다.
  • 최근에는 딥러닝을 언어 정보, 악기 정보 등 보조 정보를 주는 모델로 사용하였다.
    • 유저와 아이템 특성의 상호 작용을 나타내는 행렬을 분해하고 잠재 요소를 내적한다.
  • 내적을 신경망 구조로 대체
    • 데이터로 부터 임의의 수식을 학습
    • NCF라고 부름
  • NCF는 일반적이고 행렬 분해를 표현하고 일반화 할 수 있다.
    • NCF에 비선형성을 주기 위해 유저와 아이템 간 상호작용 수식을 학습하기 위해 MLP 영향력을 제안한다.
  • NCF 구조를 통해 SOTA 달성

1. Introduction

  • 정보 폭발 속, 추천 시스템은 정보 과부화를 완화시키는 기본적인 역할을 했다.
    • E-commerce, 온라인 뉴스, SNS 등 여러 온라인 서비스에 의해 채택되었다.
  • 과거 상호작용을 기반으로 아이템에 대한 각 유저의 선호도를 모델링하는 것이 핵심이다.(CF; 협업 필터링)
    • 다양한 협업 필터링 기술 중, 행렬 분해(MF)는 가장 유명하다.
      • 유저와 아이템의 공유하는 잠재 공간을 투영한다.
      • 유저 또는 아이템을 나타내는 잠재 특성 벡터를 사용
      • 잠재 벡터의 내적으로 유저의 아이템에 관한 상호작용이 모델링 됨
  • Netflix Prize로 유명해진 MF는 defacto 접근법이 되었다.
  • 많은 연구는 MF를 강화하기 위해 많은 노력을 들였다.
    • 이웃 기반 모델을 통합, 아이템 내용의 주제와 조합, 일반적인 모델 특성으로 분해를 확장 등
  • MF의 효과성에도 불구하고 내적이라는 상호작용 함수의 단순한 선택으로인해 성능이 방해받는다.
    • 예를 들어, 명시적 피드백에서 점수 예측을 할 때 상호작용 함수에서 유저 또는 아이템 편향을 포함하면 성능이 향상된다.
  • 단순히 잠재 특성을 선형으로 곱하는 내적은 복잡한 유저들의 상호작용 데이터 구조를 포착하기에는 너무 복잡하다.
  • 상호작용을 학습하기 위해 직접 만든 특성을 사용하기 보다는 딥러닝을 사용한다.
  • 딥러닝은 어떠한 연속 수식이든 근사할 수 있다고 증명되었고 많은 분야에서 유용하게 사용된다.
  • 하지만 추천시스템에서는 MF의 연구는 방대하게 이뤄지는 반면에 딥러닝의 연구는 상대적으로 적게 이루어졌다.
  • 최근 딥러닝을 통해 보조 정보를 얻는 것은 활용한 추천 시스템은 유먕한 결과를 보였다.
  • 핵심 협업 필터링 효과를 모델링하는 것과 관련하여, 그들은 여전히 MF에 의지했다.
  • 이 연구는 협업 필터링의 모델링 접근법으로 딥러닝을 사용함으로써 앞에서 말한 문제를 해결했다.
  • 간접적으로 사용자의 선호를 반영한 암시적 피드백에 집중한다.
    • (비디오 시청, 물건 거래, 아이템 클릭)
  • 명시적 피드백(평가, 리뷰)과 비교해서 암시적 피드백은 자동으로 추적되어 더 쉽게 내용을 얻을 수 있다.
  • 하지만 유저의 만족도는 관측되지 않고 부정적인 피드백의 부족으로 인해 활용하기에는 어려움이 있다.
  1. 유저와 아이템의 잠재 특성을 모델링하기 위해 신경망 구조를 사용한다. - 협업 필터링 기반 신경망 구조 NCF 고안
  2. MLP를 활용해 높은 수준의 비선형성 부여
  3. 2개의 데이터로 NCF의 효과성과 협업 필터링에서 딥러닝의 유망함 설명

2. PRELIMINARIES

  • 암시적 피드백의 협업 필터링의 문제와 해결법을 공식화
  • MF모델 요약, 내적으로 인한 한계에 주목

2.1 Learning from Implicit Data

  • M, N: user, item의 수
  • Y: 암시적 피드백으로 얻은 user-item 상호작용 행렬
yui={1,  ifinteractionisobserved;0,  otherwise.y_{ui} = \begin{cases} 1, \;if interaction is observed;\\ 0, \;otherwise. \end{cases}
  • y가 1이라고 해서 유저가 해당 아이템을 좋아하는 것은 아니다.
  • 0이라고 해서 싫어하는 것이 아니다. (모르는 것일 수도 있다.)
    • 명시적 피드백으로부터 학습하는 것의 어려움이다.(유저 선호에 대한 noisy signal)
    • 유저의 흥미는 관측이 되지만 부정적 피드백의 부족으로 인해 관찰되지 않는 항목이 있다.
  • 암시적 피드백의 추천 문제는 Y에서 관찰되지 않는 항목의 점수를 추정하는 문제로 공식화된다.
  • 모델 기반 접근법은 데이터가 기본 모델로부터 발생한다고 가정한다.
    • y^ui=f(u,iΘ)\hat y_{ui}=f(u,i|\Theta)를 학습함으로써 추상화
      • y^ui\hat y_{ui}: 예측 점수값, Θ\Theta: 모델 파라미터, ff: 점수 예측 수식(상호작용함수)
    • 파라미터 Θ\Theta를 추정하기위해, 목적함수를 최적화하는 머신러닝 패러다임을 따른다.
    • 목적함수로 pointwise loss와 pairwise loss가 자주 사용된다.
  • pointwise learning은 명시적 피드백의 확장선으로 squared loss를 최소화하는 회귀 구조 방법으로 학습된다.
    • 부정적 데이터의 부재를 다루기 위해 관측되지 않은 항목을 부정적인 피드백으로 다루거나 관측되지 않은 항목 중 일부를 sampling하여 부정적인 데이터로 다룬다.
  • pairwise 학습에서는 관측된 항목은 관측되지 않는 항목보다 높게 점수가 부여되도록한다.
    • 예측값과 실제값 사이의 loss를 최소화하는 대신에 관측된 항목의 예측값과 관측되지 않은 항목의 예측값 사이의 차이를 최대화한다.
  • NCF는 상호작용 함수 ff를 파라미터화한다.
    • pointwise와 pairwise learning 모두 시행

2.2 Matrix Factorization

  • MF는 잠재 특성의 실제 값이 부여된 벡터의 각 유저와 아이템과 연관되었다.
  • pup_u, qiq_i: 유저 uu와 아이템 ii의 잠재 벡터를 의미
  • MF는 pup_uqiq_i의 내적으로 상호작용 yuiy_{ui}을 구함
y^ui=f(u,ipu,qi)=puTqi=Σk=1Kpukqik\hat y_{ui}=f(u,i|p_u, q_i)=p_u^T q_i = \Sigma_{k=1}^K p_{uk}q_{ik}
  • KK: 잠재 공간의 차원
    • MF모델은 user와 item의 잠재 요소의 상호작용을 사용한다.
    • 각 잠재 공간은 독립적이며 동일한 가중치로 선형결합되었다.
    • MF는 잠재 요소의 선형 모델로 간주됨
  • [Figure1]은 내적 수식이 어떻게 MF의 표현성을 제한하는지를 나타낸다.
    • 유저와 아이템을 동일한 잠재 공간으로 나타낸다.
      • 두 유저 사이의 유사성은 내적 또는 잠재 벡터 사이의 각도를 활용한 코사인 거리고 표현될 수 있다.
    • 일반성을 잃지않고 Jaccard coefficient를 근거로 사용한다.(MF가 복구해야 하는 두 사용자의 진실 유사성)
  • 예시: 다시 봐라
  • 위 예시는 저차원 잠재 벡터에서 복잡한 유저-아이템 상호작용을 추정하는 단순하고 고정된 내적을 사용함으로써 발생하는 MF의 한계를 보여준다.
    • 커다란 잠재 벡터 KK를 사용함으로써 해결 가능
      • 모델의 일반화가 어렵(오버피팅, 특히 sparse한 데이터에서)
    • 딥러닝으로 상호작용 함수를 학습하는 것으로 해당 한계 해결

3. NEURAL COLLABORATIVE FILTERING

  • 암시적 데이터의 이진 특성을 강조하는 확률적 모델과 함께 NCF를 학습시키는 방법인 NCF 구조에 대해 설명
  • MF가 NCF로 일반화될 수 있음을 설명
  • 협업 필터링에서 딥러닝을 사용하기 위해 유저-아이템 상호작용을 학습하기 위해 MLP를 사용하는 NCF를 인스턴스화한다.
  • NCF 구조 기반의 MF와 MLP를 앙상블한 새로운 신경망 행렬 문해 모델을 제안
    • 유저-아이템 잠재 구조를 모델링하기위해 MF의 선형성과 강함, MLP의 비선형성을 단일화

3.1 General Framework

  • 협업필터링에서 신경망을 다루기위해 유저-아이템 상호작용(yuiy_{ui})을 모델링하기위해 MLP 채택
    • 한 layer의 output이 다른 층의 input으로 사용
  • bottom input layer는 두 개의 feature vector 포함
    • vuUv_u^U, viIv_i^I : 유저(u), 아이템(i)을 설명하는 feature
    • context-aware, 내용 기반, 이웃 기반 등 광범위한 유저, 아이템 모델링 방법에 사용되도록 지정 가능
  • 협업 필터링에 집중하여 user와 item의 정체성만을 input feature로 사용
    • 원 핫 인코딩을 사용한 sparse한 이진 벡터로 변환
      • 원 핫 인코딩을 함으로써 cold start 문제 해결
  • input layer 다음에는 embedding layer 존재
    • sparse한 표현을 dense하게 바꿔주는 FC Layer
    • user 또는 item의 embedding 표현은 잠재 벡터로 볼 수 있다.
  • 각 embedding 벡터는 MLP 구조에 주어진다.
    • 우리는 신경망 협업 필터링 계층이라고 부른다.
    • 잠재 벡터를 예측 점수로 매핑
    • 신경망 CF의 각 계층은 user-item 상호작용의 특정 잠재 구조를 찾기위해 customized된다.
  • 마지막 은닉 계층 XX의 차원은 모델의 용량을 결정한다.
  • 마지막 output layer는 예측된 점수 y^ui\hat y_{ui}이다.
    • pointwise loss를 최소화하는 방향으로 학습 (예측 값과 실제 값의 차이)
    • pairwise 방법으로도 학습 가능
      - Bayesian Personalized Ranking, margin-based loss 사용
      - 해당 논문에서는 신경망에 집중하기 때문에 pairwise learning은 미래에 다루겠다.
      y^ui=f(PT,vuU,QT,viIP,Q,Θf)\hat y_{ui} = f(P^T, v_u^U, Q^T, v_i^I| P,Q,\Theta^f)
  • PP, QQ: 유저, 아이템의 잠재 요인 행렬
  • Θf\Theta_f: 상호작용 함수 ff의 모델 파라미터
    • ff는 MLP로부터 정의된다.
      f(PT,vuU,QT,viI)=ϕout(ϕX(ϕ2(ϕ1(PT,vuU,QT,viI))))f(P^T, v_u^U, Q^T, v_i^I) = \phi_{out}(\phi_X(\dots \phi_2(\phi_1(P^T, v_u^U, Q^T, v_i^I))))
  • ϕ\phi: layer
3.1.1 Learning NCF
  • 모델 파라미터 학습을 위해, pointwise 방법은 아래 squared loss를 갖는 회귀 문제로 수행된다.
    Lsqr=Σ(u,i)YYwui(yuiy^ui)2L_{sqr} = \Sigma_{(u,i) \in Y \cup Y^-} w_{ui}(y_{ui} - \hat y_{ui})^2
  • YY: 관측된 상호작용, YY^-: 부정적인 인스턴스(관측되지 않은 항목 모두 또는 일부)
  • wuiw_{ui}: 하이퍼파라미터
  • 관측된 항목은 정규분포에서 발생한다고 가정하고 loss 계산하는데 이는 암시적 데이터와 어울리지 않는다.
    • target 값이 0 또는 1로 이진화되어있기 때문
  • 암시적 피드백의 이진 특성을 고려하여 pointwise NCF를 학습하기위해 아래 방법 도입
    • 암시적 피드백을 단일 클래스 문제로 생각
      • 1: item i와 관련, 0: 관련 x
    • y^ui\hat y_{ui}: ii가 얼마나 uu와 관련 있는지를 나타냄
    • NCF에 확률적 설명을 주기위해, y^ui\hat y_{ui}를 [0,1] 범위로 제약
      • ϕout\phi_{out}의 활성화 함수로 로지스틱이나 probit 함수 사용
p(Y,YP,Q,Θf)=Φ(u,i)Yy^uiΦ(u,j)Y(1y^uj)p(Y, Y^-|P,Q,\Theta_f) = \Phi_{(u,i) \in Y} \hat y_{ui} \Phi_{(u,j)\in Y^-} (1-\hat y_{uj})
  • 위는 우도 함수, negative log 우도 사용 하면 아래와 같다.
L=Σ(u,i)Ylogy^uiΣ(u,i)Ylog(1y^uj)=Σ(u,i)Yyuilogy^ui+Σ(u,i)Y(1yui)log(1y^uj)L = - \Sigma_{(u,i) \in Y} \log{\hat y_{ui}} - \Sigma_{(u,i) \in Y} \log{(1-\hat y_{uj})}\\ = - \Sigma_{(u,i) \in Y} y_{ui}\log{\hat y_{ui}} + \Sigma_{(u,i) \in Y} (1-y_{ui})\log{(1-\hat y_{uj})}
  • SGD를 사용하여 NCF의 목적함수 최소화 가능
    • 이진 크로스 엔트로피 함수(로그 로스)와 동일
    • NCF에 확률적 방법을 사용함으로써 암시적 피드백에 이진 분류 문제를 활용한다.
      • 분류 log loss가 여태까지는 추천시스템에서 잘 사용되지 않았다.
  • 각 iteration마다 관측되지 않은 상호작용에서 균등하게 sampling하여 negative instance(YY^-)로 사용
    • 관측된 상호작용 수의 샘플링 비율 고정
  • 균등하지 않은 샘플링 전략은 성능을 향상시킨다.

3.2 Generalized Matrix Factorization(GMF)

  • MF가 NCF 구조의 특별한 케이스로 해석될 수 있다.
  • input layer에서 사용자(또는 아이템) ID의 원핫인코딩으로 인해 임베딩 벡터는 잠재 벡터로 생각할 수 있다.
    pu=PTvuU,qi=QTviIp_u=P^Tv_u^U, q_i=Q^Tv_i^I
  • pup_u, qiq_i: 사용자, 아이템의 잠재 벡터
  • 첫번째 CF layer의 매핑 함수는 다음과 같이 element-wise 곱의 벡터로 여긴다.
    ϕ1(pu,qi)=puqi\phi_1 (p_u, q_i) = p_u \odot q_i
  • 그 후, output layer에 벡터를 넣는다.
    y^ui=aout(hT(puqi))\hat y_{ui} = a_{out}(h^T(p_u \odot q_i))
  • aouta_{out}: 활성화 함수, hh: output layer의 edge weight
    • aouta_{out}이 identity function, hh가 1로 이뤄진 uniform vector라면, MF 모델과 동일
  • NCF 구조 아래에서 MF는 쉽게 일반화, 확장된다.
    • 만약 hh를 uniform 제약조건 없이 학습에 사용한다면 MF에 다양한 결과를 갖는다.
      • 잠재 차원의 중요성의 다양화를 허용
  • 논문에서는 NCF에서 일반화된 버전의 MF를 구합니다.
    • sigmoid 함수를 aouta_{out}으로 사용하고 hh를 log loss를 통해 학습
    • 이를 GMF라고 부른다!

3.3 Multi-Layer Perceptron(MLP)

  • NCF가 유저와 아이템의 길, 2가지 길을 채택했기 때문에 직관적으로 concat하는 것이 맞다.
    • 해당 구조는 멀티모달 딥러닝 구조로 넓게 채택되어 있다.
    • 하지만 concat은 유저와 아이템 사이의 잠재 특성 사이의 상호작용을 설명하기에는 충분하지 않다.
      • 이 문제를 해결하기 위해 concat된 벡터에 hidden layer 하나를 추가한다.(상호작용 학습을 위해)
    • element-wise 곱만을 사용하는 GMF 방식보다 pup_uqiq_i간의 상호 작용을 학습하기 위해 모델에 유연성과 비선형성 부여
z1=ϕ1(pu,qi)=[puqi]ϕ2(z1)=a2(W2Tz1+b2)ϕL(zL1)=aL(WLTzL1+bL)y^ui=σ(hTϕL(zL1))z_1 = \phi_1 (p_u, q_i) = \begin{bmatrix} p_u\\q_i \end{bmatrix}\\ \phi_2(z_1) = a_2 (W_2^T z_1 + b_2)\\ \dots\dots\\ \phi_L(z_{L-1}) = a_L(W_L^T z_{L-1} + b_L)\\ \hat y_{ui} = \sigma (h^T \phi_L(z_{L-1}))
  • WxW_x, bxb_x: 가중치, 편향 행렬, axa_x: 활성화 함수
  • 이 논문의 실험에서는 ReLU를 사용했을 때 성능이 가장 높았다.
  • 아래의 layer일수록 노드 수가 많고 그 다음 layer로 갈수록 노드 수가 감소(타워 패턴)
    • 높은 계층에서 더 적은 수의 뉴런을 사용할수록 더욱 추상적인 표현 학습
    • 해당 실험에서는 다음 레이어로 갈수록 1/2개의 뉴런 사용

3.4 Fusion of GMF and MLP

  • 지금까지는 NCF를 인스턴스화하여 GMF와 MLP를 만드는 과정을 살펴봤다.
  • NCF 구조에서 GMF와 MLP가 어떻게 융합할까?
    • GMF와 MLP가 같은 embedding layer를 공유하고 그들의 상호작용 수식의 output을 조합한다.
      • NTN(Neural Tensor Network)와 유사
      • MLP의 hidden layer가 1개일 경우 아래와 같음
        y^ui=σ(hTa(puqi+W[puqi]+b))\hat y_{ui} = \sigma(h^Ta(p_u \odot q_i + W \begin{bmatrix}p_u\\q_i \end{bmatrix} +b))
      • 하지만 같은 embedding layer을 공유하면 융합 모델의 성능을 제한한다.
        • 두 모델이 같은 embedding size를 사용하기 때문
    • 서로 다른 embedding layer를 갖고 마지막 hidden layer을 concat
      ϕGMF=puGqiGϕMLP=aL(WLT(aL1(a2(W2T[puqi]+b2)))+bL)y^ui=σ(hT[ϕGMFϕMLP])\phi^{GMF}=p_u^G \odot q_i^G\\ \phi^{MLP}=a_L(W_L^T(a_{L-1}(\dots a_2(W_2^T \begin{bmatrix}p_u\\q_i \end{bmatrix} + b_2)))+b_L)\\ \hat y_{ui} = \sigma(h^T\begin{bmatrix} \phi^{GMF} \\ \phi^{MLP} \end{bmatrix})
      • puGp_u^GpuMp_u^M은 GMF와 MLP의 유저 임베딩
      • qiGq_i^GqiMq_i^M은 GMF와 MLP의 아이템 임베딩
      • 활성화 함수로 ReLU사용
      • Neural Matrix Factorization(NeuMF)라고 부름
      • 오차역전파법으로 학습
3.4.1 Pre-training
  • 목적함수가 볼록하지 않기 때문에 지역 최소값만 찾는다.
  • 초기화 기법이 딥러닝에서 전환률과 성능에 중요한 역할을 한다.
  • NeuMF는 GMF와 MLP의 앙상블이기 때문에 GMF, MLP의 사전학습 모델을 사용해서 가중치 초기화
    • 먼저 GMF와 MLP를 random으로 초기화하고 학습한다.
    • 해당 파라미터를 NeuMF의 파라미터로 사용
    • 유일하게 output layer의 가중치만 조절하면 된다. (가중치 concat)
      h[αhGMF(1α)hMLP]h \leftarrow \begin{bmatrix} \alpha h^{GMF}\\(1-\alpha)h^{MLP} \end{bmatrix}
      • hGMF,hMLPh^{GMF}, h^{MLP}: 사전 훈련된 GMF와 MLP의 hh 벡터
      • alphaalpha: 하이퍼 파라미터
    • Adam으로 GMF와 MLP를 사전 학습하고 SGD로 NeuMF 학습
      • NeuMF는 Momentum-based method를 사용하기에 부적합하기 때문

4. EXPERIMENTS

  1. NCF 방법이 암시적 CF 방법 중 SOTA인가?
  2. 제안한 최적화 구조(negative sampling을 사용한 log loss)가 추천 시스템에 잘 작동할 것인가?
  3. 은닉층이 깊을 수록 유저와 아이템 상호작용을 학습하는 것에 도움이 될까?

4.1 Experimental Settings

  • MovieLens, Pinterest 사용
  • leave-one-out 평가 방법 사용
    • 유저별 마지막 상호 작용 데이터 및 상호 작용이 없는 상품 중 100개를 표본 추출한 것을 test 데이터로 사용
    • 나머지는 학습 데이터로 사용
  • HR, NDCG (top-10) 사용
profile
데이터사이언스를 공부하는 권유진입니다.
post-custom-banner

0개의 댓글