【论文导读】DLP-KDD2019|BST---使用Transformer进行序列推荐
前言
本次分享一篇使用Transformer作為用戶行為序列建模的CTR預(yù)估文章。論文較短,只有4頁(yè),感興趣的同學(xué)可以閱讀下原文[1]。
本文約1.7k字,預(yù)計(jì)閱讀10分鐘。
概要
本文“Behavior Sequence Transformer for E-commerce Recommendation in Alibaba”[1]是2019年阿里團(tuán)隊(duì)發(fā)表在DLP(Deep Learning Practice for High-Dimensional Sparse Data)-KDD上關(guān)于序列推薦的一篇論文。文章最主要的內(nèi)容就是「通過(guò)Transformer模型在用戶行為序列中捕獲序列信息來(lái)進(jìn)行推薦」。其余內(nèi)容與其他Embedding&MLP的模型沒(méi)有本質(zhì)上的變化。本文主要聚焦于推薦系統(tǒng)中排序階段的任務(wù),「即可以把它看作是一個(gè)CTR預(yù)估任務(wù)」。
與WDL、DIN的對(duì)比
WDL(Wide&Deep)模型只是單純的將所有Embedding特征進(jìn)行拼接,且忽略了用戶行為序列的先后信息。
DIN(Deep Interest Network)則是應(yīng)用一個(gè)Attention機(jī)制來(lái)加大與目標(biāo)物品相似的歷史物品的權(quán)重,但Attention沒(méi)有位置的先后順序(即打亂歷史物品的順序,并不影響最后的結(jié)果),因此DIN依舊沒(méi)有考慮到用戶行為的序列特征。
為了解決上述模型缺陷,作者受Transformer的啟發(fā)---“可以通過(guò)自注意機(jī)制更好地捕捉句子中單詞之間的依賴關(guān)系”,使用Transformer來(lái)提取用戶行為序列中物品之間的“依賴關(guān)系”。
【題外話】作者在該篇文章中,只與WDL、DIN這些非序列化模型進(jìn)行對(duì)比,個(gè)人認(rèn)為只能證明序列化推薦的有效性,很難說(shuō)明Transformer在序列推薦有很好的應(yīng)用,后期實(shí)驗(yàn)也證明了這一點(diǎn)。
模型結(jié)構(gòu)
BST的模型結(jié)構(gòu)主要由Embedding層、Transformer層與MLP層組成,如下所示:
Embedding層
Embedding層依舊是將所有的高維稀疏的輸入特征映射為低維密集型特征。但由于是序列推薦,所以將所有的特征分成了三塊內(nèi)容:Other Features、User Behavior Sequence、Target Item。
Other Features:包括用戶的基本特征、目標(biāo)物品的基本特征、上下文信息、交叉特征,先將每個(gè)大的種類特征內(nèi)的所有內(nèi)容進(jìn)行拼接,再分別進(jìn)行embedding映射為一個(gè)低維向量,最后得到一個(gè)embedding矩陣,,其中為embedding維度,為特征數(shù)量(這里指的是用戶的基本特征等4個(gè)大的類別);
User Behavior Sequence:由于表示一個(gè)序列特征,且不使用RNN神經(jīng)網(wǎng)絡(luò),因此需要一個(gè)Positional Feature表示相對(duì)位置,Sequence Item Features表示歷史物品信息。其中文中指出,item_id, category_id已經(jīng)完全充分能表示物品信息。Positional Feature與Sequence Item Feature分別得到兩個(gè)embedding低維向量,再進(jìn)行拼接,得到一個(gè)embedding矩陣,,其中為embedding維度,為物品數(shù)量。
Target Item:與上述相同的處理方式;
關(guān)于Positional Feature Embedding,文章單獨(dú)進(jìn)行了說(shuō)明:“Attention is all you need”[2]一文中提到,可以使用位置的Embedding方法來(lái)捕捉句子的順序信息。當(dāng)然,在序列推薦中,也能捕捉用戶歷史行為的一個(gè)先后順序。對(duì)于每一個(gè)歷史物品的位置特征,文中給出計(jì)算方式:
其中表示推薦時(shí)間,表示點(diǎn)擊的時(shí)間。簡(jiǎn)單來(lái)說(shuō),就是做一個(gè)與當(dāng)前的時(shí)間差。
Transformer層
該部分,作者直接引入了Transformer模型來(lái)捕獲用戶的行為序列信息。
「自注意力機(jī)制層:」
使用多頭自注意力機(jī)制:
其中表示所有歷史物品的embedding矩陣,,表示的數(shù)量;
「前向網(wǎng)絡(luò)層:」
為了克服過(guò)擬合等問(wèn)題,作者在原有Transformer模型上,加入了dropout與LeakyReLU在自注意力機(jī)制層與前向網(wǎng)絡(luò)層之間:
「堆疊多個(gè)自注意力機(jī)制塊:」
以上部分稱為一個(gè)attention block,對(duì)于個(gè)block,可以定義為:
作者在實(shí)驗(yàn)中也對(duì)這個(gè)超參數(shù)進(jìn)行了討論。
具體的Transformer模型的內(nèi)容可以參考原文:“Attention is all you need”,或閱讀NIPS2017|行為序列建模的方式---Transformer。
MLP層
使用了如上圖圖所示的全連接神經(jīng)網(wǎng)絡(luò)。
損失函數(shù)使用了CTR預(yù)估最為常見(jiàn)的交叉損失:
實(shí)驗(yàn)
文章提出的BST模型整體結(jié)構(gòu)非常簡(jiǎn)單,最主要的內(nèi)容就是在序列推薦中引入Transformer進(jìn)行了嘗試,且取得了不錯(cuò)的效果。
但我們發(fā)現(xiàn),取得了最好的結(jié)果,隨著其增大而結(jié)果變差。作者的理由是:
?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].
?即用戶行為序列并不像機(jī)器翻譯序列那樣復(fù)雜,很小的block也能充分獲得不錯(cuò)的性能。并且表示“「Self-attentive sequential recommendation」”[3]一文中也是相似的情況。
討論
1、文中只和兩個(gè)非序列推薦模型進(jìn)行比較,那和其他序列模型,例如DIEN進(jìn)行對(duì)比,結(jié)果會(huì)怎么樣?
2、關(guān)于文中提到的block數(shù)量的解釋是否具有說(shuō)服力?(個(gè)人并不清楚)
3、關(guān)于位置編碼的設(shè)計(jì),文章使用的方法與Transformer不同,不過(guò)時(shí)間差確實(shí)能反應(yīng)兩個(gè)歷史物品的一個(gè)先后順序大小。
總結(jié)
本篇文章提出的模型BST是簡(jiǎn)單的應(yīng)用Transformer結(jié)構(gòu),實(shí)現(xiàn)序列推薦,完成CTR預(yù)估。
本篇論文也會(huì)進(jìn)行復(fù)現(xiàn),大家可以star一下我的github項(xiàng)目:https://github.com/ZiyaoGeng/Recommender-System-with-TF2.0,目前已有138????。
參考文獻(xiàn)
[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.
總結(jié)
以上是生活随笔為你收集整理的【论文导读】DLP-KDD2019|BST---使用Transformer进行序列推荐的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 【Python基础】快速提升效率的6个p
- 下一篇: 【机器学习基础】太棒了!这里有385篇自