origin paper: https://arxiv.org/pdf/1601.02376.pdf
解決痛點
特徵學習和模型泛化的能力有限。
網絡結構
top-down視角
CTR層
y^=sigmoid(W3l2+b3)W3∈R1×L,b3∈R and l2∈RLsigmoid(x)=1/(1+e−x)
l2層
l2=tanh(W2l1+b2)W2∈RL×M,b2∈RL and l1∈RMtanh(x)=(1−e−2x)/(1+e−2x)
l1層
l1=tanh(W1z+b1)W1∈RM×J,b1∈RM and z∈RJz=(w0,z1,z2,…zi,…,zn)
z的生成
zi表示每個特徵的向量,由:zi=W0i⋅x[ start i:endi]=(wi,vi1,vi2,…,viK)得到。
其中W0i∈R(K+1)×(endi−starti+1)
這裏x表示輸入的所特徵組合得到的一維向量,x[ start i:endi]表示,第 i個filed的特徵,W0i表示第i個filed的embedding矩陣,將特徵轉化爲對應的dense向量。在生成W矩陣時,wi爲常數項,vi1..viK由FM模型學習得到。
W0iembedding矩陣的初始化生成
該部分即爲FM模型,目標函數爲:
yFM(x):=sigmoid(w0+i=1∑Nwixi+i=1∑Nj=i+1∑N⟨vi,vj⟩xixj)
損失函數爲:
L(y,y^)=−ylogy^−(1−y)log(1−y^)
學到的v組合起來就是W
總結
from down-top視角
- 首先在最底層學到每次filed的embedding矩陣
- 將所有特徵進行embedding並組合層z
- 經過l1,l2兩層變換
- 最終將將結果用sigmoid轉化爲概率
- FM生成僅作爲初始化W使用
FNN的亮點在於將FM的結果矩陣的初始化向量,上層是個DNN,創新點在模型融合上。