Hello world!

Data Science & Machine Learning

[추천시스템] Wide & Deep Learning for Recommender systems paper

xyz1 2022. 6. 8. 17:09

#GOOGLE 논문

#추천 시스템

#2016년도 

 

해당 논문은 구글 Play store 앱 추천 시스템을 위한 논문이다.

 

해당 논문에서는 Memorization + Generalization을 동시에 만족하는 추천시스템을 만들고자 한다.

 

1. Memorization: linear model 통해서 feature들간의 연관성 파악

2. Generalization: neural network를 통해서 과거에 전혀 발생하지 않았거나 거의 발생하지 않은 새로운 feature 파악

 

Memorization의 문제점은 학습 데이터에 없던 feature 에 대해서는 파악하기가 힘들다.

이를 DNN 같은 딥러닝 기법을 사용해서 보완 할 수있다.

 

따라서, 해당 논문은 linear model component와 neural network component를 결합한 모델을 설명한다.

 

#DATASET

앱스토어 데이터. 정확히 어떻게 생겼는지는 논문에 친절히 설명이 안되어있음

label은 앱이 유저에게 노출되었을 때, 유저가 설치하면 1, 아니면 0을 가지는 column

categorical variable feature --> integer ID

Continuous real-value --> normalized

 

#MODEL: 

linear model component (그림1의 왼쪽 부분)+ neural network component(그림1의 오른쪽 부분)

 

그림1. Wide & Depp model (애석하게도.. 노랑색 동그라미는 무엇인지 논문에서 안알려줌)

#The Wide Component

linear model: y= w^Tx + b, 

y: prediction

x = [x1, x2, x3, ..., xd] : vector of d features

w = [ w1, w2, w3, ..., wd] : model parameters

b = bias

흔한 선형모델임

중요한 점은 feature set = raw input feature + transformed features.

 

transformed features는 feature 간의 cross product(외적 변환)을 통해서 생성 된다. 

외적 변환을 통해 새로운 orthogonal vector를 생성할 수 있다. 

예를 들면 A vector 와 B vector 를 외적을 하게되면 C vector가 생성 되는데, 중요한 점은 C vector는 A vector와 orthogonal 함과 동시에 B vector와 orthogonal 하게 된다.

 

#The Deep Component

categorical feature는 string 형태로 들어간다. ex 'language=en'

그 후 embedding으로 sparse problem을 해결한다.

당연한 얘기지만, embedding vector는 학습과정에서 loss 를 최소화하여 맞추어진다. 

 

*ensemble 기법(여러 알고리즘을 각각 학습)이 아니다. 해당 모델은 joint training으로 학습과 동시에 모든 parameters들이 최적화 한다.

 

그림2. Cross Product feature

그림2는 새로운 feature를 생성한 것이다. 외적 User Installed App feature X Impression App feature를 하여 새로운 벡터를 뽑아 낸다.

 

activation function은 그림2에서 볼 수 있듯이 3 layer ReLU 사용했으며, Logistic Loss를 통해 학습을 진행한다. 

 

#성능 측정

그림3. 평가

[오프라인 테스트]

AUC 측정: Wide & Deep 모델이 AUC 가장 높음

[온라인 테스트]

구글에서 A/B test로 3주간 테스트 했음. 3.9%로가장 높게 측정.

 

#Tutorial 

해당 논문의 코드는 Tensorflow api로 제공된다. 간단한 quick start를 하고자 한다면 microsoft github 에서 간단히 테스트 진행할 수있다.