DIN:Deep Interest Network for Click-Through Rate Prediction論文筆記

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

論文地址:Deep Interest Network for Click-Through Rate Prediction

摘要

??點擊率預估是在線廣告等工業(yè)中一項重要的任務。最近基于深度學習的模型被提出,都是采用了相似的embedding&MLP結構。在這些方法中都是首先將大規(guī)模的稀疏特征映射到一個低維的向量,然后每種類型的特征轉化為一個固定的長度向量,最后拼接在一起喂到MLP,以學習特征之間的非線性關系。通過這種方式,不管候選廣告是什么,用戶的特征被壓縮到固定長度的表征向量。使用固定長度的向量將成為瓶頸,因為通過embedding&MLP的方式很難從豐富的歷史行為中捕捉到用戶的多元化興趣。在這篇文章中,我們提出了一個新穎的模型:Deep Interest Network(DIN)解決這個問題,它是通過設計一個本地激活單元來自適應的學習用戶歷史行為關于候選廣告的興趣表現(xiàn)。這個表征想量會隨著候選廣告不同而不同,大大提高了模型的表達能力。另外,我們提出兩個技術:小批量感知正則化( mini-batch aware regularization ) 和 數(shù)據(jù)自適應激活函數(shù)(dataadaptive activation function),這有助于工業(yè)中含有數(shù)億參數(shù)的深度網(wǎng)絡訓練。在兩個公共數(shù)據(jù)集和超過20億樣本的阿里真實生產(chǎn)數(shù)據(jù)集進行實驗表明了本文的方法的有效性,與至今最先進的技術相比,具有更好的效果。DIN目前已經(jīng)成功部署到阿里巴巴的在線廣告系統(tǒng)中,服務于主要流量。

1 介紹

??在CPC廣告系統(tǒng)中,廣告是通過eCPM(effective cost per mille,每千次有效曝光成本)進行排序的,即出價價格與CTR的乘積進行排序,這里CTR需要由系統(tǒng)進行預估。因此,CTR預測模型的性能直接影響了最終的收益并在在線廣告體系中起到關鍵的作用。CTR模型預估在學術和工業(yè)界收到了更多的關注。
??最近受到計算機視覺和自然語言處理中的深度學習的啟發(fā),基于深度學習的一些CTR預估方法被提出,這些方法都是采用了相似的embedding&MLP結構:大規(guī)模的稀疏特征首先映射到低維向量中,然后按特征類型轉為到一個固定長度的向量,最后拼接在一起喂到全連接層中,以學習這些特征直接的非線性關系。相比較LR模型,這些深度模型可以減少很多特征工程的工作并且大大的提高了模型的性能。為了簡單,這邊將這些方法命名為embedding&MLP,這些方法已經(jīng)成為了主流的CTR預估方法。
??然而在embedding&MLP中用戶的表征向量被限制在一個固定的長度,這種方式將成為表現(xiàn)用戶多元興趣的一個瓶頸。以電子商務廣告中的展示廣告為例。當用戶在瀏覽電子商務網(wǎng)站時可能同時對多種不同的類型的商品感興趣。也就是說,用戶的興趣是多元的。當涉及到CTR預估時,用戶的興趣通常從他的歷史行為中挖掘。Embedding&MLP方法是將一個用戶的所有行為轉為為一個固定長度的向量來學習所有的興趣表征,所有的用戶表征向量都是在一個歐式空間。換句話說,用戶的多元興趣被壓縮到一個固定長度的向量,這限制了Embedding&MLP的表達能力。這個特征向量為了能充分的捕捉用戶的多元興趣,這個固定長度的向量的維度被擴大。不幸的是,這將極大擴大了學習參數(shù)的個數(shù),也加大了在固定數(shù)據(jù)量下過擬合的風險。另外,這個加大了計算和存儲的負擔,對于工業(yè)在線廣告體系中這可能是不被允許的。
??另外一方面,在預測候選廣告時,沒有必要將用戶的多元化興趣壓縮到相同的向量,因為只有一部分人的用戶興趣會影響他的行為(點擊或者不點擊)。例如,一位女游泳運動員會點擊護目鏡,這主要因為她在她上周得購物清單中購買了泳衣而不是鞋子。受此激發(fā),我們設計了一個新穎的模型:Deep Interest Network(DIN),它可以考慮候選廣告和用戶歷史行為的相關性來自適應的學習用戶興趣的表征向量。通過引入一個本地激活單元,DIN通過歷史行為的相關部分進行軟搜索來關注相關的用戶興趣(這里我是這理解的,通過候選廣告用激活單元的方式對用戶的歷史行為進行一個一個的匹配-軟搜索,從而從用戶的歷史興趣興趣中獲取與候選廣告相關的興趣),并通過加權相加池化操作獲得在給定后續(xù)廣告的用戶興趣表征。與候選廣告相關的用戶歷史行為將會獲得更高的激活權重,并主導用戶興趣的表征。我們在實驗部分進行可視化這個現(xiàn)象。通過這種方式,用戶興趣的表征向量會隨著候選廣告不同而不同,這提高了在限制維度下的模型表達能力,并是得DIN可以更好的捕捉用戶多元化興趣。
??在工業(yè)場景下具有大規(guī)模稀疏特征的深度學習的訓練是一個很大的挑戰(zhàn)。例如,基于SGD的優(yōu)化方法只回更新出現(xiàn)在小批量中的稀疏特征的參數(shù)。然而,增加傳統(tǒng)的L2正則,這個計算量將變?yōu)椴豢山邮艿?,因為它需要計算全部參?shù)(在我們場景規(guī)模可達到十億界別)的l2范式。在這邊文章,我們提出了一個新穎的小批量感知正則化方法,只有小批量中出現(xiàn)非零特征參與到l2范式計算,這種方式使得計算成為可能。另外,我們設計了一個數(shù)據(jù)激活函數(shù),它是PReLU的一種推廣,通過自適應的調節(jié)輸入分布的糾正點,這對具有稀疏特征的工業(yè)網(wǎng)絡訓練具有一定的作用。
本文的貢獻如下:

  • 我們指出使用有限制的固定長度的向量來表示用戶的興趣,設計了一個新穎的DIN網(wǎng)絡結構,它是通過引入本地激活單元自適應性的學習關于給定候選廣告的用戶歷史行為序列的興趣表示。DIN可以大大的提高模型的表達能力,更好的捕捉用戶的多樣化興趣特征。
  • 我們提出兩種新穎的技術去幫助工業(yè)場景下的深度網(wǎng)絡訓練。1)小批量感知正則化,這節(jié)省了深度網(wǎng)絡中大量參數(shù)的正則化計算,也有利于避免過擬合。2)數(shù)據(jù)自適應激活函數(shù),它是考慮到輸入的分布情況來生成PReLU,展示了好的性能。
  • 我們在公共數(shù)據(jù)集和阿里的數(shù)據(jù)集上進行大量的實驗。結果證實了DIN和(我們提出的)訓練技巧的有效性。代碼也開源出去了。我們方案已經(jīng)被阿里巴巴(世界上最大廣告平臺之一)在線廣告平臺采用,并且為公司業(yè)務帶來了顯著的提升。

??在本文中,我們重點關注商務行業(yè)中廣告場景中的CTR模型。這里討論的方法同樣適合于具有豐富用戶行為的類似場景,例如商業(yè)中的個性化推薦場景、社交網(wǎng)絡中的新鮮事排名等。
??論文的組織如下。第2節(jié)我們討論了相關工作,第3節(jié)介紹了電子商務的展示廣告中用戶行為數(shù)據(jù)特征的背景,第4節(jié)討論了DIN模型,第5節(jié)討論了我們提到的兩個訓練技術,第6節(jié)實驗,第7節(jié)總結。

2 相關工作

??CTR預測模型的結構已經(jīng)經(jīng)歷了由淺層向深層的發(fā)展。同時,CTR模型中的樣本量和特征維度也越來越大。為了更好的抽取特征信息以提高性能,幾篇論文設計了模型結構。
??作為一個先驅工作,NNLM(Nerual Network Language Model,文獻2)學習了每個單詞的分布表示,目的是避免語言模型中的維度災難。這種方法通常被稱為embedding已經(jīng)啟發(fā)了許多自然語言模型和CTR預估模型,這些模型都需要處理大量的稀疏輸入。
??LS-PLM[9](也稱為MLR模型)和FM[20]模型可以認為是一種具有一層隱藏層的網(wǎng)絡模型,它手寫將稀疏輸入上使用嵌入層,然后利用特殊的變化函數(shù)進行目標擬合,以獲取特征之間的組合關系。
??Deep Crossing、wide&deep、YouTube的推薦CTR模型都是通過用復雜的MLP網(wǎng)絡替換變換函數(shù)擴展了LS-PLM和FM模型,這個操作大大提高了模型的性能。PNN[5]通過在embedding層之后加一個product層來嘗試捕獲更高階的特性相關關系。DeepFM[10]嘗試用因子分解機來取代Wide&Deep模型中的“wide”部分,省去了特征工程。總體而言,這些模型都采用了embedding層(用于學習稀疏特征的稠密表示)和MLP(為了自動的學習特征組長)的相似的模型結構。這類CTR預測模型大大的減少了人工特征工程的工作。我們中的基礎模型也是這樣的模型。然而,在具有豐富的用戶行為的場景下,特征中經(jīng)常包括一個可變長度的id列表,例如在YouTube中的搜索關鍵字和觀看的視頻。這些模型經(jīng)常通過求和或者平均將一些embedding的向量轉為為一個固定的長度的向量,這會導致丟失了一些信息。DIN通過自適應的學習給定ad下的表示向量來解決這個問題,提高了模型的表達能力。
??Attention機制源于神經(jīng)機器翻譯(Neural Machine Transla-tion,NMT)領域。NMT對所有的注釋進行加權求和來獲得期望的注釋,并且只關注與下一個目標詞相關的信息。在最近的工作,DeepIntent在廣告的場景下應用的attention機制。與NMT類似,他們用RNN對文本建模,然后學習一個全局的隱藏向量,來關注搜索中的每一個關鍵詞。研究表明,attention的使用有助于捕捉搜索或者廣告的主要意圖。DIN設計了一個本地激活單元來軟搜索用戶的相關行為(這里就是指用用候選廣告與用戶歷史行為的廣告進行一個一個匹配),并采用加權求和的方式獲取給定廣告下的用戶興趣的自適應表示。這里用戶的表示向量會隨著候選廣告不同而不同,這不同于DeepIntent下的廣告和用戶沒有交互。
??我們把代碼開源出去,然后進一步的展示了如何成功的將DIN模型部署到世界最大的廣告系統(tǒng)之一上,這個廣告系統(tǒng)是在數(shù)億參數(shù)上進行訓練模型。

3 背景

??在像阿里巴巴這種電子商務網(wǎng)站上,廣告很自然的就是各種商品。在本文后面的章節(jié),如果沒有特別聲明,廣告就是指商品。Figure1簡單描述了阿里巴巴中的展示廣告的運行過程,這包括兩個主要步驟:

  1. 匹配階段:通過類似協(xié)同過濾的方式生成訪問用戶的候選廣告集合
  2. 排序階段:預測每一個給定的ad,然后選擇排名靠前的廣告。

展示廣告的運行過程

每天,億量級的用戶訪問電子商務網(wǎng)站,留下了大量的用戶行為數(shù)據(jù),這些數(shù)據(jù)對我們建立匹配和排序模型至關重要。值得一提的是,具有豐富歷史行為的用戶具有不同的興趣。例如,一個年輕的母親最近瀏覽了包括羊毛大衣、T恤、耳環(huán)、手提包、皮包和兒童大衣在內的商品。這些數(shù)據(jù)使我們了解她的購物興趣。當他訪問一個電子商務網(wǎng)站時,系統(tǒng)會向她顯示一個合適的廣告,例如一個新的手提包。顯然這邊展示廣告只能體現(xiàn)她的一部分興趣??傊?,用戶的興趣是多樣的,可以被給定的廣告進行激活。在文章的后續(xù)內容中我們展示了利用這些特征對CTR建模的重要作用。

4 深度興趣網(wǎng)絡

??不同于搜索引擎中的發(fā)起搜索,用戶在沒有明確意圖下進入展示廣告系統(tǒng)。在建立CTR模型時需要有效的方法從用戶豐富的歷史行為中提取用戶興趣。描述用戶和廣告的特征是CTR模型中的基本要素。合理的利用這些特征并從中挖掘信息至關重要。

4.1 特征表示

??工業(yè)CTR預測任務中的特征大多都是多組分類的形式,例如,[weekday=Friday, gender=Female,visited_cate_ids={Bag,Book}, ad_cate_id=Book],通過編碼[4,19,21]可將其轉化為高緯的稀疏二進制特征。數(shù)學上,對第i個特征組進行編碼為t_i \in R^{K_i}K_i表示的是第i個特征組的維度,這表示特征組i含有K_i個唯一的廣告。t_i[j]t_i中第j個元素,并且t_i[j] \in {0,1}\sum_{j=1}^{K_i}t_i[j]=k。t_i是一個向量,當k=1時表示的one-hot編碼,當k>1時表示的multi-hot編碼。x=[t_1^T,t_2^T,...t_M^T],這里M表示就是特征組(特征組可以理解為不同類別的特征,例如年齡、國家、商品id、店鋪id、性別,這里M就是5),\sum_{i=1}^{M}K_i=K,這里K表示整個特征空間的維度。通過這種方式,上述有四個組的特征可以表示為:
\underbrace{[0,0,0,0,1,0,0]}_\text{weekday=Friday} \underbrace{[0,1]}_\text{gender=Female} \underbrace{[0,..,1,...,1,...0]}_\text{visited_cate_ids={Bag,Book}} \underbrace{[0,..,1,...,0]}_\text{ad_cate_id=Book}

特征信息

??Table1中我們描述了我們使用的整個特征集合。它有四個類別組成,其中用戶行為特征就是典型的multi-hot編碼的向量,包含了豐富的用戶興趣信息。請注意在我們的設置中,沒有組合特征。我們使用深度神經(jīng)網(wǎng)絡來捕捉交叉特征。

深度網(wǎng)絡結構

4.2 基礎模型(Embedding&MLP)

大多流行的模型結構都采用了相似的Embedding&MLP結構,這里我們稱之為基礎模型,正如Fig2中的左半部分。它包括以下幾個部分:
嵌入層:由于輸入是高維的二進制變量,嵌入層把他們轉化為低維稠密表示。對于第i個特征t_i,我們用W^i=[w_1^i,...,w_j^i,...w_{K_i}^i] \in \mathbb{R}^{D \times K_i}表示第i個特征的編碼字典,這里w_j^i \in R^D是一個D維的embedding向量。embedding操作遵循查表機制。

  • 如果t_i是one-hot向量,第j個元素t_i[j]=1,則t_i經(jīng)過embedding操作后就是一個單個的embedding向量e_i=w_j^i
  • 如果t_i是multi-hot向量,且當j \in \{i_1,i_2,...i_k\}t_i[j]=1。則t_i經(jīng)過embedding操作后就是一個embedding組:\{e_{i_1},e_{i_2},...,e_{i_k} \} = \{ w_{i_1}^i,w_{i_2}^i,...,w_{i_k}^i \}

池化層和連接層:注意到不同的用戶有不同數(shù)量的行為。因此,對于multi-hot行為特征來說非零值的特征向量也是因人而異的,導致了相應的embedding向量長度也是可變的。由于全連接層只能處理固定長度的輸入,通常的做法是通過池化層將embedding向量列表轉化為一個固定的長度:e_i =pooling(e_i,e_2,...e_{i_k}) \tag{1}
兩個常用的池化操作是求和池化和平均池化,他們按元素的求和或者平均操作應用于embedding向量列表。
??Embedding層和pooling層都是以特征組的粒度進行操作的,將原始的稀疏特征映射到多個固定的長度的表征向量。然后將全部的向量連接在一起來獲得一個實例的表示向量。
MLP:在給定拼接稠密表示向量下,全連接層用來學習特征之間的自動組合功能。最近的方法[4,5,10]都是通過設計MLP結構來更好的抽取信息。
損失:基本模型中使用的損失函數(shù)是負對數(shù)似然函數(shù):
L= - \frac{1}{N} \sum_{(x,y) \in \mathcal{S}}(y \log p(x) +(1-y)\log(1-p(x)) ) , \tag{2}
這里\mathcal{S}是具有N個大小的訓練集,x是輸入特征,y \in \{0,1\}是label,p(x)是經(jīng)過softmax層后的輸出,表示樣本x被點擊的概率。

4.3 DIN的結構

??在Table1描述的特征中,用戶行為特征是非常重要的,并且在電子商務場景中的興趣建模起到了至關重要的角色。
??基本模型通過將用戶的興趣embedding向量經(jīng)過池化(公式1)操作后獲得固定長度的表征向量。無論候選廣告是什么,這個表征向量對一個人來說都是相同的,這里有限制的用戶表征向量的長度將成為表示用戶不同興趣的瓶頸。為了能獲取更多的信息,一個簡單的方式擴大向量的維度,不幸的這極大增加了學習參數(shù)的大小。這也加大了在有限訓練集數(shù)量下過擬合的風險,增加了計算和存儲的負擔,這些可能在工業(yè)的在線廣告體系中是不被容忍的。
??在有限維度的向量下有沒有一種巧妙的方式表示用戶的不同興趣?用戶興趣的局部激活給了我們設計DIN模型的靈感。想象一下我們在章節(jié)3中年前的母親瀏覽電子商務的網(wǎng)站時,她發(fā)現(xiàn)新的手提包很可愛然后點擊了一下。讓我們分析一下這個點擊行為背后的動機。展示廣告通過軟搜索她的歷史行為,發(fā)現(xiàn)她最近瀏覽了類似的手提袋和皮包,命中了她的相關興趣。換句話說,與展示廣告相關的歷史行為極大的促進了點擊。DIN通過在給定廣告下進行局部激活相關的興趣來模擬這個過程。DIN通過考慮歷史行為與候選廣告的相關性,自適應的計算用戶興趣的表示向量,而不是用一個向量來表示用戶的不同興趣。這個表示向量會隨著候選廣告不同而不同。
??Fig2中的右側部分描述了DIN的體系結構。相比較基礎模型,DIN引入了一個本地激活單元,其他的地方與基礎模型相似。具體來說,激活單元被用于用戶行為特征,在給定候選廣告A下,它以加權池化的自適應的計算用戶表示\mathcal{v}_U,如公式3所示:
v_U(A)=f(v_A,e_1,e_2,...,e_H) =\sum_{j=1}^H{a(e_j,v_A)e_j} =\sum_{j=1}^H{w_je_j} \tag{3}
這里\{e_1,e_2,...,e_H \}表示的是用戶U的長度為H的行為embedding向量列表,v_A表示的廣告A的embedding向量。通過這種方式,v_U(A)會隨著廣告的不同而不同。a(.)表示的是feed-forword網(wǎng)絡,其輸出作為激活權重。除了兩個輸入embedding向量,a(.)將運行結果添加到后續(xù)的網(wǎng)絡中,這有助于建模的顯性知識。

參數(shù)解釋

??公式3中的局部激活單元與NMT中的attention方法是相似的。傳統(tǒng)的attention會做一個歸一化()操作,目的是為了保留用戶的興趣強度。但是在DIN模型沒有這個限制條件。相反,的值是在某些程度是被認為激活用戶興趣強度的近似值。舉個例子,如果一個人歷史行為包含了90%的衣服和10%的電子產(chǎn)品,給定兩個候選廣告T恤和手機,T恤激活他歷史中屬于衣服的行為,并且的值可能比手機的值更大(更強烈的興趣)。傳統(tǒng)的attention方式通過正則化可能失去了對數(shù)值上的分辨度。
??我們嘗試用LSTM對用戶的歷史行為進行建模。但是效果沒有提升,與NLP任務中受語法約束不同,用戶的歷史行為序列可能包含多個并發(fā)的興趣。用戶興趣的快速跳躍和突然結束使得用戶的行為序列看起來很異常。一個可行的方向是設計特征的結果來訓練這些序列類的數(shù)據(jù)。這留到以后來研究。

5 訓練技巧

??在阿里巴巴的廣告系統(tǒng)中,商品和用戶的規(guī)模都是億級別的。實際上,在工業(yè)中大規(guī)模稀疏輸入特征的深度網(wǎng)絡模型的訓練是一個很大的挑戰(zhàn)。在這個章節(jié),我們介紹2個在實踐中被證明有用的重要技術。

5.2 小批量感知正則

??過擬合問題是工業(yè)網(wǎng)絡訓練中一個很大的挑戰(zhàn)。例如,通過添加細粒度的特征(例如有6億維度goods_ids,包括用戶瀏覽商品id、獲選廣告id),如果沒有正則化,模型的效果在第一輪訓練后就會迅速的下降,正如Fig4中深綠色線展示的一樣。在具有稀疏輸入和數(shù)億個參數(shù)的訓練網(wǎng)絡上直接使用傳統(tǒng)的l1和l2正則是不現(xiàn)實的。拿l2正則距離,在沒有正則的條件下只有在每個小批量中不為0的稀疏特征的參數(shù)需要被更新,更新方式是基于SGD的優(yōu)化方法。然而,當加上l2正則后,需要在沒一個小批量數(shù)據(jù)中計算全部參數(shù)的l2范式,這會導致極大的計算復雜度,在數(shù)億參數(shù)規(guī)模的網(wǎng)絡訓練中也是不可接受的。
??在這個文章中我們引入一個有效的小批量感知正則,它只對出現(xiàn)在每個小批量數(shù)據(jù)中的稀疏特征的參數(shù)進行計算l2范式,這樣就是的計算成為了可能。事實上,是embedding字段貢獻了CTR網(wǎng)絡中的大部分參數(shù),引起了沉重的計算困難。我們另W \in \mathbb{R}^{D \times K}為整個embedding字典,D表示embedding向量的維度,K表示特征空間的維度。在W上施加l2正則如下:
L_2(W)=||W||_2^2 =\sum_{j=1}^{K}||w_j||_2^2 =\sum_{(x,y) \in \mathcal{S}} \sum_{j=1}^{K} \frac{I(x_j \neq 0)}{n_j}||w_j||_2^2 \tag{4}
這里w_j \in \mathbb{R}^D是第j個embedding向量,I(x_j \neq 0)表示的是樣本x含有特征jn_j表示的是特征j在所有樣本中出現(xiàn)的次數(shù)。公式4可以轉化為小批量感知的形式公式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}
這里B表示小批量的個數(shù),\mathcal{B_m}表示的第m輪小批量。我們另\alpha_{mj}=\max_{(x,y) \in \mathcal{B_m} } I(x_j \neq 0)表示在小批量\mathcal{B_m}至少有一個實例有特征j。因此公式5可以大約被以下公式替代:
L_2(W) \approx \sum_{j=1}^{K} \sum_{m=1}^{B} \frac{\alpha_{mj}}{n_j}||w_j||_2^2 \tag{6}
通過這種方式,我們提出了基于l2正則一個近似的小批量感知的版本,對第m次小批量,特征j的embedding權重的梯度更新如下:
w_j \leftarrow w_j- \eta [\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 ] \tag{7}
,只有出現(xiàn)在第m次小批量中特征參數(shù)才會被進行正則計算。

公式7中的后半部分就是將公式6對w_j求導后的公式

5.2 數(shù)據(jù)自適應激活函數(shù)

RReLU[12]是一種常用的激活函數(shù):
f(s)= \begin{cases} s &\text{if s>0} &\\ \alpha s &\text{if s} {\leqslant 0} &\\ \end{cases} =p(s)*s +(1-p(s))*\alpha s \tag{8}
這里s是一個一維的激活函數(shù)f(.)的輸入,p(s)表示的是s大于0時為1,s不大于0時為0。\alpha是第二個通道的一個學習參數(shù)。這里我們將p(s)稱為控制函數(shù)。Fig3中的左半邊部分就是PReLU激活函數(shù)。PReLU采用的是0值作為應糾正點(就是是否乘以\alpha),當每層的輸入數(shù)據(jù)分布不同時這可能就不再適合了??紤]到這一點,我們設計了一種新穎的自適應激活函數(shù)Dice。
f(s)=p(s)*s+(1-p(s))*\alpha s ,p(s)=\frac{1}{1+e^{-\frac{s-E[s]}{\sqrt{Var[s]+ \epsilon}}}} \tag{9}
正如Figure3中的右側所示。在訓練階段,E[s]Var[s]是每個小批量的均值和方差。在測試階段,E[s]Var[s]是在整個數(shù)據(jù)集上的所有小批量的E[s]Var[s]的均值。\epsilon是一個很小的常數(shù),這里我們設置為10^{-8}

激活函數(shù)

??Dice可以看做為PReLU的推廣。Dice的關鍵思想是根據(jù)輸入數(shù)據(jù)的分布情況自適應的調節(jié)校正點(PReLU是把0作為校正點),其值被設置為輸入的均值。此外,Dice平滑的控制兩個通道的切換。當E[s]=0Var[s]=0時,Dice退化為PReLU。

6 實驗

??在這個章節(jié),我們介紹了實驗的細節(jié),包括數(shù)據(jù)集、評估、實驗設置、模型對比和相應的分析。在兩個具有用戶行為的公共數(shù)據(jù)集和阿里巴巴的展示廣告系統(tǒng)中收集的數(shù)據(jù)上進行實驗,證實了該方法比現(xiàn)在最先進的CTR預測任務要更有效。數(shù)據(jù)和代碼均會開源出去。

6.1 數(shù)據(jù)集和實驗設置

Amazon Dataset。亞馬遜數(shù)據(jù)集包含了用戶評論和元數(shù)據(jù),這作為基準數(shù)據(jù)集。我們的實驗在數(shù)碼產(chǎn)品的子集上進行,它包含了192403個用戶、63001個商品、801個類別、1689188個樣本。在這個數(shù)據(jù)集上的用戶行為數(shù)據(jù)是豐富的,每個用戶和商品都有5條以上的評論。特征包括商品id、類別id、用戶評論商品列表、類別id列表。我們用(b_1,b_2,...,b_k,...b_n)表示一個用戶的所有行為,任務是利用前k個評論商品,來預測第k+1個商品的評論。訓練集是用每個用用戶第k(k=1,2,...n-2)個商品評論進行生成的。在測試集上,我們用前n-1個商品評論來預測最后一個商品評論。對于所有的模型,我們用具有指數(shù)衰減的SGD作為優(yōu)化器,學習率起始設置為1,衰減率設置為0.1。小批量的樣本大小設置為32.
MovieLens Dataset。MovieLens數(shù)據(jù)包括了138493個用戶、27278個電影、21個類別、20000263個樣本。為了使其適應CTR任務,我們把他轉換為2分類。原始的數(shù)據(jù)中用戶的評論分值是從0到5,這里我們把4分和5分標記為正樣本,其余的分數(shù)標記為負樣本。根據(jù)用戶ID切分為訓練集和測試集。在所有138493個用戶中,隨機選取100000用戶的數(shù)據(jù)作為訓練集(樣本量為14470000),剩余的38493個用戶作為測試集(樣本量為5530000)。這個任務是根據(jù)用戶的歷史行為來預測用戶是否對一個電影評分超過3分。特征包括電影id、電影類別id、用戶評論的電影列表、電影類別列表。我們使用與亞馬遜數(shù)據(jù)集上一樣的訓練實驗設置:優(yōu)化器、學習率、小批量的樣本量大小。
Alibaba Dataset。從阿里巴巴在線展示廣告系統(tǒng)中收集流量日志,其中2周的數(shù)據(jù)作為訓練集,接下來一天的數(shù)據(jù)作為測試集。(前14天的數(shù)據(jù)作為訓練集,第15天的數(shù)據(jù)作為測試集)。訓練集和測試集的樣本量大小分別為20億和1.4億。對于深度模型來說,16組的特征embedding向量維度為12。MLP層的設置為192 \times 200 \times 80 \times 2。由于數(shù)據(jù)量巨大,我們設置為小批量的大小為5000,并且使用Adam作為優(yōu)化器。應用指數(shù)衰減,設置起始學習率為0.001,衰減率為0.9。
??數(shù)據(jù)的統(tǒng)計信息見Table2 。阿里巴巴的數(shù)據(jù)集要比亞馬遜和MovieLens加和還要大,這也帶來了更多的困難。

數(shù)據(jù)集信息

6.2 競爭模型

  • LR。在深度模型之前,邏輯回歸模型是一個廣泛使用的淺層模型。這里LR作為一個弱基準。
  • BaseModel。如4.2中介紹的,基準模型符合embedding&MLP結構,也是之后CTR深度網(wǎng)絡模型中的一個基準模型。這里BaseModel作為一個作為對比的強基準模型。
  • Wide&Deep。在實際的工業(yè)場景中,Wide&Deep模型以及被廣泛的使用。它包含2個部分:1)wide模型,需要人工的處理交叉特征 ,2)deep模型,自動提取特征之間的非線性關系,等同于BaseModel。Wide&Deep模型中需要在“Wide”模塊中需要特征工程的經(jīng)驗。我們參考文獻10中的做法,講用戶的行為和候選進行交叉作為wide的輸入。例如,在MovieLens 數(shù)據(jù)集中,它值得是用戶評論的電影與候選電影進行交叉。
  • PNN。PNN可以被看做為在embedding層之后加入了product層來捕捉高階特性交互信息,它被認為是BaseM的改進版本。
  • DeepFM。它采用了因子分解機的機制來替代Wide&Deep中“wide”的特征工程工作。

6.3 指標

??在CTR預測領域,AUC是一個常用的指標。它通過CTR預測,包括對用戶內和用戶間訂單,對所有的廣告進行排序,其中正樣本被排到負樣本前的概率來衡量模型的好壞。文獻[7,13]中介紹了一種加權的AUC計算方式,其衡量了用戶內的AUC的平均值作為作為衡量指標,它能與在線展示廣告體系中的線上效果更為相關。
( 這里使用的就是GAUC )。這里我采用這種auc作為評估方式。計算公式如下:
AUC=\frac{\sum_{i=1}^{n} \#impression_i \times AUC_i }{\sum_{i=1}^{n} \#impression_i } \tag{10}
,這里n是用戶的數(shù)量。\#impression_i是第i個用戶的廣告曝光數(shù),AUC_i是第i個用戶的AUC。
??另外,我們采用文獻[25]介紹的RelaImpr來衡量模型的提升效果。對于一個隨機分預測,AUC的值是0.5。因此,RelaImpr定義如下:
RelaImpr=(\frac{AUC(\text{measured model} )-0.5}{AUC(\text{base model})-0.5}) \times 100\% \tag{11}

6.4 Amazon和MovieLens數(shù)據(jù)集上的模型對比效果

Amazon和MovieLens數(shù)據(jù)集上的效果對比

??Table3展示了在亞馬遜和MovieLens上的實驗結果。所有的實驗都是重復5次,最后取平均值作為結果。隨機初始化對AUC的影響小于0.0002。顯然,所有的深度神經(jīng)網(wǎng)絡都明顯要比LR模型要好,這證明了深度學習的強大的力量。具有特殊設計結構的PNN和DeepFM效果要比Wide&Deep模型要好。在這些模型中,DIN模型的效果是最好的。尤其是在具有豐富用戶行為的亞馬遜數(shù)據(jù)集,DIN的效果更為顯著。我們把這個歸功于DIN中的局部激活單元。DIN通過在用戶的歷史行為中進行軟搜索與候選廣告相關的行為,來關注用戶的局部興趣。通過這種機制,DIN獲取了用戶興趣的自適應變化,與其他的深度網(wǎng)絡相比,大大提高了模型的可表達性。另外,帶有Dice的DIN比DIN效果更好一些,這證實了數(shù)據(jù)自適應激活函數(shù)的有效性。

6.5正則化的效果

正則化效果

??因為在亞馬遜和MovieLens數(shù)據(jù)集上的特征維度都不高(大約10w),包括DIN在內的深度網(wǎng)絡模型都沒有遇到嚴重的過擬合問題。然而,當在阿里巴巴這種包含高緯稀特征的在線廣告系統(tǒng)的數(shù)據(jù)上,過擬合成為了一個大的挑戰(zhàn)。例如,當用細粒度的特征(例如直接使用table1中的具有6億維度的商品特征)進行訓練深度網(wǎng)絡時,沒用正則化下在第一輪后過擬合就出現(xiàn)了,因為了模型的效果的嚴重下降,正如fig4中的深綠色的線。因為這個原因,我們進行了仔細的實驗來對比幾種常用正則化的效果。

  • Dropout。隨機丟棄每個樣本中50%的特征。
  • Filter。根據(jù)樣本出現(xiàn)頻率進行過濾,只留下最頻繁的。在我們的設置中只留了top2億的商品id。
  • Regularization in DiFacto[16]。與頻繁特征相關的參數(shù)不進行過度正則化。
  • MBA。就是本文提出的Mini-Batch Aware正則方式(公式4)。在DiFacto和MBA中正則化參數(shù)\lambda設置為0.01。
在阿里數(shù)據(jù)集上,不同正則化的效果

??Fig4和Table4給出了不同正則化的對比結果。在Fig4中,使用細粒度特征的深度網(wǎng)絡訓練可以在第一輪中給測試集帶來很大效果提升。然而,沒有正則化,過擬合就會快速的發(fā)生(圖中深綠色的線)。Dropout可以組織過擬合的發(fā)生,但是也引起了收斂速度變慢。是inDiFacto 對高頻率的商品id設置了更大的懲罰,它的性能要比filter的效果要差。與其他的方法相比,小批量感知(MBA)正則的性能最好,它可以顯著的防止過擬合。
??另外,使用商品id特征的模型訓練完成后,AUC要比沒有使用商品id特征的正則化要好。這是因為細粒度的特征包含豐富的信息。考慮到這一點,盡管frequency filter的性能要比dropout要好一點,它丟棄了大多低頻的商品id,可能失去了使用細粒度特征的模型發(fā)揮空間。

6.6 在阿里巴巴數(shù)據(jù)集上的模型對比

阿里數(shù)據(jù)集上的模型效果

??Table5展示了使用全部特征的實驗結果。正如預期的一樣,LR被證明要比深度模型弱很多。通過幾個深度模型的對比,有以下結論。第一,在相關激活函數(shù)和正則下,DIN性能要比其他的神經(jīng)網(wǎng)絡模型(包括基準模型、Wide&Deep、PNN、DeepFM)要好。與基準模型相比,DIN獲得了0.0059的絕對AUC收益和6.08%的RelaImpr 提升。這再次證實了局部激活單元的有效性。第二,基于DIN的實驗證明了我們提出的訓練技巧的有效性。在DIN模型上使用小批量正則化要比dropout提高0.0031的絕對AUC收益。另外,使用Dice激活函數(shù)的DIN要比使用PReLU激活函數(shù)的DIN要高0.0015的絕對AUC收益。
??總之,帶有MBA和Dice的DIN網(wǎng)絡要比基準模型高11.63%的RelaImpr,比基準模型多0.0113的絕對AUC增益。即使與在這個數(shù)據(jù)集上最好效果的模型DeepFM相比,DIN也獲得了0.009的絕對auc收益。知得注意的是,在商業(yè)廣告體系中,0.001的絕對auc就是顯著的,值得去做模型部署。DIN對于更好的理解和使用用戶行為數(shù)據(jù)的特征表現(xiàn)了 巨大的優(yōu)越性。此外,這兩種技術進一步提高了模型性能,為大規(guī)模的工業(yè)深度網(wǎng)絡訓練提供了強有力的幫助。

6.7 在線AB實驗的結果

??在201705至201706,在阿里巴巴展示廣告中進行了仔細的AB實驗。在幾乎一個月的測試中,帶有MAB和Dice的DIN模型要比基準模型有高達10.0%的ctr和3.8%PRM(Revenue Per Mille ,(預計收入 / PV數(shù) ) * 1000)效果提升。這是一個有意義的改善,證實了方法的有效性?,F(xiàn)在DIN已經(jīng)部署線上,服務于主要的流量。
??值得一提的是,工業(yè)深度網(wǎng)絡的在線服務化不是一個簡單的事,每天都有數(shù)億用戶訪問我們的系統(tǒng)。更糟糕的是,在流量高峰,我們的系統(tǒng)每秒要為超過100w的用戶提供服務。這就要求實時的CTR預測要有高吞吐量和低延遲。例如,在我們實際的系統(tǒng)中,我們要在不到10ms為每個用戶預測幾百個候選廣告。在我們實踐中,為了加速工業(yè)深度網(wǎng)絡的在線允許,我們在CPU-GPU下采用了幾個重要的技術:1) 合并來自cpu的相鄰請求,以利用GPU的效率 ,2)GPU內存優(yōu)化,通過提高訪問模式來減少GPU內存中的事務浪費,3)并發(fā)內核計算,允許使用使用多個CUDA內核來處理矩陣計算??傊?,這些優(yōu)化技術使得單機的QPS加倍。DIN的在線服務也因此受益。

6.8 DIN可視化。

??最后,我們在阿里數(shù)據(jù)集上進行case分析,來研究DIN的內部結構。我們首先檢查局部激活單元的有效性。Fig5描述了在特定候選廣告下用戶不同的歷史行為激活強度。如預期一樣,與候選廣告相關的用戶行為具有更高的權重。


DIN中的激活單元

DIN中的商品embedding可視化

??然后我們將embedding向量進行可視化。拿之前年輕母親為案例,我們隨機選取9個類別(服裝、運動鞋、箱包等)和每個類別有100個商品作為她的候選廣告。Fig6展示了用DIN學習的商品的embedding向量用t-SNE方式進行可視化,其中形狀相同的點是同一類別??梢钥闯?,相同類別的商品幾乎屬于同一集群,這充分體現(xiàn)了DIN embedding的聚集性。另外,我們根據(jù)預測值對候選廣告進行上色。Fig6同樣展示了在embedding空間中,這位母親對潛在候選廣告的興趣密度分布熱圖。它表明DIN可以在候選embedding空間中,從一個多興趣密度分布中捕捉到一個特定用戶的多元化興趣。

7 結論

??本文主要研究了在具有豐富用戶歷史行為數(shù)據(jù)的電子商務場景下的展示廣告中CTR預估模型問題。在傳統(tǒng)的CTR模型中使用固定長度的表證向量是捕捉用戶多元化興趣的瓶頸。為了提高模型的表示能力,一種新穎的DIN模型來激活相關的用戶行為,獲得在不同的廣告下的用戶興趣的自適應表示向量。此外,介紹了兩種新的技術(Mini-BatchAware regularization-小批量感知正則MAB、自適應激活函數(shù)Dice)去幫助工業(yè)中深度網(wǎng)絡的訓練,進一步提高了DIN模型的效果。這兩種技術可以輕易推廣到其他的工業(yè)深度學習任務中。DIN現(xiàn)在已經(jīng)部署到阿里巴巴的在線廣告系統(tǒng)中。

這篇文章是借鑒attention機制,施加在用戶的歷史行為和候選廣告之間,認為這樣就可以捕捉到用戶的多元化興趣,在不同的候選廣告下能激活用戶的不同興趣。另外提出兩種訓練的技巧,小批量感知正則化(只對出現(xiàn)在小批量中的特征參數(shù)進行l(wèi)2范式計算)和自適應激活函數(shù)(取代了PReLU以0作為切換點)。

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內容