北京網(wǎng)站建設(shè)w億瑪酷1訂制網(wǎng)站策劃方案

01、實(shí)例:DIEN 模擬興趣演化的序列網(wǎng)絡(luò)
深度興趣演化網(wǎng)絡(luò)(Deep Interest Evolution Network,DIEN)是阿里巴巴團(tuán)隊(duì)在2018年推出的另一力作,比DIN 多了一個(gè)Evolution,即演化的概念。
在DIEN 模型結(jié)構(gòu)上比DIN 復(fù)雜許多,但大家絲毫不用擔(dān)心,我們將DIEN 拆解開(kāi)來(lái)詳細(xì)地說(shuō)明。首先來(lái)看從DIEN 論文中截下的模型結(jié)構(gòu)圖,如圖1所示。

■ 圖1 DIEN模型結(jié)構(gòu)全圖
這張圖初看之下很復(fù)雜,但可從簡(jiǎn)單到難一點(diǎn)點(diǎn)來(lái)說(shuō)明。首先最后輸出往前一段的截圖如圖2所示。

■ 圖2 DIEN模型結(jié)構(gòu)局部圖(1)
這部分很簡(jiǎn)單,是一個(gè)MLP,下面一些箭頭表示經(jīng)過(guò)處理的向量。這些向量會(huì)經(jīng)一個(gè)拼接層拼接,然后經(jīng)幾個(gè)全連接層,全連接層的激活函數(shù)可選擇PReLU 或者Dice。最后用了一個(gè)Softmax(2)表示二分類(lèi),當(dāng)然也可用Sigmoid進(jìn)行二分類(lèi)任務(wù)。
對(duì)輸出端了解過(guò)后,再來(lái)看輸入端,將輸入端的部分放大后截圖如圖3所示。

■ 圖3 DIEN模型結(jié)構(gòu)局部圖(2)
從右往左看,UserProfile Feature 指用戶特征,Context Feature指內(nèi)容特征,Target Ad指目標(biāo)物品,其實(shí)這3個(gè)特征表示的無(wú)非是隨機(jī)初始化一些向量,或者通過(guò)特征聚合的方式量化表達(dá)各種信息。
DIEN 模型的重點(diǎn)就在圖3的user behavior sequence區(qū)域。user behavior sequence代表用戶行為序列,通常利用用戶歷史交互的物品代替。圖4展示了這塊區(qū)域的全貌。

■ 圖4 DIEN模型結(jié)構(gòu)局部圖(3)
這部分是DIEN 算法的核心:
第一部分: 用戶行為序列,是將用戶歷史交互的物品序列經(jīng)Embedding層初始化物品序列向量準(zhǔn)備輸入下一層,代碼如下:
#recbyhand\chapter3\s34_DIEN.py
#初始化embedding
items = nn.Embedding( n_items, dim, max_norm = 1 )
#[batch_size, len_seqs, dim]
item_embs = items(history_seqs)#history_seqs指用戶歷史物品序列id
所以輸出的是一個(gè)[批次樣本數(shù)量,序列長(zhǎng)度,向量維度]的張量。
第二部分: 興趣抽取層,是一個(gè)GRU 網(wǎng)絡(luò),將上一層的輸出在這一層輸入。GRU 是RNN 的一個(gè)變種,在PyTorch里有現(xiàn)成模型,所以只有以下兩行代碼。
#recbyhand\chapter3\s34_DIEN.py
#初始化gru網(wǎng)絡(luò),注意正式寫(xiě)代碼時(shí),初始化動(dòng)作通常寫(xiě)在__init__() 方法里
GRU = nn.GRU( dim, dim, batch_first=True)
outs, h = GRU(item_embs)
和RNN 網(wǎng)絡(luò)一樣,會(huì)有兩個(gè)輸出,一個(gè)是outs,是每個(gè)GRU 單元輸出向量組成的序列,維度是[批次樣本數(shù)量,序列長(zhǎng)度,向量維度],另一個(gè)h 指的是最后一個(gè)GRU 單元的輸出向量。在DIEN 模型中,目前位置處的h 并沒(méi)有作用,而outs卻有兩個(gè)作用。一個(gè)作用是作為下一層的輸入,另一個(gè)作用是獲取輔助loss。
什么是輔助loss,其實(shí)DIEN 網(wǎng)絡(luò)是一個(gè)聯(lián)合訓(xùn)練任務(wù),最終對(duì)目標(biāo)物品的推薦預(yù)測(cè)可以產(chǎn)生一個(gè)損失函數(shù),暫且稱(chēng)為L(zhǎng)target,而這里可以利用歷史物品的標(biāo)注得到一個(gè)輔助損失函數(shù),此處稱(chēng)為L(zhǎng)aux??偟膿p失函數(shù)的計(jì)算公式為

其中,α 是輔助損失函數(shù)的權(quán)重系數(shù),是個(gè)超參。DIEN 給出的方法是一個(gè)二分類(lèi)預(yù)測(cè),如圖5所示。

■ 圖5 DIEN模型結(jié)構(gòu)局部圖(4)
歷史物品標(biāo)注指的是用戶對(duì)對(duì)應(yīng)位置的歷史物品交互的情況,通常由1和0組成,1表示“感興趣”,0則表示“不感興趣”,如圖5所示,將GRU 網(wǎng)絡(luò)輸出的outs與歷史物品序列的Embedding輸入一個(gè)二分類(lèi)的預(yù)測(cè)模型中即可得到輔助損失函數(shù),代碼如下:
#recbyhand\chapter3\s34_DIEN.py
#輔助損失函數(shù)的計(jì)算過(guò)程
def forwardAuxiliary( self, outs, item_embs, history_labels ):''':param item_embs: 歷史序列物品的向量 [ batch_size, len_seqs, dim ]:param outs: 興趣抽取層GRU網(wǎng)絡(luò)輸出的outs [ batch_size, len_seqs, dim ]:param history_labels: 歷史序列物品標(biāo)注 [ batch_size, len_seqs, 1 ]:return: 輔助損失函數(shù)'''
#[ batch_size * len_seqs, dim ]
item_embs = item_embs.reshape( -1, self.dim )
#[ batch_size * len_seqs, dim ]outs = outs.reshape( -1, self.dim )
#[ batch_size * len_seqs ]out = torch.sum( outs * item_embs, dim = 1 )
#[ batch_size * len_seqs, 1 ]out = torch.unsqueeze( torch.sigmoid( out ), 1 )
#[ batch_size * len_seqs,1 ]
history_labels = history_labels.reshape( -1, 1 ).float()return self.BCELoss( out, history_labels )
調(diào)整張量形狀后做點(diǎn)乘,Sigmoid激活后與歷史序列物品標(biāo)注做二分類(lèi)交叉熵?fù)p失函數(shù)(BCEloss)。
以上是第二部分興趣抽取層所做的事情,最后來(lái)看最關(guān)鍵的第三部分。
第三部分: 興趣演化層,主要由一個(gè)叫作AUGRU 的網(wǎng)絡(luò)組成,AUGRU 是在GRU 的基礎(chǔ)上增加了注意力機(jī)制。全稱(chēng)叫作GRU With Attentional Update Gate。AUGRU 的細(xì)節(jié)結(jié)構(gòu)如圖6所示。

■ 圖6 AUGRU 單元細(xì)節(jié)
02、圖書(shū)推薦
在大數(shù)據(jù)時(shí)代背景下,統(tǒng)計(jì)學(xué)作為數(shù)據(jù)分析領(lǐng)域的基礎(chǔ),被應(yīng)用于各行各業(yè),其方法發(fā)揮著重要作用。為了更廣泛地普及統(tǒng)計(jì)學(xué)知識(shí),培養(yǎng)更多的統(tǒng)計(jì)學(xué)人才,本書(shū)應(yīng)運(yùn)而生。

本書(shū)融合大量情景案例,輕松理解統(tǒng)計(jì)知識(shí);零基礎(chǔ)起步商務(wù)統(tǒng)計(jì),培養(yǎng)數(shù)據(jù)價(jià)值思維。入門(mén)級(jí)統(tǒng)計(jì)學(xué)教程,培養(yǎng)數(shù)據(jù)價(jià)值思維。
作為入門(mén)級(jí)圖書(shū),本書(shū)內(nèi)容安排如下。第1章從不確定性出發(fā),講述統(tǒng)計(jì)學(xué)和不確定性的關(guān)系,以及統(tǒng)計(jì)學(xué)中用于描述不確定性的各種概率模型。第2章是參數(shù)估計(jì),系統(tǒng)講述統(tǒng)計(jì)學(xué)中矩估計(jì)和極大似然估計(jì)兩種常用的參數(shù)估計(jì)方法,并基于兩種方法介紹各種常見(jiàn)概率分布中參數(shù)的點(diǎn)估計(jì)和區(qū)間估計(jì)。第3章是假設(shè)檢驗(yàn),首先從不確定性的角度探討實(shí)際中的各種決策問(wèn)題,幫助讀者理解假設(shè)檢驗(yàn)的思想和應(yīng)用場(chǎng)景,然后系統(tǒng)介紹假設(shè)檢驗(yàn)的方法論及各種常見(jiàn)推廣。第4章是回歸分析,首先介紹回歸分析的思想和廣泛的應(yīng)用場(chǎng)景,然后系統(tǒng)地介紹各類(lèi)常用模型,從線性回歸到廣義線性回歸,最終落腳到兩種機(jī)器學(xué)習(xí)算法(決策樹(shù)、神經(jīng)網(wǎng)絡(luò))。
本書(shū)特別強(qiáng)調(diào)實(shí)際應(yīng)用,因此各個(gè)章節(jié)都輔以大量的實(shí)際案例,在介紹統(tǒng)計(jì)學(xué)基礎(chǔ)知識(shí)的同時(shí)培養(yǎng)讀者使用統(tǒng)計(jì)學(xué)方法解決實(shí)際問(wèn)題的能力。