本次分享一篇使用Transformer作為用戶行為序列建模的CTR預估文章。論文較短,只有4頁,感興趣的同學可以閱讀下原文[1]。
本文約1.7k字,預計閱讀10分鐘。
本文「Behavior Sequence Transformer for E-commerce Recommendation in Alibaba」[1]是2019年阿里團隊發表在DLP(Deep Learning Practice for High-Dimensional Sparse Data)-KDD上關於序列推薦的一篇論文。文章最主要的內容就是「通過Transformer模型在用戶行為序列中捕獲序列信息來進行推薦」。其餘內容與其他Embedding&MLP的模型沒有本質上的變化。本文主要聚焦於推薦系統中排序階段的任務,「即可以把它看作是一個CTR預估任務」。
與WDL、DIN的對比WDL(Wide&Deep)模型只是單純的將所有Embedding特徵進行拼接,且忽略了用戶行為序列的先後信息。
DIN(Deep Interest Network)則是應用一個Attention機制來加大與目標物品相似的歷史物品的權重,但Attention沒有位置的先後順序(即打亂歷史物品的順序,並不影響最後的結果),因此DIN依舊沒有考慮到用戶行為的序列特徵。
為了解決上述模型缺陷,作者受Transformer的啟發---「可以通過自注意機制更好地捕捉句子中單詞之間的依賴關係」,使用Transformer來提取用戶行為序列中物品之間的「依賴關係」。
【題外話】作者在該篇文章中,只與WDL、DIN這些非序列化模型進行對比,個人認為只能證明序列化推薦的有效性,很難說明Transformer在序列推薦有很好的應用,後期實驗也證明了這一點。
模型結構BST的模型結構主要由Embedding層、Transformer層與MLP層組成,如下所示:
Embedding層Embedding層依舊是將所有的高維稀疏的輸入特徵映射為低維密集型特徵。但由於是序列推薦,所以將所有的特徵分成了三塊內容:Other Features、User Behavior Sequence、Target Item。
Other Features:包括用戶的基本特徵、目標物品的基本特徵、上下文信息、交叉特徵,先將每個大的種類特徵內的所有內容進行拼接,再分別進行embedding映射為一個低維向量,最後得到一個embedding矩陣,
User Behavior Sequence:由於表示一個序列特徵,且不使用RNN神經網絡,因此需要一個Positional Feature表示相對位置,Sequence Item Features表示歷史物品信息。其中文中指出,item_id, category_id已經完全充分能表示物品信息。Positional Feature與Sequence Item Feature分別得到兩個embedding低維向量,再進行拼接,得到一個embedding矩陣,
關於Positional Feature Embedding,文章單獨進行了說明:「Attention is all you need」[2]一文中提到,可以使用位置的Embedding方法來捕捉句子的順序信息。當然,在序列推薦中,也能捕捉用戶歷史行為的一個先後順序。對於每一個歷史物品
其中
Transformer層該部分,作者直接引入了Transformer模型來捕獲用戶的行為序列信息。
「自注意力機制層:」
使用多頭自注意力機制:
其中
「前向網絡層:」
為了克服過擬合等問題,作者在原有Transformer模型上,加入了dropout與LeakyReLU在自注意力機制層與前向網絡層之間:
「堆疊多個自注意力機制塊:」
以上部分稱為一個attention block,對於
作者在實驗中也對這個超參數進行了討論。
具體的Transformer模型的內容可以參考原文:「Attention is all you need」,或閱讀NIPS2017|行為序列建模的方式---Transformer。
MLP層使用了如上圖圖所示的全連接神經網絡。
損失函數使用了CTR預估最為常見的交叉損失:
實驗文章提出的BST模型整體結構非常簡單,最主要的內容就是在序列推薦中引入Transformer進行了嘗試,且取得了不錯的效果。
但我們發現,
❝This may be due to the fact that the sequential dependency in users』 behavior sequence is not as complex as that in sentences in machine translation task, thus smaller number of blocks are enough to obtain good performance.Similar observation is reported in [7].
❞即用戶行為序列並不像機器翻譯序列那樣複雜,很小的block也能充分獲得不錯的性能。並且表示「「Self-attentive sequential recommendation」」[3]一文中也是相似的情況。
討論1、文中只和兩個非序列推薦模型進行比較,那和其他序列模型,例如DIEN進行對比,結果會怎麼樣?
2、關於文中提到的block數量的解釋是否具有說服力?(個人並不清楚)
3、關於位置編碼的設計,文章使用的方法與Transformer不同,不過時間差確實能反應兩個歷史物品的一個先後順序大小。
總結本篇文章提出的模型BST是簡單的應用Transformer結構,實現序列推薦,完成CTR預估。
本篇論文也會進行復現,大家可以star一下我的github項目:https://github.com/ZiyaoGeng/Recommender-System-with-TF2.0,目前已有138🌟。
參考文獻[1] Chen Q, Zhao H, Li W, et al. Behavior sequence transformer for e-commerce recommendation in Alibaba[C]//Proceedings of the 1st International Workshop on Deep Learning Practice for High-Dimensional Sparse Data. 2019: 1-4.
[2] Vaswani A, Shazeer N, Parmar N, et al. Attention is all you need[C]//Advances in neural information processing systems. 2017: 5998-6008.
[3] Wang-Cheng Kang and Julian McAuley. 2018. Self-attentive sequential recommendation. In ICDM. 197–206.