DeepFM implementation before codes

  • citation of a journal (originate from): Guo, H., TANG, R., Ye, Y., Li, Z., & He, X. (2017). DeepFM: A factorization-machine based neural network for CTR prediction. Proceedings of the Twenty-Sixth International Joint Conference on Artificial Intelligence. https://doi.org/10.24963/ijcai.2017/239

DeepFM modeling

DeepFM의 구성: FM component + deep component

$\langle FM component \rangle $

피쳐 = i일 때,

  • 스칼라 값 $w_i$ = order-1 중요도 가중치
  • 잠재 벡터(latent vector) $V_i$ = 다른 피쳐와 상호작용 정도를 측정
  • $V_i$ (잠재 벡터): order-2 상호작용을 모델링을 위한 FM component & 높은 차원의 피쳐 상호작용을 모델링을 위해 Deep Component에 포함.
  • $w_i$ 와 $V_i$ & 이 외의 포함한 모든 변수 -> 결합된 예측 모델에서 학습.
  • order-2 (FM 모델 쌍별 피쳐의 상호작용은 각각의 피쳐의 잠재 벡터들 간의 내적곱으로 되어 있음. & 데이터 셋이 매우 sparse(드문 드문하게 퍼져있는 형태)일 때 훨씬 더 효과적으로 나타낼 수 있음.
  • FM model: 피쳐 i가 데이터에 있을 때마다 잠재 벡터 $V_i$를 훈련시킬 수 있음.

$\langle formula \rangle $

  1. $\hat{y}(x) := w_0 + \sum^n_{i=1}w_i x_i + \sum^n_{i=1}\sum^n_{j=i+1} \langle{v_i,v_j}\rangle x_ix_j = \langle{v_i,v_j}\rangle + \sum^n_{i=1}\sum^n_{j=i+1} \langle{v_i,v_j}\rangle x_ix_j $
  2. $\langle{v_i,v_j}\rangle := \sum^k_{f=1}v_{i,f} \cdot v_{j,f}$
  3. $\hat{y} = sigmoid(y_{FM} + y_{DNN})\label{1}$
  • $\langle{v_i,v_j}\rangle$: order-1 피쳐들의 중요성을 반영.
  • $\sum^n_{i=1}\sum^n_{j=i+1} \langle{v_i,v_j}\rangle x_ix_j $: order-2 피쳐 상호작용의 영향력을 나타냄.