본문 바로가기
ML

[정리] DeepFM: A Factorization-Machine based Neural Network for CTR Prediction

by 나른한 사람 2021. 4. 17.

논문 링크: arxiv.org/pdf/1703.04247v1.pdf

 

도입

 이용자가 추천된 아이템을 클릭할 확률을 추정하는 추천 시스템에서, Click-trhough Rate (CTR)을 바르게 예측하는 것은 필수적이다. 

 CTR prediction에서, 이용자의 클릭하는 행동에 숨어있는 implicit feature의 상호작용을 학습하는 것은 중요하다. 앱 마켓에 대한 연구에서, 사람들은 주로 식사시간에 음식 배달앱을 다운로드 한다는 것을 알아냈다. 이는 곧, 앱 카테고리와 time-stamp와의 (2차원)상호작용을 CTR의 신호로 사용할 수 있다는 것을 말한다. 

 구글의 Wide & Deep model [Cheng et al., 2016]로부터 얻은 인사이트에 의하면, 저차원과 고차원 feature들의 상호작용을 동시에 고려하는 것은 각각을 따로 하는 것보다 나은 결과를 가져온다.

 중요한 점은, 효율적으로 feature간의 상호작용을 모델링 하는것이다. 어떤 피쳐들은 쉽게 이해가능하지만 어떤 것들은 그렇지 않다(머신러닝으로만 확인될 수 있음). 이해하기 쉬운 상호작용이라고 하더라도, feature의 수가 많아지면, 이를 전체적으로 모델링 하는것은 힘들다.

 

 

 이러한 이유로 DeepFM은 feature engineering이 필요하지 않은 FM과 DNN을 결합한 형태의 모델이다.

 

DeepFM

 저차원 feature와 고차원의 feature의 상호작용에 초점을 맞췄고, 결과로 Factorization Machine 기반의 Deep Neural Network (DeepFM)를 제안했다. DeepFM은 두 부분으로 이루어져있는데, 같은 인풋을 공유하는 FM 부분과 Deep 부분으로 나누어진다.

 Feature i 에 대해 스칼라 wi 는 1차원의 weight 값, 잠재 백터 Vi는 다른 feature와의 상호작용을 측정한다. Vi는 또, FM의 2차원 feature 상호작용을, Deep 부분에서 고차원 상호작용을 모델화 한다.

 모든 파라미터, 즉, wi, Vi와 신경망 파라미터 W, b는 함께(jointly) train된다. 

 

FM component

 

FM 구조

 이는 추천에 사용되는 feature간 상호작용을 학습하는 factorization machine이다. 게다가, linear(1차원) 상호작용과 pairwise(2차원) 상호작용을 고려한다. 

 

 Sparse한 환경에서, 일반적으로 변수들 간의 상호작용을 직접적이고 독립적으로 추정하기 위한 충분한 데이터가 없는 경우가 많다. FM은 이러한 환경에서도 상호작용들을 추정할 수 있는데, 이는 왜냐하면 이 모델은 상호작용 파라미터들을 factorize하여 상호작용 파라미터들 사이의 독립성을 깰 수 있기 때문이다.

 -> FM 모델에 대한 설명 : greeksharifa.github.io/machine_learning/2019/12/21/FM/

Deep component

 

Deep 구조

 이는 고차원의 상호작용을 학습하기 위한 뉴럴 네트워크이다. CTR 예측에 사용되는 데이터는 보통 매우 희소하고, 고차원이며, 범주형 데이터와 연속형 데이터가 섞여있으며, 어떤 field(성별, 위치, 나이 등)으로 그룹화 되어 있다는 특징이 있다. 따라서, Embedding layer로 이러한 input을 저차원이고 dense한 실수 값을 가진 데이터로 압축해야할 필요가 있다.

 

Hyper Parameter

Activation Function : ReLU

Dropout : 0.9

Neurons per layer : 200-400

Hidden layers : 3

Network shape : constant / decreasing

Conclusion

DeepFM은 FM과 Deep 부분을 같이 학습 시킨다 (joint training)

저차원/고차원 feature를 모두 잘 학습한다.

두 모델이 embedding vector를 공유하므로 feature engineering이 불필요하다.

'ML' 카테고리의 다른 글

Basic RNN/LSTM cell implementation  (0) 2021.09.10
seq2seq + attention 이란?  (0) 2021.08.17
RNN, LSTM ?  (0) 2021.08.16
[Tensorflow 2.x] 기초  (0) 2021.08.13
AutoEncoder  (0) 2021.07.28

댓글