深度CTR之DIN:基於深度興趣網絡的點擊率預估模型

1.paper介紹

該模型於KDD2018上發表,由阿里媽媽廣告技術團隊推出。
文章題目-《Deep Interest Network for Click-Through Rate Prediction》

在廣告點擊率預估中,深度模型常見架構爲Embedding&MLP。在模型的輸入階段,不管 ad_id 是什麼,輸入特徵都會被壓縮成一個定長的向量表達,這會使得模型遇到一個瓶頸:定長的向量無法從豐富的行爲數據中捕捉到用戶廣泛的興趣偏好。
DIN模型提出了局部興趣單元的結構,來從歷史行爲數據中自適應的學習到用戶對於廣告的興趣,提高了模型的表達能力。除DIN模型本身外,paper針對工業界深度模型的訓練,提出了兩個訓練模型的trick:小批量感知的正則化技術、數據自適應激活函數。具體解釋下小批量感知的正則化技術的原理:我們在模型的結構損失函數(例如常用的二分類的交叉熵函數)上一般會再加上一個正則化約束,常用的爲l2正則,我們在訓練每個mini_batch時候,計算當前batch的損失函數值時,在l2正則部分會計算上所有模型參數,對於複雜的模型,這會帶來巨大的計算量,paper的小批量感知正則化只需要對當前的mini-batch中非零特徵的參數計算其正則,這大大減少了計算量。
DIN在兩個公開數據集以及阿里巴巴公開的真實生產數據集上的實驗證明,DIN爲當前最優的CTR預估模型。

用戶的不同興趣都是通過用戶行爲來表達的,但是用戶的所有興趣都被壓縮成爲一個定長的向量,這限制了Embedding&MLP模型的的表達能力。一個直接的解決方式是通過增加定長向量的長度來增加模型的表達能力,但是這會帶來幾個缺點:1)擴大參數數量,在有限的數據下增加了模型過擬合的風險;2)增加了計算和存儲的壓力,這在實際工業系統中是不可接受的。

基於給定的候選廣告,通過考慮歷史行爲中的相關因素來自適應地計算用戶興趣的向量表達。DIN引入了局部激活單元,其作用是:基於給定候選廣告,從用戶歷史相關的行爲中軟搜索出用戶相關的興趣,局部激活單元只關注與候選廣告相關聯的用戶興趣部分,並且計算用戶各個興趣的加權和來表達用戶興趣。其中與候選廣告相關性越高的行爲將會獲得越高的機會權重並主導用戶興趣的表達。paper在實驗部分可視化了對於不同的廣告,用戶不同的興趣向量的表達情況,這種差異性增強了DIN模型的表達能力,幫助模型能夠捕捉到用戶不同的興趣。

2.其他深度CTR模型

這一塊,除了列舉業界常見的DeepCTR模型,因爲paper種引入了局部激活module,因此paper作者對於attention相關的技術也有過深入的調研和了解。paper種在DeepCTR技術、attention技術以及結合了attention的DeepCTR技術的實現上,舉的例子有NNLM、LS-PLM、FM,以及Deep Crossing、Wide&Deep Learning、YouTube Recommendation CTR,這三個相似結構的模型對於LS-PLM 和 FM的改進是將transforming function替換爲MLP 網絡,哈哈哈,尤其注意的只,這裏提到的了YouTube Recommendation CTR模型中,對於歷史點擊視頻通過計算sum/avg pooling的方式將定長的向量輸入到模型中,這種方式無法很多信息的丟失,例如無法捕獲到局部行爲的重要信息,而本paper中的DIN模型也很好的解決了這個問題。其他模型還包括PNN、DeepFM,NMT網絡也是paper重點提到的模型,也算是本apper種的局部激活模塊的思想來源,即注意力機制的權重加和。

3.要解決問題的背景

paper中提到的ads都是goods,阿里巴巴的展示廣告系統分爲match和ranking兩個階段,用戶每天在網站上留下了豐富的行爲數據,這些數據用在匹配模型和排序模型中發揮了很大的作用。一個比較值得注意的是,用戶豐富的行爲中包含了多種多樣的興趣愛好,paper中舉了一個很容易理解的例子,一位媽媽歷史瀏覽過羊絨大衣、耳環、T恤、寶寶外套等,而當她瀏覽網站時,系統只給她展示一個新款手提包的話,這對於她的多種興趣而言,只展示一小部分她感興趣的商品,比較有侷限性。上面的bad case總結起來就是:一個具有豐富行爲的用戶,其興趣愛好可能是多種多樣的,而且每種興趣是可以通過特定的廣告去激活的(用戶的興趣可能很多,而一種廣告只能激活其中一種興趣或者少部分興趣,所以興趣是進行局部激活的)
在這裏插入圖片描述

4.DIN

展示廣告與搜索廣告在點擊率預估上的不同之處在於,展示廣告無法感知用戶明顯的意圖,因此從用戶豐富的歷史行爲數據中挖掘出有效的特徵至關重要,因此這部分paper首先介紹了DIN中的特徵表達部分,然後是基模型,最後是對DIN模型的介紹。

4.1 特徵表達

由於是深度網絡,DIN網絡的輸入中不包含任何交叉特徵,只通過深度網絡模型來做交叉。

工業界CTR預估的數據集大多數是以多個離散(類別型)特徵存在的。對於離散特徵,paper中主要列出了one-hot和multi-hot這兩種。
特徵i的維度爲K_i,即特徵i包含K_i個不同的ids取值,對特徵i進行編碼之後的向量爲t_i,如公式1,而t_i[j]表示t_i的第j個元素,且t_i[j]的取值範圍爲{0,1}。公式2中當k=1時,向量t_i表示one-hot編碼,當k>1時,向量t_i表示multi-hot編碼。
tiRKi(1) t_i \in R^{K_i} \qquad (1)
j=1Kiti[j]=k(2) \sum_{j=1}^{K_i}t_i[j]=k \qquad (2)
一個具體的例子是,特徵x以多個特徵羣的形式表示,如公式3所示,公式中的M表示特徵羣的數量。公式4中的K表示全部特徵空間的維度。
[t1T,t2T,...tMT]T(3) [t_1^T, t_2^T,...t_M^T]^T \qquad (3)
i=1MKi=K(4) \sum_{i=1}^{M}K_i=K \qquad (4)

對於工業實際中,對於包含4類特徵的特徵羣[weekday=Friday, gender=Female, visited_cate_ids={Bag,Book}, ad_cate_id=Book]來說,其對應的編碼如公式5所示。
[0,0,0,0,1,0,0]weekday=Friday,[0,1]gender=Female,[0,,1,,1,,0]visited_cate_ids={Bag,Book},[0,,1,,0]ad_cate_id=Book(5) \underbrace{[0,0,0,0,1,0,0]}_{weekday=Friday}, \underbrace{[0,1]}_{gender=Female},\underbrace{[0,\dots,1,\dots,1,\dots,0]}_{visited\_cate\_ids=\{Bag,Book\}},\underbrace{[0,\dots,1,\dots,0]}_{ad\_cate\_id=Book} \qquad (5)
paper中實際使用到的特徵如表(1)所示。可見主要包含用戶畫像特徵、用戶行爲特徵(包括商品、店鋪、品類從細到粗三個粒度)、廣告特徵(包括商品、店鋪、品類從細到粗三個粒度)、上下文特徵這四類,可見所有sparse特徵一共是上億維度,這也是爲什麼通常在廣告等推薦任務中特徵維度動輒上億的原因了。
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-2H5M2CSC-1578126226333)(evernotecid://AFC3459F-70B1-4432-9FEA-943ED3F7E284/appyinxiangcom/22185754/ENResource/p309)]

4.2 基模型(Embedding&MLP)

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-aBsU09Yf-1578126226334)(evernotecid://AFC3459F-70B1-4432-9FEA-943ED3F7E284/appyinxiangcom/22185754/ENResource/p310)]
基模型如圖左邊所示。

4.3 DIN的模型結構

基於之前對定長的用戶行爲向量的輸入的侷限性,paper打算在有限的向量維度下表達用戶多種不同的興趣,而用戶興趣的局部激活特性啓發了我們去設計了一個叫做DIN的新穎模型。

用戶興趣的局部激活特性是指:用戶對T恤的興趣來源於用戶歷史點擊過T恤,用戶對寶寶外套的興趣來源於用戶歷史點擊過寶寶上衣,,,即用戶的興趣I是僅僅是由其歷史行爲的某一個或幾個行爲反應的,所以說用戶興趣I是被用戶的局部歷史行爲激活的,也就是局部激活特性。

再距離前面說到的媽媽用戶,她在展示的廣告上看到了一個包發現其很可愛並且點擊了它,那麼讓用戶去點擊這個展示的可愛的包的驅動力是什麼呢?展示廣告是通過這樣的一個過程命中了該用戶的相關興趣:軟搜索用戶歷史行爲,然後發現該用戶歷史瀏覽過類似的手提袋和皮革手袋。也就是說,與展示的廣告相關的歷史行爲驅動了用戶的改次點擊行爲。
DIN模型模仿了這樣一個注意力機制的過程,即以給定的廣告爲出發點,需要關注局部激活興趣的表達(指相關聯的歷史行爲),在此基礎上,DIN會自適應地計算用戶興趣的表達向量,這使得在不同的廣告上,這個表達向量也會不同。

DIN所設計的局部激活單元模塊,只作用在用戶行爲特徵上(即用戶點擊行爲),即作爲一個加權池化來自適應計算用戶表達向量vU(在給定候選廣告A的情況下),

υU(A)=f(υA,e1,e2,,eH)=j=1Ha(ej,υA)ej=j=1Hwjej(6) \upsilon_U(A) = f(\upsilon_A, e_1, e_2,\dots,e_H) = \sum_{j=1}^{H}a(e_j, \upsilon_A)e_j = \sum_{j=1}^{H}w_je_j \qquad (6)
其中 {e1, e2, …, eH } 表示用戶行爲的embedding向量的列表(長度爲H,表示該用戶有H個信行爲),vU(A)是廣告A的向量,因此vU(A)對於不同的廣告將會各不相同。a(·)是一個前向網絡,其輸出作爲激活權重值(是標量)。因此對於不同的廣告id,vU(A)就會有不同的取值,在激活權重的計算中,除了兩個embeddibng向量作爲輸入之外,這兩個向量的乘積也會被喂到之後的網絡中,該網絡是幫助進行相關性建模的顯性知識。

公式(6)中的局部激活單元和attention方法(來源於NMT任務)有着相似的思想,但是與傳統的attention機制的不同之處在於,本paper中的局部激活單元放鬆了對於\sum_i w_i = 1的限制,目的是爲了保留用戶興趣的強度。因此,也就不需要使用softmax對輸出a(·)進行歸一化了,而在某種程度上,\sum_i w_i本身也就可以作爲對用戶已激活興趣強度的近似值。

例如一個用戶歷史行爲中90%的都是跟衣服相關而只有10%的跟電子產品相關,現在有兩個候選廣告爲T恤和iphone,那麼T恤廣告將會激活大部分屬於衣服的歷史行爲,並能計算得到更高的用戶興趣強度(相比於iphone廣告)。而傳統的attention機制標準化了a(·)的輸出,但是也失去了數值尺度的分辨率沒有(即興趣的強度)。

針對用戶興趣多樣,且不同的候選廣告對用戶歷史行爲的關聯應該有所不同,基於這種考慮,paper中提到了使用局部激活單元進行用戶興趣建模。

同時用戶歷史行爲本身是一種序列式的行爲,那麼針對用戶這種序列行爲數據,能不能做更多的工作呢?paper中也嘗試使用了LSTM網絡模型,嘗試從用戶序列行爲中挖掘出更多的有效信息,但是實驗結果沒有明顯的提升,paper分析其中的原因,因爲用戶的歷史行爲序列中可能包含了多種不行的興趣,這與NLP任務中具有語法限制的特點具有不同之處。針對興趣的快速跳轉和突然結束用戶會導致用戶行爲序列數據有噪聲,處理這種問題的一個可能方式是設計合適的模型結構,這個留給未來~。

5 訓練技巧

5.1 Mini-batch Aware Regularizaion(最小批感知正則化)

針對L2正則化技術在DIN中做了改進。我們知道在不加入L2正則化的時候,即損失函數中只有經驗風險時,只有那些在mini-batch中出現的稀疏特徵纔會在本次迭代中進行參數更新(有非0的梯度值),而當加上L2正則的時候,是對所有參數都做正則,而在有大量稀疏特徵的工業CTR預估任務中,這會導致計算量大幅增加(DIN模型中的大部分參數淶源就是稀疏特徵的embeddding操作),導致優化不可進行。因此,DIN將L2的對所有參數正則化的方式修改爲只對出現在mini-batch中的特徵做正則化,這可以大大較少計算量。
在這裏插入圖片描述
在這裏插入圖片描述
其中,B表示總共的mini-batch數量, Bm表示第m個mini-batch。
在這裏插入圖片描述
αmj表示在mini-batch Bm中是否至少有一條樣本具有特徵j,那麼:
在這裏插入圖片描述

在這裏插入圖片描述

5.2 Data Adaptive Activation Function(數據自適應激活函數)

原始PRelu公式爲:
在這裏插入圖片描述
其中公式(8)p(s)爲控制器,用來控制f(s)再兩個channel之間切換,α是一個需要學習的參數。

PReLU是一個硬修正點,但是當每層的輸入分佈不一致時,硬修正點就不太合適了,針對這個問題,paper中設計了一個叫做Dice的數據自適應激活函數,如下:
在這裏插入圖片描述
其中公式(9)中,在訓練環節,E[s]和Var[s]分別表示當前mini-batch的數據的均值和方差;在測試環節,E[s]和Var[s]是根據數據中的移動平均的E[s]和Var[s]值來確定的。

Dice函數的核心思路是:可以根據輸入數據的分佈自適應調整修正點(Dice中的修正點等於輸入數據的均值),修正點是指兩個channel的分割點。

6 實驗過程和結果

paper在三個數據集上進行的實驗,其中包含兩個公開數據集和一個阿里巴巴展示廣告系統下的真實數據集,具體數據情況見下表,實驗中的數據集的使用方式以及參數的設置,具體參考原文。
在這裏插入圖片描述

主要對比的模型包括:
LR、BaseModel(Embedding&MLP)、Wide&Deep、PNN、DeepFM這五類模型。

6.3 指標

在ctr預估任務中,常見的評估指標是AUC,它是通過對所有有預測結果ctr值的廣告進行排序,並評估排序結果的好壞程度,被排序的廣告包括用戶內的廣告以及不同用戶間的廣告(一個用戶展示有多條廣告,同時有很多用戶都有展示廣告)。AUC的一個變體是加權AUC,它計算的是不同用戶的AUC的平均值,每個用戶的AUC是通過評估用戶自己的廣告的排序結果的好壞程度得到的,這種評估方式與展示廣告系統的在線效果更加相關。paper中也採用了這種評估方式,具體的這種變體AUC的計算公式如下:
AUC=i=1n#impressioniAUCii=1n#impressioni(10) AUC = \frac{\sum_{i=1}^{n} \#impression_i*AUC_i}{\sum_{i=1}^{n}\#impression_i} \qquad (10)
上式中的n表示用戶數量,#impression_i表示爲第i個用戶展示的廣告的數量,AUC_i表示第i個用戶的AUC。

除此之外,paper中也參考[2]引入了RelaImpr的效果評估方式來衡量模型的相對提升。當隨機猜測時,AUC值爲0.5,因此RelaImpr計算公式如下:
RelaImpr=(AUC(measuredmodel)0.5AUC(basemodel)0.51)100%(11) RelaImpr = (\frac{AUC(measured model) - 0.5}{AUC(base model) - 0.5} - 1) * 100\% \qquad (11)
其實公式(11)等價於:
RelaImpr=(AUC(measuredmodel)0.5AUC(basemodel)0.51)100% RelaImpr = (\frac{AUC(measured model) - 0.5}{AUC(base model) - 0.5} - 1) * 100\%
=(AUC(measuredmodel)0.5(AUC(basemodel)0.5)AUC(basemodel)0.5)100% \qquad\qquad = (\frac{AUC(measured model) - 0.5 - (AUC(base model) - 0.5)}{AUC(base model) - 0.5}) * 100\%
=AUC(measuredmodel)AUC(basemodel)AUC(basemodel)0.5100%(12) \qquad\qquad = \frac{AUC(measured model) - AUC(base model)}{AUC(base model) - 0.5} * 100\% \qquad (12)
而我們平時在衡量模型的相對提升Impr時一般用下面的公式:
Impr=AUC(measuredmodel)AUC(basemodel)AUC(basemodel)100%(13) Impr = \frac{AUC(measured model) - AUC(base model)}{AUC(base model)} * 100\% \qquad (13)
公式(12)和公式(13)的唯一區別在分母上,RelaImpr的想法應該是:隨機猜測的AUC既然是0.5,所以我實驗模型的提升肯定是在0.5之上的AUC部分額外提升的,因爲最壞的情況下AUC已經是0.5了。在計算結果上RelaImpr肯定是大於Impr,這樣模型對比的實驗效果提升數據也更加漂亮了,哈哈。另外一個值得注意的是,RelaImpr的結果是可能大於100%的,而Impr是不可能大於100%的。

6.4 在Amazon Dataset 和 MovieLens Dataset上的實驗結果對比

在這裏插入圖片描述

6.5 正則化的效果

由於Amazon和movie數據集的特徵維度都不是很高,對比模型實驗中都沒有遇到過擬合的問題,但是當實驗alibaba的廣告數據集時,過擬合的問題非常嚴重,因此paper中實驗了各種正則化技術,包括在前面提到的改進的L2正則化技術MBA:Mini-Batch Aware regularization method。結果顯示MBA方法效果最好

在這裏插入圖片描述

6.6 在Alibaba Dataset上的實驗結果對比

在這裏插入圖片描述

相比於其他模型,DIN主要在三個方面有了較大的改進:

  1. 局部激活單元的引入;
  2. 數據自適應激活函數Dice;
  3. 小批量感知的正則化技術MBA。

6.7 在線AB測的結果

具體見paper中,兩點:

  1. 收益非常明顯;
  2. 做inference計算的實時性能上做了CPU-GPU端的各種優化,收益明顯。

6.8 DIN的可視化

在這裏插入圖片描述
與候選廣告相關性高的行爲獲得了更高的激活權重值

在這裏插入圖片描述
可視化了不同品類的降維可視化結果,以及預測結果的激活強度。

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