論文地址: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 序列推薦
定義為用戶(hù)集合猿棉,
為item集合,其中
屑咳,
萨赁。定義用戶(hù)行為序列為
3.2 基于Self-Attention的用戶(hù)短期興趣建模
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)重輸出锣杂。。其中
可以視為用戶(hù)的短期興趣表示番宁。為了學(xué)習(xí)單一attentive表示元莫,將L個(gè)self-attention的Embedding取平均值作為用戶(hù)短期興趣:
有時(shí)間信號(hào)的輸入Embedding
如果沒(méi)有序列信號(hào),則輸入退化為a bag of embedding蝶押,同時(shí)無(wú)法保留順序模式踱蠢。本文通過(guò)位置embedding給query和key增加時(shí)間信息。時(shí)間Embedding由兩個(gè)正弦信號(hào)定義得到:
TE在非線性變換之前簡(jiǎn)單的加給query和key棋电。
3.3 用戶(hù)長(zhǎng)期興趣建模
本文為了避免點(diǎn)積的問(wèn)題茎截,采用歐式距離來(lái)衡量item和user的接近程度:
3.4 模型學(xué)習(xí)
目標(biāo)函數(shù)
給定時(shí)間步的短期attentive隱因子和長(zhǎng)期偏好后,任務(wù)為預(yù)測(cè)在時(shí)間步
用戶(hù)將產(chǎn)生交互的item(
)赶盔。為了保持一致企锌,對(duì)短期和長(zhǎng)期都用歐式距離建模,使用它們的和作為最終的推薦分?jǐn)?shù):
上式中第一項(xiàng)是長(zhǎng)期興趣推薦分?jǐn)?shù)于未,第二項(xiàng)是短期興趣推薦分?jǐn)?shù)撕攒。注意和
都表示下一個(gè)item的embedding,不過(guò)它們的參數(shù)不同烘浦。
在某些情況下抖坪,想要預(yù)測(cè)幾個(gè)items而不是只預(yù)測(cè)一個(gè)item。這樣能讓模型捕獲序列中的跳躍行為闷叉。定義為下
個(gè)用戶(hù)喜歡的item擦俐。本文采用pairwise排序方法學(xué)習(xí)模型參數(shù)。將
定義為
個(gè)用戶(hù)無(wú)行為的負(fù)樣本握侧。為了鼓勵(lì)區(qū)分正負(fù)user-item對(duì)蚯瞧,使用基于邊界的hinge loss:
上式中蹬叭,表示模型參數(shù)。
是邊界參數(shù)状知,用
控制模型復(fù)雜度。在稀疏數(shù)據(jù)集上也是用歸一裁剪策略來(lái)限制
在一個(gè)單元?dú)W式球上:
這種正則化方法對(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)
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)物品洪规。
4.2 評(píng)估指標(biāo)
用hit ratio和mean reciprocal rank印屁。一個(gè)衡量預(yù)測(cè)準(zhǔn)確率,一個(gè)衡量排序質(zhì)量斩例。
MRR考慮預(yù)測(cè)結(jié)果中g(shù)roundtruth item的位置:
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)的隱式維度統(tǒng)一設(shè)置為100叹洲。因?yàn)锳mazon,LastFm工禾,Movietweetings數(shù)據(jù)集的稀疏性运提,用norm clipping代替L2對(duì)X, V, U的正則化蝗柔。self-attention模塊中的非線性層用L2正則化。
正則化參數(shù)范圍在
民泵,Dropout范圍在
癣丧,權(quán)重因子
范圍在
,Movielens的序列長(zhǎng)度
為5栈妆,MovieTweetings為3胁编,其余數(shù)據(jù)集為2。MovieLens的目標(biāo)長(zhǎng)度
為3鳞尔,其余為1嬉橙。hingle loss的邊界
固定為0.5。
4.5 效果比較
5 模型分析及討論
這一小節(jié)回答第二個(gè)問(wèn)題寥假。
Self-Attention的影響
典型有Self-Attention比沒(méi)有要好市框,另外發(fā)現(xiàn)即使沒(méi)用Self-Attention,效果也比其他方法好
聚合方法的影響
平均方法效果最好
權(quán)重
的影響
用于控制長(zhǎng)短期興趣的貢獻(xiàn)糕韧。從圖4-a可以發(fā)現(xiàn)枫振,設(shè)置說(shuō)明僅考慮短期興趣,效果比僅考慮長(zhǎng)期興趣(
)要好萤彩。
取值為0.2-0.4較好蒋得,說(shuō)明短期興趣在序列推薦中扮演一個(gè)更重要的角色。
序列長(zhǎng)度
的影響
如圖4-b所示乒疏,本文發(fā)現(xiàn)合適的高度依賴(lài)于數(shù)據(jù)集的密集程度额衙。在MovieLens數(shù)據(jù)集上,平均每個(gè)用戶(hù)有超過(guò)100個(gè)行為怕吴,設(shè)置
越大效果越好窍侧。然而,在稀疏數(shù)據(jù)集上转绷,
應(yīng)當(dāng)設(shè)置的比較小伟件,這也是合理的,因?yàn)殡S著
的增加會(huì)導(dǎo)致訓(xùn)練樣本的減少议经。
隱式維度大小的影響
從圖5可以發(fā)現(xiàn)斧账,本文模型在任何維度上均優(yōu)于其他模型,更大的維度效果不一定更好煞肾,MC和Caser的表現(xiàn)是不穩(wěn)定的咧织。
模型效率
七 小結(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