孫金楊,劉柏嵩,任 豪,黃偉明
(寧波大學 信息科學與工程學院,浙江 寧波 315211)
隨著大數據時代的興起,信息量呈現幾何式增長,給社會帶來極大便利的同時也造成了嚴重的信息超載.面對如此海量的信息,推薦系統能有效挖掘數據中的各種聯系,并把有價值的信息推送給用戶,以供用戶決策之用.現如今,推薦系統已在各個領域得到了廣泛發展,尤其是電子商務和社交媒體領域,例如谷歌、亞馬遜、YouTube、Netflix等[1,2].個性化推薦最具挑戰性的一點在于如何在用戶需求不明確的情況下,充分挖掘用戶歷史信息.
推薦系統的一個主流分支是基于協同過濾的推薦算法,通過用戶對商品的評分或是其他行為來為用戶提供個性化推薦.協同過濾又可以分為基于領域的方法和隱語義模型,其中,基于領域的方法對物品之間的聯系或是用戶之間的聯系進行建模,Sarwar[3]等人提出一種基于物品的協同過濾算法,采用改進的余弦相似度計算物品的相似度進行推薦計算.隱語義模型通過將物品和用戶映射到因子上的特征來解釋評分,而因子是根據用戶反饋所得.這種方法比較典型的是矩陣分解(MF)模型,本質上將用戶和物品通過已有信息嵌入到相同維度的隱語義空間,并采用點積計算用戶對物品的推薦分數.Rendle[4]等人在矩陣分解的基礎上,使用貝葉斯個性化排序替代最小化損失函數,取得了一定的提升.
傳統模型在推薦中應用比較成熟,但存在信息挖掘不夠充分、抗噪能力不足等缺點.近年來,深度學習在各個領域有著顯著進展,它通過非線性網絡結構,能很好表征數據的深層次特征,為推薦領域帶來了新的契機.Guo[5]等人使用神經網絡學習得到高階特征,并結合低階特征進行特征組合,讓模型兼具記憶與泛化的學習能力;He[6]等人指出矩陣分解的缺陷,并提出了一種神經協同過濾算法(NCF),使用多層感知器來替代點積計算;He[7]等人還考慮用戶歷史物品的貢獻程度,提出一種融合注意力機制的神經協同模型(NAIS),進一步提升了模型的可解釋性.
推薦系統中的序列推薦根據用戶的歷史行為來預測用戶下一項可能感興趣的物品,往往需要考慮到歷史物品的順序關系.早期的工作[8]使用馬爾可夫鏈(MC)通過學習得到轉移圖來建模序列行為,該轉移圖會根據用戶的近期行為來預測下一個物品.同時研究者還將心理學中的興趣遺忘曲線融入到MC中,增強模型[9]的合理性.最近,循環神經網絡(RNN)在序列推薦中取得了良好效果.Yu[10]等人基于循環神經網絡的框架建模全局時序信息,并結合池化和矩陣操作進行購物籃的推薦;Liu[11]等人采用自適應上下文的內容矩陣和轉移矩陣來改進傳統的循環神經網絡,有效地將上下文情景信息融入到序列推薦并提升了效果;Zhu[12]等人使用多個時間門來對時間間隔進行建模,充分捕捉用戶興趣在不同時間間隔內的變化情況.Zhou[13]等人利用雙層門控循環單元模型設計了一種興趣進化層結構(DIEN),準確表達用戶興趣的動態變化性.
當前主流的基于深度學習的推薦算法在推薦時利用的信息和采用的框架各不相同,在各自的網絡下推薦效果也各有千秋,但每個網絡能捕捉到的信息有限,并帶有偏向性,為了克服這一缺陷,本文構建了一種自適應融合用戶長短期興趣的混合推薦模型(NHRec),基于用戶興趣會隨時間的變化產生興趣漂移這一現象,即用戶信息的時效性,采用融合注意力機制的循環神經網絡捕捉用戶的時序信息和內容信息(短期興趣),同時利用卷積神經網絡提取用戶的全局信息(長期興趣),通過自適應方法融合用戶的長短期興趣并進行推薦計算.為了驗證本文提出的推薦模型的有效性,在兩個電影數據集上進行對比實驗,并取得了良好效果.
基于注意力機制的神經推薦模型[7]為用戶歷史行為序列的每個物品分配一個權值系數w,突破了原先對每個行為序列物品同等對待的局限性,使用戶的表征更加合理,預測模型如下:
(1)
其中,pi和qj表示目標物品i和用戶歷史物品j的嵌入向量,w表示物品i和物品j的關聯權重系數.
在此基礎上,本文還認為用戶的行為還與歷史行為有著時間上的關聯性,尤其是近期的歷史行為,往往表示用戶短期內的興趣情況,在推薦中起著非常重要的作用.為了解決時間關聯性因素,也就是用戶歷史序列中的某個物品會比它之前的物品有著更加顯著的重要程度,本文引入時間衰減函數ψ(tz-t),并將時間衰減函數融入到注意力推薦模型中,模型如下:
(2)
其中,tz表示用戶歷史序列中最后一個物品的交互時間的時間戳,時間衰減函數ψ(t-tz)是一個單調遞減函數,根據tz-t的時間差增加,函數的值將會減小,這樣保證越近的歷史物品會對用戶的偏好計算有更大的權重.
然而,由于注意力推薦模型中已經有權重系數w,直接把時間衰減函數ψ(tz-t)作為另一個權重融入到預測模型中,反而會影響原有模型的注意力權重,簡單的權重系數和時間衰減函數相乘并不能有效提升推薦模型的結果.為了更好地融合兩者,本文提出了一種融合注意力機制的GRU網絡來建模用戶短期興趣偏好.

ut=σ(Wuqt+Uuht-1+bu)
(3)
rt=σ(Wrqt+Urht-1+br)
(4)
(5)
(6)
式中,σ表示sigmoid激活函數,°表示向量的點乘操作,Wu,Wr,Wh∈nH*nI,Uu,Ur,Uh∈nH*nH,nH表示隱藏層的維度數量,nI表示輸入向量的維度數量,bu,br,bh表示相應的偏置,qt是GRU網絡的輸入,對應用戶t時刻的歷史行為序列的嵌入向量,ht表示用戶t時刻的偏好狀態.

圖1 門控循環單元原理圖Fig.1 Schematic diagram of door control cycle unit
為了更好地表達用戶的興趣偏好,本文在GRU的更新門中引入注意力機制.如圖2所示,需要先將歷史行為序列的嵌入向量和目標物品向量輸入到注意力網絡,注意力網絡計算得到兩者的相關權重w并傳遞給GRU網絡.注意力網絡計算公式如下:
(7)
(8)

本文提出的ATGRU網絡與傳統的GRU網絡不同之處在于引入了注意力機制來控制更新門,具體改進如下:
(9)
(10)


圖2 短期興趣建模框架Fig.2 Short-term interest modeling framework
在推薦系統中,從整體的時間鏈看,用戶的興趣會發生變化,通過對用戶的長期興趣建模,并結合到短期興趣中,給推薦模型帶來一定的“驚喜度”.
循環神經網絡雖然具有捕捉用戶短期興趣的良好能力,但往往也忽視了用戶的長期興趣,本文采用卷積神經網絡(CNN)對用戶所有歷史物品進行特征提取作為用戶的長期興趣,有效彌補短期興趣的缺陷.
如圖3所示,首先根據用戶的歷史行為序列經過嵌入層得到操作矩陣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∈為偏置項.
本文的模型使用多個卷積核來生成不同的用戶特征映射,設Ω和τ為卷積核矩陣及數量,則根據卷積核數量可得到τ個用戶特征映射v,并將它們拼接得到V∈1*τnI,之后再經過一個全連接層轉化成用戶的長期興趣,計算如下:
plong=ReLU(concat(ReLU(H*Ω))Wl+bl
(12)
其中,*和concat分別表示卷積計算和向量拼接操作,Wl∈τnI*nI是全連接層的權重矩陣,bl∈1*nI為偏置項,plong表示用戶的長期興趣.卷積神經網絡可以捕捉用戶行為中相同維度特征之間的全局關系,能有效提取用戶長期興趣.

圖3 長期興趣建模框架Fig.3 Long-term interest modeling framework

圖4 融合長短期興趣推薦框架Fig.4 Integrating long and short-term interest recommendation framework
區別于人工給短期興趣和長期興趣分配固定權值,本文利用時間間隔信息來計算自適應的權值,時間間隔信息是指預測時的時間信號與本次預測最近物品的交互時間之差,時間間隔信息越短,該自適應方法會給短期興趣計算較大的值,如下:
α=σ(Wm[pshort,plong,xtime]+bm)
(13)
pfinal=α*pshort+(1-α)*plong
(14)
其中,xtime是時間間隔的嵌入向量,[pshort,plong,xtime]表示短期興趣向量、長期興趣向量和時間間隔向量的拼接,并經過一層神經網絡進行轉化,σ為sigmoid激活函數,pfinal為最終的用戶長短期興趣向量,通過短期興趣和長期興趣自適應融合得到.將用戶興趣向量和目標物品向量輸入到多層感知器,通過sigmoid激活函數,得到推薦分數yui.
本文將評分數據轉化為二分類的標準,使用正則化對數損失定義最小化的目標函數:
(15)

算法 1.NHREC
InitializeΘwith Gaussian distribution.
repeat
drawpiandqjfromR(u)
2017年5月4日下午5點,周曉楓從四川奉節打來電話,告訴我胡冬林當日早晨去世,可能是心腦血管病突發致猝然死亡,吉林省作協已成立治喪委員會處理后事。曉楓是通過我認識胡冬林并知道我倆親密關系故立即通知我。我迅即打電話給吉林幾位作家朋友,得到了證實。這一噩耗給我的打擊,猶如我失去了家中一位親人。我和老伴聞訊悲痛之極,潸然淚下。從此我倆再也見不到他了,再也聽不到他從長白山打來的電話了,再也看不到他打算編寫的長白山森林年歷了,再也不可能聽到他在我家里講他山居的軼聞趣事了……
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 Θ
實驗采用兩個被廣泛應用到推薦系統的真實電影評分數據集:MovieLens-100K和MovieLens-1M[15].其中,每個用戶至少對20個電影有過評分記錄,并提供用戶職業,電影類別,電影時長,評分時間戳等輔助信息.MovieLens-100K數據集包含了943名用戶對1682部電影的評價.MovieLens-1M數據集包含6040名用戶對3952部電影的評價.為了實驗需要,本文將評分的顯性數據轉換成二分類的標準,使用戶對電影是0或1的隱性數據,表示用戶是否和電影有過交互.
為了驗證推薦模型的性能,使用歸一化折扣累積增益(NDCG)和命中率(HR)作為評測指標.NDCG是一種常用于排序學習推薦的多級評價指標,對推薦列表的前K個物品是否符合用戶偏好的評價.HR是基于召回的度量,測量了推薦的準確性,直觀表現出當前測試電影是夠屬于推薦列表的前K項.兩個評測指標定義如下:
(16)
(17)
其中,GT表示電影的總數,Zk是標準化因子,確保列表中存在一個值為1的規范化表示;ri表示第i個項目的預測相關性,用0和1表示;lg(1+i)是位置衰減函數;待推薦用戶的NDCG值和HR值越大,推薦列表越符合用戶偏好,算法的推薦效果越好.
1)ItemKNN[3],基于項目的協同過濾算法,使用余弦相似度來衡量項目相似度.
2)MF-BPR[4],基于矩陣分解,并使用貝葉斯個性化排序作為目標函數,是隱式反饋協同過濾的主流算法.
3)RNN[10],基于循環神經網絡的推薦算法,利用循環神經網絡對時間的敏感性解決推薦過程中的時序問題.
4)NAIS[7],基于項目注意力的神經協同過濾算法,并使用注意力機制為每個歷史項目分配合理的權值,能較好處理不同項目之間的重要程度.
在實驗進行Top-K推薦時,對K取值為5、10、15、20進行實驗,使用正則化對數損失模型進行優化,正則化參數λ為0.計算注意力權重時,設置平滑指數β在0到1之間,根據實驗結果表明,β在取值0.5時取得較好效果.對于嵌入向量的尺寸,確定長度為16,在MovieLens-1M和MovieLens-100K兩個數據集下對本文模型和測試模型的測評結果如圖5-圖8所示.

圖5 1M數據集的命中率Fig.5 1M dataset hit rate

圖6 1M數據集的歸一化折扣累計增益Fig.6 1M dataset normalized discount cumulative gain
由圖5、圖6表明MovieLens 1M數據集上的各算法的性能,在同等參數的情況下,本文的NHREC模型在不同K值都能取得比其他算法更優異的效果,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,實驗結果說明對長期興趣和短期興趣共同建模融合能有效提升用戶的準確表征,從而提高推薦的準確性和排序質量.圖7、圖8是在MovieLens 100k數據集上各算法的性能,在該數據集下同等參數的情況下,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數據集上的實驗結果相比,在100K數據集整體的算法性能都有所下降,從而也說明了在數據較少會影響推薦算法的性能,尤其是基于深度學習的推薦模型,需要大量的監督數據來訓練才能得到更為精確的效果.
超參數α的作用是調節短期興趣和長期興趣對用戶向量的貢獻程度,表1是不同的α值對推薦結果的影響,圖9是模型在不同α值下的準確率折線圖,α=0和α=1分別表示僅使用長期興趣或短期興趣,α使用固定權值是通過人工賦予權值,可以發現,短期興趣總是表現得比長期興趣更加優異,甚至比使用固定權值的長短期興趣還要好,而自適應權值能更好地融合短期興趣和長期興趣,并取得四者中最好的效果.

圖7 100K數據集的命中率Fig.7 100K dataset hit rate

圖8 100K數據集的歸一化折扣累計增益Fig.8 100K discount cumulative gain

圖9 不同α的推薦效果Fig.9 Different α recommendation results

表1 不同α推薦結果比較(HR)Table 1 Comparison of different α recommendation results(HR)
本文提出了一種自適應融合長短期興趣的神經混合推薦模型,利用改進的GRU網絡對用戶歷史序列進行短期興趣提取,同時采用卷積神經網絡建模用戶的全局興趣并提取長期興趣,最后兩類興趣通過時間間隔自適應融合,讓推薦系統同時考慮到長短期興趣.結果表明,通過自適應融合長短期興趣的推薦能有效提升推薦精度,并在一定程度上使用戶偏好更具可解釋性.之后的工作,會將用戶歷史序列的多維度信息引入到模型中,包括時間間隔、物品信息、內容信息等,如SLi-Rec模型[16],需要構建更加復雜的模型對數據進行進一步深入和解析,進而提升推薦系統的質量.