孫金楊,劉柏嵩,任 豪,黃偉明
(寧波大學(xué) 信息科學(xué)與工程學(xué)院,浙江 寧波 315211)
隨著大數(shù)據(jù)時代的興起,信息量呈現(xiàn)幾何式增長,給社會帶來極大便利的同時也造成了嚴重的信息超載.面對如此海量的信息,推薦系統(tǒng)能有效挖掘數(shù)據(jù)中的各種聯(lián)系,并把有價值的信息推送給用戶,以供用戶決策之用.現(xiàn)如今,推薦系統(tǒng)已在各個領(lǐng)域得到了廣泛發(fā)展,尤其是電子商務(wù)和社交媒體領(lǐng)域,例如谷歌、亞馬遜、YouTube、Netflix等[1,2].個性化推薦最具挑戰(zhàn)性的一點在于如何在用戶需求不明確的情況下,充分挖掘用戶歷史信息.
推薦系統(tǒng)的一個主流分支是基于協(xié)同過濾的推薦算法,通過用戶對商品的評分或是其他行為來為用戶提供個性化推薦.協(xié)同過濾又可以分為基于領(lǐng)域的方法和隱語義模型,其中,基于領(lǐng)域的方法對物品之間的聯(lián)系或是用戶之間的聯(lián)系進行建模,Sarwar[3]等人提出一種基于物品的協(xié)同過濾算法,采用改進的余弦相似度計算物品的相似度進行推薦計算.隱語義模型通過將物品和用戶映射到因子上的特征來解釋評分,而因子是根據(jù)用戶反饋所得.這種方法比較典型的是矩陣分解(MF)模型,本質(zhì)上將用戶和物品通過已有信息嵌入到相同維度的隱語義空間,并采用點積計算用戶對物品的推薦分數(shù).Rendle[4]等人在矩陣分解的基礎(chǔ)上,使用貝葉斯個性化排序替代最小化損失函數(shù),取得了一定的提升.
傳統(tǒng)模型在推薦中應(yīng)用比較成熟,但存在信息挖掘不夠充分、抗噪能力不足等缺點.近年來,深度學(xué)習(xí)在各個領(lǐng)域有著顯著進展,它通過非線性網(wǎng)絡(luò)結(jié)構(gòu),能很好表征數(shù)據(jù)的深層次特征,為推薦領(lǐng)域帶來了新的契機.Guo[5]等人使用神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)得到高階特征,并結(jié)合低階特征進行特征組合,讓模型兼具記憶與泛化的學(xué)習(xí)能力;He[6]等人指出矩陣分解的缺陷,并提出了一種神經(jīng)協(xié)同過濾算法(NCF),使用多層感知器來替代點積計算;He[7]等人還考慮用戶歷史物品的貢獻程度,提出一種融合注意力機制的神經(jīng)協(xié)同模型(NAIS),進一步提升了模型的可解釋性.
推薦系統(tǒng)中的序列推薦根據(jù)用戶的歷史行為來預(yù)測用戶下一項可能感興趣的物品,往往需要考慮到歷史物品的順序關(guān)系.早期的工作[8]使用馬爾可夫鏈(MC)通過學(xué)習(xí)得到轉(zhuǎn)移圖來建模序列行為,該轉(zhuǎn)移圖會根據(jù)用戶的近期行為來預(yù)測下一個物品.同時研究者還將心理學(xué)中的興趣遺忘曲線融入到MC中,增強模型[9]的合理性.最近,循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)在序列推薦中取得了良好效果.Yu[10]等人基于循環(huán)神經(jīng)網(wǎng)絡(luò)的框架建模全局時序信息,并結(jié)合池化和矩陣操作進行購物籃的推薦;Liu[11]等人采用自適應(yīng)上下文的內(nèi)容矩陣和轉(zhuǎn)移矩陣來改進傳統(tǒng)的循環(huán)神經(jīng)網(wǎng)絡(luò),有效地將上下文情景信息融入到序列推薦并提升了效果;Zhu[12]等人使用多個時間門來對時間間隔進行建模,充分捕捉用戶興趣在不同時間間隔內(nèi)的變化情況.Zhou[13]等人利用雙層門控循環(huán)單元模型設(shè)計了一種興趣進化層結(jié)構(gòu)(DIEN),準確表達用戶興趣的動態(tài)變化性.
當(dāng)前主流的基于深度學(xué)習(xí)的推薦算法在推薦時利用的信息和采用的框架各不相同,在各自的網(wǎng)絡(luò)下推薦效果也各有千秋,但每個網(wǎng)絡(luò)能捕捉到的信息有限,并帶有偏向性,為了克服這一缺陷,本文構(gòu)建了一種自適應(yīng)融合用戶長短期興趣的混合推薦模型(NHRec),基于用戶興趣會隨時間的變化產(chǎn)生興趣漂移這一現(xiàn)象,即用戶信息的時效性,采用融合注意力機制的循環(huán)神經(jīng)網(wǎng)絡(luò)捕捉用戶的時序信息和內(nèi)容信息(短期興趣),同時利用卷積神經(jīng)網(wǎng)絡(luò)提取用戶的全局信息(長期興趣),通過自適應(yīng)方法融合用戶的長短期興趣并進行推薦計算.為了驗證本文提出的推薦模型的有效性,在兩個電影數(shù)據(jù)集上進行對比實驗,并取得了良好效果.
基于注意力機制的神經(jīng)推薦模型[7]為用戶歷史行為序列的每個物品分配一個權(quán)值系數(shù)w,突破了原先對每個行為序列物品同等對待的局限性,使用戶的表征更加合理,預(yù)測模型如下:
(1)
其中,pi和qj表示目標物品i和用戶歷史物品j的嵌入向量,w表示物品i和物品j的關(guān)聯(lián)權(quán)重系數(shù).
在此基礎(chǔ)上,本文還認為用戶的行為還與歷史行為有著時間上的關(guān)聯(lián)性,尤其是近期的歷史行為,往往表示用戶短期內(nèi)的興趣情況,在推薦中起著非常重要的作用.為了解決時間關(guān)聯(lián)性因素,也就是用戶歷史序列中的某個物品會比它之前的物品有著更加顯著的重要程度,本文引入時間衰減函數(shù)ψ(tz-t),并將時間衰減函數(shù)融入到注意力推薦模型中,模型如下:
(2)
其中,tz表示用戶歷史序列中最后一個物品的交互時間的時間戳,時間衰減函數(shù)ψ(t-tz)是一個單調(diào)遞減函數(shù),根據(jù)tz-t的時間差增加,函數(shù)的值將會減小,這樣保證越近的歷史物品會對用戶的偏好計算有更大的權(quán)重.
然而,由于注意力推薦模型中已經(jīng)有權(quán)重系數(shù)w,直接把時間衰減函數(shù)ψ(tz-t)作為另一個權(quán)重融入到預(yù)測模型中,反而會影響原有模型的注意力權(quán)重,簡單的權(quán)重系數(shù)和時間衰減函數(shù)相乘并不能有效提升推薦模型的結(jié)果.為了更好地融合兩者,本文提出了一種融合注意力機制的GRU網(wǎng)絡(luò)來建模用戶短期興趣偏好.
ut=σ(Wuqt+Uuht-1+bu)
(3)
rt=σ(Wrqt+Urht-1+br)
(4)
(5)
(6)
式中,σ表示sigmoid激活函數(shù),°表示向量的點乘操作,Wu,Wr,Wh∈nH*nI,Uu,Ur,Uh∈nH*nH,nH表示隱藏層的維度數(shù)量,nI表示輸入向量的維度數(shù)量,bu,br,bh表示相應(yīng)的偏置,qt是GRU網(wǎng)絡(luò)的輸入,對應(yīng)用戶t時刻的歷史行為序列的嵌入向量,ht表示用戶t時刻的偏好狀態(tài).
圖1 門控循環(huán)單元原理圖Fig.1 Schematic diagram of door control cycle unit
為了更好地表達用戶的興趣偏好,本文在GRU的更新門中引入注意力機制.如圖2所示,需要先將歷史行為序列的嵌入向量和目標物品向量輸入到注意力網(wǎng)絡(luò),注意力網(wǎng)絡(luò)計算得到兩者的相關(guān)權(quán)重w并傳遞給GRU網(wǎng)絡(luò).注意力網(wǎng)絡(luò)計算公式如下:
(7)
(8)
本文提出的ATGRU網(wǎng)絡(luò)與傳統(tǒng)的GRU網(wǎng)絡(luò)不同之處在于引入了注意力機制來控制更新門,具體改進如下:
(9)
(10)
圖2 短期興趣建??蚣蹻ig.2 Short-term interest modeling framework
在推薦系統(tǒng)中,從整體的時間鏈看,用戶的興趣會發(fā)生變化,通過對用戶的長期興趣建模,并結(jié)合到短期興趣中,給推薦模型帶來一定的“驚喜度”.
循環(huán)神經(jīng)網(wǎng)絡(luò)雖然具有捕捉用戶短期興趣的良好能力,但往往也忽視了用戶的長期興趣,本文采用卷積神經(jīng)網(wǎng)絡(luò)(CNN)對用戶所有歷史物品進行特征提取作為用戶的長期興趣,有效彌補短期興趣的缺陷.
如圖3所示,首先根據(jù)用戶的歷史行為序列經(jīng)過嵌入層得到操作矩陣H=[q1,q2,…,qL]T,其中H∈L*nI,將多個卷積核ω∈L*1在矩陣H中進行卷積運算,每個卷積核可得到一個用戶的特征映射v=[v1,v2,…,vnI]∈1*nI,具體計算如下:
(11)
其中,wt表示卷積核ω中下標為t的元素,Ht,i表示矩陣中第t行第i列的元素,b∈為偏置項.
本文的模型使用多個卷積核來生成不同的用戶特征映射,設(shè)Ω和τ為卷積核矩陣及數(shù)量,則根據(jù)卷積核數(shù)量可得到τ個用戶特征映射v,并將它們拼接得到V∈1*τnI,之后再經(jīng)過一個全連接層轉(zhuǎn)化成用戶的長期興趣,計算如下:
plong=ReLU(concat(ReLU(H*Ω))Wl+bl
(12)
其中,*和concat分別表示卷積計算和向量拼接操作,Wl∈τnI*nI是全連接層的權(quán)重矩陣,bl∈1*nI為偏置項,plong表示用戶的長期興趣.卷積神經(jīng)網(wǎng)絡(luò)可以捕捉用戶行為中相同維度特征之間的全局關(guān)系,能有效提取用戶長期興趣.
圖3 長期興趣建??蚣蹻ig.3 Long-term interest modeling framework
圖4 融合長短期興趣推薦框架Fig.4 Integrating long and short-term interest recommendation framework
區(qū)別于人工給短期興趣和長期興趣分配固定權(quán)值,本文利用時間間隔信息來計算自適應(yīng)的權(quán)值,時間間隔信息是指預(yù)測時的時間信號與本次預(yù)測最近物品的交互時間之差,時間間隔信息越短,該自適應(yīng)方法會給短期興趣計算較大的值,如下:
α=σ(Wm[pshort,plong,xtime]+bm)
(13)
pfinal=α*pshort+(1-α)*plong
(14)
其中,xtime是時間間隔的嵌入向量,[pshort,plong,xtime]表示短期興趣向量、長期興趣向量和時間間隔向量的拼接,并經(jīng)過一層神經(jīng)網(wǎng)絡(luò)進行轉(zhuǎn)化,σ為sigmoid激活函數(shù),pfinal為最終的用戶長短期興趣向量,通過短期興趣和長期興趣自適應(yīng)融合得到.將用戶興趣向量和目標物品向量輸入到多層感知器,通過sigmoid激活函數(shù),得到推薦分數(shù)yui.
本文將評分數(shù)據(jù)轉(zhuǎn)化為二分類的標準,使用正則化對數(shù)損失定義最小化的目標函數(shù):
(15)
算法 1.NHREC
InitializeΘwith Gaussian distribution.
repeat
drawpiandqjfromR(u)
2017年5月4日下午5點,周曉楓從四川奉節(jié)打來電話,告訴我胡冬林當(dāng)日早晨去世,可能是心腦血管病突發(fā)致猝然死亡,吉林省作協(xié)已成立治喪委員會處理后事。曉楓是通過我認識胡冬林并知道我倆親密關(guān)系故立即通知我。我迅即打電話給吉林幾位作家朋友,得到了證實。這一噩耗給我的打擊,猶如我失去了家中一位親人。我和老伴聞訊悲痛之極,潸然淚下。從此我倆再也見不到他了,再也聽不到他從長白山打來的電話了,再也看不到他打算編寫的長白山森林年歷了,再也不可能聽到他在我家里講他山居的軼聞趣事了……
for history itemsqjof each users:
computer Long-term interestplongaccording to Eqns.(3)~Eqns.(10)
computer short-term interestpshortaccording to Eqns.(11、12)
computer user interestpfinalaccording to Eqns.(13、14)
for each parameterθin {Θ}:
until convergence
return Θ
實驗采用兩個被廣泛應(yīng)用到推薦系統(tǒng)的真實電影評分數(shù)據(jù)集:MovieLens-100K和MovieLens-1M[15].其中,每個用戶至少對20個電影有過評分記錄,并提供用戶職業(yè),電影類別,電影時長,評分時間戳等輔助信息.MovieLens-100K數(shù)據(jù)集包含了943名用戶對1682部電影的評價.MovieLens-1M數(shù)據(jù)集包含6040名用戶對3952部電影的評價.為了實驗需要,本文將評分的顯性數(shù)據(jù)轉(zhuǎn)換成二分類的標準,使用戶對電影是0或1的隱性數(shù)據(jù),表示用戶是否和電影有過交互.
為了驗證推薦模型的性能,使用歸一化折扣累積增益(NDCG)和命中率(HR)作為評測指標.NDCG是一種常用于排序?qū)W習(xí)推薦的多級評價指標,對推薦列表的前K個物品是否符合用戶偏好的評價.HR是基于召回的度量,測量了推薦的準確性,直觀表現(xiàn)出當(dāng)前測試電影是夠?qū)儆谕扑]列表的前K項.兩個評測指標定義如下:
(16)
(17)
其中,GT表示電影的總數(shù),Zk是標準化因子,確保列表中存在一個值為1的規(guī)范化表示;ri表示第i個項目的預(yù)測相關(guān)性,用0和1表示;lg(1+i)是位置衰減函數(shù);待推薦用戶的NDCG值和HR值越大,推薦列表越符合用戶偏好,算法的推薦效果越好.
1)ItemKNN[3],基于項目的協(xié)同過濾算法,使用余弦相似度來衡量項目相似度.
2)MF-BPR[4],基于矩陣分解,并使用貝葉斯個性化排序作為目標函數(shù),是隱式反饋協(xié)同過濾的主流算法.
3)RNN[10],基于循環(huán)神經(jīng)網(wǎng)絡(luò)的推薦算法,利用循環(huán)神經(jīng)網(wǎng)絡(luò)對時間的敏感性解決推薦過程中的時序問題.
4)NAIS[7],基于項目注意力的神經(jīng)協(xié)同過濾算法,并使用注意力機制為每個歷史項目分配合理的權(quán)值,能較好處理不同項目之間的重要程度.
在實驗進行Top-K推薦時,對K取值為5、10、15、20進行實驗,使用正則化對數(shù)損失模型進行優(yōu)化,正則化參數(shù)λ為0.計算注意力權(quán)重時,設(shè)置平滑指數(shù)β在0到1之間,根據(jù)實驗結(jié)果表明,β在取值0.5時取得較好效果.對于嵌入向量的尺寸,確定長度為16,在MovieLens-1M和MovieLens-100K兩個數(shù)據(jù)集下對本文模型和測試模型的測評結(jié)果如圖5-圖8所示.
圖5 1M數(shù)據(jù)集的命中率Fig.5 1M dataset hit rate
圖6 1M數(shù)據(jù)集的歸一化折扣累計增益Fig.6 1M dataset normalized discount cumulative gain
由圖5、圖6表明MovieLens 1M數(shù)據(jù)集上的各算法的性能,在同等參數(shù)的情況下,本文的NHREC模型在不同K值都能取得比其他算法更優(yōu)異的效果,K為15時NHREC的HR相比于ItemKNN、MF-BPR、RNN和NAIS分別提升0.31、0.19、0.09和0.07,NDCG也分別提升了0.2、0.11、0.05和0.03,實驗結(jié)果說明對長期興趣和短期興趣共同建模融合能有效提升用戶的準確表征,從而提高推薦的準確性和排序質(zhì)量.圖7、圖8是在MovieLens 100k數(shù)據(jù)集上各算法的性能,在該數(shù)據(jù)集下同等參數(shù)的情況下,NHREC模型在K為15時比ItemKNN、MF-BPR、RNN和NAIS在HR上分別提升0.30、0.21、0.12和0.08,NDCG分別提升0.19、0.08、0.05和0.04.與MovieLens 1M數(shù)據(jù)集上的實驗結(jié)果相比,在100K數(shù)據(jù)集整體的算法性能都有所下降,從而也說明了在數(shù)據(jù)較少會影響推薦算法的性能,尤其是基于深度學(xué)習(xí)的推薦模型,需要大量的監(jiān)督數(shù)據(jù)來訓(xùn)練才能得到更為精確的效果.
超參數(shù)α的作用是調(diào)節(jié)短期興趣和長期興趣對用戶向量的貢獻程度,表1是不同的α值對推薦結(jié)果的影響,圖9是模型在不同α值下的準確率折線圖,α=0和α=1分別表示僅使用長期興趣或短期興趣,α使用固定權(quán)值是通過人工賦予權(quán)值,可以發(fā)現(xiàn),短期興趣總是表現(xiàn)得比長期興趣更加優(yōu)異,甚至比使用固定權(quán)值的長短期興趣還要好,而自適應(yīng)權(quán)值能更好地融合短期興趣和長期興趣,并取得四者中最好的效果.
圖7 100K數(shù)據(jù)集的命中率Fig.7 100K dataset hit rate
圖8 100K數(shù)據(jù)集的歸一化折扣累計增益Fig.8 100K discount cumulative gain
圖9 不同α的推薦效果Fig.9 Different α recommendation results
表1 不同α推薦結(jié)果比較(HR)Table 1 Comparison of different α recommendation results(HR)
本文提出了一種自適應(yīng)融合長短期興趣的神經(jīng)混合推薦模型,利用改進的GRU網(wǎng)絡(luò)對用戶歷史序列進行短期興趣提取,同時采用卷積神經(jīng)網(wǎng)絡(luò)建模用戶的全局興趣并提取長期興趣,最后兩類興趣通過時間間隔自適應(yīng)融合,讓推薦系統(tǒng)同時考慮到長短期興趣.結(jié)果表明,通過自適應(yīng)融合長短期興趣的推薦能有效提升推薦精度,并在一定程度上使用戶偏好更具可解釋性.之后的工作,會將用戶歷史序列的多維度信息引入到模型中,包括時間間隔、物品信息、內(nèi)容信息等,如SLi-Rec模型[16],需要構(gòu)建更加復(fù)雜的模型對數(shù)據(jù)進行進一步深入和解析,進而提升推薦系統(tǒng)的質(zhì)量.