阿里媽媽DIN模型(Deep Interest Network)

轉:https://blog.csdn.net/yujianmin1990/article/details/80712219

前言

  阿里的商業廣告CTR預測,使用了最新的Attention機制,我們來看一下是怎麼用的,在相關的推薦工作中借鑑下經驗。

爲什麼用Attention

爲什麼要用attention?
  1) 業務中的發現,用戶的歷史行爲數據,並不都對每一次的點擊做貢獻,而是僅僅有一部分在起作用。這就很像attention了,告知某些點上是與當前的狀態最相關的。
  舉個栗子:一個愛好游泳的人,購買過泳衣,也購買過書籍,那麼這次的廣告裏面,泳鏡就更容易受到泳衣購買歷史的影響。文中提到的“local activation”的用戶特性。
  2) 在應用其他的算法時,發現會將好多Embedding的特徵,直接做累加等combinear等操作,簡單粗暴有效,卻會丟失好多信息。如果能在這裏做些工作,會有更好的效果。
  思考:在廣告裏面是這樣的,那麼在圖文中是不是也有這樣的特性。人的基本行爲特點是不變的,也具有這樣的特性僅部分歷史行爲對當前的點擊是貢獻最大的,而其他的可能就沒啥貢獻或者較少。實時反饋,是實時的attention,只不過偏近視,目光不長遠。

怎麼用

  上個圖,比較下一般的模型與DIN模型的差別,就知道在哪裏具體使用Attention了。


  attention在這裏的實際意義是:每個Ad,都有一堆歷史行爲對其產生attention的影響分,這些attention分值與歷史行爲共同對這個Ad下的用戶表示做加權。(可以將行爲結構信息保留下來,並且提供了注意焦點)將上圖中改進的地方展開,如下:
  用戶在某個廣告下的Embedding表示Vu(Va)Vu(Va)是廣告的Embedding表示。

其他亮點

Evaluate Metric

GAUC: generation of AUC
  單純地用AUC評估,會帶有用戶偏差,若是將用戶信息考慮進來則會更穩定更可信。

GAUC=ni=1wiAUCini=1wiGAUC=∑i=1nwi∗AUCi∑i=1nwi
可以是clicks或者impressions。這中AUC也應該是在個性化推薦裏面更適合的,用戶每個個體都有自己的AUC,這樣纔對嘛。

Dice Activation

  一般的激活函數已經不能滿足需求了,比如PReLU,這幫子人造了個強依賴數據的激活函數,根據數據動態地調整rectified-function。


  其中PReLU是:f(s)={sass>0s0f(s)={ss>0ass≤0

Regularization

  稀疏輸入,爲什麼會overfitting呢?這個跟數據分佈有關係,互聯網時代的數據特點,超長尾頭部重,頭重(小比例的特徵頻繁出現)容易過擬合,長尾(大比例的特徵低頻出現)則容易帶來噪聲,不好學。當增加細粒度的特徵時,也極其容易由於細粒度的樣本過於密集而帶來負面效果。怎麼辦呢?在這裏根據樣本在當前batch內出現的頻次做了正則約束。LL

思考

  1. 圖文推薦也可以使用Attention來專門處理推薦時的part-contribution問題,補充實時反饋的缺陷。
  2. 大規模的稀疏數據,需要特別小心處理長尾頭重問題,這裏使用的改進版正則和激活是值得借鑑的。
  3. 離線評估的GAUC更穩定可信,再上線A/B。

Reference

  1. 2017- Deep Interest Network for Click-Through Rate Prediction paper
  2. 2018- Deep Interest Network for Click-Through Rate Prediction paper
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章