學(xué)習(xí)筆記2 DIN

1 前言

此論文不僅提出了DIN模型,還提出了兩個(gè)針對(duì)真實(shí)場(chǎng)景下大規(guī)模數(shù)據(jù)集的模型訓(xùn)練問(wèn)題的訓(xùn)練技術(shù)。

這個(gè)模型的使用場(chǎng)景是非常注重用戶的歷史行為特征的,它的創(chuàng)新點(diǎn)就是使用注意力機(jī)制來(lái)對(duì)用戶的興趣進(jìn)行動(dòng)態(tài)模擬,而模擬過(guò)程的前提就是要有足夠多的歷史行為數(shù)據(jù)。

之前的深度學(xué)習(xí)模型在這個(gè)場(chǎng)景下有一個(gè)瓶頸,作者在這里將其統(tǒng)稱為Embedding+MLP模型,這也就是基線模型,這樣的模型對(duì)這種推薦任務(wù)有一個(gè)固定的處理套路。

就是將大量稀疏特征先經(jīng)過(guò)embedding層轉(zhuǎn)為低維稠密的,然后進(jìn)行拼接,喂到多層神經(jīng)網(wǎng)絡(luò)里面去。這些模型在這種個(gè)性化廣告點(diǎn)擊率預(yù)測(cè)任務(wù)中存在的問(wèn)題就是無(wú)法表達(dá)用戶廣泛的興趣。

因?yàn)檫@些模型在得到各個(gè)特征的embedding之后就蠻力拼接,然后各種交叉。這時(shí)候根本就沒(méi)有考慮之前用戶歷史行為商品具體是什么,究竟用戶歷史行為中哪個(gè)會(huì)對(duì)當(dāng)前的點(diǎn)擊帶來(lái)積極作用。

小結(jié):DIN模型主要依賴用戶的歷史行為,并引入注意力來(lái)對(duì)興趣進(jìn)行模擬,因此傳統(tǒng)的criteo,avazu數(shù)據(jù)集其實(shí)就已經(jīng)不滿足DIN要求了,因?yàn)檫@些數(shù)據(jù)列里面沒(méi)有用戶歷史行為信息。另外作者將embedding+MLP稱為瓶頸模型,但其本身也還是這個(gè)架構(gòu)。

用戶是否點(diǎn)擊在很大程度上是依賴他的歷史行為的。

例子:目標(biāo)為鍵盤(pán)。若用戶歷史點(diǎn)擊物品為化妝品,包包,衣服,那他大概率不會(huì)對(duì)鍵盤(pán)感興趣。但若用戶歷史點(diǎn)擊物品為電腦,手機(jī),平板,則大概率會(huì)感興趣。

這里也指出若是之前的那些深度學(xué)習(xí)模型,是無(wú)法很好的表達(dá)用戶廣泛多樣的興趣,若想要表達(dá)的準(zhǔn)確些,就要加大隱向量的維度,但計(jì)算量也會(huì)變大,若用到了真實(shí)的計(jì)算場(chǎng)景,電商廣告推薦的數(shù)據(jù)規(guī)模是極大的。

但依據(jù)上面的例子,并不是所有的用戶行為特征都會(huì)對(duì)某商品的廣告點(diǎn)擊率起到作用,所以沒(méi)必要考慮所有的用戶歷史行為。

這樣模型改進(jìn)的動(dòng)機(jī)就出來(lái)了,在業(yè)務(wù)的角度,我們應(yīng)該自適應(yīng)的去捕捉用戶的興趣變化,這樣才能較為準(zhǔn)確的實(shí)施廣告推薦;而從模型的角度,我們應(yīng)該考慮到歷史行為與當(dāng)前商品廣告的一個(gè)關(guān)聯(lián)性。

為了更好的從用戶的歷史行為中學(xué)習(xí)到與當(dāng)前商業(yè)廣告的關(guān)聯(lián)性,學(xué)習(xí)到用戶的興趣變化,作者將注意力機(jī)制引入模型,設(shè)計(jì)了一個(gè)“l(fā)ocal activation unit”結(jié)構(gòu),利用候選商品和歷史行為商品之間的相關(guān)性計(jì)算出權(quán)重,這個(gè)就代表著對(duì)當(dāng)前商品廣告的預(yù)測(cè),用戶歷史行為的各個(gè)商品的重要性大小,而加入了注意力權(quán)重的深度學(xué)習(xí)網(wǎng)絡(luò)就是這次的主角DIN。

小結(jié):作者利用用戶的歷史行為來(lái)抽取出興趣,并且捕捉用戶的興趣變化,以此來(lái)做出推薦。但一個(gè)用戶不可能只有一種興趣,興趣是多樣的,但對(duì)單一的目標(biāo)候選物品來(lái)說(shuō),雜七雜八的興趣會(huì)影響精度,所以用注意力來(lái)提升模型的精度。

這里一直強(qiáng)調(diào)用戶的歷史行為,這是DIN模型很重要的一列特征,即user behavior features,后面使用了新數(shù)據(jù)集,其與criteo和avazu數(shù)據(jù)的最大不同就在于此。

2 DIN模型

在具體分析模型之前,先介紹兩個(gè)小內(nèi)容,一個(gè)是DIN模型的數(shù)據(jù)集和特征表示,一個(gè)是深度學(xué)習(xí)模型的基線模型。

2.1 特征表示

工業(yè)界的ctr預(yù)測(cè)數(shù)據(jù)集一般都是multi- group categorial form的形式,就是類別特征最為常見(jiàn):

這里的亮點(diǎn)就是框出來(lái)的那個(gè)特征,包含了豐富的用戶興趣信息。

對(duì)于特征的編碼,作者舉了個(gè)例子

【weekday=friday,

gender=female,

vis_id={bag,book},

ad_id=book】

這種情況我們一般直接采用one-hot來(lái)進(jìn)行編碼,轉(zhuǎn)成系數(shù)的二值特征的形式,但我們注意,第三個(gè)特征是一個(gè)多值的特征,事實(shí)上這種情況是非常常見(jiàn)的,這個(gè)時(shí)候需要我們使用multi-hot編碼,有哪個(gè)商品,其對(duì)應(yīng)位置為1其他為0。


這就是要喂入模型的數(shù)據(jù)格式,需要注意的是上面的特征里面沒(méi)有任何的交互組合,交互部分交給后面的神經(jīng)網(wǎng)絡(luò)。

2.2 基線模型

就是上面提到的Embedding&MLP模型,DIN其實(shí)也是基于這個(gè)模型設(shè)計(jì)的,在基礎(chǔ)上加了一個(gè)新結(jié)構(gòu)(注意力網(wǎng)絡(luò))來(lái)學(xué)習(xí)當(dāng)前候選廣告和用戶歷史行為特征的相關(guān)性,從而動(dòng)態(tài)捕捉用戶興趣。

基準(zhǔn)模型的結(jié)構(gòu)比較簡(jiǎn)單,分為三大模塊:embedding layer,&concat layer和MLP。


這里大概簡(jiǎn)述一下各個(gè)模塊:

2.2.1 embedding layer:

將高維稀疏的輸入轉(zhuǎn)化為低維稠密向量,每個(gè)離散特征下都會(huì)對(duì)應(yīng)一個(gè)embedding詞典,維度是D*K,D是隱向量維度,K是當(dāng)前離散特征的唯一取值個(gè)數(shù)nunique()

這里剖析一下embedding的計(jì)算細(xì)節(jié):

weekday特征為周五,化為one-hot編碼就是【0,0,0,0,1,0,0】,這里假設(shè)隱向量維度是D,則這個(gè)特征對(duì)應(yīng)的embedding詞典是一個(gè)D*7的矩陣,計(jì)算就是embedding矩陣*【0,0,0,0,1,0,0】T。

其實(shí)就是抽取出embedding矩陣中onehot向量為1的那一個(gè)embedding向量。

而multi-hot編碼的那個(gè)會(huì)得到embedding向量的列表。

2.2.2 pooling layer and concat layer

pooling層的作用是將用戶歷史行為embedding變成定長(zhǎng)的向量,因?yàn)槊總€(gè)用戶歷史購(gòu)買的商品數(shù)是不一樣的,這樣上面得到的embedding列表的長(zhǎng)度就不一致了,而后面加入全連接層的話要求定長(zhǎng)的特征輸入:


concat layer層的作用就是拼接,就是將所有的特征embedding向量,加上連續(xù)特征,從特征維度的角度拼接整合,作為MLP的輸入。

2.2.3 MLP

普通的全連接層,用來(lái)學(xué)習(xí)特征間的各種交互。

2.2.4 loss

由于點(diǎn)擊率預(yù)估是二分類問(wèn)題,所以這里的損失函數(shù)是負(fù)的log對(duì)數(shù)似然。

上面就是基線模型的全貌,可以看出用戶的歷史行為特征和當(dāng)前的候選廣告特征在拼起來(lái)給神經(jīng)網(wǎng)絡(luò)之前是沒(méi)有任何交互的,雖然拼起來(lái)之后給神經(jīng)網(wǎng)絡(luò),有了交互,但這里的交互已經(jīng)損失了很多信息了,因?yàn)樗?jīng)過(guò)了池化,另外池化后綜合起來(lái)也沒(méi)有辦法看出歷史行為中哪個(gè)商品與當(dāng)前商品相關(guān)。

改進(jìn)的思路:

(1) 增加embedding的維度,這樣商品的表達(dá)能力也就提升了,但計(jì)算量也大,不可取。

(2) 在當(dāng)前廣告和用戶的歷史行為數(shù)據(jù)中加入注意力機(jī)制。

DIN通過(guò)考慮候選廣告的歷史行為相關(guān)性,自適應(yīng)計(jì)算用戶興趣表示向量,這個(gè)表示向量因廣告不同而不同。

3 DIN模型架構(gòu)

首先其采用的還是基線模型的結(jié)構(gòu),只是加上了一個(gè)注意力機(jī)制,根據(jù)用戶歷史行為特征和當(dāng)前廣告相關(guān)性給用戶歷史行為特征embedding進(jìn)行加權(quán)。

框出來(lái)的就是改進(jìn)的地方,這里多了一個(gè)local activation unit,輸入是歷史行為特征和當(dāng)前候選特征,輸出是兩者的相關(guān)性,這個(gè)相關(guān)性就是每個(gè)歷史商品的權(quán)重,這里面是一個(gè)前饋神經(jīng)網(wǎng)絡(luò)。相關(guān)性權(quán)重與歷史行為embedding相乘求和就得到了用戶的興趣表示。

4 兩個(gè)訓(xùn)練技術(shù)

這個(gè)也是本篇文章的創(chuàng)新之處,兩個(gè)都是基于工業(yè)實(shí)戰(zhàn)提取出來(lái)的,所以在真實(shí)大數(shù)據(jù)上有應(yīng)用的價(jià)值。

4.1 mini-batch aware regularization

這是一種正則化方式,防止模型的過(guò)擬合,是基于L2來(lái)做的改進(jìn),在真實(shí)場(chǎng)景中L2正則會(huì)對(duì)所有參數(shù)都起作用,但實(shí)際上,每個(gè)mini- batch的樣本特征都是非常稀疏的,加入全部參數(shù)只會(huì)讓計(jì)算量加大,僅僅約束當(dāng)前mini- batch下的非0特征就夠了。

4.2 數(shù)據(jù)自適應(yīng)激活函數(shù)

這里提出了一個(gè)隨數(shù)據(jù)分布而動(dòng)態(tài)調(diào)整的自適應(yīng)激活函數(shù),是泛化的PRelu。

PRelu采用一個(gè)值為0的硬矯正點(diǎn),當(dāng)每個(gè)層的輸入遵循不同的分布時(shí),會(huì)不適合。所以作者設(shè)計(jì)了一個(gè)新的自適應(yīng)激活函數(shù)Dice。

5 論文的其他細(xì)節(jié)

主要還是作者的實(shí)驗(yàn),數(shù)據(jù)集上,作者采用了三個(gè)數(shù)據(jù)集,一個(gè)阿里的真實(shí)數(shù)據(jù)集,兩個(gè)公開(kāi)數(shù)據(jù)集(亞馬遜和movielens)

第二個(gè)細(xì)節(jié)就是模型的評(píng)估上,用relalmpr來(lái)衡量模型的改進(jìn)程度。

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

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容