본문 바로가기
Archive/추천시스템

[Rec] Neural Collaborative Filtering 리뷰(1)

by 다람이도토리 2021. 12. 26.

Neural Collaborative Filtering 리뷰

논문 : https://arxiv.org/abs/1708.05031
참고링크 : https://lsjsj92.tistory.com/613?category=792966

 

추천 시스템에 딥러닝, 신경망을 활용할 수 있을까?

해당 논문을 통해 어떤 구조로 만들었는지 우선 간단하게 파악하고
(2)편에서는 간단한 형태의 Matrix Factorizaion과 논문의 NCF 구현을 참고하여 두 모델의 비교를 진행하고자 한다.

Introduction - NCF의 도입 이유, Matrix Factorization의 한계

inner product로는, latent feature을 linear하게 할 수 밖에 없을 뿐더러, latent factor를 활용할 경우 차원이 줄어드면서 관계를 올바르게 표현할 수 없을 때가 존재한다.

Preliminaries

(1) Implicit data

Implicit data의 경우는 일반적인 rating과는 다르게, 기록이 있나/없나 등으로 판단된다.
기록이 있을 경우 1, 없을 경우 0으로 기록된다. 즉 이는 실제 아이템에 대한 호감도와는 관련성이 적다.

Implicit data에 대한 예측을 표현하면, parameter에 대한  예측으로 쓸 수 있다.

parameter에 대한 학습은 pointwise와 pairwise 두 가지 관점에서 볼 수 있다.

 

(2) Matrix Factorization

Matrix Factorization은 user latent factor, item latent factor로 분해하는 과정을 의미한다.

여기서, rating에 대한 예측은 user factor와 item factor의 inner product로 표현하게 된다.

Neural Collaborative Filtering

General Framework

User Latent Vector와 Item Latent Vector를 0-1 encoding vector로 표현한다. 이를 Embedding시켜, 마지막에 output layer를 통해 rating을 예측하게 된다. 여기서, 주목해야 할 점은 0-1 encoding을 통한 sparse representation을 dense하게 바꿔준다.

Generalized Matrix Factorization(GMF)

GMF의 경우는 user latent와 item latent의 elementwise product로 이루어진다.

여기서 활성화 함수(h, out함수)를 linear 혹은 nonlinear하게 주는 것에 따라 비선형적인 학습 또한 가능해진다.

Multi-Layer Perceptron(MLP)

user vector과 item vector를 concatenate시켜 학습시킨다. 이를 여러번의 Perceptron을 합친다. 

최종 모델 : GMF + MLP

두 모델의 weight은 최종적으로

과정을 바탕으로 추정한다.

구체적인 학습 방법 등은 실제 구현된 코드를 바탕으로 더 익혀보기로 한다.