推薦系統遇上深度學習(四十五)-探秘阿里之深度會話興趣網絡DSIN

阿里又雙叒叕開源新算法了,這次的名稱叫做Deep Session Interest Network,我們將其翻譯為深度會話興趣網絡,一起來看看吧~~

論文題目:《Deep Session Interest Network for Click-Through Rate Prediction》
論文鏈接:https://arxiv.org/abs/1905.06482
代碼鏈接:https://github.com/shenweichen/DSIN

1、背景

從用戶行為中呢,我們發現,在每個會話中的行為是相近的,而在不同會話之間差別是很大的,如下圖的例子:

這里會話的劃分和airbnb一樣,首先將用戶的點擊行為按照時間排序,判斷每兩個行為之間的時間間隔,前后的時間間隔大于30min,就進行切分。可以看上圖,第一個session中,用戶查看的都是跟褲子相關的物品,第二個session中,查看的是戒指相關的物品,第三個則是上衣相關。

基于此,阿里提出了深度會話興趣網絡Deep Session Interest Network,來建模用戶這種跟會話密切相關的行為。接下來,我們就來介紹模型的結構。

2、模型結構

2.1 Base Model

Base Model就是一個全連接神經網絡,其輸入的特征的主要分為三部分,用戶特征待推薦物品特征用戶歷史行為序列特征。用戶特征如性別、城市、用戶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變為:

隨后,是對每個會話中的序列通過Transformer進行處理:

這里的過程和Transformer的Encoding的block處理是一樣的,不再贅述。感興趣的同學可以看一下上文提到的文章。

這樣,經過Transformer處理之后,每個Session是得到的結果仍然是T * d,隨后,我們經過一個avg pooling操作,將每個session興趣轉換成一個d維向量。

這樣,Ik就代表第k個session對應的興趣向量。

2.2.3 Session Interest Interacting Layer

用戶的會話興趣,是有序列關系在里面的,這種關系,我們通過一個雙向LSTM(bi-LSTM)來處理:

每個時刻的hidden state計算如下

相加的兩項分別是前向傳播和反向傳播對應的t時刻的hidden state。這里得到的隱藏層狀態Ht,我們可以認為是混合了上下文信息的會話興趣。

2.2.4 Session Interest Activating Layer

用戶的會話興趣與目標物品越相近,那么應該賦予更大的權重,這里使用注意力機制來刻畫這種相關性:

這里XI是帶推薦物品向量。

同樣,混合了上下文信息的會話興趣,也進行同樣的處理:

后面的話,就是把四部分的向量:用戶特征向量、待推薦物品向量、會話興趣加權向量UI、帶上下文信息的會話興趣加權向量UH進行橫向拼接,輸入到全連接層中,得到輸出。

3、模型試驗

模型使用了兩個數據集進行了實驗,分別是阿里媽媽的廣告數據集和阿里巴巴的電商推薦數據集。

對比模型有:YoutubeNet、Wide & Deep、DIN 、DIN-RNN(這個和DIN很像,在原始的DIN中,用戶的行為序列沒有使用RNN進行處理,而DIN-RNN使用bi-LSTM對用戶的歷史行為序列進行處理)、DIEN。

評價指標是AUC。結果如下:

對于DSIN,這里有分了三種情況,第一個是DSIN,不過將Bias Encoding變為Transformer里面的Positional Encoding,第二個是DSIN,使用bias encoding,但不添加session inter-est interacting layer and the corresponding activation unit。第三個就是前文介紹的DSIN框架。可以看到,最后一個在兩個數據集上的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的效果,還是開篇的那個例子:

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,030評論 6 531
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,310評論 3 415
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 175,951評論 0 373
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,796評論 1 309
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,566評論 6 407
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,055評論 1 322
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,142評論 3 440
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,303評論 0 288
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,799評論 1 333
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,683評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,899評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,409評論 5 358
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,135評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,520評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,757評論 1 282
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,528評論 3 390
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,844評論 2 372

推薦閱讀更多精彩內容