DeepFM: A Factorization Machine based Neural Network for CTR Prediction - penny4860/study-note GitHub Wiki
1. 정리
요약
- 특정 User가 특정 Item의 click확률을 예측하는 DeepFM모델을 제안
- Input
- user에 대한 feature
- item에 대한 feature
- Output
- 모델 구조
- feature interaction
- order-1 feature interaction
- sparse feature의 linear combination
- FM layer의
Addition(+)
부분
- order-2 feature interaction
- 임베딩 vector의 내적으로 모델링
- FM layer의
Inner Product(x)
부분
- higher order
- 출력
- 3개 feature interaction unit을 모두 summation 하고 sigmoid
질문
2. 내용
1. Intro
- Feature Interaction을 모델링하는 방법
- 기존의 방식
- Manually include pairwise feature interactions
- Feature engineering 필요한 단점이 있음.
- Factorization Machine
- Feature 끼리의 latent vector를 내적하는 방식
- 성능이 좋으나 high order modeling이 안되는 문제가 있음.
- Wide & Deep learning
- low order interaction은 wide part로 , high order interaction은 deep part로 모델링
- wide part의 구현에는 여전이 feature engineering에 의존
- DeepFM의 contributions
- low order, high order의 feature interaction을 1개의 network로 모델링
- 효율적인 학습
- wide/deep part가 같은 input을 공유
- 성능
2. Approach
- Data 구성
- X : (user/item) 에 대한 data record
- item에 대한 feature
- user에 대한 feature
- y
- 모델 :
y = f(x)
- user/item에 대한 feature로 user가 item을 클릭할 확률을 예측하는 문제
2.1. DeepFM
y_hat = sigmoid(y_FM + y_DNN)
y_hat
: user가 item을 클릭할 확률
y_FM
: scalar
y_DNN
: scalar
- Feature interaction 모델링 order
- order-1
- 여러 feature의 linear combination으로 모델링
w1*x1 + w2*x2 + ...
- order-2
- higher order
- feature vector를 concat & MLP
2.1.1. FM Component
- y_FM = (Addition unit) + (Inner Product unit)
- Addition unit
- order 1 feature interaction을 반영
- raw feature의 linear combination
- Inner Product unit
- order 2 feature interaction을 반영
- 임베딩 vector끼리의 내적을 모든 feature 조합에 대해서 연산
2.1.2. Deep Component
- 임베딩 vector를 모두 concat -> MLP