王 艷,彭 治,杜永萍
(北京工業(yè)大學(xué) 信息學(xué)部,北京 100124)
隨著網(wǎng)絡(luò)的飛速發(fā)展,給人們的生活帶來了巨大的影響,在提供便利的同時也產(chǎn)生了很多問題。由于數(shù)據(jù)量成指數(shù)增長,人們想要從海量的數(shù)據(jù)中獲取有用信息變得越來越困難[1],因此推薦系統(tǒng)應(yīng)運而生。推薦系統(tǒng)在很多領(lǐng)域都得到了廣泛的應(yīng)用,例如:醫(yī)療健康[2]、交通出行[3]、學(xué)習(xí)教育[4]、電子商務(wù)[5]等。近年來,推薦系統(tǒng)在解決信息過載方面被證明是有效的,可以幫助人們快速地在海量數(shù)據(jù)中找到自己需要的信息;因此得到了學(xué)術(shù)界和工業(yè)界的廣泛關(guān)注。然而如何更高效地提高推薦系統(tǒng)的準確性是現(xiàn)在推薦領(lǐng)域的研究熱點。
傳統(tǒng)的推薦算法主要有協(xié)同過濾[6-7]和基于內(nèi)容的推薦算法[8]。這兩種方法都是基于用戶的歷史行為來進行推薦的?;趦?nèi)容的推薦算法[8]利用用戶對項目的評分信息來確定這些物品之間的共同特征,若是新物品也有這個特征,就會將該物品推薦給用戶;協(xié)同過濾[6]是利用歷史數(shù)據(jù)找到與該用戶喜好相同的用戶,然后將找到的這些相似用戶過去喜歡的物品推薦給該用戶。或者是找到和某一物品具有相同特征的物品,若用戶喜歡這一物品則將其他具有相同特征的物品推薦給用戶。
基于近鄰的推薦算法廣泛用于協(xié)同過濾中。該算法利用評分信息計算用戶或物品的相似度,根據(jù)和某一用戶相似的用戶對目標商品的評分來預(yù)測該用戶對目標商品的評分,或者根據(jù)用戶對和目標商品相似的物品的評分來預(yù)測該用戶對目標商品的評分?;诮彽姆椒ㄒ子趯崿F(xiàn),并且對于預(yù)測結(jié)果有一個直觀的解釋。
在協(xié)同過濾中,矩陣分解是最成功應(yīng)用最廣泛的一種方法。Koren等人[9]最早提出了基于矩陣分解(matrix factorization,MF)的推薦算法,該算法在評分矩陣的基礎(chǔ)上,加入了隱向量,并將評分矩陣分解為用戶矩陣和項目矩陣乘積的形式,增強了模型對稀疏矩陣的處理能力,從而取得了很好的推薦效果。Salakhutdinov等人[10]提出了概率矩陣因子分解(probabilistic matrix factorization,PMF)模型,該模型通過添加用戶、項目隱式特征的高斯概率分布來改進算法。實驗研究表明,基于矩陣分解的算法在評分預(yù)測方面要好于基于近鄰的推薦算法。
雖然基于矩陣分解的推薦算法在推薦領(lǐng)域取得了不錯的推薦效果,但是數(shù)據(jù)稀疏性對推薦系統(tǒng)性能的影響仍是當下急需解決的問題。一些研究表明[11]引入評論文本信息能有效緩解數(shù)據(jù)稀疏性對推薦效果的影響,在一定程度上提高算法推薦的精確度。在推薦系統(tǒng)中,用戶除了可以直接進行評分外還可以寫評論信息,一般評論信息中會包含用戶給出這個評分的理由,相較于評分而言,評論信息包含的內(nèi)容更加豐富。一方面可以得到用戶給出這個評分的原因,另一方面也可以體現(xiàn)用戶的偏好信息或商品的一些特征。
最初使用評論文本進行建模的推薦算法大都是基于主題模型,Devid等人[12]提出了LDA(latent Dirichlet allocation)模型,該模型用于推測文本中的主題分布,然后利用推測的主題分布獲取用戶、項目的相關(guān)信息從而提高推薦的準確度。LDA是主題模型研究領(lǐng)域最具有影響力的模型。Ganu等人[13]提出從評論文本主題中推導(dǎo)出基于文本的評分方法。然后,使用聚類技術(shù)將文本中的主題和情感相似的用戶分為一組。McAuley等人[14]提出將評論文本和評分數(shù)據(jù)相結(jié)合的HFT模型,將用戶評論集或商品評論集作為輸入,將評論文本主題和評分數(shù)據(jù)中的隱因子結(jié)合。HFT是將評論文本和評分數(shù)據(jù)相結(jié)合的最經(jīng)典的模型?;谥黝}的模型在推薦效果上取得了很好的結(jié)果,但是該方法不能很好地保留文本信息中的詞序信息,從而忽略了上下文之間的邏輯對應(yīng)關(guān)系[15]。
近年來,深度學(xué)習(xí)在很多領(lǐng)域被廣泛應(yīng)用,特別是在自然語言處理[16]方面更取得了突破性的進展。利用自然語言在文本內(nèi)容挖掘方面的優(yōu)勢,將其運用到推薦系統(tǒng)中對評論文本進行處理,這也為推薦系統(tǒng)提供了新的研究方向[1];目前在推薦系統(tǒng)中使用的深度學(xué)習(xí)技術(shù)主要有CNN[17]、RNN[18]、注意力機制[19-20]、RBM[21]、自編碼器[22]等。
深度學(xué)習(xí)中的CNN、RNN網(wǎng)絡(luò)在處理文本信息時能夠很好地保留詞序信息,近年來逐漸取代了主題模型。Kim等人[23]提出的ConvMF(convolution matrix factorization)模型將卷積神經(jīng)網(wǎng)絡(luò)和概率矩陣分解相結(jié)合,利用卷積神經(jīng)網(wǎng)絡(luò)處理評論文本信息,從而有效地保留詞序信息。但是該模型僅僅利用了項目的評論文本信息,而忽略了用戶的評論信息。隨后Zheng等人[24]提出了DeepCoNN(deep cooperative neural network)模型,該模型利用兩個并行的CNN來分別處理項目的評論信息和用戶的評論信息,在最后一層利用因子分解機來進行評分預(yù)測。Chen等人[25]提出的NARRE(neural attentional regression model with review level explanations)模型,將評分矩陣和評論文本作為輸入,同時融合評分數(shù)據(jù)中的隱向量,極大地提高了推薦系統(tǒng)的預(yù)測性能。
上述模型中在與評論文本特征融合時僅用到了評分的潛在特征,沒有對評分數(shù)據(jù)進行深度建模,學(xué)習(xí)評分數(shù)據(jù)的深度特征。因此文中提出了融合評分矩陣和評論文本的深度學(xué)習(xí)推薦模型,利用深度學(xué)習(xí)技術(shù)提取評分中的深度特征,并和評論信息中提取的用戶偏好、項目特征進行融合。通過更好地對用戶項目特征進行表示,從而提升推薦性能。用MSE作為評價指標,在亞馬遜6個不同領(lǐng)域的公開數(shù)據(jù)集上進行對比實驗,結(jié)果表明所提出的算法優(yōu)于目前多個優(yōu)秀的公開模型。
文中提出了融合評分矩陣和評論文本的深度學(xué)習(xí)推薦模型RMRT(rating matrix and review text based recommendation model),模型結(jié)構(gòu)如圖1所示。該模型包括兩個部分,左側(cè)部分對用戶進行建模,提取用戶偏好信息;右側(cè)部分對項目進行建模,提取項目特征。將提取的用戶特征和項目特征融合后送入預(yù)測層,得到預(yù)測評分。
圖1 融合評分矩陣和評論文本的深度學(xué)習(xí)推薦模型
在用戶、項目建模過程中又分別包含了兩個部分:(1)從評論文本中提取特征,輸出用戶、項目的深層特征表示為Tu、Ti;(2)從評分矩陣中提取用戶項目特征,輸出為Xu、Xi;將得到的用戶特征和項目特征分別送入交互層得到用戶、項目的最終特征表示,最終在預(yù)測層得出用戶對項目的預(yù)測評分。在對用戶、項目建模時所用網(wǎng)絡(luò)結(jié)構(gòu)相同,只有輸入不同。因此文中重點介紹項目建模部分,用戶建模過程與之相似。
用戶對項目的評論信息能夠反映出項目的特征信息。給定某項目i的評論集{Ri1,Ri2,…,Rik},k表示模型允許輸入的最大評論數(shù),經(jīng)過嵌入層后,每條評論信息被映射為d維的向量,得到固定長度的詞嵌入矩陣。嵌入層之后為卷積神經(jīng)網(wǎng)絡(luò)層,該層以嵌入層得到的詞向量矩陣作為輸入,得到特征向量。設(shè)卷積層由m個神經(jīng)元組成,使用大小為s的滑動窗口上的卷積濾波器來提取上下文特征,具體如公式(1):
kj=Relu(Mi*fj+bj)
(1)
式中,*表示卷積操作,bj表示偏差。
進入卷積模塊中的最大池化層,max-pooling能夠捕獲重要的具有高價值的特征,并且將卷積層的輸出壓縮成一個固定大小的向量,即:
cj=max(k1,k2,…,kd-s+1)
(2)
卷積層最終輸出的特征向量可表示為:ci1,ci2,…,cik。
對同一項目來說,不同用戶會有不同的評論信息,有些用戶的評論準確描述了項目的相關(guān)特性,而有些用戶寫的評論可能和項目沒有太大的關(guān)聯(lián)性。不同評論信息所作的貢獻是不同的。為了選擇更能代表項目特征的評論信息,引入了注意力機制[20],對相應(yīng)的評論文本使用一個注意力層,得到注意力得分為:
gik=Relu(wi×cik+b)
(3)
式中,Relu表示激活函數(shù),wi,b分別為網(wǎng)絡(luò)自動學(xué)習(xí)的權(quán)重和偏移量。
使用softmax函數(shù)對注意力得分gik進行歸一化處理,得到最終的評論權(quán)重aik如下式所示:
(4)
利用評論權(quán)重來突出當前評論集中第n條評論對項目i的特征的影響,將評論的注意力分數(shù)aik一一作用在對應(yīng)的卷積層輸出的特征向量上,得到項目i特征向量的加權(quán)和:
(5)
然后將其送入到全連接層,得到項目i基于文本信息的最終特征表示:
Ti=WiCi+bi
(6)
式中,Wi,bi分別是全連接層的權(quán)重和偏差量。同理對用戶建??梢缘玫接脩魎基于評論信息的特征表示Tu。
用戶對項目的評分數(shù)據(jù)是一種顯性反饋,可以直接反映出用戶對項目的喜愛程度,不同的評分說明用戶對項目的喜好程度不同,因此利用神經(jīng)網(wǎng)絡(luò)根據(jù)評分數(shù)據(jù)獲取用戶的偏好和項目的特征表示。
以項目i的評分數(shù)據(jù)作為輸入pi={yi1,yi2,…,yin},其中網(wǎng)絡(luò)的模型定義為:
(7)
在本層對文本特征提取模塊和評分數(shù)據(jù)處理模塊得到的用戶特征和項目特征進行交互,通過線性和高階交互建模來獲取項目的最終特征表示:
I=(Ti+Xi)⊕g
(8)
特征向量I中包含了從評論信息和評分數(shù)據(jù)中獲取的項目特征,其中⊕表示拼接,g表示高階交互建模。此處借鑒了因子分解機中的二階項來獲取高階特征,首先將因子分解機中的二階項進行轉(zhuǎn)換:
(9)
其中,?表示元素積,在執(zhí)行sum()之前,就已經(jīng)包含了二階交互項的所有信息。因此,只需要求和前的部分,將評論信息中得到的特征和評分數(shù)據(jù)中得到的特征進行拼接z=Ti⊕Xi,利用下面的網(wǎng)絡(luò)結(jié)構(gòu)來獲取高階特征:
(10)
g能進一步增強潛在特征的交互,同理可以得到用戶的最終特征表示U。
(11)
式中,W表示預(yù)測層的權(quán)重參數(shù),bu、bi分別表示用戶的偏差量、項目的偏差量,bg表示全局偏差量。
在實驗中,使用了6個不同領(lǐng)域的公開數(shù)據(jù)集來評估文中提出的模型,這些數(shù)據(jù)集來自Amazon 5-core,分別為:Toys_and_Games、Office_Product、Musical_ents、Instant_Video、Digital_Music、Kindle_Store,下面簡稱(TG,OP,MI,IV,DM,KS)。這些數(shù)據(jù)集中主要包含了以下內(nèi)容:用戶對項目的評分信息(1-5分)、用戶對項目的評論信息、用戶ID和項目ID。具體統(tǒng)計信息如表1所示。
表1 數(shù)據(jù)集基本信息
在實驗中將數(shù)據(jù)集劃分為訓(xùn)練集、測試集和驗證集,所占比重分別為80%,10%,10%。其中,驗證集主要是用來調(diào)整參數(shù),在測試集上對模型的性能進行評估。
在實驗過程中,使用Google新聞上訓(xùn)練的300維的word2vec向量來初始化詞嵌入并在訓(xùn)練的過程中進行微調(diào)。使用Adam函數(shù)優(yōu)化目標函數(shù),默認初始化學(xué)習(xí)率設(shè)置為0.005,卷積核大小設(shè)置為3。為了防止過擬合,在實驗中采用了dropout策略,將值設(shè)置為0.5。
在實驗中,模型的性能評價指標選用了均方誤差MSE,該值越小表示模型的性能越好,計算如下:
(13)
為了驗證文中提出模型的有效性,選擇了基于評分和評論數(shù)據(jù)相關(guān)的推薦模型進行對比,具體如下所示:
· MF[9]:矩陣分解模型,這個模型中只用到了評分數(shù)據(jù),是協(xié)同過濾中最常使用的方法。
· PMF[10]:概率矩陣分解模型,該模型在推薦建模時用到了高斯分布,來獲取用戶和項目的隱特征。
· HFT[14]:該模型結(jié)合評分數(shù)據(jù)和評論文本信息,在建模時有兩種組合方式,用戶評論文本和評分HFT(user),項目評論文本信息和評分HFT(itme)。文獻中顯示HTF(item)的效果要優(yōu)于HFT(user),文中在對比時HFT指的是HFT(itme)。
· ConvMF[23]:該模型結(jié)合卷積神經(jīng)網(wǎng)絡(luò)和概率矩陣分解,利用CNN來處理評論文本信息,保留了文本中的詞序,但是僅僅只用到了項目的評論信息。
· DeepCoNN[24]:深度協(xié)同神經(jīng)網(wǎng)絡(luò)模型,是首個同時利用了用戶和項目的評論文本信息的深度學(xué)習(xí)模型,使用兩個并行的卷積神經(jīng)網(wǎng)絡(luò)來處理文本數(shù)據(jù),并在融合層利用因子分解機進行評分預(yù)測,取得了很好的結(jié)果。
· NARRE[25]:該模型在建模時用到了評分數(shù)據(jù)和評論文本,并在DeepCoNN的基礎(chǔ)上引入了attention機制,來識別評論的有用性,預(yù)測性能有一定的提高。
使用亞馬遜數(shù)據(jù)集進行對比實驗,在6個不同的數(shù)據(jù)集上對不同模型的性能進行了比較,實驗結(jié)果如表2所示。
表2 在Amazon數(shù)據(jù)集上不同模型的結(jié)果對比(MSE)
由上面的對比結(jié)果可以看出,基于評分的推薦模型,由于數(shù)據(jù)稀疏性問題其推薦性能要差于基于評論文本的推薦模型。融合評分矩陣和評論文本的推薦模型性能要優(yōu)于單獨采用評分數(shù)據(jù)或者評論數(shù)據(jù)模型的推薦性能。因為評論能夠反映用戶的偏好,項目的特征,而評分數(shù)據(jù)僅反映了用戶的偏好情況。引入文本信息能夠在一定程度上緩解數(shù)據(jù)稀疏性對性能的影響;一般情況下,基于深度學(xué)習(xí)的推薦模型在推薦性能上優(yōu)于常規(guī)的推薦模型,因為深度學(xué)習(xí)可以更好地學(xué)習(xí)特征表示。從表2結(jié)果可以看出RMRT在不同的數(shù)據(jù)集上均取得了優(yōu)于其他模型的效果。
為了驗證模型中利用深度學(xué)習(xí)技術(shù)對評分處理模塊的有效性,將評分部分的處理方式替換為其他模型中常用的矩陣分解,其他部分保持不變,將替換后的方法表示為RMRT-D+MF。在亞馬遜數(shù)據(jù)集上進行對比實驗,結(jié)果如圖2所示,可以看出利用深度學(xué)習(xí)技術(shù)處理評分數(shù)據(jù)得到了更優(yōu)的MSE值。
圖2 評分處理模塊有效性驗證性能比較
提出了融合評分矩陣和評論文本的深度推薦模型RMRT。該模型可以同時從評分數(shù)據(jù)和評論文本信息中學(xué)習(xí)用戶和項目的特征。在處理評分矩陣時利用深度學(xué)習(xí)算法進行深度特征學(xué)習(xí),提取用戶和項目的特征表示,將其和評論信息中提取的特征進行融合。對比實驗結(jié)果表明,文中提出的方法在不同的數(shù)據(jù)集上均取得了優(yōu)于其他模型的效果,因此提取深度特征能夠在一定程度上提高預(yù)測的準確性。
文中工作主要關(guān)注的是評分數(shù)據(jù)和評論文本信息的特征提取,沒有考慮時間因素及文本情感對推薦性能的影響,在今后的工作中將考慮引入時間變化對用戶偏好及商品特征的影響,以及潛在特征的權(quán)重和文本中的情感信息對推薦性能的提升。