NeuRec : On Nonlinear Transformation for Personalized Ranking[.,2018]

Sungchul Kim·2021년 12월 27일
0

Recommender-system

목록 보기
1/3
post-thumbnail

Introduction

본 논문은 user-item의 관계를 explict ratings 대신에 implicit feedback으로부터 나타내는데 초점을 두었다. 저자는 2가지 추천시스템 모델을 제안하였다.
(user-based NeuRec / item-based NeuRec)
NeuRec은 Latent Factor Model(LFM) 과 신경망을 통합시켜 선형성, 비선형성을 표현한 방법이다.

Problem Statement

MM : total number of users

NN : total number of items

MM, NN을 기반으로 interaction matrix는 M×NM \times N 형태가 된다. 즉, interaction matrix는 XX로 정의된다. 추가로 user, item는 u[1,...,M]u \in {[1, ...,M]}, i[1,...,N]i \in {[1, ...,N]}으로 표현된다. 예를 들어 XuiX_{ui}는 user에 따른 item에 대한 preference를 의미한다. 위 수식을 기반으로 user, item에 따라 의미하는바가 달라지게 된다.

첫번째, XuX_{u*}[Xu1,...,XuN]{[X_{u1}, ...,X_{uN}]} 로 나타낼 수 있고 전체 item에 대해 특정 user의 preferences를 나타내었다.

두번째, XiX_{*i}[X1i,...,XMi]{[X_{1i}, ...,X_{Mi}]} 로 나타낼 수 있고 전체 user로 부터 받은 특정 item의 preferences라 할 수 있다.

앞서 언급하였듯이 저자는 implicit feedback에 초점을 두었다. 그러므로 user와 item의 interaction에 따라 XuiX_{ui} 를 1 혹은 0으로 나타내었다. 여기서 0은 특정 user가 선호하지 않는 item을 의미하고, 이때 item에 대하여 정보를 알 수 없다.

Relation work

Latent Factor Model

Latent Factor Model(LFM)은 협업필터링(collaborative filtering)기반 방법론이다. LFM은 user, item의 저차원으로부터 user와 item의 affinity가 도출되어야 한다는 전제하에 제안된 방법이다. (Eg., Matrix factorization)

Matrix factorization을 간단히 설명하면, matrix를 동일한 차원으로 사영시켜 user latent factor , item latent factor로 나타내는 방식을 말한다.

수식으로는 Xui=UuViX_{ui} = U_{u} \cdot V_{i} 로 표현된다. (여기서 UuU_{u}는 user latent factor , ViV_{i}는 item latent factor를 의미한다.)

Proposed Methodology

본 연구에서는 NeuRec을 제안하였다. NeuRec는 첫번째로 user와 item의 interaction matrix XX에 multi-layer neural networks를 쌓아 저차원으로 사영시킨다. 여기서 저차원으로 사영시키는 이유는 Parameter size를 줄임과 동시에 비선형성 결합을 하기 위함이라고 설명할 수 있다. 저차원으로 사영된 공간에서 각 matrix끼리 내적을 진행한다. 위 방식에 초점을 두고 저자는 U-NeuRec와 I-NeuRec으로 구분하였다.

User-based NeuRec

모델 설명에 앞서 우선적으로 Notation을 표현하면 아래와 같습니다.

XX : training data

WjW_{j} : weight

bjb_{j} : bias

jj : [1,...,L]{[1,...,L]} (LL은 layer의 수를 의미합니다.)

XX를 training data로 가정 하면 h1(Xu)h_{1}(X_{u*})W1Xu+b1W_{1}X_{u*} + b_{1}에 비선형성을 띠는 activation function를 사용하여 나타낼수 있습니다. Layer를 LL개 쌓았을때 최종적으로 hL(Xu)h_{L}(X_{u*})로 나타낼 수 있습니다.

h1(Xu)=f(W1Xu+b1)h_{1}(X_{u*}) = f(W_{1}X_{u*} + b_{1})

hj(Xu)=f(Wjhj1+bj)h_{j}(X_{u*}) = f(W_{j}h_{j-1} + b_{j})

hL(Xu)=f(WLhL1+bL)h_{L}(X_{u*}) = f(W_{L}h_{L-1} + b_{L})

앞서 Proposed methodology에서 설명했던과 같이 저차원으로 사영시킨 차원을 k**k'**라 가정이라 해보겠습니다.

그럼 Item embedding matrix는 N×kN \times k 로 표현할 수 있고, 이때 kk는 item latent factor를 의미합니다. 즉 kk'kk의 차원이 같음으로 score는 kkk' \cdot k 로 표현됩니다.

scoreui=hL(Xu)kiscore_{ui} = h_{L}(X_{u*}) \cdot k_{i} 로 표현됩니다.

이와 같은 방법으로 Item-based NeuRec을 표현할 수 있습니다.

Loss function

Loss는 다음과 같은 수식으로 표현할 수 있습니다.

minW,Q,b\underset{W_*,Q_*,b_*}{min} =(Xuiscoreui)2+λ(WF2+kF2)= \sum{(X_{ui} - score_{ui})}^2 + \lambda(\lVert W \rVert^2_F + \lVert k \rVert^2_F)

λ\lambda는 regularization rate을 의미하고 WW(Weight)와 kk(latent factor) 는 Frobenius norm(euclidean)이 적용되었다.

추가로 저자는 Pairwise Learning 방법을 사용하였다.

Pairwise Learning 방법은 positive item들과 negative items들의 차이를 maximize 하는 방향으로 동작합니다. 그러나 pairwise learning은 best ranking performance 방법에 적절하지 않다고 언급하였습니다. 본 연구에서는 최종적으로 non-uniform sampling 방법을 사용하였다.

non-uniform sampling이란 매 epoch마다 다른 negative samples을 랜덤하게 샘플링하여 score를 계산하고 rank를 매기는 방법입니다. 그 다음 높은 rank score에 위치한 item을 negative sample로 사용하는 방법입니다.

Experimental Setup

Datasets Description

Dataset으론 Movielens HetRec , Movielens 1M , FilmTrust 그리고 Frappe를 사용하였습니다.

Movielens HetRec은 2113명의 user와 10109의 movie로 구성되어 있는 데이터셋입니다.

FilmTrust는 movie sharing에서 크롤링된 데이터이고 Frappe는 957명의 user와 약 4000개의 모바일 app으로 이루어져 있는 안드로이드 application 추천 데이터셋입니다.

모두 binary 형태를 띱니다.

Evaluation Metrics

Evaluation 으로는 top5 , top10 기준으로 Precision , Recall , MAP , MRR , NDCG방법으로 측정하였습니다.

Implementation Details

Optimizer로는 Adam을 사용하였고, grid search를 통해 hyperparameter를 설정하였습니다. 또한 NeuRec model의 layer수를 5개로 고정하였고 activation function으로 sigmoid를 사용하였습니다. 각 layer마다 뉴런의 수를 300으로 고정하고 latent factor kk를 50 , dropout rate를 0.03으로 설정하였다.

데이터는 8:2로 split하였다.

위 그림은 앞에서 언급했던 4개의 dataset에 대해 NDCG 측정.

(a)**(a) Movielens HetRec (b)(b) Movielens 1M (c)(c) FlimTrust (d)(d) Frappe**

NeuRec의 NDCG 성능이 제일 높음을 알 수 있다.

위 그림은 U-NeuRec 모델의 hyperparameter에 따른 성능을 비교한 그래프이다.

(a)(a) 를 보면 알 수 있듯이 적절한 latent factor size를 찾는것이 적합하다고 언급하고 있고, latent factor size를 키울수록 오히려 overfitting이 발생한다고 언급하였다.(적절한 latent factor size : 30~50)

(b)(b) 각 Layer가 가지는 뉴런의 수를 나타내었다. 이는 뉴런의 수가 너무 적거나 너무 많았을때 오히려 모델의 성능을 저하시키는 underfitting이 발생한다고 언급하였다.

(c)(c) activation function으로는 sigmoid가 제일 좋은 성능을 보였다. 저자는 predicted value가 [0,1]이기 때문에 sigmoid가 제한 하기 쉬워 binary data에 좀더 적절하다고 언급하였다.

(d)(d) hidden layer를 깊게 쌓을수록 성능이 떨어진다는 사실을 알 수 있다. (논문에는 hidden layer가 3 to 7이라고 명시 되어있는데 (d)(d) x축 값들이 오타인거 같다.)

Conclusions

결론적으로 NeuRec은 item과 user 관계를 좀 더 잘 표현하였다는 사실을 실험을 통해 입증하였습니다. non-oversampling이라는 방법을 접할 수 있는 논문이었습니다.

profile
김성철

0개의 댓글