【論文閱讀】Deep Session Interest Network for Click-Through Rate Prediction

2019年,繼DIN,DIEN之後,DSIN問世。論文點擊這裏,代碼點擊這裏

一句話總結:從用戶行爲發現,在每個會話中的行爲是相近的,而在不同會話之間差別是很大的,阿里提出了深度會話興趣網絡Deep Session Interest Network,來建模用戶這種跟會話密切相關的行爲。session劃分,首先將用戶的點擊行爲按照時間排序,判斷每兩個行爲之間的時間間隔,前後的時間間隔大於30min,就進行切分。


1.論文閱讀

爲什麼提出DSIN?

經過觀察,發現每個會話內的行爲比較相近,不同會話之間差別較大。【說明數據分析的重要性,結合對業務的認知,對session進行建模,提出DSIN】

Base Model

Base Model就是一個全連接神經網絡,其輸入的特徵的主要分爲三部分,用戶特徵待推薦物品特徵用戶歷史行爲序列特徵。用戶特徵如性別、城市、用戶ID等等,待推薦物品特徵包含商家ID、品牌ID等等,用戶歷史行爲序列特徵主要是用戶最近點擊的物品ID序列。

這些特徵會通過Embedding層轉換爲對應的embedding,拼接後輸入到多層全連接中,並使用logloss指導模型的訓練。

DISN Model

整體網絡結構:

DSIN在全連接層之前,分成了兩部分,左邊的那一部分,將用戶特徵和物品特徵轉換對應的向量表示,這部分主要是一個embedding層,就不再過多的描述。右邊的那一部分主要是對用戶行爲序列進行處理,從下到上分爲四層:
1)序列切分層session division layer
2)會話興趣抽取層session interest extractor layer
3)會話間興趣交互層session interest interacting layer
4)會話興趣激活層session interest acti- vating layer

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)會話興趣抽取層session interest extractor layer

這裏對每個session,使用transformer對每個會話的行爲進行處理。

在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變爲:

Q = Q + BE

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

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

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

3)會話間興趣交互層session interest interacting layer

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

每個時刻的hidden state計算如下

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

4)會話興趣激活層session interest acti- vating layer

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

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

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

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

結論:

1 Effect of Multiple Sessions

從實驗結果來看,DIN-RNN的效果差於DIN,而DSIN-BE的效果好於DSIN-BE-No-SIIL。兩組的差別均是有沒有使用序列建模。文章裏提到,對於序列建模來說,如果用戶的行爲時十分跳躍的,同時是突然結束的,會使得用戶的行爲看上進去具有很大的噪聲。這樣就使得DIN-RNN的效果反而不如DIN,但在DSIN中,我們對用戶的行爲序列按照會話進行了分組,由於以下兩點原因,使得DSIN中使用序列建模效果反而更好。

2.Effect of Session Interest Interacting Layer

DSIN-BE的效果好於DSIN-BE-No-SIIL,說明通過 Effect of Session Interest Interacting Layer得到混合上下文信息的用戶興趣,可以進一步提升模型的效果。

3.Effect of Bias Encoding

DSIN-BE的效果好於DSIN-PE,說明對不同的session添加偏置項,效果還是十分不錯的。

2.代碼

1.數據處理

 

2.網絡結構

 

參考:

1.論文:https://arxiv.org/abs/1905.06482

2.代碼數據處理:https://github.com/shenweichen/DSIN,網絡結構核心源碼:DeepCTR

3.https://www.jianshu.com/p/82ccb10f9ede

4.Transformer:https://mp.weixin.qq.com/s/RLxWevVWHXgX-UcoxDS70w

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章