1. 程式人生 > >DeepCTR專題:DeepFM論文學習和實現及感悟

DeepCTR專題:DeepFM論文學習和實現及感悟

 

 

論文地址:https://arxiv.org/pdf/1703.04247.pdf

CTR預估我們知道在比較多的應用場景下都有使用。如:搜尋排序、推薦系統等都有廣泛的應用。並且CTR具有極其重要的 地位,特別相對廣告推薦領域來說更加如此,競價廣告需要通過ctr給出相應的價格,並由此獲得廣告曝光的機會。而ctr的大小決定了出價的高低,直接會影響到該廣告是否能得到曝光機會。這裡涉及到計算廣告相關的知識,暫時就不展開講了。這裡主要介紹一下DeepFM該演算法的基本原理和網路框架。

論文總體來看還是相對比較容易的,主要分為三個部分:

第一部分:演算法的主要背景

第二部分:DeepFM的基本網路框架和原理

第三部分:實驗(papers必須有的部分)

下面分別從我個人理解的角度來說說每個部分吧:

1、DeepFM演算法的背景

(1)首先我們同樣要回顧一下FM演算法的基本原理,FM主要是在LR的基礎上增加了二階交叉項的概念,從而可以獲得一些轎車特徵。但是演算法每個特徵兩兩交叉的話,演算法複雜度是O(n平方),

所以,為了優化FM演算法,將矩陣分解應用其中。

  FM的缺點是:

  1)僅僅兩兩之間的交叉特徵

  2)只能獲得二階交叉的特徵,對於高階特徵並沒有涉及

(2)從16年wide-deep演算法中,或多或少的作者受到了一些啟發,於是想到可以對FM演算法利用深度學習進行優化,預計就提出了DeepFM演算法。

2、DeepFM演算法的基本原理(個人覺得還是比較簡單的)

(1)總體網路結構

                

  網路結構中,主要包含Deep部分和FM部分,網路結構類似Wide-Deep結構。

(2)演算法的原理

  首先網路最終輸出是:

  其中,FM部分如下所示:

          

  Deep部分如下所示:

          

網路就是這麼簡單,就是講這兩部分的輸出進行求和並輸出。

3、實驗。實驗部分可以學習別人調節引數的經驗。

(1)Dropout設定:

          

  從作者的實驗來看,dropout設定為0.9效果最佳

(2)隱藏層數設定

    

  從上圖來看,作者實驗資料表明,隱層數量=3效果最佳

(3)隱藏層神經元個數

    神經元個數的變化: constant (200-200-200), increasing (100-200-300),decreasing (300-200-100), and diamond (150-300-150)