廣告預估模型(三)


接着廣告模型初探(二),這篇咱們主要聊聊廣告預估模型集大成者DNN派系。

0.DNN模型

 

DNN網絡結構

 

    模型結構較為簡單,不再贅述。重點關注一下Embedding部分,和NLP里面的Embedding層類似,在廣告模型中Embedding層會對不同類型的特征進行如下變換:

  • 單值離散特征:直接Embedding

  • 多值離散特征:在Embedding 之后接上Sum Pooling 從而將多值映射為單個Embedding(Average Pooling也未嘗不可)

  • 數值型特征:一般先進行離散化(如特征分桶之類)轉化為類似單值離散特征來處理

 

1.DeepFM模型

 

DeepFM網絡結構

 

    DeepFM模型可以分為兩個部分,一部分是上篇中提到的FM模型,另一部分就是本篇中提到的DNN模型。最終輸出結果通過下面公式計算得到: 

從上面網絡結構圖中可以看到,最底層是輸入的稀疏的原始特征,接着進入了Embedding層,將特征限定到有限的向量空間中,接着分別進入FM和DNN層。FM部分主要考慮的是低階特征(主要是二階特征)而DNN部分主要獲取的是高階特征,FM和DNN層共享Embedding。

2.SDNN模型

圖片

 

SDNN網絡結構

 

    相比於前面兩個模型,SDNN模型的結構更為復雜,當然相應的效果也是更優的。從圖中可以看出,SDNN模型分為兩個階段,一個階段是Join階段、一個階段是Update階段。圖中的slot1,slot2指的是不同的特征,fea1,fea2表示的不同特征的不同取值,舉個例子:slot1表示用戶的興趣愛好,fea1表示足球,fea2表示籃球。不同的fea1和fea2我們會統計show和click的值,最終累加在一起,得到對應的slot1的特征的show和click值。當然show和click對應的值最終也是通過embedding化之后加入模型中訓練的。

    與之前不同的是,這里的embedding是一種動態的embedding,剛開始默認的維度可以設置為1,當show&click達到一定的閾值之后,會擴展為fix+dynamic的形式。需要注意的是在Join階段主要更新的是NN參數,從圖中也可以看出梯度只回傳到normalization就停止了,而在Update階段主要更新的是Embedding參數。

    之所以采用兩階段的訓練方式,主要是為了:

  • 保持線上線下預估的一致性

  • 線上預估embedding是pass內固定的,而Update NN學習的是動態變化的embedding的NN

至此,廣告模型初探系列完結,下一篇和大家聊聊廣告算法工程師的日常。后會有期!

歡迎關注微信公眾號:計算廣告那些事兒

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM