上一期我們給大家介紹了經典的CTR預估模型——Wide&Deep模型,具體參考如下連結

今天我們來聊一聊對Wide&Deep模型的一種改進模型,即DeepFM模型

創新點

1、將Wide&Deep模型進行改進,Wide部分採用FM模型,提高了模型的泛化能力

2、FM部分和Deep部分採用共享Embedding的策略,使得DeepFM成為一種端到端的模型,提高了模型的訓練效率

一、論文背景

挖掘使用者行為背後複雜的特徵交叉資訊對於提升CTR預估的準確性是很有幫助的,之前已有一些文章才嘗試挖掘使用者的低維和高維特徵交叉資訊(比如基於DNN的Wide&Deep模型),而且這些模型需要我們自己基於業務經驗去人工進行特徵工程從而構造我們需要的一些交叉特徵或者組合特徵。本篇文章提出的DeepFM模型能夠有效挖掘使用者行為的低階和高階交叉資訊,同時該模型也是一種端到端的模型。相較於Wide&Deep,文中指出DeepFM不需要進行額外的特徵工程,只需要將原始的特徵餵給模型即可,提高了該模型的效率。

二、DeepFM模型結構

DeepFM整體模型結構如下圖所示

CTR預估經典論文詳解(二)——DeepFM模型

DeepFM模型結構

從上圖可以發現整個模型包括兩個部分,左側的FM部分和右側的Deep部分,其中兩部分是共享輸入和Embedding的,這樣有效提高了模型訓練的效率。對於每一個特徵i,存在一個數值型引數wi用於描述特徵的一階重要性,同時還存在一個隱向量Vi用於描述該特徵和其他特徵的交叉資訊,Vi會被同時餵給FM和Deep部分,分別用於挖掘二階交叉資訊和高階交叉資訊。整個模型採用聯合訓練的方式對上述引數進行學習,最終模型輸出的預測CTR如下

CTR預估經典論文詳解(二)——DeepFM模型

yFM為FM部分的輸出值,yDNN為Deep部分的輸出值

1、FM部分

FM模型也是一種經典的CTR預估模型,在保留一階資訊的基礎上,他透過利用隱向量內積的方式來挖掘特徵的二階交叉資訊,理論上可以將FM模型推廣到N階,但是通常考慮到計算複雜度我們通常只是用二階的FM模型。隱向量的方式能夠有效解決大規模稀疏資料下訓練樣本不充分導致模型學習不足的問題,具體FM部分的模型結構如下圖所示

CTR預估經典論文詳解(二)——DeepFM模型

FM部分模型結構

FM部分的輸出結果為

CTR預估經典論文詳解(二)——DeepFM模型

2、Deep部分

整個Deep部分的模型結構比較簡單,和現在通用的DNN模型是類似的,就是採用Embedding+MLP的組合,具體模型結構如下圖所示:

CTR預估經典論文詳解(二)——DeepFM模型

Deep部分模型結構

其中Embedding部分需要注意的是,由於採用FM和Deep模型聯合訓練的方式,同時FM和Deep部分共享Embedding,這裡Embedding層這輸入層之間的權重矩陣就是由FM模型中的隱向量V構成,之前的做法是先對FM進行預訓練得到一個訓練好的隱向量V,本文對此進行了更改,使其成為整個網路的一部分,從而使得DeepFM模型成為一種端到端的訓練模型。這裡共享Embedding具有兩個好處:(1)能夠從原始資訊之中同時學習低維交叉資訊和高維交叉資訊;(2)不需要類似於Wide&Deep模型中的特徵工程。

三、與其他DNN模型的對比

文中給出的對比模型的結構如下圖所示

CTR預估經典論文詳解(二)——DeepFM模型

對比模型(FNN、PNN、Wide&;Deep)結構

1、FNN

FNN是一種基於FM預訓練模型的DNN模型,這種預訓練模型存在兩個不足:(1)Embedding主要受FM模型的影響;(2)由於採用預訓練的方式,整個模型的訓練效率不高,除此之外FNN模型只挖掘了特徵的高階交叉特徵,忽視了低階的交叉資訊。

2、PNN

為挖掘高階特徵交叉資訊,PNN模型在Embedding層和第一個隱藏層之間加入了product層,採用不同的product操作,衍生出了三種不同的PNN模型,即IPNN(內積)、OPNN(外積)、PNN*(內積和外積),雖然外積操作計算更為簡單一些但是效果缺不穩定,而內積則正好相反。不同於PNN,DeepFM在Product層之後只需與最終的單個輸出神經元相連線,極大降低了計算複雜度。同時PNN也是忽略了低階交叉資訊。

3、Wide&Deep模型

Wide&Deep模型在Wide部分需要額外的特徵工程,而DeepFM模型則不需要再進行特徵工程的工作。初次之外,DeepFM可以看做把Wide&Deep模型的Wide部分推廣為FM模型,同時又將Deep部分和FM部分的Embedding進行了共享,提高訓練的效率的同時,也進一步提高了模型的泛化能力和預測精度

對比結果如下表所示

CTR預估經典論文詳解(二)——DeepFM模型

模型對比結構

四、實驗結果

文章針對DeepFM模型進行了非常詳細的實驗,具體如下

1、效果評估

效率對比

CTR預估經典論文詳解(二)——DeepFM模型

訓練效率對比結果

預訓練的FNN模型的訓練效率是非常低的;儘管PNN在GPU上訓練速度很快,但是考慮到內積操作帶來的複雜度,計算開銷還是非常巨大的

效果對比

具體結果如下表所示

CTR預估經典論文詳解(二)——DeepFM模型

模型效果對比結果

總體來看,DeepFM對AUC指標提升

0.37%

,這在CTR預估領域的提升是比較明顯的,AUC提升千分之幾會帶來CTR幾個點的提升,足以見得DeepFM模型的效果還是非常顯著的。初次之外文章還對模型超引數的調節進行了詳細的實驗,具體的實驗結果可以參考原文

五、結論

作為經典的CTR預估領域的論文之一,DeepFM給出了一種不需額外進行特徵工程的建模方式,一定程度上提高了生產的效率;同時共享Embedding的策略一定程度上提高了模型的訓練效率,使得其成為一種端到端的CTR預估模型,之後的一些論文也都是借鑑了DeepFM的思路或者是在其基礎上發展起來的,而且也有很多公司的基線模型就是採用的DeepFM模型,足以見得DeepFM模型的效果是得到了工業界認可的,所以這篇文章還是非常經典的CTR預估模型論文,值得仔細閱讀一番。

歡迎感興趣的小夥伴投稿,知乎專欄:

歡迎感興趣的小夥伴關注公眾號:獨立團丶

CTR預估經典論文詳解(二)——DeepFM模型