論文筆記 | arXiv | Next Item Recommendation with Self-Attention

AttRec-title.png

論文地址:https://arxiv.org/abs/1808.06414

官方代碼:https://github.com/cheungdaven/DeepRec

一 為什么讀這篇

看完SASRec,接著看這篇调缨。兩篇文章都是用Self-Attention做推薦的疮鲫,而且都是同一天發(fā)的∠乙叮看看和SASRec有什么不同吧俊犯,能不能讓效果有提升。

二 截止閱讀時(shí)這篇論文的引用次數(shù)

2019.7.3 9次伤哺。

三 相關(guān)背景介紹

18年8月掛到arXiv上燕侠,后來(lái)稍微改了下名字,叫《Next Item Recommendation with Self-Attentive Metric Learning》立莉,中了AAAI19的RECNLP绢彤。和SASRec一樣,算是跟進(jìn)比較及時(shí)的蜓耻,transformer出來(lái)一年后就應(yīng)用到自己工作的領(lǐng)域并發(fā)了paper茫舶。4個(gè)作者都是華人,分別來(lái)自新南威爾士大學(xué)和南洋理工大學(xué)刹淌。還是這4個(gè)人饶氏,寫(xiě)了篇《Deep Learning based Recommender System: A Survey and New Perspectives》的綜述,引用已達(dá)210次有勾。同時(shí)開(kāi)源了一個(gè)基于tf實(shí)現(xiàn)的深度學(xué)習(xí)推薦算法包疹启,DeepRec,本文的實(shí)現(xiàn)就在這個(gè)包里蔼卡。

四 關(guān)鍵詞

Sequential Recommendation

Self-Attention

五 論文的主要貢獻(xiàn)

1 提出結(jié)合度量學(xué)習(xí)和Self-Attention的方法來(lái)解決序列推薦問(wèn)題

2 顯式的控制了長(zhǎng)短期興趣對(duì)模型的影響

六 詳細(xì)解讀

0 摘要

本文提出的模型利用了self-attention機(jī)制喊崖,通過(guò)用戶(hù)歷史行為來(lái)預(yù)測(cè)item-item關(guān)系。self-attention能夠預(yù)測(cè)用戶(hù)行為軌跡上每個(gè)item的相關(guān)權(quán)重雇逞,從而學(xué)習(xí)更好的用戶(hù)短期興趣表示荤懂。模型最終在度量學(xué)習(xí)框架上訓(xùn)練,且同時(shí)考慮了長(zhǎng)短期意圖喝峦。

1 介紹

CNN和RNN模型應(yīng)用于推薦時(shí)势誊,在整個(gè)用戶(hù)歷史行為上都存在無(wú)法明確捕獲item-item交互的問(wèn)題呜达∫ゴ溃基于用戶(hù)歷史上下文來(lái)對(duì)item-item的關(guān)系建模的動(dòng)機(jī)是符合直覺(jué)的,因?yàn)槔斫鈏tem之間更精細(xì)的關(guān)系,而不是簡(jiǎn)單的統(tǒng)一對(duì)待眉踱,這通常更為重要挤忙。總之谈喳,本文假設(shè)為模型提供inductive bias將提升表示質(zhì)量册烈,并最終改進(jìn)推薦系統(tǒng)的效果。

本文提出的模型不僅對(duì)連續(xù)的item建模婿禽,而且對(duì)當(dāng)前窗口中的所有用戶(hù)行為進(jìn)行學(xué)習(xí)以表示序列赏僧。因此本文模型可以視為是『局部-全局』(local-global)方法。

本文模型采用度量學(xué)習(xí)框架的形式扭倾,在訓(xùn)練時(shí)使用戶(hù)的self-attended表示與預(yù)期item之間的距離更近淀零。(idea:user和item的vector用上CV中那些騷套路,比如加減乘除)膛壹。本文是第一個(gè)提出基于度量學(xué)習(xí)和基于attention方法的序列推薦方法驾中。本文主要貢獻(xiàn)如下:

1 提出用于序列推薦的新框架。模型將self-attention網(wǎng)絡(luò)和度量embedding相結(jié)合模聋,為用戶(hù)短期和長(zhǎng)期意圖建模

2 本文提出的模型超過(guò)了當(dāng)前的SOTA肩民,如Caser,TransRec

3 對(duì)超參做了剝離研究

2 相關(guān)工作

2.1 序列感知的推薦系統(tǒng)

絕大多數(shù)方法是專(zhuān)門(mén)為評(píng)分預(yù)估任務(wù)設(shè)計(jì)的链方。除了馬爾科夫鏈持痰,度量embedding在序列感知的推薦上也有良好的表現(xiàn)。

2.2 用于推薦的深度神經(jīng)網(wǎng)絡(luò)

MLP可以在對(duì)user-item關(guān)系建模時(shí)引入非線性侄柔。CNN可以從user和item的文本共啃,視覺(jué),語(yǔ)音方面提取特征暂题。Autoencoder可以從附加信息學(xué)習(xí)顯著的特征表示來(lái)增強(qiáng)推薦質(zhì)量移剪。RNN能夠?qū)r(shí)間動(dòng)態(tài)建模。

通常薪者,CNN和RNN需要從大量數(shù)據(jù)中學(xué)習(xí)以獲得有意義的結(jié)果纵苛,然而數(shù)據(jù)稀疏性使得模型學(xué)習(xí)相當(dāng)困難。

2.3 神經(jīng)Attention模型

最近將Attention應(yīng)用到推薦的研究有hashtag recommendation言津,one-class recomendation攻人,session based recommendation。這里作者有吹噓到悬槽,『在推薦系統(tǒng)里使用self-attention并非直截了當(dāng)?shù)幕澄牵@證明了作者工作的新穎性』

3 模型:ATTREC

本文提出的模型稱(chēng)之為AttRec。用self-attention對(duì)用戶(hù)短期興趣建模初婆,用協(xié)同度量學(xué)習(xí)對(duì)用戶(hù)長(zhǎng)期興趣建模蓬坡。

3.1 序列推薦

定義\mathcal{U}為用戶(hù)集合猿棉,\mathcal{I}為item集合,其中|\mathcal{U}|=M屑咳,|I|=N萨赁。定義用戶(hù)行為序列為\mathcal{H}^{u}=\left(\mathcal{H}_{1}^{u}, \cdots, \mathcal{H}_{\left|\mathcal{H}^{u}\right|}^{u}\right)

3.2 基于Self-Attention的用戶(hù)短期興趣建模

AttRec-fig1.png
Self-Attention模塊

不像基礎(chǔ)attention那樣只能通過(guò)對(duì)整個(gè)上下文有限的知識(shí)來(lái)學(xué)習(xí)表示,self-attention能夠保持上下文序列信息兆龙,并無(wú)需考慮它們的距離來(lái)捕獲序列上各元素的關(guān)系杖爽。

這里和原作Transformer不同的是對(duì)Query和Key都做了ReLU的非線性變換。保持Value不變紫皇,關(guān)于這點(diǎn)作者給出的解釋是在其他領(lǐng)域value通常是預(yù)訓(xùn)練的慰安,用的word embedding或圖像特征。而在本文模型中value的值是需要學(xué)習(xí)的聪铺。無(wú)論是增加線性還是非線性變換都會(huì)增加參數(shù)學(xué)習(xí)的困難泻帮。因?yàn)閝uery和key是作為輔助因素,所以不像value對(duì)變換那么敏感计寇。

value和仿射矩陣的乘積生成self-attention模塊的最終權(quán)重輸出锣杂。a_{t}^{u}=s_{t}^{u} X_{t}^{u}。其中a_{t}^{u} \in \mathcal{R}^{L \times d}可以視為用戶(hù)的短期興趣表示番宁。為了學(xué)習(xí)單一attentive表示元莫,將L個(gè)self-attention的Embedding取平均值作為用戶(hù)短期興趣:
m_{t}^{u}=\frac{1}{L} \sum_{l=1}^{L} a_{t l}^{u}

有時(shí)間信號(hào)的輸入Embedding

如果沒(méi)有序列信號(hào),則輸入退化為a bag of embedding蝶押,同時(shí)無(wú)法保留順序模式踱蠢。本文通過(guò)位置embedding給query和key增加時(shí)間信息。時(shí)間Embedding由兩個(gè)正弦信號(hào)定義得到:
\begin{aligned} T E(t, 2 i) &=\sin \left(t / 10000^{2 i / d}\right) \\ T E(t, 2 i+1) &=\cos \left(t / 10000^{2 i / d}\right) \end{aligned}
TE在非線性變換之前簡(jiǎn)單的加給query和key棋电。

3.3 用戶(hù)長(zhǎng)期興趣建模

本文為了避免點(diǎn)積的問(wèn)題茎截,采用歐式距離來(lái)衡量item和user的接近程度:
\left\|U_{u}-V_{i}\right\|_{2}^{2}

3.4 模型學(xué)習(xí)

目標(biāo)函數(shù)

給定時(shí)間步t的短期attentive隱因子和長(zhǎng)期偏好后,任務(wù)為預(yù)測(cè)在時(shí)間步t+1用戶(hù)將產(chǎn)生交互的item(\mathcal{H}_{t+1}^{u})赶盔。為了保持一致企锌,對(duì)短期和長(zhǎng)期都用歐式距離建模,使用它們的和作為最終的推薦分?jǐn)?shù):
y_{t+1}^{u}=\omega\left\|U_{u}-V_{\mathcal{H}_{t+1}^{u}}\right\|_{2}^{2}+(1-\omega)\left\|m_{t}^{u}-X_{t+1}^{u}\right\|_{2}^{2}
上式中第一項(xiàng)是長(zhǎng)期興趣推薦分?jǐn)?shù)于未,第二項(xiàng)是短期興趣推薦分?jǐn)?shù)撕攒。注意V_{\mathcal{H}_{t+1}^{u}}X_{t+1}^{u}都表示下一個(gè)item的embedding,不過(guò)它們的參數(shù)不同烘浦。

在某些情況下抖坪,想要預(yù)測(cè)幾個(gè)items而不是只預(yù)測(cè)一個(gè)item。這樣能讓模型捕獲序列中的跳躍行為闷叉。定義\mathcal{T}^{+}為下T個(gè)用戶(hù)喜歡的item擦俐。本文采用pairwise排序方法學(xué)習(xí)模型參數(shù)。將\mathcal{T}^{-}定義為T個(gè)用戶(hù)無(wú)行為的負(fù)樣本握侧。為了鼓勵(lì)區(qū)分正負(fù)user-item對(duì)蚯瞧,使用基于邊界的hinge loss:
\mathcal{L}(\Theta)=\sum_{(u, i) \in \mathcal{T}^{+}} \sum_{(u, j) \in \mathcal{T}^{-}}\left[y_{i}^{u}+\gamma-y_{j}^{u}\right]_{+}+\lambda\|\Theta\|_{2}^{2}
上式中蹬叭,\Theta=\left\{X, V, U, W_{Q}, W_{K}\right\}表示模型參數(shù)。\gamma是邊界參數(shù)状知,用\ell_{2}控制模型復(fù)雜度。在稀疏數(shù)據(jù)集上也是用歸一裁剪策略來(lái)限制X, V, U在一個(gè)單元?dú)W式球上:
\left\|X_{*}\right\|_{2} \leq 1,\left\|V_{*}\right\|_{2} \leq 1,\left\|U_{*}\right\|_{2} \leq 1
這種正則化方法對(duì)于稀疏數(shù)據(jù)集是有用的孽查,它削弱了維度詛咒問(wèn)題同時(shí)阻止了有的數(shù)據(jù)點(diǎn)擴(kuò)散的太遠(yuǎn)饥悴。

優(yōu)化和推薦

用adaptive gradient algorithm作為優(yōu)化方法。推薦的為歐式距離最小的top N盲再。

在推薦階段西设,一次計(jì)算所有user item對(duì)的推薦分?jǐn)?shù),用有效的排序算法生成排序列表答朋。

圖2是整個(gè)模型的架構(gòu)

AttRec-fig2.png

4 實(shí)驗(yàn)

實(shí)驗(yàn)設(shè)計(jì)是為了回答這2個(gè)問(wèn)題:

1 提出的self-attentive序列推薦模型是否達(dá)到了SOTA贷揽?是否能處理稀疏數(shù)據(jù)集?

2 有效的關(guān)鍵超參是什么梦碗?

4.1 數(shù)據(jù)集

注意這里對(duì)數(shù)據(jù)集的預(yù)處理操作禽绪,丟棄不足10個(gè)行為的用戶(hù),移除掉冷啟動(dòng)物品洪规。

AttRec-table1.png

4.2 評(píng)估指標(biāo)

用hit ratio和mean reciprocal rank印屁。一個(gè)衡量預(yù)測(cè)準(zhǔn)確率,一個(gè)衡量排序質(zhì)量斩例。
H R @ 50=\frac{1}{M} \sum_{u \in \mathcal{U}} \mathbf{1}\left(R_{u, g_{u}} \leq 50\right)
MRR考慮預(yù)測(cè)結(jié)果中g(shù)roundtruth item的位置:
M R R=\frac{1}{M} \sum_{u \in \mathcal{U}} \frac{1}{R_{u, g_{u}}}

4.3 比較模型

POP雄人,BPRMF,F(xiàn)MC念赶,F(xiàn)PMC础钠,HRM,PRME叉谜,TransRec旗吁,Caser

神經(jīng)網(wǎng)絡(luò)方法:HRM,Caser

度量Embedding方法:PRME停局,TransRec

因?yàn)镕ossil和GRU的效果不如Caser和TransRec阵漏,所以沒(méi)有比較了。

4.4 實(shí)現(xiàn)細(xì)節(jié)

學(xué)習(xí)率設(shè)置為0.05翻具,沒(méi)有更進(jìn)一步調(diào)優(yōu)履怯。AttRec的(U,V裆泳,X)的隱式維度d統(tǒng)一設(shè)置為100叹洲。因?yàn)锳mazon,LastFm工禾,Movietweetings數(shù)據(jù)集的稀疏性运提,用norm clipping代替L2對(duì)X, V, U的正則化蝗柔。self-attention模塊中的非線性層用L2正則化。

正則化參數(shù)\lambda范圍在\{0.1,0.01,0.001,0.0001\}民泵,Dropout范圍在\{0,0.3,0.5,0.7\}癣丧,權(quán)重因子\omega范圍在\{0,0.2,0.4,0.6,0.8,1.0\},Movielens的序列長(zhǎng)度L為5栈妆,MovieTweetings為3胁编,其余數(shù)據(jù)集為2。MovieLens的目標(biāo)長(zhǎng)度T為3鳞尔,其余為1嬉橙。hingle loss的邊界\gamma固定為0.5。

4.5 效果比較

AttRec-table2.png

5 模型分析及討論

這一小節(jié)回答第二個(gè)問(wèn)題寥假。

Self-Attention的影響

典型有Self-Attention比沒(méi)有要好市框,另外發(fā)現(xiàn)即使沒(méi)用Self-Attention,效果也比其他方法好

AttRec-table3.jpg

聚合方法的影響

平均方法效果最好

AttRec-table4.jpg

權(quán)重\omega的影響

用于控制長(zhǎng)短期興趣的貢獻(xiàn)糕韧。從圖4-a可以發(fā)現(xiàn)枫振,設(shè)置\omega=0說(shuō)明僅考慮短期興趣,效果比僅考慮長(zhǎng)期興趣(\omega=1)要好萤彩。\omega取值為0.2-0.4較好蒋得,說(shuō)明短期興趣在序列推薦中扮演一個(gè)更重要的角色。

AttRec-fig4.jpg

序列長(zhǎng)度L的影響

如圖4-b所示乒疏,本文發(fā)現(xiàn)合適的L高度依賴(lài)于數(shù)據(jù)集的密集程度额衙。在MovieLens數(shù)據(jù)集上,平均每個(gè)用戶(hù)有超過(guò)100個(gè)行為怕吴,設(shè)置L越大效果越好窍侧。然而,在稀疏數(shù)據(jù)集上转绷,L應(yīng)當(dāng)設(shè)置的比較小伟件,這也是合理的,因?yàn)殡S著L的增加會(huì)導(dǎo)致訓(xùn)練樣本的減少议经。

隱式維度大小的影響

從圖5可以發(fā)現(xiàn)斧账,本文模型在任何維度上均優(yōu)于其他模型,更大的維度效果不一定更好煞肾,MC和Caser的表現(xiàn)是不穩(wěn)定的咧织。

AttRec-fig5.jpg

模型效率

AttRec-table5.jpg

七 小結(jié)

讀的過(guò)程中感覺(jué)和那篇SASRec簡(jiǎn)直就是姊妹篇,整個(gè)行文結(jié)構(gòu)都非常像。本篇說(shuō)白了就是在度量學(xué)習(xí)的基礎(chǔ)上套了一個(gè)Self-Attention,不過(guò)提出的基于度量學(xué)習(xí)來(lái)做的做法相對(duì)更少見(jiàn)點(diǎn)栽连。同時(shí)本文模型顯式的利用了用戶(hù)的長(zhǎng)短期興趣瓷们。

素質(zhì)四連

要解決什么問(wèn)題

序列推薦問(wèn)題

用了什么方法解決

度量學(xué)習(xí) + Self_Attention

效果如何

用HR@50和MRR做指標(biāo)的SOTA,沒(méi)和SASRec比

還存在什么問(wèn)題

沒(méi)有提預(yù)測(cè)時(shí)怎么做锥累,感覺(jué)用到線上可能是坑挡毅。

算法背后的模式和原理

還是排列組合

八 補(bǔ)充

同一天在arXiv上發(fā)表的SASRec:Self-Attentive Sequential Recommendation

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末民珍,一起剝皮案震驚了整個(gè)濱河市败去,隨后出現(xiàn)的幾起案子放航,更是在濱河造成了極大的恐慌,老刑警劉巖圆裕,帶你破解...
    沈念sama閱讀 222,183評(píng)論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件广鳍,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡葫辐,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,850評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門(mén)伴郁,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)耿战,“玉大人,你說(shuō)我怎么就攤上這事焊傅〖炼福” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 168,766評(píng)論 0 361
  • 文/不壞的土叔 我叫張陵狐胎,是天一觀的道長(zhǎng)鸭栖。 經(jīng)常有香客問(wèn)我,道長(zhǎng)握巢,這世上最難降的妖魔是什么晕鹊? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 59,854評(píng)論 1 299
  • 正文 為了忘掉前任,我火速辦了婚禮暴浦,結(jié)果婚禮上溅话,老公的妹妹穿的比我還像新娘。我一直安慰自己歌焦,他們只是感情好飞几,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,871評(píng)論 6 398
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著独撇,像睡著了一般屑墨。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上纷铣,一...
    開(kāi)封第一講書(shū)人閱讀 52,457評(píng)論 1 311
  • 那天卵史,我揣著相機(jī)與錄音,去河邊找鬼搜立。 笑死程腹,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的儒拂。 我是一名探鬼主播寸潦,決...
    沈念sama閱讀 40,999評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼色鸳,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了见转?” 一聲冷哼從身側(cè)響起命雀,我...
    開(kāi)封第一講書(shū)人閱讀 39,914評(píng)論 0 277
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎斩箫,沒(méi)想到半個(gè)月后吏砂,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,465評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡乘客,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,543評(píng)論 3 342
  • 正文 我和宋清朗相戀三年狐血,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片易核。...
    茶點(diǎn)故事閱讀 40,675評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡匈织,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出牡直,到底是詐尸還是另有隱情缀匕,我是刑警寧澤,帶...
    沈念sama閱讀 36,354評(píng)論 5 351
  • 正文 年R本政府宣布碰逸,位于F島的核電站乡小,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏饵史。R本人自食惡果不足惜满钟,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,029評(píng)論 3 335
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望胳喷。 院中可真熱鬧零远,春花似錦、人聲如沸厌蔽。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,514評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)奴饮。三九已至纬向,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間戴卜,已是汗流浹背逾条。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,616評(píng)論 1 274
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留投剥,地道東北人师脂。 一個(gè)月前我還...
    沈念sama閱讀 49,091評(píng)論 3 378
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親吃警。 傳聞我的和親對(duì)象是個(gè)殘疾皇子糕篇,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,685評(píng)論 2 360

推薦閱讀更多精彩內(nèi)容