任柯舟,彭甫镕,郭 鑫,王 喆,張曉靜
(山西大學(xué)大數(shù)據(jù)科學(xué)與產(chǎn)業(yè)研究院,太原 030006)
隨著互聯(lián)網(wǎng)的發(fā)展和電子商務(wù)的蓬勃發(fā)展,信息數(shù)據(jù)呈現(xiàn)爆炸式增長,導(dǎo)致人們面臨的選擇也越來越多,推薦系統(tǒng)逐漸成為一種普遍應(yīng)用的技術(shù)。傳統(tǒng)的推薦系統(tǒng)大多是基于協(xié)同過濾或基于內(nèi)容推薦[1],這類方法主要基于集體智慧,核心思想是給用戶推薦他們喜歡物品的相似物品,或者向用戶推薦與他們有相似行為的用戶喜歡的物品[2]。雖然這些傳統(tǒng)的方法有不錯的效果,但都忽視了用戶交互物品之間的結(jié)構(gòu)關(guān)系,例如用戶的行為習(xí)慣、用戶偏好的發(fā)展及商品的流行時間等[3]。序列推薦系統(tǒng)能有效利用用戶與物品的交互序列來很好地包含這些結(jié)構(gòu)信息,從而進(jìn)行更加準(zhǔn)確和動態(tài)的推薦[4]。序列推薦將用戶的交互物品按照時間順序來構(gòu)建一個序列模型,通過捕獲物品之間的依賴關(guān)系獲得用戶的動態(tài)興趣特征,很好地解決了用戶的興趣遷移問題。受處理長度的影響,序列模型通常得到的是用戶的短期興趣特征。為了使用戶特征更加完整,研究人員通常使用矩陣分解模型來獲取用戶長期養(yǎng)成的喜好,即用戶的長期興趣。
每位用戶的交互物品相較于物品總量來說是很稀疏的,因此大多數(shù)的用戶-物品矩陣是稀疏矩陣,而數(shù)據(jù)的稀疏會導(dǎo)致推薦的效果下降[5];同時隨著各大社交網(wǎng)站的發(fā)展,越來越多的科研人員將社交數(shù)據(jù)作為緩解數(shù)據(jù)稀疏的輔助數(shù)據(jù)[6]。大多數(shù)社會化推薦都基于同質(zhì)性和社交影響理論,即在社交網(wǎng)路中有聯(lián)系的用戶有相似的興趣愛好,同時具有相似愛好的人更容易建立聯(lián)系。由于矩陣分解良好的擴展性,研究人員在矩陣分解的基礎(chǔ)上提出了兩種融合方式[7]:1)用戶特征向量的共享表示,在原矩陣分解的基礎(chǔ)上通過共享用戶特征,使用戶-項目矩陣分解得到的用戶特征向量也可以應(yīng)用在用戶社交矩陣中;2)用戶特征重表示,在用戶興趣與社交興趣相似的基礎(chǔ)上,增加社交約束項,保證用戶特征與社交特征盡可能相似。
用戶與項目交互是一個動態(tài)序列,用戶的興趣動態(tài)變化[3]在序列推薦算法中已被大量地關(guān)注,而在一般的社會化推薦算法忽略了用戶的短期興趣。除了用戶興趣的動態(tài)特性外,社會化推薦算法也忽略了社交影響的動態(tài)特性,將不同時刻的朋友行為同等對待。例如,表1展示了用戶u和其兩個朋友a、b在t-1到t+1的交互列表,圖1展示朋友a、b對用戶u可能的影響力。在t-1時刻用戶u和朋友a有相同的交互物品,因此朋友a的影響力要大于朋友b;在t時刻用戶u和朋友b有相同的交互物品,因此朋友b的影響力要大于朋友a;在t+1 時刻,雖然朋友a,b都交互過物品3,但朋友a的交互時刻要比朋友b更接近于用戶u,因此朋友a的影響力要大于朋友b。
圖1 朋友對用戶的影響Fig.1 Influence of friends on a user
表1 用戶和朋友的交互列表Tab.1 Interactive list of a user and his friends
針對用戶的興趣動態(tài)變化和社交影響的動態(tài)特性,本文提出了一種社交信息動態(tài)融合的社會化推薦模型。首先,利用自注意力機制構(gòu)建用戶交互物品的序列模型,捕獲用戶短期興趣;然后,利用具有時間遺忘的注意力機制構(gòu)建社交短期影響,利用具有協(xié)同特性的注意力機制構(gòu)建社交長期影響;最后,結(jié)合社交的長短期影響與用戶的短期興趣獲得用戶的最終興趣并產(chǎn)生下一項推薦。本文的主要貢獻(xiàn)如下:
1)在社交短期興趣建模過程中,提出具有遺忘機制的注意力融合方法,降低朋友在較遠(yuǎn)時刻的行為的社交影響力;
2)在社交長期興趣建模過程中,提出具有協(xié)同特性的注意力融合方法,加強行為相似的朋友的社交影響力;
3)提出將用戶短期興趣、社交短期興趣與社交長期興趣進(jìn)行融合,得到一種社交信息動態(tài)融合的推薦模型;
4)在兩個公開數(shù)據(jù)集上分別與最新的序列模型和社會化模型進(jìn)行對比驗證提出模型的性能。
與基于協(xié)同過濾的推薦系統(tǒng)的集體智慧相比,序列推薦將重點放在用戶交互序列之間的依賴關(guān)系上,考慮物品之間的順序結(jié)構(gòu)關(guān)系,通過對用戶交互物品進(jìn)行序列建模,獲取用戶的興趣遷移。傳統(tǒng)的序列推薦方法主要基于馬爾可夫鏈,例如Feng 等[8]在下一項興趣點推薦(Point Of Interest,POI)推薦問題上,提出了一種個性化排序度量嵌入方法(Personalized Ranking Metric Embedding,PRME)來建模個性化嵌入序列,首先將POI嵌入到高維空間中,然后用歐拉距離表示兩個POI之間的轉(zhuǎn)換概率,同時加入用戶的興趣偏好,最后利用馬爾可夫鏈來預(yù)測下一項新的POI,并在兩個真實數(shù)據(jù)集上驗證了該模型的優(yōu)越性。隨著深度學(xué)習(xí)的發(fā)展,越來越多的學(xué)者將眼光放在了深度學(xué)習(xí)上。深度學(xué)習(xí)中的循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network,RNN)和卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)模型都可以用來處理序列數(shù)據(jù)。Tang等[9]將在時間和潛在空間中最近一組項目嵌入到“圖像”中,并使用卷積濾波器學(xué)習(xí)順序模式作為圖像的局部特征。針對用戶的長短期興趣,Li 等[10]提出了區(qū)分長短期興趣的用戶動態(tài)推薦模型。Ma 等[11]利用矩陣分解的思想得到用戶的長期興趣,然后利用分層門控網(wǎng)絡(luò)(Hierarchical Gated Network,HGN)獲取用戶短期興趣,最后在預(yù)測層聚合用戶的長短期興趣。
然而不管是傳統(tǒng)的馬爾可夫鏈還是基于深度學(xué)習(xí)的RNN 或者CNN 模型都無法很好地處理長距離依賴問題。文獻(xiàn)[12]發(fā)現(xiàn)在機器翻譯中注意力機制因其可處理長距離依賴關(guān)系和可并行化處理的優(yōu)勢,被廣泛應(yīng)用在各類自然語言處理(Nature Language Processing,NLP)問題中。Kang 等[13]利用自注意機制來構(gòu)建序列模型,通過實驗驗證了該模型的有效性。Liu 等[14]提出了一種基于會話推薦的短期注意/記憶優(yōu)先級模型,通過注意力機制來獲取用戶最后一次交互產(chǎn)生的短期記憶,并從用戶的上下文中捕獲用戶的長期興趣,在3 個基準(zhǔn)數(shù)據(jù)集上驗證了模型的有效性。
因評分矩陣的稀疏性,人們引入社交信息作為額外信息來緩解數(shù)據(jù)稀疏的問題。Yang 等[15]在矩陣分解的基礎(chǔ)上,提出了一種基于用戶共享表示的特征融合方式。將用戶與物品交互矩陣分解為用戶特征和物品特征,并將用戶社交矩陣分解為用戶信任特征和被信任特征,通過共享用戶特征和用戶信任特征來融合社交信息。Jamali 等[16]認(rèn)為用戶的個性化特征與其朋友的個性化特征類似,在矩陣分解的基礎(chǔ)上增加約束項使用戶朋友的個性化特征與用戶的個性特征類似。Sun等[17]提出了一種基于遞歸網(wǎng)絡(luò)的時間社會推薦方法,利用上一時刻的長短期記憶(Long Short-Term Memory,LSTM)神經(jīng)網(wǎng)絡(luò)輸出,通過注意力機制捕獲用戶朋友的長期興趣,然后將當(dāng)前時刻的輸入和得到的社交信息輸入到LSTM 中得到用戶的動態(tài)興趣,同時利用用戶的長期興趣通過注意力機制來再次聚合用戶朋友的長期興趣,最后通過加權(quán)聚合用戶的長短期興趣。
以上方法忽視用戶的短期興趣和社交影響的動態(tài)特性,本文針對這兩點提出了一種社交信息動態(tài)融合的社會化推薦模型。
假設(shè)有M個用戶組成的用戶集合U,N個物品組成的物品集合R。對于每一個用戶u交互過的物品集合,按時間順序進(jìn)行重新排序,構(gòu)建用戶的交互列表Ru=。用戶通常含蓄的表達(dá)喜好,而不是給予準(zhǔn)確的評分值。因此本文考慮隱式反饋的問題:如果用戶u在t時刻交互(點擊或收藏、購買)了物品i,則=1;否則=0。為了統(tǒng)一表示,本文使用i,j表示物品,u表示用戶,a,b表示朋友。使用F∈RM×M表示用戶之間的有向社交矩陣:如果用戶u收藏或關(guān)注了用戶b,則Fu,b=1;否則Fu,b=0。因為是有向社交關(guān)系,因此Fu,b≠Fb,u,F(xiàn)u表示用戶u的朋友集合。
下一項推薦問題是在給定用戶的交互物品序列Ru=和用戶之間的社交關(guān)系Fu前提下,預(yù)測用戶在t+1時刻的交互行為。
針對序列推薦中的數(shù)據(jù)稀疏問題,提出了一種社交信息動態(tài)融合的社會化推薦,其整體框架如圖2所示。整體分為3層,從下到上分別為處理用戶序列信息的短期興趣層、融合社交信息的社交融合層和預(yù)測用戶評分的預(yù)測層。
圖2 模型框架Fig.2 Framework of the model
為了實現(xiàn)對用戶興趣的動態(tài)描述在短期興趣層,使用自注意機制針對用戶的歷史交互行為構(gòu)建序列模型,得到用戶的短期興趣。
如果用戶u在t時刻對物品i有興趣,一般近期交互過物品i的朋友和長期接觸物品i的朋友可能對用戶當(dāng)前興趣產(chǎn)生更大的影響,因此將社交融合層,分為左側(cè)的社交短期興趣和右側(cè)的社交長期興趣,并使用具有時間遺忘的注意力機制對社交短期興趣進(jìn)行建模,使用具有協(xié)同特性的注意力機制對社交長期興趣進(jìn)行建模。
在社交短期興趣部分,利用用戶t時刻的短期興趣通過注意力機制融合朋友的短期興趣,得到用戶動態(tài)興趣特征,并將朋友行為的遺忘曲線加入到注意力權(quán)重中。在社交長期興趣部分,利用用戶t時刻的短期興趣Aut通過注意力機制融合朋友的長期興趣Va,得到用戶靜態(tài)興趣特征,并將用戶與朋友的杰卡德相似度系數(shù)加入注意力權(quán)重中。最后在預(yù)測層通過權(quán)重參數(shù)α和β融合社交的長短期興趣與用戶的短期興趣獲得用戶在t+1時刻的最終興趣:
其中:表示用戶u在t+1 時預(yù)測的用戶興趣,α和β為自學(xué)習(xí)的權(quán)重參數(shù)。
下面分別從短期興趣層、社交融合層和預(yù)測層三部分詳細(xì)介紹本文的模型。
因為自注意力機制在處理序列關(guān)系中可并行和處理長期依賴的優(yōu)點,使用自注意力機制搭建用戶與物品的交互序列模型,通過短期興趣得到用戶u在t時刻的短期興趣特征。短期興趣層的整體結(jié)構(gòu)如圖3 所示,分為特征嵌入層、位置嵌入層和自注意力層。
圖3 短期興趣層Fig.3 Short-term interest layer
隱式反饋只包含用戶id和物品id并不包含其它上下文及額外信息,為了豐富用戶表示,參照Word Embedding[18]思想,使用嵌入層將用戶和物品id 轉(zhuǎn)換為固定長度的向量,并通過神經(jīng)網(wǎng)絡(luò)來學(xué)習(xí)潛在空間參數(shù)。
為了便于訓(xùn)練,固定用戶交互物品的序列大小。取用戶交互物品序列中的最后n項物品作為模型的輸入,如果用戶交互個數(shù)小于n,則在序列的前端填充0。將用戶u的交互物品序列映射到d維的物品潛在空間得到固定長度的用戶交互物品嵌入特征,用戶id 映射到d維的用戶潛在空間得到用戶的長期興趣特征Vu。
因為自注意力機制平等的對待t時刻之前的每個交互物品,并不包含具體的位置信息,本文使用Vaswani 等[12]的固定位置嵌入方法:
其中I=[I1,I2,…,In]表示位置信息嵌入矩陣。
注意力機制模仿人類眼睛的觀察行為,在機器翻譯任務(wù)等各類自然語言處理任務(wù)中證明自注意力機制的有效性,本文采用自注意力機制來構(gòu)建序列模型[7],對于用戶t時刻的短期興趣具體定義如下:
通過對t時刻之前用戶交互物品的聚合,得到用戶在t時刻的短期興趣特征。為了賦予模型非線性并考慮不同潛在維度之間的相互作用,參照文獻(xiàn)[7]添加全連接層和多頭操作,并對自注意力和全連接層進(jìn)行疊加,得到用戶的短期興趣Aut。全連接層定義如下:
2.4.1 社交短期興趣
當(dāng)用戶u在t時刻對物品i感興趣時,若他的朋友a最近收藏或購買過類似于i的物品,那么朋友a可能對用戶u產(chǎn)生比其他未交互物品i的朋友更大的影響,并且朋友a的很久以前的行為與近期行為對用戶u的影響不同。基于以上考慮,提出了具有時間遺忘的注意力機制來對社交短期興趣進(jìn)行建模。首先,利用2.3 節(jié)中的自注意層得到用戶朋友的短期興趣;然后,利用用戶的短期興趣在朋友的短期興趣中搜索那些與用戶當(dāng)前興趣相似的朋友,并根據(jù)相似度賦予相應(yīng)的權(quán)重,同時為了使不同時刻的朋友興趣對用戶的影響不同,在相似度權(quán)重中加入時間遺忘值,最后根據(jù)得到的權(quán)重聚合朋友的短期興趣。具體定義如下:
為了保持物品的有序性,將用戶朋友在t時刻之后交互的物品屏蔽掉;并且加入時間因素,當(dāng)朋友短期興趣的時間ta距離當(dāng)前時刻t越遠(yuǎn)時對當(dāng)前時刻的用戶影響越小。在注意力權(quán)重部分加入時間遺忘值,來減少距離當(dāng)前時刻較遠(yuǎn)的朋友興趣的影響,具體定義如下:
其中:時間t和ta的基本時間單位是周,為朋友a的行為對應(yīng)的時間。
2.4.2 社交長期興趣
一般情況下,如果用戶u在t時刻喜歡物品i,那么長期與物品i交互的朋友能給用戶u提供更好的建議。在此基礎(chǔ)上提出了具有協(xié)同特性的注意力機制對社交長期興趣進(jìn)行建模。利用用戶的短期興趣,通過注意力機制在朋友的長期興趣中查找與用戶當(dāng)前興趣相似的用戶。同時通過杰卡德(Jaccard)相似度系數(shù)[19]進(jìn)一步利用序列信息計算用戶與朋友的相似度,并將該相似度加入注意力權(quán)重中。具體定義如下:
同時考慮用戶與朋友之間的總體相似度,加入用戶與朋友之間的杰卡德相似度系數(shù)來加強那些與用戶相似度更近的朋友,杰卡德相似度系數(shù)定義如下:
其中:Ru表示用戶u交互物品的集合,∩和∪分別表示交和并操作。
為了穩(wěn)定訓(xùn)練過程并防止過擬合,加入layer Normalization 和dropout 操作[7]。針對2.3 和2.4 節(jié)中的任意網(wǎng)絡(luò)層(注意力層和全連接層),網(wǎng)絡(luò)層定義為z=y(x),增加層歸一化(layer Normalization)和dropout操作后的定義如下:
利用式(1)得到用戶的下一項推薦Gu t+1根據(jù)矩陣分解[20]的思想預(yù)測用戶在t+1時刻對物品i的喜好程度:
其中hi表示物品i在物品潛在空間的嵌入特征。
將t時刻之前的用戶交互物品作為模型輸入得到用戶在t+1 時刻下一項推薦,用二元交叉熵?fù)p失函數(shù)[7]作為目標(biāo)函數(shù),并將用戶的t+1 時刻的交互物品作為正樣本,用戶從未交互過的物品j作為負(fù)樣本:
其中θ(x)=1/(1+e-x),將預(yù)測的喜好程度調(diào)整至(0,1)區(qū)間。
使用2014 年提出的Adam[21]優(yōu)化算法,繼承了AdaGrad(Adaptive Gradient Algorithm)和RMSProp(Root Mean Square Prop)的優(yōu)點,具有計算高效、方便實現(xiàn)和較好處理系數(shù)梯度等優(yōu)點。整體算法流程如算法1所示。
使用同時滿足序列信息和社交信息的兩個公開的隱式反饋數(shù)據(jù)集brightkite 和Last.FM,將兩個數(shù)據(jù)集的用戶交互物品序列按照時間戳進(jìn)行排序來保證序列性。
brightkite 是一個基于位置的社交網(wǎng)絡(luò)數(shù)據(jù)集,用戶通過簽到來實時共享他們的位置。它包含了從2008年3月21日至2010年10月18日的用戶交互記錄及用戶之間的社交關(guān)系。Last.FM 是一個音樂數(shù)據(jù)集,記錄了從2005年8月1日到2011 年5 月9 日用戶對歌曲的評價及用戶之間的社交記錄,詳細(xì)的數(shù)據(jù)信息見表2。
表2 數(shù)據(jù)集詳細(xì)信息Tab.2 Dataset detailed information
模型主要參數(shù)有:batch_lr表示每次訓(xùn)練的用戶個數(shù)和學(xué)習(xí)率,maxlen 表示用戶的最大交互個數(shù),dropout 表示丟失率,maxfriend表示最大的用戶朋友個數(shù)。兩個數(shù)據(jù)集的具體參數(shù)見表3。
表3 兩個數(shù)據(jù)集的參數(shù)Tab.3 Parameters of two datasets
本文使用leave-one-out[7]來對數(shù)據(jù)集進(jìn)行分類,將用戶的最后一個交互物品作為測試集來評估模型的最終性能,將剩余的交互物品作為訓(xùn)練集。在評估推薦性能時,將測試集作為正樣本i,從未交互的物品集合中隨機抽取100 個物品作為負(fù)樣本,將正負(fù)樣本結(jié)合組成包含101 個物品的推薦物品列表,然后利用Top-N指標(biāo)來評估模型性能。
本文使用的Top-N評價指標(biāo)為HR@10[22]和NDCG@10[23]。
命中率(HR@10)評估在推薦列表的相似度排名中正樣本是否能排在前10,若排在前10則認(rèn)為命中:
其中:U表示所有用戶的集合;lu,i表示正樣本i預(yù)測評分值在推薦列表中的排序位置;為指示函數(shù)表示正樣本i的排序位置是否在前10,是為1,不是為0。
NDCG@10 在HR 的基礎(chǔ)上加入了位置因素,當(dāng)正樣本的排名越靠前時,推薦效果更好:
為了驗證本文的模型,與使用了序列信息的序列推薦模型(BERT4Rec、SASRec)和使用了社交信息的社交推薦模型(DiffNet)進(jìn)行對比驗證。
使用python 對數(shù)據(jù)進(jìn)行預(yù)處理,利用tensorflow 實現(xiàn)SLSRec 模型,在高性能服務(wù)器(CPU 主頻2.20 GHz*24,內(nèi)存126 GB,4 塊NVIDIA P100 的顯卡及2.7 TB 磁盤)上進(jìn)行實驗。采用早停機制進(jìn)行實驗,一次迭代200 次左右能達(dá)到最優(yōu)推薦結(jié)果,訓(xùn)練及評估運行時間在2 h左右。
SASRec[7]2018 年Kang 等提出的一種捕獲長期語義的自注意力序列推薦模型。
BERT4Rec[24]2019年Sun等提出的一種序列推薦模型,該模型首次將深度雙向順序模型和完形目標(biāo)引入推薦系統(tǒng)領(lǐng)域,通過完形任務(wù)用雙向自注意網(wǎng)絡(luò)來建模用戶行為序列。
DiffNet[25]2019 年Wu 等提出的一種基于社會化推薦的深度影響傳播模型,設(shè)計了一個分層影響傳播結(jié)構(gòu),以模擬用戶的潛在嵌入是如何隨著社會擴散過程的繼續(xù)而演變的,以此來表示用戶如何受到遞歸社會擴散過程的影響。
3.4.1 SLSRec的性能測試
通過在兩個數(shù)據(jù)集上與所有的對比模型的比較來驗證本文模型的性能。3.3節(jié)中的對比模型都是用tensorflow 來實現(xiàn)的,并且針對兩個數(shù)據(jù)集對各個模型的參數(shù)進(jìn)行了微調(diào)。針對DiffNet和BERT4Rec按照模型要求對數(shù)據(jù)集進(jìn)行進(jìn)一步處理,剔除了那些交互個數(shù)小于2 的用戶,并對剔除后的數(shù)據(jù)集進(jìn)行了新的id 映射。因為BERT4Rec 對內(nèi)存的要求很高,在數(shù)據(jù)量較大的brightkite 數(shù)據(jù)集上難以進(jìn)行驗證。各模型在兩個數(shù)據(jù)集上的NDCG@10 和HR@10 的結(jié)果如表4 所示,其中最優(yōu)的結(jié)果用加粗表示,次優(yōu)的結(jié)果使用下劃線來表示,并在最后一行給出了SLSRec相較于次優(yōu)結(jié)果的提升比率。
表4 不同模型在兩個數(shù)據(jù)集上的結(jié)果對比Tab.4 Comparison of results of various models on two datasets
從3.1 節(jié)數(shù)據(jù)集的分析中可以看出,brightkite 數(shù)據(jù)集中評分?jǐn)?shù)據(jù)密度是遠(yuǎn)遠(yuǎn)小于Last.FM的,因此從表4可以看出在brightkite 數(shù)據(jù)集的所有模型的結(jié)果要小于在Last.FM 數(shù)據(jù)集上的結(jié)果。本文提出的SLSRec 在序列推薦的基礎(chǔ)上加入用戶的社交信息,來緩解數(shù)據(jù)稀疏問題。從表3 可以看出,針對數(shù)據(jù)密度較大的Last.FM 數(shù)據(jù)集,SLSRec 在HR 指標(biāo)上有1.3%的提升,在NDCG 指標(biāo)上有2.1%的提升,說明SLSRec的推薦結(jié)果的命中程度提升不大,但是命中物品的排名更高。相反,SLSRec 模型在數(shù)據(jù)密度較小的brightkite 數(shù)據(jù)集中HR指標(biāo)有8.5%的提升,NDCG 指標(biāo)有8.9%的提升,說明本文提出的SLSRec能有效緩解數(shù)據(jù)稀疏問題。
3.4.2 消融實驗
從圖2 中可以看出,社交融合層分為社交短期興趣和社交長期興趣兩個部分。同時分別在社交短期興趣部分加入時間遺忘值,在社交長期興趣部分加入杰卡德相似度系數(shù)。本文通過消融研究分析它們的影響,表5 顯示了SLSRec 的默認(rèn)方法及其4 種結(jié)構(gòu)在兩個數(shù)據(jù)集上的性能。下面分別介紹了變體并分析了它們的效果:
1)Short 結(jié)構(gòu):表示社交短期興趣部分,在序列推薦的基礎(chǔ)上僅僅加入用戶朋友的短期興趣,可以看出相對純粹的序列推薦模型該變體的推薦效果還是有所提升。
2)Short+time 結(jié)構(gòu):相對Short 結(jié)構(gòu)加入了時間遺忘值Tt,ta,通過時間遺忘值來弱化那些相對當(dāng)前時刻較遠(yuǎn)物品的影響,從表4可以看出加入時間遺忘值之后推薦效果有所提升。
3)Long 結(jié)構(gòu):表示社交長期興趣部分,在序列推薦的基礎(chǔ)上僅僅加入用戶社交的長期興趣,相對于純粹的序列推薦模型有所提升并且提升幅度要大于加入社交的短期興趣。
4)Long+sim 結(jié)構(gòu):在Long結(jié)構(gòu)的基礎(chǔ)上加入杰卡德相似度系數(shù),在注意力權(quán)重的基礎(chǔ)上加強那些與用戶行為相似的朋友信息,相較于long結(jié)構(gòu)效果有所提升。
5)SLSRec(Short+time+Long+sim)結(jié)構(gòu):利用α和β來融合Short+time結(jié)構(gòu)和Long+sim 結(jié)構(gòu),從表5中看出總體效果有所提升。
表5 兩個數(shù)據(jù)集上的消融實驗分析Tab.5 Ablation experiment analysis on two datasets
3.4.3 社交影響力分析
式(1)中的α和β通過自學(xué)習(xí)的方式來融合模型中各個因素的比例關(guān)系:α值可以反映模型中的用戶短期興趣和社交短期興趣的權(quán)重大小,如果α值越大則社交短期興趣的權(quán)重越大,否則用戶短期興趣的權(quán)重越大;β值表示社交長期興趣的的權(quán)重,越小則社交長期興趣的權(quán)重越小。
從圖4 可以看出,在數(shù)據(jù)較為密集的Last.FM 數(shù)據(jù)集中α都比較低,而在數(shù)據(jù)較為稀疏的brightkite 數(shù)據(jù)集中,α的值要遠(yuǎn)大于Last.FM 數(shù)據(jù)集中的值,即:用戶行為數(shù)據(jù)越少,社交短期興趣對用戶最終興趣重構(gòu)貢獻(xiàn)越大。β值在兩個數(shù)據(jù)集基本保持不變,說明社交長期興趣比較穩(wěn)定,受到數(shù)據(jù)稀疏性的影響較弱。
圖4 參數(shù)α和β的值Fig.4 Values of parameters α and β
3.4.4 最大朋友和最大交互物品的參數(shù)分析
圖5 展示了最大序列長度maxlen 和最大朋友個數(shù)maxfriend 對模型推薦性能的影響,maxlen 主要影響的是序列推薦的結(jié)果,maxfriend 主要影響的是社交融合的結(jié)果。因服務(wù)器內(nèi)存的大小限制,無法運行maxlen 超過200 和maxfriend超過15的實驗。
圖5 maxlen和maxfriend參數(shù)的影響Fig.5 Influence of maxlen and maxfriend parameters
從圖5 可以觀察到,maxlen 和maxfriend 對推薦結(jié)果的影響與數(shù)據(jù)的密度有關(guān)。對于數(shù)據(jù)密度較大的Last.FM 數(shù)據(jù)集,maxlen 影響較大,性能曲線呈現(xiàn)整體上升的趨勢;maxfriend 影響較小,性能曲線整體比較平穩(wěn)。在數(shù)據(jù)較為稀疏的brightkite數(shù)據(jù)集中,maxlen影響較小,性能曲線整體比較平穩(wěn);maxfriend影響較大,性能曲線整體比較平穩(wěn)。從兩個數(shù)據(jù)集的對比可以看出,本文提出的SLSRec模型在稀疏數(shù)據(jù)上能更有效地利用朋友興趣恢復(fù)用戶興趣進(jìn)而提升推薦效果。
針對社會化推薦模型忽視用戶動態(tài)興趣和朋友對用戶影響的動態(tài)變化的情況,提出一種社交信息動態(tài)融合的社會化推薦算法。首先,利用自注意力機制構(gòu)建用戶短期興趣;然后,利用具有時間遺忘的注意力機制構(gòu)建社交短期興趣,利用具有協(xié)同特性的注意力機制構(gòu)建社交長期興趣;最后,融合社交的長短期興趣與用戶的短期興趣獲得用戶的最終興趣并產(chǎn)生下一項推薦。在實驗部分利用HR@10和NDCG@10指標(biāo)對模型性能進(jìn)行評估,結(jié)果表明SLSRec 算法在Last.FM 和brightkite數(shù)據(jù)集上相較于最新的推薦模型推薦效果都有所提升。本文主要利用朋友的一階關(guān)系,沒有進(jìn)一步考慮社交網(wǎng)絡(luò)中的影響擴散,在下一步工作中將利用GCN 等網(wǎng)絡(luò)模型來捕獲不同時刻朋友興趣在社交網(wǎng)絡(luò)中的影響擴散。