1、背景
對于一個基于CTR預估的推薦系統,最重要的是學習到使用者點選行為背後隐含的特征組合。在不同的推薦場景中,低階組合特征或者高階組合特征可能都會對最終的CTR産生影響。
之前介紹的因子分解機(Factorization Machines, FM)通過對于每一維特征的隐變量内積來提取特征組合。最終的結果也非常好。但是,雖然理論上來講FM可以對高階特征組合進行模組化,但實際上因為計算複雜度的原因一般都隻用到了二階特征組合。那麼對于高階的特征組合來說,我們很自然的想法,通過多層的神經網絡即DNN去解決。
DNN的局限
下面的圖檔來自于張俊林教授在AI大會上所使用的PPT。我們之前也介紹過了,對于離散特征的處理,我們使用的是将特征轉換成為one-hot的形式,但是将One-hot類型的特征輸入到DNN中,會導緻網絡參數太多:

圖1、DNN參數過多
如何解決這個問題呢,類似于FFM中的思想,将特征分為不同的field:
圖2、劃分field
再加兩層的全連結層,讓Dense Vector進行組合,那麼高階特征的組合就出來了
圖3、組合高階特征
但是低階和高階特征組合隐含地展現在隐藏層中,如果我們希望把低階特征組合單獨模組化,然後融合高階特征組合。
圖4、怎麼把低價特征單獨模組化
即将DNN與FM進行一個合理的融合:
圖5、融合DNN與FM
二者的融合總的來說有兩種形式,一是并行結構,二是串行結構:
圖6、并行結構
圖7、串行結構
而我們今天要講到的DeepFM,就是并行結構中的一種典型代表。
2、DeepFM模型
2.1 整體結構
我們先來看一下DeepFM的模型結構:
圖8、 Wide & deep architecture of DeepFM
deepFM包含兩部分:神經網絡部分與因子分解機部分,分别負責低階特征的提取和高階特征的提取。這兩部分共享同樣的輸入。DeepFM的預測結果可以寫為:
y ^ = s i g m o i d ( y F M + y D N N ) \hat{y} =sigmoid(y_{FM} + y_{DNN} ) y^=sigmoid(yFM+yDNN)
2.2 FM部分
FM部分的詳細結構如下:
圖9、 The architecture of FM
FM部分是一個因子分解機。關于因子分解機可以參閱文章[Rendle, 2010] Steffen Rendle. Factorization machines. In ICDM, 2010.。因為引入了隐變量的原因,對于幾乎不出現或者很少出現的隐變量,FM也可以很好的學習。FM的輸出公式為:
y F M = w 0 + ∑ i = 1 n w i x i + ∑ i = 1 n ∑ j = i + 1 n < v i , v j > x i x j y_{FM} =w_{0}+ \sum_{i=1}^n w_{i} x_{i}+ \sum_{i=1}^{n} \sum_{j=i+1}^n <v_{i}, v_{j}> x_{i} x_{j} yFM=w0+∑i=1nwixi+∑i=1n∑j=i+1n<vi,vj>xixj
2.3 深度部分
圖10、 The architecture of DNN
深度部分是一個前饋神經網絡。與圖像或者語音這類輸入不同,圖像語音的輸入一般是連續而且密集的,然而用于CTR的輸入一般是及其稀疏的。是以需要重新設計網絡結構。具體實作中為,在第一層隐含層之前,引入一個嵌入層來完成将輸入向量壓縮到低維稠密向量。
圖11、The structure of the embedding layer
嵌入層(embedding layer)的結構如上圖所示。目前網絡結構有兩個有趣的特性:
1、盡管不同field的輸入長度不同,但是embedding之後向量的長度均為k。
2、在FM裡得到的隐變量 V i k V_{i k} Vik 現在作為了嵌入層網絡的權重。
這裡的第二點如何了解呢,假設我們的k=5,首先,對于輸入的一條記錄,同一個field 隻有一個位置是1,那麼在由輸入得到dense vector的過程中,輸入層隻有一個神經元起作用,得到的dense vector其實就是輸入層到embedding層該神經元相連的五條線的權重,即 v i 1 , v i 2 , v i 3 , v i 4 , v i 5 v_{i1} ,v_{i2} ,v_{i3} ,v_{i4} ,v_{i5} vi1,vi2,vi3,vi4,vi5 。這五個值組合起來就是我們在FM中所提到的 v i v_{i} vi 。在FM部分和DNN部分,這一塊是共享權重的,對同一個特征來說,得到的Vi是相同的。
參考文獻:
論文:DeepFM: A Factorization-Machine based Neural Network for CTR Prediction
推薦系統遇上深度學習(三)–DeepFM模型理論和實踐
原代碼位址:https://github.com/ChenglongChen/tensorflow-DeepFM
推薦好文: 深度學習在CTR預估中的應用