0. Abstract
1. Introduction
2-1 Learning from Implicit Data
3. Neural Collaborative Filtering
3-2 Generalized Matrix Factorization
4. Experiments
4-2 Performance Comparison(RQ1)
4-3 Log Loss with Negative Sampling(RQ2)
4-4 Is Deep Learning Helpful?(RQ3)
0. Abstract
○ 여러 분야에서 딥러닝이 사용 But 추천 시스템에서는 괄목할만한 성과 X
○ 해당 연구에서는 추천의 핵심 문제를 해결하기 위해 Neural Networks 기반 Collaborative Filtering 사용
● NCF (Neural Network Based Collaborative Filtering)
● 내적을 Neural Architecture로 바꾼 generic 한 모델
내적을 Neural Architecture로 바꾼 generic한 모델?
1) 기존의 추천시스템(MF; Matrix Factorization) 기반 모델:
- 사용자- 아이템의 잠재 요인을 내적으로 계산해 선형적 방식으로 상호작용을 모델링
2) 논문에서의 방법(NCF)
- 기존 내적 방식 → 신경망(Neural Architecture)
- 즉, 사용자-아이템 간의 상호작용을 비선형적인 방식으로 더 풍부하게 학습 가능하도록 함
3) 쉽게 설명: 기존의 단순 곱셈 방식(MF) → "신경망 계산 방식"(NCF)
● matrix Factorization을 표현하고 일반화 가능
● 여러 실험 결과 NCF구조가 다른 SOTA 방법론들보다 개선된 성능을 보임을 밝힘
※ SOTA 방법론: 해당 분야에서 현재까지 알려진 가장 성능이 좋은 최신 방법론
1. Introduction
○ 기존: MF(Matrix Factorization)
● user-item의 상호작용을 Latent Vector의 내적으로 학습
→ 만들어진 잠재공간을 user, item이 모두 공유
● 여기서 사용된 내적은 단순 선형 결합
So, 복잡한 상호작용을 잡기 어려움
○ 제안: NCF(Neural Network Based Collaborative Filtering)
● 기존 선형행렬분해(Linear MF)의 단점을 해결하고자 함
● Neural Network 기반 Collaboratice Filtering → 비선형 부분 커버
● So, user-item 관계를 복잡하게 모델링 가능
※ 본문은 주로 암시적 피드백에 집중 → 노이즈가 많은 암시적 피드백 데이터 모델링 방법을 다룸
※ Implicit Feedback: 사용자가 직접 남긴 평가 | 의견이 아닌 사용자 행동을 통해 추론된 간접적인 데이터
※ 즉, 사용자가 어떤 아이템을 소비했는지, 클릭했는지 등을 활용한 추천 모델 학습
※ 사용자의 긍정적 상호작용을 학습 대상으로 삼고, 숨겨진 선호도를 추론하는 방식 채택
○ Contributions
● user-item의 잠재 특성을 모델링하기 위한 Neural Network 구조 제안(General Framework NCF)
● 행렬 분해(MF)는 NCF의 특별한 케이스임을 증명 & 다층 퍼셉트론 사용
● 실제 데이터(MovieLens, Pinterest)를 사용해 실험을 진행 → NCF 가능성을 입증
2. Preliminaries
2-1 Learning from Implicit Data
○ M, N: user와 item 수(rating 데이터가 아닌 0과 1의 이진 데이터)
● user가 item 관측여부에 따라 0 | 1로 표현(= Interaction이 있는지 여부 표시)
● 선호, 비선호를 나타내는 것은 X(Implicit Feedback data)
○ f: 상호작용 함수, user-item간 imteraction이 있는지 확률 예측 문제
○ 2가지 objective function(Point-wise loss와 Pair-wise loss) 모두 사용 가능
● Point-wise: 실제값과 예측값 차이 최소화
● Pair-wise: BPR에서 사용했으며, 1이 0보다 큰 값을 갖도록 마진 최대화
2-2 Matrix Factorization
○ User-Item Interaction Matrix의 한계 지적
● (a) u4 → u1 > u3 > u2 (jaccard coefficient를 사용해 유사성을 구했을 때 가까운 순서)
각 셀의 값 = 암시적 피드백
○ Jaccard Coefficient: 두 집합 간의 유사도 측정 지표
● 두 집합의 교집합 크기를 합집합 크기로 나눔
○ 해당 그림에서 계산
● u4와 u1
- 교집합: {i1, i3, i5} = 3
- 합집합: {i1, i2, i3, i4, i5} = 5
- 유사도 : 3 / 5 = 0.6
● u4와 u2
- 교집합: {i3} = 1
- 합집합: {i1, i2, i3, i4, i5} = 5
- 유사도: 1 / 5 = 0.2
● u4와 u3
- 교집합: {i3, i4} = 2
- 합집합: {i1, i2, i3, i4, i5} = 5
- 유사도: 2 / 5 = 0.4
● (b) p4 → p1 > p2 > p3 (잠재 공간에서의 가까운 순서 표현)
○ User-Item의 복잡한 관계를 저차원에 표현하면서 문제 발생
● 차원을 키우면? Overfitting
○ 해결법: 비선형적인 Neural Network를 사용해 복잡한 상관관계(correlation) 표현
3. Neural Collaborative Filtering
3-1 General Framework
※ 상세설명
1. Input Layer
● user- Item을 원-핫-벡터로 구성
$$ \textup{ User, Item을 나타내는 feature vector} \upsilon_{u}^{U}, \upsilon_{i}^{I} \textup{로 구성}$$
2. Embedding Layer
● Sparse on-hot vector를 dense vector로 매핑
$$ \textup{User latent vector는 embeeddig matrix} P \in \mathbb{R}^{M*K} \textup{에 대해} P^{T}V_{u}^{U} \textup{로 표현} $$
$$ \textup{Item latent vector는 embedding matrix} Q \in \mathbb{R}^{N*K} \textup{에 대해} Q^{T} \upsilon_{i}^{I} \textup{로 표현} $$
3. Neural CF Layers
● User Latent vector와 Item latent vector를 contcat → Layer 통과(비선형 관계 학습)
4. Neural CF Layers
● User u와 Item i의 상관관계를 0 ~ 1 사이 점수로
$$ \textup{predicted score} \hat{y}_{ui} \textup{를 예측, target} y_{ui} \textup{와의 비교를 통해 학습 진행} $$
3-1-1 Learning NCF
● Label = Binary ... So, Beroulli Distribution 사용
[베르누이 분포]
$$ P(y|p) = p^{y}(1 - p)^{1- y} $$
[Log Loss]
$$ \textup{Log Loss} = - (y \cdot log(p) + (1 -y) \cdot log(1 - p)) $$
Bernoulli Distribution(베르누이 분포)
○ 두 가지 결과(성공/실패, 1/0, 참/거짓)로 표현되는 확률 분포
○ 특정 사건이 발생할 확률 p에 대한 베르누이 분포는 위와 같은 확률을 정의
Label이 Binary라서 베르누이 분포를 쓴다?
● 베르누이 분포가 Binary 결과를 다루는 가장 기본적인 확률 분포
● Log Loss(Binary Cross-Entropy)와 자연스럽게 연결(식은 위와 같음)
- p: 예측 확률, y: 실제 Label
● 베르누이 분포의 로그 가능도(Log-Likelyhood)를 최대화하는 것과 동일
$$ \gamma \textup{는} y_{u,i} = 1 \textup{인 집단,} $$
$$ \gamma^{-1} \textup{는} y_{u,i} = 0 \textup{인 집단} $$
● Loss Function은 binary cross Entropy 사용
● 위의 L을 최소화하는 학습 파라미터를 찾음
● 학습은 SGD 사용
3-2 Generalized Matrix Factorization
○ MF가 Neural CF의 특별 케이스로 된다는 것을 보여줌
● a: non-linear activation function(sigmoid)
● h^{T}: 내적할 때 가중치 역할 → 잠재 벡터를 학습할 수 있게 하고 중요도를 조절하도록 함
● IF a = 1 && h^{T}가 uniform vector Then MF
3-3 Multi-Layer Perceptron
● GMF보다 간단히 user-item interaction 학습 가능
● w_x: weight matrix
● b_x: bias vector
● a_x: x 번째 층 activation function
$$ \phi_{1} \textup{은 user와 item의 잠재 벡터를 concat} $$
$$ \textup{이 후 모든} \phi_{L} \textup{은 weight matrix와 bias vector로 표현} $$
● 최종 식은 GMF와 동일한 구조
3-4 Fusion of GMF and MLP
● GMF와 MLP에서 사용하는 잠재 벡터 차원이 다를 수 있음
● 최종 score는 MLP와 GMF의 output을 concat해서 사용
● MF의 선형성과와 MLP의 비선형성을 결합해 장점만 선택
4. Experiments
○ 아래 3가지 질문 기반 실험진행
● RQ1: 제안한 NCF 모델이 다른 SOTA implicit collaborative filtering 방법보다 좋은 성능을 내는가?
● RQ2: 제안한 최적화 프레임워크(Log loss with negative sampling)가 효과적인가?
● RQ3: Deep Neural Network 구조가 user-item 관계 학습에 있어 효과적인가?
4-1 Experimental Settings
○ Datasets
● MovieLens, Pinterest 2가지 데이터를 사용해 실험 진행
● Pinterest의 경우 데이터셋이 매우 크지만 Sparse
- 사용자의 20%가 pin이 하나만 존재
- 최소 20개 이상의 pin을 가진 user로 필터링 하여 사용
○ Evaluation Protocols
● HR@10 (Hit Ratio): 몇 개를 맞추었는지 나타내는 지표
● NDCG@10 (Normalized Discounted Cumulative Gain)
: 관련성이 높은 결과를 상위권에 노출시켰는지를 고려(순서고려)하는 평가 지표
○ BaseLines
● ItemPop: 인기도에 따라 아이템 순위 매김
● ItemKNN: Standard Item-based CF 방법을 잠재 피드백에 적용
● BPR: MF 모델 최적화 방법
● eALS: 아이쳄 추천에서의 SOTA(state-of-the-art) MF 방법
4-2 Performan ce Comparison(RQ1:좋은 성능)
4-3 Log Loss with Negative Sampling(RQ2: 최적화 프레임워크의 효과)
● 학습을 거듭할수록 성능이 지속적으로 증가 → Optimal한 negative samplig 수 = 거의 3 ~ 7개
● negative sampling 사용 이유: negative data는 positive data보다 잠재 피드백을 사용하기 힘들기 때문에 사용
4-4 Is Deep Learning Helpful? (RQ3: Deep러닝이 추천에 적합한가?)
● Layer 수와 잠재 벡터 증가에 따라 성능이 거의 일관되게 증가
→ Deep Neural Network를 사용하는 것이 효과적임을 증명
5. Conclusion
○ General Framework NCF를 제안: GMF, MLP, NeuralMF
○ 선형 모델의 한계를 Neural Network를 사용해 해결 가능
○ GMF와 MLP의 장점을 더해 NeuralMF제안 & 성능 향상에 기여
○ User-Item Interaction을 다루는 Collaborative Filtering 아이디어에 집중
[General Framework 상세설명]
○ 해당 그림은 NCF의 구조를 보여줌
● NCF: MF + 신경망 → user-item 상호작용을 복잡하게 학습 가능하게 하는 프레임워크
1. Input Layer(입력층)
○ user, item 정보 받는 부분
● user U: user_id → one-hot 인코딩 형태로 표현
● Item I: Item_id → one-hot 인코딩 형태로 표현
○ 이 단계에서 user, Item은 높은 차원의 희소 벡터로 표현
2. Embedding Layer(임베딩 층)
○ 희소 벡터 → 저차원의 밀집 벡터로 변환
● p_u(사용자 임베딩 벡터): 사용자 u를 잠재 공간에서 표현
● q_i(아이템 임베딩 벡터): 아이템 i를 잠재 공간에서 표현
○ user, item 각각을 학습 가능한 잠재 벡터로 변환 & 이후 계산에 사용되도록 함
[Embedding Layer 대안]
○ Pretrained Embeddings
● 사전 학습된 임베딩(Word2 Vec, GloVe)을 초기값으로 사용
● user, item의 외부 정보 활용 가능
○ Random Initialization
● 임베딩 벡터를 무작위 초기화 후 학습
● 데이터가 충분히 많을 때 고려 가능
3. Neural CF Layers(신경망 층)
○ user, item 벡터 결합 → 상호작용 학습
● Input: p_u와 q_i
● 과정: Layer1 → Layer2 → ... → LayerX(점진적으로 복잡한 상호작용 패턴 학습)
● 벡터 결합 방식
- 요소별 곱(Element-wise Product): 기본 GMF 방식
- 벡터 연결(Concatenation): user-item 정보를 합쳐 더 복잡한 표현
○ 각 신경망층은 활성화 함수(e.g. ReLU, Sigmoid 등) 사용해 비선형성 추가
[Neural CF Layers 대안]
○ MLP(Multi-Layer Perceptron)
● user-item 벡터를 벡터 연결(Concatenation)을 통해 여러 신경망층에 비선형 상호작용 학습
○ Hybrid NCF(NCF 논문에서 사용한 방법)
● GMF와 MLP 결합 → 장점을 동시에 활용
4. Output Layer(출력층)
○ 최종출력: 사용자(u)와 아이템(i)의 예측 선호도(Score) \hat{y}_{ui}를 제공
● \hat{y}_{ui}: 사용자가 해당 아이템을 얼마나 선호할지 예측한 값
○ 실제 타겟값 y_{ui}와 비교해 모델 학습시키는데 사용
● y_{ui}: 사용자 실제 행동 데이터
[Output Layer 대안]
○ Sigmoid Activation
● Binary Classification 문제(e.g. 선호/비선호)에서 확률값 출력
○ Softmax Activation
● Multi-Class 문제에서 사용(e.g. 여러 아이템 중 하나 추천)
○ Linear Output
● 점수 직접 출력(e.g. 평점 예측 등)