[논문 리뷰] Neural Collaborative Filtering
Abstract
- 최근에 딥러닝이 음성인식, 컴퓨터비전, 자연어처리에서 엄청난 성공을 이루었다.
- 하지만 추천시스템에서는 상대적으로 덜 적용되었다.
- 이 연구에서는 암시적 피드백 기반의 협업 필터링 추천시스템의 주요 문제를 해결하기위해 신경망 기반의 기술을 발전시킬 것이다.
- 최근에는 딥러닝을 언어 정보, 악기 정보 등 보조 정보를 주는 모델로 사용하였다.
- 유저와 아이템 특성의 상호 작용을 나타내는 행렬을 분해하고 잠재 요소를 내적한다.
- 내적을 신경망 구조로 대체
- 데이터로 부터 임의의 수식을 학습
- NCF라고 부름
- NCF는 일반적이고 행렬 분해를 표현하고 일반화 할 수 있다.
- NCF에 비선형성을 주기 위해 유저와 아이템 간 상호작용 수식을 학습하기 위해 MLP 영향력을 제안한다.
- NCF 구조를 통해 SOTA 달성
1. Introduction
- 정보 폭발 속, 추천 시스템은 정보 과부화를 완화시키는 기본적인 역할을 했다.
- E-commerce, 온라인 뉴스, SNS 등 여러 온라인 서비스에 의해 채택되었다.
- 과거 상호작용을 기반으로 아이템에 대한 각 유저의 선호도를 모델링하는 것이 핵심이다.(CF; 협업 필터링)
- 다양한 협업 필터링 기술 중, 행렬 분해(MF)는 가장 유명하다.
- 유저와 아이템의 공유하는 잠재 공간을 투영한다.
- 유저 또는 아이템을 나타내는 잠재 특성 벡터를 사용
- 잠재 벡터의 내적으로 유저의 아이템에 관한 상호작용이 모델링 됨
- Netflix Prize로 유명해진 MF는 defacto 접근법이 되었다.
- 많은 연구는 MF를 강화하기 위해 많은 노력을 들였다.
- 이웃 기반 모델을 통합, 아이템 내용의 주제와 조합, 일반적인 모델 특성으로 분해를 확장 등
- MF의 효과성에도 불구하고 내적이라는 상호작용 함수의 단순한 선택으로인해 성능이 방해받는다.
- 예를 들어, 명시적 피드백에서 점수 예측을 할 때 상호작용 함수에서 유저 또는 아이템 편향을 포함하면 성능이 향상된다.
- 단순히 잠재 특성을 선형으로 곱하는 내적은 복잡한 유저들의 상호작용 데이터 구조를 포착하기에는 너무 복잡하다.
- 상호작용을 학습하기 위해 직접 만든 특성을 사용하기 보다는 딥러닝을 사용한다.
- 딥러닝은 어떠한 연속 수식이든 근사할 수 있다고 증명되었고 많은 분야에서 유용하게 사용된다.
- 하지만 추천시스템에서는 MF의 연구는 방대하게 이뤄지는 반면에 딥러닝의 연구는 상대적으로 적게 이루어졌다.
- 최근 딥러닝을 통해 보조 정보를 얻는 것은 활용한 추천 시스템은 유먕한 결과를 보였다.
- 핵심 협업 필터링 효과를 모델링하는 것과 관련하여, 그들은 여전히 MF에 의지했다.
- 이 연구는 협업 필터링의 모델링 접근법으로 딥러닝을 사용함으로써 앞에서 말한 문제를 해결했다.
- 간접적으로 사용자의 선호를 반영한 암시적 피드백에 집중한다.
- 명시적 피드백(평가, 리뷰)과 비교해서 암시적 피드백은 자동으로 추적되어 더 쉽게 내용을 얻을 수 있다.
- 하지만 유저의 만족도는 관측되지 않고 부정적인 피드백의 부족으로 인해 활용하기에는 어려움이 있다.
- 유저와 아이템의 잠재 특성을 모델링하기 위해 신경망 구조를 사용한다. - 협업 필터링 기반 신경망 구조 NCF 고안
- MLP를 활용해 높은 수준의 비선형성 부여
- 2개의 데이터로 NCF의 효과성과 협업 필터링에서 딥러닝의 유망함 설명
2. PRELIMINARIES
- 암시적 피드백의 협업 필터링의 문제와 해결법을 공식화
- MF모델 요약, 내적으로 인한 한계에 주목
2.1 Learning from Implicit Data
- M, N: user, item의 수
- Y: 암시적 피드백으로 얻은 user-item 상호작용 행렬
yui={1,ifinteractionisobserved;0,otherwise.
- y가 1이라고 해서 유저가 해당 아이템을 좋아하는 것은 아니다.
- 0이라고 해서 싫어하는 것이 아니다. (모르는 것일 수도 있다.)
- 명시적 피드백으로부터 학습하는 것의 어려움이다.(유저 선호에 대한 noisy signal)
- 유저의 흥미는 관측이 되지만 부정적 피드백의 부족으로 인해 관찰되지 않는 항목이 있다.
- 암시적 피드백의 추천 문제는 Y에서 관찰되지 않는 항목의 점수를 추정하는 문제로 공식화된다.
- 모델 기반 접근법은 데이터가 기본 모델로부터 발생한다고 가정한다.
- y^ui=f(u,i∣Θ)를 학습함으로써 추상화
- y^ui: 예측 점수값, Θ: 모델 파라미터, f: 점수 예측 수식(상호작용함수)
- 파라미터 Θ를 추정하기위해, 목적함수를 최적화하는 머신러닝 패러다임을 따른다.
- 목적함수로 pointwise loss와 pairwise loss가 자주 사용된다.
- pointwise learning은 명시적 피드백의 확장선으로 squared loss를 최소화하는 회귀 구조 방법으로 학습된다.
- 부정적 데이터의 부재를 다루기 위해 관측되지 않은 항목을 부정적인 피드백으로 다루거나 관측되지 않은 항목 중 일부를 sampling하여 부정적인 데이터로 다룬다.
- pairwise 학습에서는 관측된 항목은 관측되지 않는 항목보다 높게 점수가 부여되도록한다.
- 예측값과 실제값 사이의 loss를 최소화하는 대신에 관측된 항목의 예측값과 관측되지 않은 항목의 예측값 사이의 차이를 최대화한다.
- NCF는 상호작용 함수 f를 파라미터화한다.
- pointwise와 pairwise learning 모두 시행
2.2 Matrix Factorization
- MF는 잠재 특성의 실제 값이 부여된 벡터의 각 유저와 아이템과 연관되었다.
- pu, qi: 유저 u와 아이템 i의 잠재 벡터를 의미
- MF는 pu와 qi의 내적으로 상호작용 yui을 구함
y^ui=f(u,i∣pu,qi)=puTqi=Σk=1Kpukqik
- K: 잠재 공간의 차원
- MF모델은 user와 item의 잠재 요소의 상호작용을 사용한다.
- 각 잠재 공간은 독립적이며 동일한 가중치로 선형결합되었다.
- MF는 잠재 요소의 선형 모델로 간주됨
- [Figure1]은 내적 수식이 어떻게 MF의 표현성을 제한하는지를 나타낸다.
- 유저와 아이템을 동일한 잠재 공간으로 나타낸다.
- 두 유저 사이의 유사성은 내적 또는 잠재 벡터 사이의 각도를 활용한 코사인 거리고 표현될 수 있다.
- 일반성을 잃지않고 Jaccard coefficient를 근거로 사용한다.(MF가 복구해야 하는 두 사용자의 진실 유사성)
- 예시: 다시 봐라
- 위 예시는 저차원 잠재 벡터에서 복잡한 유저-아이템 상호작용을 추정하는 단순하고 고정된 내적을 사용함으로써 발생하는 MF의 한계를 보여준다.
- 커다란 잠재 벡터 K를 사용함으로써 해결 가능
- 모델의 일반화가 어렵(오버피팅, 특히 sparse한 데이터에서)
- 딥러닝으로 상호작용 함수를 학습하는 것으로 해당 한계 해결
3. NEURAL COLLABORATIVE FILTERING
- 암시적 데이터의 이진 특성을 강조하는 확률적 모델과 함께 NCF를 학습시키는 방법인 NCF 구조에 대해 설명
- MF가 NCF로 일반화될 수 있음을 설명
- 협업 필터링에서 딥러닝을 사용하기 위해 유저-아이템 상호작용을 학습하기 위해 MLP를 사용하는 NCF를 인스턴스화한다.
- NCF 구조 기반의 MF와 MLP를 앙상블한 새로운 신경망 행렬 문해 모델을 제안
- 유저-아이템 잠재 구조를 모델링하기위해 MF의 선형성과 강함, MLP의 비선형성을 단일화
3.1 General Framework
- 협업필터링에서 신경망을 다루기위해 유저-아이템 상호작용(yui)을 모델링하기위해 MLP 채택
- 한 layer의 output이 다른 층의 input으로 사용
- bottom input layer는 두 개의 feature vector 포함
- vuU, viI : 유저(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된다.
- 마지막 은닉 계층 X의 차원은 모델의 용량을 결정한다.
- 마지막 output layer는 예측된 점수 y^ui이다.
- pointwise loss를 최소화하는 방향으로 학습 (예측 값과 실제 값의 차이)
- pairwise 방법으로도 학습 가능
- Bayesian Personalized Ranking, margin-based loss 사용
- 해당 논문에서는 신경망에 집중하기 때문에 pairwise learning은 미래에 다루겠다.
y^ui=f(PT,vuU,QT,viI∣P,Q,Θf)
- P, Q: 유저, 아이템의 잠재 요인 행렬
- Θf: 상호작용 함수 f의 모델 파라미터
- f는 MLP로부터 정의된다.
f(PT,vuU,QT,viI)=ϕout(ϕX(…ϕ2(ϕ1(PT,vuU,QT,viI))))
- ϕ: layer
3.1.1 Learning NCF
- 모델 파라미터 학습을 위해, pointwise 방법은 아래 squared loss를 갖는 회귀 문제로 수행된다.
Lsqr=Σ(u,i)∈Y∪Y−wui(yui−y^ui)2
- Y: 관측된 상호작용, Y−: 부정적인 인스턴스(관측되지 않은 항목 모두 또는 일부)
- wui: 하이퍼파라미터
- 관측된 항목은 정규분포에서 발생한다고 가정하고 loss 계산하는데 이는 암시적 데이터와 어울리지 않는다.
- target 값이 0 또는 1로 이진화되어있기 때문
- 암시적 피드백의 이진 특성을 고려하여 pointwise NCF를 학습하기위해 아래 방법 도입
- 암시적 피드백을 단일 클래스 문제로 생각
- y^ui: i가 얼마나 u와 관련 있는지를 나타냄
- NCF에 확률적 설명을 주기위해, y^ui를 [0,1] 범위로 제약
- ϕout의 활성화 함수로 로지스틱이나 probit 함수 사용
p(Y,Y−∣P,Q,Θf)=Φ(u,i)∈Yy^uiΦ(u,j)∈Y−(1−y^uj)
- 위는 우도 함수, negative log 우도 사용 하면 아래와 같다.
L=−Σ(u,i)∈Ylogy^ui−Σ(u,i)∈Ylog(1−y^uj)=−Σ(u,i)∈Yyuilogy^ui+Σ(u,i)∈Y(1−yui)log(1−y^uj)
- SGD를 사용하여 NCF의 목적함수 최소화 가능
- 이진 크로스 엔트로피 함수(로그 로스)와 동일
- NCF에 확률적 방법을 사용함으로써 암시적 피드백에 이진 분류 문제를 활용한다.
- 분류 log loss가 여태까지는 추천시스템에서 잘 사용되지 않았다.
- 각 iteration마다 관측되지 않은 상호작용에서 균등하게 sampling하여 negative instance(Y−)로 사용
- 균등하지 않은 샘플링 전략은 성능을 향상시킨다.
3.2 Generalized Matrix Factorization(GMF)
- MF가 NCF 구조의 특별한 케이스로 해석될 수 있다.
- input layer에서 사용자(또는 아이템) ID의 원핫인코딩으로 인해 임베딩 벡터는 잠재 벡터로 생각할 수 있다.
pu=PTvuU,qi=QTviI
- pu, qi: 사용자, 아이템의 잠재 벡터
- 첫번째 CF layer의 매핑 함수는 다음과 같이 element-wise 곱의 벡터로 여긴다.
ϕ1(pu,qi)=pu⊙qi
- 그 후, output layer에 벡터를 넣는다.
y^ui=aout(hT(pu⊙qi))
- aout: 활성화 함수, h: output layer의 edge weight
- aout이 identity function, h가 1로 이뤄진 uniform vector라면, MF 모델과 동일
- NCF 구조 아래에서 MF는 쉽게 일반화, 확장된다.
- 만약 h를 uniform 제약조건 없이 학습에 사용한다면 MF에 다양한 결과를 갖는다.
- 논문에서는 NCF에서 일반화된 버전의 MF를 구합니다.
- sigmoid 함수를 aout으로 사용하고 h를 log loss를 통해 학습
- 이를 GMF라고 부른다!
3.3 Multi-Layer Perceptron(MLP)
- NCF가 유저와 아이템의 길, 2가지 길을 채택했기 때문에 직관적으로 concat하는 것이 맞다.
- 해당 구조는 멀티모달 딥러닝 구조로 넓게 채택되어 있다.
- 하지만 concat은 유저와 아이템 사이의 잠재 특성 사이의 상호작용을 설명하기에는 충분하지 않다.
- 이 문제를 해결하기 위해 concat된 벡터에 hidden layer 하나를 추가한다.(상호작용 학습을 위해)
- element-wise 곱만을 사용하는 GMF 방식보다 pu와 qi간의 상호 작용을 학습하기 위해 모델에 유연성과 비선형성 부여
z1=ϕ1(pu,qi)=[puqi]ϕ2(z1)=a2(W2Tz1+b2)……ϕL(zL−1)=aL(WLTzL−1+bL)y^ui=σ(hTϕL(zL−1))
- Wx, bx: 가중치, 편향 행렬, ax: 활성화 함수
- 이 논문의 실험에서는 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(pu⊙qi+W[puqi]+b))
- 하지만 같은 embedding layer을 공유하면 융합 모델의 성능을 제한한다.
- 두 모델이 같은 embedding size를 사용하기 때문
- 서로 다른 embedding layer를 갖고 마지막 hidden layer을 concat
ϕGMF=puG⊙qiGϕMLP=aL(WLT(aL−1(…a2(W2T[puqi]+b2)))+bL)y^ui=σ(hT[ϕGMFϕMLP])
- puG와 puM은 GMF와 MLP의 유저 임베딩
- qiG와 qiM은 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]
- hGMF,hMLP: 사전 훈련된 GMF와 MLP의 h 벡터
- alpha: 하이퍼 파라미터
- Adam으로 GMF와 MLP를 사전 학습하고 SGD로 NeuMF 학습
- NeuMF는 Momentum-based method를 사용하기에 부적합하기 때문
4. EXPERIMENTS
- NCF 방법이 암시적 CF 방법 중 SOTA인가?
- 제안한 최적화 구조(negative sampling을 사용한 log loss)가 추천 시스템에 잘 작동할 것인가?
- 은닉층이 깊을 수록 유저와 아이템 상호작용을 학습하는 것에 도움이 될까?
4.1 Experimental Settings
- MovieLens, Pinterest 사용
- leave-one-out 평가 방법 사용
- 유저별 마지막 상호 작용 데이터 및 상호 작용이 없는 상품 중 100개를 표본 추출한 것을 test 데이터로 사용
- 나머지는 학습 데이터로 사용
- HR, NDCG (top-10) 사용