李昆侖,翟利娜,趙佳耀,王萌萌
(河北大學 電子信息工程學院,河北 保定 071000)
隨著互聯網上信息的爆炸式增長,用戶面臨著嚴重的信息過載問題,推薦系統可以幫助用戶過濾掉一些冗余信息,使用戶能在眾多信息中快速的找到自己滿意的內容.推薦系統是網絡應用的一個重要組成部分,被廣泛的應用在電子商務中.當前主流的推薦系統模型大多基于協同過濾算法,該方法根據用戶歷史行為相似性對目標用戶進行推薦,主要分為兩種類型:基于記憶的算法和基于模型的算法[1,2].其中,矩陣分解模型(Matrix Factorization,MF)因其卓越的表現引起了人們的關注,成為協同過濾中的經典算法之一[3].電子商務的崛起使得用戶和項目的數量急劇增長,但是用戶評分數據稀疏性卻制約了矩陣分解模型的推薦效果[4].
融合用戶信任可以改善推薦算法中評分數據稀疏性問題.Guibing G等人同時將評分信息以及主動用戶的顯示信任影響和被信任用戶的隱式影響融合在矩陣分解中完成推薦[5].Deng S等人考慮社區效應對信任感知社交建議初始化,同時用深度學習模型學習用戶及其信任朋友的興趣,然后將信任關系融合到矩陣分解中[6].Yin S等人根據用戶的瀏覽記錄、標簽等信息,建立用戶的興趣特征向量,改進信任度和相似性測度[7].但是,仍然存在社交網絡中直接信任矩陣稀疏的問題.
近年來,深度學習十分火熱.深度學習因其可以更好的捕捉深層次的特征而被廣泛的應用于處理評論文本以緩解推薦系統評分數據稀疏性問題.Kim D等人提出的ConvMF方法用卷積神經網絡(Convolutional Neural Network,CNN)對文檔上下文信息進行處理,獲取其中的局部上下文信息,將卷積神經網絡集成在概率矩陣分解模型中[8].Zheng L等人提出的DeepCoNN方法以雙CNN結構分別對用戶的評論集與商品的評論集進行特征提取,改善了推薦質量[9].Tabrizi N等人用潛在的狄利克雷分配刪除評論中與產品類別設定的特性詞匯表不相關的術語,然后用卷積神經網絡對評論文本進行特征提取,評估用戶的相似性[10].但是,仍然存在沒有聯系上下文充分挖掘有效評論文本信息的問題.
針對推薦系統中用戶評分數據稀疏所導致推薦結果不精確的問題,本文嘗試將用戶評分、信任關系和項目評論文本信息融合在概率矩陣分解方法中以緩解評分數據稀疏性問題.該算法主要利用改進的信任傳播模型得到用戶間的潛在特征;然后通過BERT模型提取項目的評論文本,構造項目的評論文本潛在特征;最后在應用概率矩陣分解模型的同時利用用戶之間的信任信息和項目的評論文本信息完成推薦.
基于模型的協同過濾方法主要以矩陣分解算法、聚類算法以及回歸算法等方法對歷史數據訓練并建模,用模型預測未知評分[11].其中,概率矩陣分解算法(Probabilistic Matrix Factorization,PMF)是基于模型的協同過濾方法中最有效的算法之一,該方法以分解后的用戶特征矩陣U和物品特征矩陣V的內積表示用戶-評分矩陣.假設m個用戶對n個項目的評分矩陣用R∈Rm×n表示,其元素Rij表示用戶i對項目j的評分.則真實評分值Rij服從均值為UiTVj,方差為σR2的高斯分布,如公式(1)所示:
(1)
其中,N(x|μ,σ2)表示均值為μ,方差為σ2的高斯分布函數;g(x)=1/(1+e-x)為logistic函數,將UiTVj的值映射到[0,1]上;Iij是指示函數,若用戶i對項目j有評分,則Iij=1,否則為0.
其中,用戶與項目的特征矩陣均服從高斯先驗分布:
(2)
(3)
由貝葉斯定理,推得特征矩陣的后驗分布:
(4)
2018年,Jacob Devlin等人針對自然語言處理(NLP)中無法聯系上下文預測當前詞和句的問題率先提出了BERT(Pre-training of Deep Bidirectional Transformers for Language Understanding)預訓練模型[12].其結構如圖1所示.
BERT模型的最大特點采用雙向的Transformer編碼器.圖1中E1,E2,…,EN表示文本的輸入,中間經過雙向Transformer編碼器,T1,T2,…,TN為輸出的文本向量化表示,它可以接多種下游任務.BERT模型訓練過程中包含兩個任務“Masked Language Model, MLM”和“Next Sentence Prediction”.MLM是指在訓練模型時隨機遮避輸入文本語句的一些詞,然后通過當前詞的上下文聯系去預測這個詞,Next Sentence Prediction是指對句子是否是上下連續的兩句進行預測.已有的模型,如ConvMF、DeepCoNN在生成模型時都沒有聯系當前詞的上下文信息,word2vec或glove預訓練詞向量時會對詞匯表的每個詞匯生成一個“單詞嵌入”表示[13],造成bank在bank card和river bank中是不同的意思卻有相同的表達.BERT模型則根據句子中其它詞匯來生成每個單詞的表示.因此,本文嘗試將BERT模型與基于概率矩陣分解的協同過濾方法結合,用BERT模型提取評論文本的特征向量以改善推薦系統的質量.

圖1 BERT模型結構圖Fig.1 BERT model structure diagram
傳統的協同過濾推薦方法存在用戶評分數據稀疏性問題.因此,引入輔助信息來改善推薦算法的性能.構建信任模型時,充分考慮項目流行度、公共好友數目等影響因子對用戶偏好相似程度的影響,且考慮用戶間所有信任傳播路徑構建信任模型;然后用BERT模型提取項目的評論文本的特征向量構建評論文本模型;最后基于PMF模型融合用戶信任關系與項目評論文本信息.
社交網絡可以表示為圖G=(U,T),U為用戶集,T為用戶間的信任關系,圖G中的鏈接關系表示用戶之間的信任關系,有鏈接時,表示兩用戶間的信任值為1.定義兩個用戶之間的信任路徑p,用戶間的路徑數目定義為d(p),當d(p)=1時,稱這兩個用戶為直接信任關系,當d(p)>1時,稱這兩個用戶為間接信任關系.為降低復雜度,信任路徑最大值設為3.
如圖2所示為一個簡單的用戶間接信任網絡.用戶u與v之間有兩條信任路徑,分別是p1:u→a→v,p2:u→c→e→v,路徑長度分別為d(p1)=2,d(p2)=3.用戶u與a間的信任關系Tua為直接信任.

圖2 簡單的用戶間接信任網絡圖Fig.2 Simple user indirect trust network diagram
Hassan H等人在考慮信任傳播時僅考慮最短信任路徑,且認為計算間接信任值時兩個用戶的共同評價項目越多,他們的信任越可靠[14],而忽略了不同路徑對用戶信任的影響,因此,本文在其基礎上做出了改進,充分考慮用戶間所有路徑的影響,改進信任度量方法,如式(5)所示,這樣使得間接信任測度更加準確可信.
(5)
其中,Tuv是用戶u與v之間的信任度,puv是用戶u與v之間信任路徑小于4的所有路徑,而pl是用戶u與v所有信任路徑中的一條.Im與In分別是用戶m與用戶n的評價項目.Tmn是信任路徑上用戶間的直接信任.
傳統的推薦算法以皮爾遜相似度(PCC,Pearson correlation coefficient)衡量用戶u與v之間的用戶偏好相似程度并將其作為用戶的直接信任值,如式(6)所示:
(6)

社交網絡的信任關系一般為二元的,即有信任關系的用戶間信任值均為1,從而忽略了信任用戶的不同偏好導致推薦結果不精確[15].共同好友數目及項目流行度是影響用戶偏好相似程度即用戶直接信任的影響因子.首先,共同好友數目越多,說明用戶的興趣愛好越相似.用PCC衡量用戶的直接信任往往會得到相等的信任值,卻不代表兩組用戶間的直接信任值完全一樣,假設用戶u與v以及用戶u與l間的信任值均為0.85,但是用戶u與v有10個共同好友,而u與l只有2個共同好友,那么用戶u與v之間的共同好友數目較多,他們間的信任值更可靠.其次,項目的流行度影響著用戶偏好相似程度且成反比.因此,本文對 PCC用戶偏好相似程度做出改進,如式(8)所示:
(7)
(8)
其中,式(7)為權重,com(u,v)是用戶u與v間的共同好友數目,Iuv是用戶u與v的共同評分項,Ni是項目i的評分次數.式(7)的前一部分用來衡量共同好友數目對用戶偏好相似程度的影響,共同好友越多,這兩個用戶的偏好相似程度越大,信任越可靠,反之亦然;后一部分用來衡量項目流行度對用戶偏好相似程度的影響.評價次數越多,這個項目越流行,偏好相似程度越低,信任值就越小,反之亦然.
用式(8)計算用戶間的直接信任度,并在此基礎上用公式(5)確定用戶間的信任值.m個用戶的信任矩陣用T∈Tm×m表示,其元素Tik表示用戶i與k的信任值,假定信任值Tik服從均值為UiTZk,方差為σT2的高斯分布,如式(9)所示:
(9)
(10)
由貝葉斯定理,推得用戶特征矩陣U與信任特征矩陣Z的后驗分布,如式(11)所示:
(11)
為了對評論文本建模,需要對項目的評論文本信息進行特征提取.而BERT模型可以根據當前詞的左右兩側信息預測當前詞.因此,本文采用BERT模型提取評論文本特征.由于BERT模型是一種通用的預訓練模型,只需將目標數據集的數據對模型進一步預訓練,故將項目的評論文本作為BERT模型的輸入,經過雙向的Transformer編碼器會輸出評論文本的特征向量.假定某項目i的評論集表示為{R1i,R2i,…,Rmi},其中m是模型輸入的最大用戶數,通過BERT模型處理后,每條評論映射為s維的表達,得到BERT模型的輸出表達{H1i,H2i,…,Hmi},由于每個項目會有多條評論,所以本文以BERT模型輸出向量的均值作為項目i的評論特征向量.由此,n個項目的m個s維評論特征向量就構成了評論特征向量矩陣Hn×s.為使BERT模型輸出列表長度為m,需將小于m個用戶評論的項目評論集逐一經過BERT模型映射,然后填充若干條s維的零向量,而大于m個用戶評論的項目僅需將該項目的前m條評論通過BERT模型映射.
將項目的評論文本矩陣HHn×s類比評分矩陣分解模型分解為物品特征矩陣V與評論特征矩陣C,他們之間的內積即為未分解前的評論文本矩陣.項目評論文本矩陣元素用Hjp表示,Hjp服從均值為VjTCp,方差為σH2的高斯分布,如式(12)所示.
(12)
評論文本矩陣與評分矩陣共享項目矩陣,評論特征矩陣C服從均值為0,方差為σC2的高斯分布:
(13)
由貝葉斯定理,可以推得項目特征矩陣與評論特征矩陣的后驗分布:
(14)
本文提出的模型將評分矩陣、改進的信任矩陣和項目的評論文本矩陣融合在一起.融合式(4)、式(11)和式(14)可以得到本文算法的整體后驗分布,如式(15)所示:

在特征分類方面,本文選用了高斯混合模型(GMM)對訓練樣本進行訓練,并劃分樣本空間,完成分類器的設計。其實現過程如圖3所示。
(15)
對上式取對數,得目標函數:
(16)
其中,λU=σR2/σU2,λV=σR2/σV2,λT=σR2/σT2,λZ=σR2/σZ2,λC=σR2/σC2,假定λU=λV,本文以梯度下降法更新U、V、Z、C以獲得E的極小值.
(17)
(18)
(19)
(20)
其中,g′(x)為logistic函數的導數.本文算法的步驟如表1所示.

表1 本文算法步驟Table 1 Algorithm steps in this paper


計算用戶、項目、評論、信任特征矩陣的偏導數所需的時間復雜度為:
由此可見,本文算法的時間復雜度與用戶數m、項目數n、特征向量維度d正相關.
本文選用公開且真實的Yelp(1)https://www.yelp.com數據集,Yelp數據集是一個包含用戶信息(用戶id、屬性等)、用戶社交信息(朋友關系、關注等)、興趣點信息(簽到次數、經緯度等)、評分、用戶分享的圖像以及用戶發表的評論等綜合性的數據集.由于原始數據集過于龐大,所以本文對該數據集進行了預處理,預處理后的數據集包含16478個用戶,34932個項目,1014146條評分,19453個朋友關系,13796條評論.
本文以平均絕對誤差(Mean Absolute Error,MAE)和均方根誤差(Root Mean Squared Error,RMSE)為評價指標,RMSE反映真實評分與預測評分之間的誤差,MAE反映預測值誤差的實際情況.當這兩個值越小時,推薦結果越準確.

為衡量本文算法的性能,采用3個推薦算法作為對照算法,如下:
TrustPMF:基于概率矩陣分解的擴展模型,不僅考慮評分信息,還以信任傳播關系對局部和全局信任建模,然后融合相似度與信任度,最后將用戶信任融入到基礎模型中[16].
ConvMF:基于概率矩陣分解的擴展模型,不僅考慮評分信息,還用卷積神經網絡(CNN)抽取項目文檔特征,將CNN與概率矩陣分解融合完成推薦.
IeMF:基于概率矩陣分解的改進模型,以潛在的Dirichlet探索用戶興趣的分布,然后將其融合到概率矩陣分解模型中[17].
SimTrustMF:基于概率矩陣分解的擴展模型,不僅考慮評分信息,還根據信任用戶的影響力重新構建信任網絡,然后以相似度與信任度改進用戶特征向量,從而得到融合信任關系的矩陣分解算法[18].
經過不斷的實驗驗證,本文算法參數的設定:λU=λV=0.001,λT=0.1,λH=0.05.
本文在不同的向量特征維度下進行了實驗,但是對比算法均在向量特征維度5與10下做出實驗,故為保持和對比算法的一致性,本文在實驗中同樣選取向量特征維度為5和10,同時實驗結果表明在兩種特征維度下各算法得到的推薦效果較好.
實驗 1.本文算法參數λT、λH的選取
參數λT、λH的不同取值影響著推薦算法的性能.實驗結果如圖3、圖4所示.針對本文算法選用Yelp數據集,抽取80%作訓練集,在向量特征維度為5與10下,以評價指標RMSE為例討論λT、λH的取值對本文算法性能的影響.

圖3 λT對RMSE的影響Fig.3 Effect of λT on RMSE

圖4 λH對RMSE的影響Fig.4 Effect of λH on RMSE
參數λT控制著引入用戶間的信任關系在推薦過程中所占的比重,在兩種特征維度下,RMSE的值均是先減小,到達閾值0.1后開始增大,反映了λT的取值對推薦結果有影響且當λT=0.1時,推薦結果最佳.
λH控制著引入評論文本信息在推薦過程中所占的比重,根據圖4可以發現,在兩種特征維度下,λH均先急速降低,達到閾值0.05時值最低,超過閾值后RMSE值開始增大,反映了λH的取值對推薦結果有影響且當λH=0.1時,推薦結果最佳.
實驗 2.不同特征維度下的對比實驗
特征維度是影響推薦算法的一個重要因素,因此,本文在向量特征維度為0、5、10、15、20下對各個算法進行實驗對比,如圖5、圖6所示.
圖5、圖6顯示了不同特征維度下MAE與RMSE值的變化.可以看出,特征維度對不同算法的影響不同.但是各算法的MAE與RMSE值從維度為0到5時均下降,到達某一閾值后開始上升.其原因是:相對較大的特征維度能更好的描述用戶項目間的隱特性,但維數過高時有過擬合的風險.以本文方法為例,評價指標MAE與RMSE在特征維度為5時值最小,之后隨著向量特征維度的增大而增大,推薦算法性能退化.結果表明,本文算法的MAE和 RMSE均比相同維度下對照算法的值低,證明了本文提出算法的有效性.

圖5 不同特征維度下的MAE值Fig.5 MAE values in different feature dimensions

圖6 不同特征維度下的RMSE值Fig.6 RMSE values in different feature dimensions
實驗 3.不同訓練集比例下的對比實驗
為考察本文算法在不同稀疏程度訓練集下的推薦性能,與TrustPMF、ConvMF、IeMF、SimTrustMF等算法分別在不同的訓練集比例下進行比較,即將原始數據集以不同的訓練集比例(10%、20%、30%、40%、50%、 60%、70%、80%)進行劃分,并且在特征維度為5與10時進行對比實驗,結果如圖7所示.

圖7 各算法的MAE與RMSE值Fig.7 Evaluation index values of each algorithm
可以看出,在兩種向量特征維度下,隨訓練集比例的增大,各算法的MAE與RMSE值均降低,但是本文算法在相同的訓練集比例下優于對比算法.其原因是:TrustPMF算法和SimTrustMF算法融合了用戶信任和評分信息,在一定程度上提高了推薦效果.IeMF算法在考慮評分信息的基礎上融合了用戶的興趣提高了推薦精度.ConvMF算法在利用評分信息的同時以深度模型CNN挖掘評論文本信息改善了推薦結果.但是,這幾個模型單一的運用用戶信任關系與評論文本信息而沒能融合更多信息以改善推薦結果.而本文提出的算法考慮了用戶信任關系的同時結合了項目的評論文本信息有效的緩解了評分數據稀疏性問題,故在不同的訓練集比例下本文算法的推薦性能均優于對比算法.
針對推薦系統中用戶評分數據稀疏所導致推薦結果不精確的問題,本文嘗試將用戶評分、信任關系和項目評論文本信息融合在概率矩陣分解方法中以緩解評分數據稀疏性問題.該算法改進信任度量公式,以共同好友數目和項目流行度加權的皮爾遜用戶偏好相似程度度量用戶的直接信任,同時改進用戶間接信任度量方式.然后用BERT模型抽取評論文本特征向量,有效的緩解了評分數據稀疏性問題.通過在真實的數據集上實驗,并與已有的推薦系統中的3個算法進行實驗對比,本文方法的推薦精度有明顯的提高.但是還未考慮矩陣分解推薦過程中評分數據、用戶信任、評論文本之間的關聯關系和更多輔助信息.下一步工作將考慮3者之間的關系以及融合更多的輔助信息,如時間、用戶位置,進一步的提高推薦的精度.