論文筆記《Deep Interest Network for Click-Through Rate Prediction》

這篇文章是阿里18年發的,非常經典的一個模型。paper鏈接

摘要

點擊率預測是在線廣告等工業應用中的一項基本任務。 最近,已經提出了基於深度學習的模型,該模型遵循類似的Embedding&MLP範例。在這些方法中,首先將大規模稀疏輸入特徵映射到低維嵌入向量,然後以逐組方式轉換爲固定長度向量,最後將它們連接在一起以饋入多層感知器(MLP)以學習非線性功能之間的關係。這樣,無論候選廣告是什麼,用戶特徵都被壓縮爲固定長度的表示向量。固定長度向量的使用將成爲瓶頸,這將使Embedding&MLP方法難以從豐富的歷史行爲中有效捕獲用戶的各種興趣。在本文中,我們提出了一個新穎的模型:深度興趣網絡(DIN),它通過設計一個本地激活單元來適應性地學習用戶興趣的表示,從歷史行爲到某個廣告,來解決這一挑戰。該表示向量在不同廣告上有所不同,極大地提高了模型的表達能力。此外,我們開發了兩種技術:知道小批量的規則化和數據自適應激活功能,可以幫助訓練具有數億個參數的工業深度網絡。在兩個公開數據集以及一個擁有超過20億個樣本的阿里巴巴實際生產數據集上的實驗證明了所提出方法的有效性,與最先進的方法相比,它們具有更高的性能。現在,DIN已成功部署在阿里巴巴的在線展示廣告系統中,爲主要業務量服務。

中間引言和背景介紹略過,有興趣的同學可以自己閱讀看看

4、深度興趣網絡

與主動搜索不同,用戶進入展示廣告系統時沒有明確表達其意圖。 建立CTR預測模型時,需要有效的方法來從豐富的歷史行爲中提取用戶興趣。 描繪用戶和廣告的功能是廣告系統點擊率建模的基本元素。 合理利用這些功能並從中挖掘信息至關重要

4.1 特徵表示

在工業級CTR預估任務中,數據通常是多組類目形式的,例如 [ weekday=Friday, gender=Female, visited_cate_ids={Bag,Book}, ad_cate_id=Book ] ,通常會轉爲高維稀疏的0-1二值特徵。數學上,編碼第 ii 個特徵組爲向量 tiRKi\mathrm{t}_i\in\mathrm{R}^{K_i}KiK_i 代表這個特徵向量的維度,也表示這個特徵羣組裏有 KiK_i 個唯一的 id。 ti[j]\mathrm{t}_i[j] 表示 t\mathrm{t} 的第 jj 個元素,ti[j]{0,1}t_{i}[j]\in\{0,1\}j=1Kiti[j]=k\sum_{j=1}^{K_i}\mathrm{t}_{i}[j]=k,如果 kk=1,則 ti\mathrm{t_i} 是one-hot,否則是multi-hot,於是每個樣本就可以表示爲 x=[t1T,t2T,...,tMT]T\mathrm{x}=[t_{1}^{T},t_{2}^{T},...,t_{M}^{T}]^{T}MM 表示特徵組數,i=1MKi=K\sum_{i=1}^{M}K_i=KKK是整個向量空間的維度,因此,以四個特徵組的樣本爲例,

在這裏插入圖片描述

特徵
上圖是本文所用的全部類型特徵。

4.2 base 模型(Embedding & MLP)

當前比較流行的深度模型[1, 2, 3] 都會分享一個類似的 Embedding&MLP 的例子,就像我們本文用到的 base 模型,如下圖所示,主要包含幾個部分。
base model
Embedding Layer
輸入是高維的二值向量,通過embedding 層轉爲低維的稠密向量,對於 tit_i 的第 ii 個特徵組,令 Wi=[w1i,...,wji,...,wKii]RDKiW^{i}=[w_1^{i},...,w_{j}^{i},...,w_{K_i}^{i}]\in\mathrm{R}^{D*K_i} 表示第 ii 個表徵字典,其中 wjiRDw_{j}^{i}\in\mathrm{R}^{D} 是一個D維的表徵向量,表徵操作遵循查表機制。

  • 如果 tit_{i} 是 one-hot 向量且第 jj 個元素 ti[j]=1t_{i}[j]=1,那麼 tit_i 的表徵是單表徵向量 ei=wije_i=w_{i}^{j}
  • 如果 tit_{i} 是 multi-hot 向量,其中 ti[j]=1t_{i}[j]=1 對於 j{i1,i2,...,ik}j\in\{i_1,i_2,...,i_k\},則 tit_i 的表徵是一系列表徵向量 {ei1,ei2,...,eik}={wi1i,wi2i,...,wiki}\{e_{i_1}, e_{i_2},...,e_{i_k}\}=\{w_{i_1}^{i}, w_{i_2}^{i},...,w_{i_k}^{i}\}

Pooling layer and Concat layer
注意點不用的用戶會有不同數量的行爲,因此,multi-hot 行爲特徵向量 tit_i 的非零值的數量會因實例而異,從而導致相應的嵌入向量列表的長度可變,而全連接網絡只能接受固定長度的向量,因此,需要添加一個池化層來獲取固定長度向量:
ei=pooling(ei1,ei2,...,eik)(1)\mathbb{e_i}=\mathrm{pooling}(e_{i_1},e_{i_2},...,e_{i_k})\tag{1}這裏最常用的兩個pooling 是max pooling 和average pooling。embedding層和池化層均以逐組方式進行操作,將原始的稀疏特徵映射到多個固定長度的表示向量中。 然後將所有向量連接在一起以獲得該實例的整體表示向量。

MLP
給定拼接後的稠密向量,全連接層將自動學習這些組合特徵,近期[3,4] 爲了更好地抽取特徵,重點設計了MLP的結構。

Loss
base 模型裏的目標函數是負對數似然函數:L=1N(x,y)S(ylogp(x)+(1y)log(1p(x)))(2)L=-\frac{1}{N}\sum_{(x,y)\in S}(y\log p(x)+(1-y)\log(1-p(x)))\tag{2} 其中 SS 是大小爲 NN 的訓練集,xx 是輸入,y{0,1}y\{0,1\} 是標籤,p(x)p(x) 是經過 softmax 層之後整個網絡的輸出,代表被點擊的概率。

4.3 深度興趣網絡結構

DIN 模型架構
在表1的所有特徵裏,用戶行爲特徵是非常重要的,在電子商務場景的建模中發揮了核心的作用。
base模型通過對用戶行爲特徵組裏的特徵的表徵向量做池化,得到了固定長度的用戶興趣表徵向量,對於給定的一個用戶,不管廣告位展示什麼,表徵向量都是固定不變的,這樣的話,有限維度的表徵將會成爲表達用戶興趣多樣性的一個瓶頸,爲了有更好的包容性,就得增加向量維度,但是這樣導致參數成倍增加,對於有限的訓練數據集來說會導致過擬合,並且增加額外的存儲和計算消耗,對於一個工業級的線上系統是無法容忍的。

在有限維度表徵下是否有更好的表達用戶興趣多樣性的方法?用戶興趣的局部激活特性給我們帶來啓發,設計了一個新的模型稱爲深度興趣網絡。想象一下,當上面第3節中提到的年輕母親訪問電子商務站點時,她發現顯示的新手袋很可愛,然後單擊它。 讓我們來分析一下點擊動作的驅動力。 展示的廣告通過軟搜索她的歷史行爲並發現她最近瀏覽過類似的手提袋和皮革手提袋商品,從而引起了這位年輕母親的相關興趣。換句話說,與展示廣告相關的行爲極大地影響了點擊操作。 DIN通過關注局部激活興趣的表徵來模擬此過程。關於給定的廣告, DIN不會通過使用相同的向量來表達所有用戶的不同興趣,而是通過考慮歷史行爲的相關性來自適應地計算用戶興趣的表徵向量。 對於候選廣告,此表徵向量隨不同廣告而變化。
DIN引入了一個新的局部激活單元,同時保留了其餘和base model相同的結構。特別地,激活單元應用在用戶的行爲特徵上,在給定候選廣告 A 的前提下通過加權求和池化來自適應地計算用戶的表徵 νU\nu_{U}νU(A)=f(νA,e1,e2,...,eH)=j=1Ha(ej,νA)ej=j=1Hwjej(3)\nu_{U}(A)=f(\nu_A,e_1,e_2,...,e_H)=\sum_{j=1}^{H}a(e_j,\nu_A)e_j=\sum_{j=1}^{H}w_je_j\tag{3} 其中 {e1,e2,...,eH}\{e_1,e_2,...,e_H\} 是用戶 UU 的長度爲 HH 的行爲表徵向量,νU(A)\nu_{U}(A) 隨着廣告位不同而變化,a(.)a(.) 是傳入前向網絡,輸出激活權重。
在這裏插入圖片描述
如上圖所示,輸入 user embedding 和 ad embedding,兩個向量做外積後得到新的向量,再和各自的embedding 拼接成一個大向量經過 mlp + PReLU/Dice 激活層後得到一個32維的向量,再經過一個線性變換得到輸出的激活權重。

局部激活單元和參考資料[1] 中發展的attention 方法類似,但對約束 i=1wi=1\sum_{i=1}w_i=1 放寬了,旨在保留用戶興趣的強度,也就是說,放棄了在 a(.)a(.) 輸出上使用 softmax 進行歸一化,相反,i=1wi\sum_{i=1}w_i 被認爲是某種程度上對用戶興趣強度的近似。例如,某個用戶歷史行爲裏有90%是關於衣服的,10%是關於電子產品的,給定手機和T恤的兩個備選廣告,T恤激活了絕大部分屬於衣服的歷史行爲,並且能比手機獲得更大的 νU\nu_U 值,傳統的注意力方法是通過歸一化 a(.)a(.) 的輸出而失去 νU\nu_U 數值尺度上的分辨率。

我們嘗試了LSTM以順序方式對用戶歷史行爲數據進行建模。 但這並沒有改善。 與NLP任務中受語法約束的文本不同,用戶歷史行爲的序列可能包含多個併發興趣。 這些興趣的快速跳躍和突然結束導致用戶行爲的順序數據似乎很嘈雜。 一個可能的方向是設計特殊的結構,以便按順序對這些數據進行建模。 我們將其留待將來研究。

5、訓練技巧

在阿里巴巴的廣告系統中,商品和用戶數量達到了數億。 實際上,訓練具有大規模稀疏輸入特徵的工業深度網絡是巨大的挑戰。 在本節中,我們介紹了兩種重要的技術,它們在實踐中被證明是有幫助的。

5.1 小批量感知正則化

過擬合問題是訓練工業級網絡的巨大挑戰,例如,添加細粒度特徵,像具有6億維的商品ID的特徵,模型沒有進行正則化在訓練的第一個epoch之後,性能迅速下降,如圖4所示的深綠色線
在這裏插入圖片描述
在訓練極其稀疏的輸入和擁有億級參數的網絡時,直接使用L1或者L2正則是不合理的,以l2正則化爲例。 在基於SGD的優化方法的情況下,僅需要更新每個小批處理中出現的非零稀疏特徵的參數,而無需進行正則化。但是,當添加了L2正則化後,對於每個小批量數據,需要計算全部參數的L2範數,這需要極大的計算量,當參數規模到億級別之後是不可行的。

在本文中,我們介紹了一種有效的 mini-batch 感知正則化器,它僅針對每個 mini-batch 處理中出現的稀疏特徵的參數計算L2範數,從而使計算成爲可能,實際上,正是表徵字典爲CTR網絡貢獻了大部分參數,並且增加了繁重的計算難度。令 WRDKW\in \mathrm{R}^{D*K} 表示表徵字典的參數,DD 是表徵向量空間維度,KK 是特徵向量維度,對於所有樣本,作用於 WWl2l_2 範數: L2(W)=W2=j=1Kwj22=(x,y)Sj=1KI(xj0)njwj22(4)L_2(W)=||W||_2=\sum_{j=1}^{K}||w_j||_{2}^2=\sum_{(x,y)\in S}\sum_{j=1}^{K}\frac{I(x_j\neq 0)}{n_j}||w_j||_2^{2}\tag{4} 其中 wjRDw_j\in R^{D} 是第 jj 個表徵向量,I(xj0)I(x_j\neq 0) 表示樣本 xx 有第 jj 個特徵 id,njn_j 表示特徵 jj 在所有樣本中出現的次數。預算公式(4) 在mini-batch 模式下可以轉爲公式 (5)
L2(W)=j=1Km=1B(x,y)BmI(xj0)njwj22(5)L_2(W)=\sum_{j=1}^{K}\sum_{m=1}^{B}\sum_{(x,y)\in\mathcal{B}_m}\frac{I(x_j\neq 0)}{n_j}||w_j||_2^{2}\tag{5} 其中 BB 代表mini-batch的數量,Bm\mathcal{B}_m 代表第 mm 個mini-batch,令 αmj=max(x,y)BmI(x0)\alpha_{mj}=\max_{(x,y)\in\mathcal{B}_m}I(x\neq 0) 表示在 mini-batch Bm\mathcal{B}_m 裏,至少有一個樣本有特徵 jj ,那麼(5) 式可以近似爲 L2(W)j=1Km=1Bαmjnjwj22(6)L_2(W)\approx\sum_{j=1}^{K}\sum_{m=1}^{B}\frac{\alpha_{mj}}{n_j}||w_j||_2^{2}\tag{6}
通過這種方式,我們得到了 l2\mathcal{l}_2 正則的mini-batch 近似版本,對第 mm 個mini-batch,特徵 jj 的表徵權重的梯度滿足 wjwjη[1Bm(x,y)BmL(p(x),y)wj+λαmjnjwj],(7)w_j\leftarrow w_j-\eta \Big [ \frac{1}{|\mathcal{B}_m|}\sum_{(x,y)\in \mathcal{B}_m}\frac{\partial L(p(x),y)}{\partial w_j}+\lambda \frac{\alpha_{mj}}{n_j}w_j\Big ],\tag{7}只有在 mini-batch 裏出現的特徵的參數纔會參與計算正則化。

5.2 數據自適應激活函數

PReLU是一個非常常見的激活函數 f(x)={s,if s > 0αs,if s  0=p(s)s+(1p(s))αs(8) f(x)=\begin{cases} s , &\text{if s $\gt$ 0} \\ \alpha s, &\text{if s $\leq$ 0} \end{cases} =p(s)\cdot s + (1-p(s))\cdot \alpha s\tag{8} 其中 ss 是輸入的激活函數 f(.)f(.) 的一個維度。p(s)=I(s>0)p(s)=I(s>0) 是示性函數,α\alpha 是學習參數。
在這裏插入圖片描述
可以看到PReLU激活函數在0點有一個跳躍,是不連續的,當每一層的輸入是屬於不同分佈的時候這種情況就不太合理,因此我們設計了一個新的激活函數 Dice f(s)=p(s)s+(1p(s))αs,f(s)=11+esE[s]Var[s]+ϵ(9)f(s)=p(s)\cdot s+(1-p(s))\cdot\alpha s, f(s)=\frac{1}{1+e^{-\frac{s-E[s]}{\sqrt{Var[s]+\epsilon}}}}\tag{9} 在訓練階段,E[s],Var[s]E[s],Var[s] 是每個輸入mini-batch 的均值和方差,在測試階段, E[s],Var[s]E[s],Var[s] 通過計算數據的移動平均E[s],Var[s]E[s],Var[s]得到。ϵ\epsilon 是一個小的常量,通常設置爲 1e-8
Dice 可以看做是PReLU的泛化版。 Dice的關鍵思想是根據輸入數據的分佈來自適應地調整糾正點,其值設置爲輸入的平均值。 此外,Dice控制流暢,可在兩個通道之間切換。 當 E[s]E[s] = 0且 Var[s]Var[s] = 0時,Dice 退化爲PReLU

參考文獻:
1、Paul Covington, Jay Adams, and Emre Sargin. 2016. Deep neural networks for youtube recommendations. In Proceedings of the 10th ACM Conference on Recommender Systems. ACM, 191–198.
2、Cheng H. et al. 2016. Wide & deep learning for recommender systems. In Pro- ceedings of the 1st Workshop on Deep Learning for Recommender Systems. ACM.
3、Ying Shan, T Ryan Hoens, Jian Jiao, Haijing Wang, Dong Yu, and JC Mao. Deep
Crossing: Web-scale modeling without manually crafted combinatorial features.
4、Qu Y. et al. 2016. Product-Based Neural Networks for User Response Prediction. In Proceedings of the 16th International Conference on Data Mining.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章