阿里又雙叒叕開源新算法了,這次的名稱叫做Deep Session Interest Network,我們將其翻譯為深度會話興趣網(wǎng)絡妻导,一起來看看吧~~
論文題目:《Deep Session Interest Network for Click-Through Rate Prediction》
論文鏈接:https://arxiv.org/abs/1905.06482
代碼鏈接:https://github.com/shenweichen/DSIN
1嗤瞎、背景
從用戶行為中呢,我們發(fā)現(xiàn)垮媒,在每個會話中的行為是相近的舍悯,而在不同會話之間差別是很大的航棱,如下圖的例子:
這里會話的劃分和airbnb一樣,首先將用戶的點擊行為按照時間排序萌衬,判斷每兩個行為之間的時間間隔饮醇,前后的時間間隔大于30min,就進行切分秕豫∑蛹瑁可以看上圖,第一個session中混移,用戶查看的都是跟褲子相關的物品祠墅,第二個session中,查看的是戒指相關的物品歌径,第三個則是上衣相關毁嗦。
基于此,阿里提出了深度會話興趣網(wǎng)絡Deep Session Interest Network回铛,來建模用戶這種跟會話密切相關的行為狗准。接下來,我們就來介紹模型的結構茵肃。
2腔长、模型結構
2.1 Base Model
Base Model就是一個全連接神經(jīng)網(wǎng)絡,其輸入的特征的主要分為三部分验残,用戶特征捞附,待推薦物品特征,用戶歷史行為序列特征胚膊。用戶特征如性別故俐、城市、用戶ID等等紊婉,待推薦物品特征包含商家ID药版、品牌ID等等笤受,用戶歷史行為序列特征主要是用戶最近點擊的物品ID序列西土。
這些特征會通過Embedding層轉換為對應的embedding,拼接后輸入到多層全連接中福荸,并使用logloss指導模型的訓練肢础。
2.2 DSIN
DSIN模型的總體框架如下圖:
DSIN在全連接層之前还栓,分成了兩部分,左邊的那一部分传轰,將用戶特征和物品特征轉換對應的向量表示剩盒,這部分主要是一個embedding層,就不再過多的描述慨蛙。右邊的那一部分主要是對用戶行為序列進行處理辽聊,從下到上分為四層:
1)序列切分層session division layer
2)會話興趣抽取層session interest extractor layer
3)會話間興趣交互層session interest interacting layer
4)會話興趣激活層session interest acti- vating layer
接下來纪挎,我們主要介紹這4層。
2.2.1 Session Division Layer
這一層將用戶的行文進行切分跟匆,首先將用戶的點擊行為按照時間排序异袄,判斷每兩個行為之間的時間間隔,前后的時間間隔大于30min玛臂,就進行切分烤蜕。
切分后,我們可以將用戶的行為序列S轉換成會話序列Q迹冤。第k個會話Qk=[b1;b2;...;bi;...;bT],其中讽营,T是會話的長度,bi是會話中第i個行為叁巨,是一個d維的embedding向量斑匪。所以Qk是T * d的。而Q锋勺,則是K * T * d的
2.2.2 Session Interest Extractor Layer
這里對每個session,使用transformer對每個會話的行為進行處理狡蝶。有關Transformer的內容庶橱,可以參考文章https://mp.weixin.qq.com/s/RLxWevVWHXgX-UcoxDS70w。
在Transformer中贪惹,對輸入的序列會進行Positional Encoding苏章。Positional Encoding對序列中每個物品,以及每個物品對應的Embedding的每個位置奏瞬,進行了處理枫绅,如下:
但在我們這里不一樣了,我們同時會輸入多個會話序列硼端,所以還需要對每個會話添加一個Positional Encoding并淋。在DSIN中,這種對位置的處理珍昨,稱為Bias Encoding县耽,它分為三塊:
BE是K * T * d的,和Q的形狀一樣镣典。BE(k,t,c)是第k個session中兔毙,第t個物品的嵌入向量的第c個位置的偏置項,也就是說兄春,每個會話澎剥、會話中的每個物品有偏置項外,每個物品對應的embedding的每個位置赶舆,都加入了偏置項哑姚。所以加入偏置項后趾唱,Q變?yōu)椋?/p>
隨后,是對每個會話中的序列通過Transformer進行處理:
這里的過程和Transformer的Encoding的block處理是一樣的蜻懦,不再贅述甜癞。感興趣的同學可以看一下上文提到的文章。
這樣宛乃,經(jīng)過Transformer處理之后悠咱,每個Session是得到的結果仍然是T * d,隨后征炼,我們經(jīng)過一個avg pooling操作析既,將每個session興趣轉換成一個d維向量。
這樣谆奥,Ik就代表第k個session對應的興趣向量眼坏。
2.2.3 Session Interest Interacting Layer
用戶的會話興趣,是有序列關系在里面的酸些,這種關系宰译,我們通過一個雙向LSTM(bi-LSTM)來處理:
每個時刻的hidden state計算如下
相加的兩項分別是前向傳播和反向傳播對應的t時刻的hidden state。這里得到的隱藏層狀態(tài)Ht魄懂,我們可以認為是混合了上下文信息的會話興趣沿侈。
2.2.4 Session Interest Activating Layer
用戶的會話興趣與目標物品越相近,那么應該賦予更大的權重市栗,這里使用注意力機制來刻畫這種相關性:
這里XI是帶推薦物品向量缀拭。
同樣,混合了上下文信息的會話興趣填帽,也進行同樣的處理:
后面的話蛛淋,就是把四部分的向量:用戶特征向量、待推薦物品向量篡腌、會話興趣加權向量UI褐荷、帶上下文信息的會話興趣加權向量UH進行橫向拼接,輸入到全連接層中哀蘑,得到輸出诚卸。
3、模型試驗
模型使用了兩個數(shù)據(jù)集進行了實驗绘迁,分別是阿里媽媽的廣告數(shù)據(jù)集和阿里巴巴的電商推薦數(shù)據(jù)集合溺。
對比模型有:YoutubeNet、Wide & Deep缀台、DIN 棠赛、DIN-RNN(這個和DIN很像,在原始的DIN中,用戶的行為序列沒有使用RNN進行處理睛约,而DIN-RNN使用bi-LSTM對用戶的歷史行為序列進行處理)鼎俘、DIEN。
評價指標是AUC辩涝。結果如下:
對于DSIN贸伐,這里有分了三種情況,第一個是DSIN怔揩,不過將Bias Encoding變?yōu)門ransformer里面的Positional Encoding捉邢,第二個是DSIN,使用bias encoding商膊,但不添加session inter-est interacting layer and the corresponding activation unit伏伐。第三個就是前文介紹的DSIN框架≡尾穑可以看到藐翎,最后一個在兩個數(shù)據(jù)集上的AUC均為最大。
4实幕、總結討論
這里吝镣,論文對結果進行了進一步討論,主要有:
4.1 Effect of Multiple Sessions
從實驗結果來看茬缩,DIN-RNN的效果差于DIN赤惊,而DSIN-BE的效果好于DSIN-BE-No-SIIL。兩組的差別均是有沒有使用序列建模凰锡。文章里提到,對于序列建模來說圈暗,如果用戶的行為時十分跳躍的掂为,同時是突然結束的,會使得用戶的行為看上進去具有很大的噪聲(這里也不知道翻譯的對不對员串,直接上原文吧):
這樣就使得DIN-RNN的效果反而不如DIN勇哗,但在DSIN中,我們對用戶的行為序列按照會話進行了分組寸齐,由于以下兩點原因欲诺,使得DSIN中使用序列建模效果反而更好:
4.2 Effect of Session Interest Interacting Layer
DSIN-BE的效果好于DSIN-BE-No-SIIL,說明通過 Effect of Session Interest Interacting Layer得到混合上下文信息的用戶興趣渺鹦,可以進一步提升模型的效果扰法。
4.3 Effect of Bias Encoding
DSIN-BE的效果好于DSIN-PE,說明對不同的session添加偏置項毅厚,效果還是十分不錯的塞颁。
4.4 Visualization of Self-attention and the Activation Unit
這里論文展示了一下 Self-attention and the Activation Unit的效果,還是開篇的那個例子: