本人才疏學淺,不足之處歡迎大家指出和交流。
本週更新,今天繼續更阿里系CTR模型三部曲之二,一起學習吧。
今天要分享的是阿里針對
電子商務領域
的CTR預估的Deep Interest Evolution Network理論,針對DIN做出了相關改進。該模型
要點為
:主要解決DIN無法捕捉使用者興趣的動態變化性的缺點,提出了興趣抽取層Interest Extractor Layer、興趣進化層Interest Evolution Layer。
原文:《Deep Interest Evolution Network for Click-Through Rate Prediction》
1。 背景
這裡略去相關的背景介紹,有關DIN和Base Model的細節請大家參閱上一篇文章:
在前文DIN中提到的觀點是:
(1)
在電商平臺中,使用者行為是興趣的載體,且是以時間而產生的序列資料,其間存在的依賴、次序隱藏著使用者喜好。
(2)
當前時刻的興趣直接導致了下一行為的產生。因此設計了DIN模型將使用者的歷史行為來表示使用者的興趣,透過attention來捕獲和目標物品相關的興趣。
但是在電商推薦的場景下,可以觀察到
使用者的興趣是不斷變化
的。例如使用者對衣服的喜好,會隨季節、時尚風潮以及個人品味的變化而變化,呈現一種連續的變遷趨勢。這說明使用者的興趣是不斷進化的,而DIN抽取的使用者興趣之間是獨立無關聯的,沒有捕獲到興趣的動態進化性,這是需要解決的第一個問題。
其次在淘寶平臺中,使用者的興趣是豐富多樣的,且每個興趣的演變基本互不影響。此外,影響最終行為的僅僅是與目標商品相關的興趣。所以DIEN仍然採用了attention機制,
捕獲與目標商品相關商品的興趣發展路徑
。
總結:
DIEN最大的特點是不但要找到使用者的interest,還要抓住使用者interest的進化過程。作者們將GRU融合到網路中,從而捕獲到變化的sequence。
DIEN關注電商場景中興趣演化的過程,並提出了新的網路結構來建模興趣進化的過程,這個模型能夠更精確的表達使用者興趣,同時帶來更高的CTR預估準確率。
設計了興趣抽取層,並透過計算一個輔助loss,來提升興趣表達的準確性。
設計了興趣進化層,來更加準確的表達使用者興趣的動態變化性。
2、模型
DIEN模型整體結構如下:
可以看到,新模型較之於base model和DIN,其他部分保持一致,變化只在於使用者行為序列(UBS)的處理做了調整,將其組織成了序列資料的形式。這裡包含了3個部分,最底層是Behavior Layer,用於將使用者瀏覽過的商品轉換成對應的embedding,並且按照瀏覽時間做排序,中間層是興趣提取層Interest Extractor Layer,最上層是興趣發展層Interest Evolving Layer,我們重點介紹上面兩個Layer。
2.1、
興趣抽取層Interest Extractor Layer
如上圖中黃色區域所示,興趣抽取層Interest Extractor Layer的主要目標是從embedding資料中提取出interest。但一個使用者在某一時間的interest不僅與當前的behavior有關,也與之前的behavior相關,所以作者們使用GRU單元來提取interest,GRU輸出h(t)如下所示:
這裡可以認為h(t)是提取出的使用者的
初步興趣表示
,為了更好地表達使用者的興趣,作者還為興趣抽取層引入了一個有監督學習:輸入是按照時間步排列的商品embedding向量,假設第t個時間步輸入e(t),GRU輸出隱單元h(t),令下一個時間步的輸入向量e(t+1)作為正樣本,隨機取樣負樣本
,且
,h(t)與正負樣本向量分別做內積,得到預測結果,並引入一個輔助的logloss:
二分類模型
輔助loss
是CTR任務的logloss函式,將CTR的loss和輔助loss相加定義為整個網路的loss進行最佳化。
是超引數來平衡兩個loss的權重。這裡輔助loss有幾個好處,當GRU處理較長序列的時候有助於降低反向傳播的難度,對於商品embedding的學習也有助益。
整體loss
2.2 興趣進化層Interest Evolution Layer
有了使用者的興趣表示,Evolution Layer的主要目標就是去刻畫使用者興趣的演變過程(
觀測到興趣隨環境和認知的變化而變化
)。因此作者設計了AUGRU結構,用attention機制來區域性啟用與
目標商品相關的區域性興趣
,並對存在於這些興趣之間的依賴建模,捕捉興趣的演變過程。
具體如模型中紅色區域所示,這裡使用了第2個GRU。將目標商品的embedding向量與第1個GRU的輸出隱向量發生互動,生成attention score,計算公式如下所示:其中,
是隱向量,
是目標商品的嵌入向量,W是需要訓練的引數矩陣。最後用softmax對attention score進行歸一化。
對於如何結合attention和GRU,文中介紹了三種方式:
GRU with attentional input (AIGRU)
用attention直接影響這一層的輸入:
2. Attention based GRU(AGRU)
用
代替GRU的update gate輸出:
3。
GRU with attentional update gate (AUGRU)
用
影響GRU的update gate輸出(保留每個維度的影響):
簡單分析一下:先從AIGRU開始,從上面的公式中可以看出,AIGRU 啟用區域性興趣和捕獲興趣演變的過程是相互獨立的。僅僅是用attention來影響GRU的輸入,且即便輸入為 0(無關的興趣)也還是會對hidden state產生影響;
AGRU用
替代 GRU 的 update gate,直接控制 hidden state 的更新,將 attention 機制融入到了捕獲興趣演變的過程中,一定程度上彌補了 AIGRU 的不足。
但是,原先 GRU 中控制 hidden state 更新的是一個包含多個維度的向量,AGRU 用純量替代略有不妥,因此這篇文章設計了 AUGRU,用 #FormatImgID_30# 影響 #FormatImgID_31# ,以間接作用於 hidden state的更新。
3、實驗
文章在公共資料集Amazon Dataset和工業資料集上都做了實驗,並選取了不同的對比模型,離線實驗結果如下:
其他相關實驗細節參閱原論文,接下來會更新阿里系CTR預估第三篇DSIN。
實現DIEN的一個Demo,感興趣的童鞋可以看下我的[github]。