陳佩武,束方興
1. 平安科技(深圳)有限公司,廣東 深圳 518031;2. 北京大學(xué)互聯(lián)網(wǎng)研究院(深圳),廣東 深圳 518055
隨著互聯(lián)網(wǎng)技術(shù)的全面發(fā)展,海量數(shù)據(jù)得以產(chǎn)生,推動(dòng)人類社會(huì)從信息匱乏的時(shí)代走入了信息過載的時(shí)代。作為解決信息過載問題的利器,推薦系統(tǒng)受到各大互聯(lián)網(wǎng)公司以及研究機(jī)構(gòu)的青睞。作為推薦系統(tǒng)的核心,推薦算法成為研究的關(guān)鍵和熱點(diǎn)。然而傳統(tǒng)的推薦算法(如協(xié)同過濾(collaborative filtering,CF)算法)存在評(píng)分?jǐn)?shù)據(jù)庫(kù)的數(shù)據(jù)稀疏性和用戶偏好信息數(shù)據(jù)有限等問題,即推薦系統(tǒng)的數(shù)據(jù)稀疏和冷啟動(dòng)問題。以上問題會(huì)制約推薦系統(tǒng)的推薦效果,破壞用戶體驗(yàn)。為了緩解數(shù)據(jù)稀疏和冷啟動(dòng)問題,通常會(huì)在推薦系統(tǒng)中引入新維度的數(shù)據(jù)。然而近年來,社交網(wǎng)絡(luò)的快速發(fā)展給推薦算法的研究帶來了新的推動(dòng)力[1]。在社交網(wǎng)絡(luò)中,用戶不但會(huì)展示自己的個(gè)性和偏好,還會(huì)與偏好類似、相互信任的其他用戶構(gòu)建聯(lián)系。因此如何進(jìn)一步在社交網(wǎng)絡(luò)的研究中利用社會(huì)化信息進(jìn)行信任構(gòu)建,提升推薦算法的有效性,成為一個(gè)重要的研究課題。
隱語義模型(latent factor model,LFM)最早是在文本挖掘鄰域被提出的,其主要被用來尋找文本中的隱含語義。雖然學(xué)術(shù)界已經(jīng)提出了多個(gè)基于隱語義模型改進(jìn)的推薦算法,但是信任網(wǎng)絡(luò)中還少有以隱語義模型為基礎(chǔ)進(jìn)行改進(jìn)的推薦算法[2],且效果并不理想。為了優(yōu)化推薦算法的效果,本文采用以隱語義模型為基礎(chǔ),與其他模型融合的思路進(jìn)行推薦算法設(shè)計(jì)。另外,評(píng)分預(yù)測(cè)(rating prediction)也是推薦系統(tǒng)研究的關(guān)鍵問題,即通過已知的用戶歷史評(píng)分記錄來預(yù)測(cè)未知的評(píng)分。因此,基于隱語義模型與其他模型融合設(shè)計(jì)推薦算法,并從評(píng)分預(yù)測(cè)的角度進(jìn)行實(shí)驗(yàn)驗(yàn)證,具有重要的研究意義和實(shí)用價(jià)值。本文結(jié)合信任網(wǎng)絡(luò)的特點(diǎn)與用戶關(guān)系數(shù)據(jù)進(jìn)行建模,基于用戶之間的相似度設(shè)定用戶之間的隱式信任關(guān)系,結(jié)合顯式信任關(guān)系與評(píng)分等數(shù)據(jù)一起進(jìn)行預(yù)處理,生成矩陣。在隱語義模型選擇方面,本文借鑒奇異值分解(single value decomposition,SVD)++模型[3],結(jié)合信任網(wǎng)絡(luò)的特點(diǎn)進(jìn)行改進(jìn),并融合鄰域模型,設(shè)計(jì)了推薦算法的評(píng)分預(yù)測(cè)函數(shù)和損失函數(shù),利用隨機(jī)梯度下降算法進(jìn)行迭代求導(dǎo),得到優(yōu)化后的推薦算法評(píng)分預(yù)測(cè)值。之后本文在Epinions開源數(shù)據(jù)集上進(jìn)行離線對(duì)比實(shí)驗(yàn),驗(yàn)證了本文設(shè)計(jì)的推薦算法在信任網(wǎng)絡(luò)中的推薦效果優(yōu)于其他對(duì)比算法,對(duì)于解決推薦系統(tǒng)的冷啟動(dòng)問題有良好效果。
本文主要的貢獻(xiàn)如下。
● 與傳統(tǒng)僅基于用戶的物品評(píng)分記錄的推薦算法以及相關(guān)模型相比,本文加入了信任網(wǎng)絡(luò)背景,通過對(duì)信任網(wǎng)絡(luò)特點(diǎn)和用戶行為進(jìn)行分析,將用戶反饋數(shù)據(jù)分為隱式行為數(shù)據(jù)和顯式行為數(shù)據(jù),并進(jìn)行整合,利用信任信息對(duì)推薦算法的評(píng)分效果進(jìn)行改善。
● 在信任網(wǎng)絡(luò)的研究背景下,本文借鑒SVD++隱語義模型進(jìn)行推薦算法的設(shè)計(jì)和實(shí)現(xiàn),融合顯式信任因子及隱式信任因子優(yōu)化算法的推薦評(píng)分預(yù)測(cè)效果。
● 本文以隱語義模型為算法基礎(chǔ),借鑒了基于鄰域模型的推薦算法思想,將兩種模型從全局優(yōu)化的角度進(jìn)行融合,并從評(píng)分預(yù)測(cè)的角度對(duì)推薦算法設(shè)計(jì)了對(duì)比實(shí)驗(yàn)。本文使用評(píng)測(cè)指標(biāo)平均絕對(duì)誤差(mean absolute error,MAE)和均方根誤差(root mean square error,RMSE)分別在冷啟動(dòng)數(shù)據(jù)集和全體數(shù)據(jù)集中對(duì)比加入信任關(guān)系前后的SVD++算法的效果,從而證明信任網(wǎng)絡(luò)的加入對(duì)原有推薦算法的提升效果。然后將本文設(shè)計(jì)的推薦算法與其他信任網(wǎng)絡(luò)下的典型算法進(jìn)行對(duì)比測(cè)試,并證明了本文設(shè)計(jì)的算法在評(píng)分預(yù)測(cè)問題上的優(yōu)勢(shì)。
針對(duì)推薦系統(tǒng)的研究開始于20世紀(jì)90年代,隨著網(wǎng)絡(luò)的普及,該技術(shù)被逐步應(yīng)用到各個(gè)行業(yè)。推薦系統(tǒng)主要由用戶建模部分、推薦對(duì)象建模部分以及推薦算法部分共同組成,其中推薦算法部分是整個(gè)推薦系統(tǒng)的核心,也是研究的關(guān)鍵和熱點(diǎn)。目前被廣泛使用的協(xié)同過濾推薦算法[4]來源于Tapestry和GroupLens系統(tǒng)的論文[5-6],該算法被用于郵件和新聞的過濾。協(xié)同過濾算法也被稱為基于鄰域模型的推薦算法,即鄰域?qū)嵸|(zhì)相似項(xiàng)的集合。用戶間存在相似的興趣,或者某些物品間存在相似的特征,因此基于鄰域的推薦算法又被分為兩類:基于用戶的協(xié)同過濾(UserCF)推薦算法和基于物品的協(xié)同過濾(ItemCF)推薦算法[7]。UserCF算法主要包括兩步:找出與目標(biāo)用戶有相似興趣的用戶集;把用戶集中其他用戶喜歡且目標(biāo)用戶沒標(biāo)注過的物品推薦給目標(biāo)用戶。余弦相似度可用下式計(jì)算:
其中,S(a)和S(b)分別表示用戶a、b有反饋信息的物品集合。在推薦系統(tǒng)中,用戶數(shù)量往往較大,用戶之間兩兩計(jì)算相似度會(huì)帶來較高的算法復(fù)雜度[8],因此如何定義用戶間的相似度成為優(yōu)化研究的重點(diǎn),如Breese J S等人[9]提出利用用戶行為進(jìn)行相似度計(jì)算。
由于UserCF算法復(fù)雜度較高,目前Amazon、Netflix等平臺(tái)都將ItemCF算法作為推薦算法的基礎(chǔ)[10]。可使用ItemCF算法向用戶推薦他們喜歡的物品的相似產(chǎn)品,該算法并不使用物品的內(nèi)容屬性進(jìn)行相似度計(jì)算,而是通過分析用戶的行為數(shù)據(jù)來計(jì)算不同物品之間的相似度。ItemCF算法的步驟包括兩步:進(jìn)行物品間的相似度計(jì)算;基于用戶的行為數(shù)據(jù)特點(diǎn)推薦產(chǎn)品。ItemCF算法的評(píng)分預(yù)測(cè)式如下:
其中,Si(i,j)表示物品i與j之間的相似度,R(i,k)表示前k個(gè)與物品i相似的物品,I(u)表示被用戶u評(píng)論的物品集合,ra,j表示用戶a對(duì)物品j的興趣,表示感興趣的均值。在有用戶m個(gè)、產(chǎn)品n個(gè)、用戶行為記錄k個(gè)、隱類f個(gè)、算法迭代d次的情況下,基于鄰域模型的推薦算法和基于隱語義模型的推薦算法各有優(yōu)勢(shì),具體見表1。如果在推薦算法的設(shè)計(jì)中將兩類模型進(jìn)行融合,可能會(huì)起到優(yōu)勢(shì)互補(bǔ)的作用,從而獲得更好的推薦效果。
表1 隱語義模型和鄰域模型特點(diǎn)
隱語義模型的思想最初于文本挖掘領(lǐng)域被提出,后來擴(kuò)展改進(jìn)的方法包括隱含狄利克雷分布(latent Dirichlet allocation,LDA)主題模型[11]、概率潛在語義分析(probabilistic latent semantic analysis,PLSA)、主題建模(topic model)等。通過矩陣降維的方式進(jìn)行評(píng)分矩陣補(bǔ)全、應(yīng)用隱語義模型應(yīng)對(duì)推薦系統(tǒng)中冷啟動(dòng)問題成為一個(gè)有效方法。奇異值分解是一種用于發(fā)現(xiàn)文本中潛在因子的方法,它將高度相關(guān)并共同出現(xiàn)的相似詞語作為因子,從而把大規(guī)模的文本向量矩陣拆解為低階的相似矩陣。除此之外,相關(guān)的方法還有主成分分析(principal component analysis,PCA)[12]和隱含狄利克雷分布主題模型等。早期,評(píng)分矩陣稀疏且SVD算法計(jì)算復(fù)雜度較高,導(dǎo)致基于SVD的推薦算法沒有引起重視。直到Koren Y等人[3]在Funk-SVD的基礎(chǔ)上加入偏置項(xiàng),并且把用戶歷史行為考慮在內(nèi)提出SVD++模型之后,才大大提升了算法的效果。
利用已有數(shù)據(jù)信息來預(yù)測(cè)用戶對(duì)未評(píng)分的物品集合的評(píng)分的研究被稱為推薦系統(tǒng)研究中的評(píng)分預(yù)測(cè)[12]。在評(píng)分預(yù)測(cè)研究中,基本數(shù)據(jù)集是用戶的歷史評(píng)分?jǐn)?shù)據(jù),在該數(shù)據(jù)集中,通常每條記錄數(shù)據(jù)用三元組(u,i,r)來表示。其中,u表示用戶,i表示物品,r表示對(duì)該物品的評(píng)分。評(píng)分預(yù)測(cè)的準(zhǔn)確性可以通過RMSE和MAE來衡量。在推薦系統(tǒng)中,真實(shí)值rui是用戶u對(duì)物品i的評(píng)分,預(yù)測(cè)值r?ui是推薦系統(tǒng)給出的預(yù)測(cè)結(jié)果,又因?yàn)樵陔x線實(shí)驗(yàn)中數(shù)據(jù)集被分為測(cè)試集和訓(xùn)練集,所以觀測(cè)次數(shù)在這里指的是測(cè)試集的大小。RMSE和MAE的定義如下:
其中,T表示整個(gè)測(cè)試集,Test表示實(shí)際測(cè)試時(shí)使用的測(cè)試集。
從指標(biāo)的定義可以看出,兩個(gè)測(cè)試指標(biāo)的值與評(píng)分預(yù)測(cè)的準(zhǔn)確性呈現(xiàn)負(fù)相關(guān)的趨勢(shì),即測(cè)評(píng)指標(biāo)越小,評(píng)分預(yù)測(cè)準(zhǔn)確性越高。相較于MAE指標(biāo),RMSE指標(biāo)因?yàn)槠椒胶偷男问礁臃糯罅苏`差的影響,對(duì)于推薦算法的評(píng)測(cè)來說,RMSE更加嚴(yán)格。
TopN推薦問題指在給用戶的個(gè)性化推薦列表中,設(shè)置哪些產(chǎn)品進(jìn)行優(yōu)先呈現(xiàn)[13]。TopN推薦預(yù)測(cè)的效果一般使用準(zhǔn)確率(precision)和召回率(recall)來衡量,兩者分別表示有多少比例的推薦選項(xiàng)被用戶選中以及有多少比例的推薦選項(xiàng)進(jìn)入了用戶的最終列表,其定義如下:
其中,R(u)表示訓(xùn)練集上生成的給用戶的推薦列表,T(u)表示用戶在測(cè)試集上生成的行為列表,U表示用戶集。目前大多數(shù)推薦算法的相關(guān)研究是基于用戶的評(píng)分?jǐn)?shù)據(jù)的[14],因此有許多研究人員探索如何優(yōu)化RMSE和MAE兩個(gè)評(píng)分指標(biāo)。同時(shí)TopN推薦問題也受到產(chǎn)業(yè)界各大互聯(lián)網(wǎng)公司的關(guān)注[15]。本文結(jié)合研究背景進(jìn)行實(shí)驗(yàn)設(shè)計(jì),主要從評(píng)分預(yù)測(cè)的角度來定義推薦算法,并進(jìn)行評(píng)測(cè)。
本文在信任網(wǎng)絡(luò)的研究背景下,從推薦算法研究中的評(píng)分預(yù)測(cè)問題出發(fā)設(shè)計(jì)推薦算法,即在確定用戶的相關(guān)歷史數(shù)據(jù)和相關(guān)信任關(guān)系的情況下,對(duì)用戶未評(píng)分的物品進(jìn)行評(píng)分預(yù)測(cè)。傳統(tǒng)的隱語義模型主要利用矩陣因子分解的方式,從評(píng)分預(yù)測(cè)的角度定義推薦算法的損失函數(shù),沒有完全考慮用戶的歷史行為數(shù)據(jù)[16]。Koren Y提出的Simon模型加入了用戶的歷史行為數(shù)據(jù),其設(shè)計(jì)的SVD++算法取得了良好的評(píng)分預(yù)測(cè)效果。Simon模型的評(píng)分預(yù)測(cè)式如下:
其中,bui表示預(yù)測(cè)的基準(zhǔn)估計(jì)值,uu表示從評(píng)分矩陣中分解的用戶向量,uu與vi的向量乘積表示用戶的顯式評(píng)分對(duì)預(yù)測(cè)結(jié)果的影響。N(u)表示與用戶u的潛在偏好有聯(lián)系的群體,yj表示N(u)群體的隱式反饋。因?yàn)閿?shù)據(jù)集具有稀疏性特點(diǎn),所以隱式數(shù)據(jù)的體量多于顯式數(shù)據(jù),因而本文設(shè)置正則化處理系數(shù)-β,β∈ [0 ,1]。β=0表示隱式反饋影響較大,β=1則表示隱式反饋的影響幾乎被抵消,本文選取β=0.5。結(jié)合信任網(wǎng)絡(luò)中的奇異值分解,首先將用戶向量與信任者向量進(jìn)行統(tǒng)一,之后逐步把信任關(guān)系代入SVD++模型:
其中,Ti(u)表示與用戶u有相關(guān)隱式信任關(guān)系的群體。為了使推薦算法在評(píng)分預(yù)測(cè)過程中取得良好效果,需要解出評(píng)分預(yù)測(cè)式中的未知系數(shù),本文通過確定損失函數(shù)將求解未知系數(shù)轉(zhuǎn)換為對(duì)損失函數(shù)最小值的求解問題。將待優(yōu)化的損失函數(shù)設(shè)定如下:
其中,rui表示獲得的評(píng)分,表示預(yù)測(cè)得分,tuv表示用戶v對(duì)用戶u的顯式信任值,代表用戶v對(duì)用戶u的隱式信任值,Ω表示用戶與物品集,Φ表示用戶顯式信任關(guān)系集,Λ表示用戶間的隱式信任關(guān)系集,λt1與λt2分別表示控制顯式及隱式信任的正則化影響因子。在機(jī)器學(xué)習(xí)的擬合過程中,常會(huì)遇到過度擬合的情況,在優(yōu)化損失函數(shù)的最小值時(shí)因?yàn)檫^度擬合樣本誤差,導(dǎo)致樣本點(diǎn)外的函數(shù)計(jì)算結(jié)果偏移較大。本文使用一個(gè)過擬合參數(shù)λ來避免過擬合,加入λ后得到的損失函數(shù)如下:
對(duì)損失函數(shù)中加入的避免過擬合項(xiàng)進(jìn)行正則化處理,并進(jìn)行系數(shù)處理,得到基于隱語義模型的信任網(wǎng)絡(luò)推薦算法的損失函數(shù):
其中,Ui和Uj分別表示對(duì)物品i和物品j進(jìn)行過評(píng)分的用戶集,X(v)和Xi(v)分別表示顯式信任用戶集合以及隱式信任用戶集合,正則化的懲罰規(guī)則主要用于可能造成評(píng)分過擬合的冷門對(duì)象,完成基于SVD++隱語義模型針對(duì)信任網(wǎng)絡(luò)進(jìn)行的推薦算法的評(píng)分預(yù)測(cè)式以及損失函數(shù)的設(shè)計(jì),下一步進(jìn)行隱語義模型與鄰域模型的融合。
基于鄰域模型的推薦算法分為ItemCF算法和UserCF算法兩類,本文將從ItemCF算法的角度設(shè)計(jì)適合與隱語義模型進(jìn)行融合的鄰域模型。兩類模型基于同一數(shù)據(jù)集,只是從不同的角度來推測(cè)用戶的興趣。本文把兩類模型的不確定參數(shù)放入同一損失函數(shù)中進(jìn)行求解,然后對(duì)評(píng)分預(yù)測(cè)的結(jié)果進(jìn)行擬合,從而將兩類模型進(jìn)行融合。整合鄰域模型的評(píng)分預(yù)測(cè)式,將評(píng)分預(yù)測(cè)式進(jìn)行正則化后,將其中的基準(zhǔn)評(píng)分估計(jì)值設(shè)置為隱語義模型中的評(píng)分預(yù)測(cè)式(式(10)),則得到式(14):
其中,wv表示用戶顯式反饋的未知參數(shù),sij表示用戶i與j之間的相關(guān)性對(duì)基準(zhǔn)估值的偏移度,cij表示用戶i對(duì)j的隱式反饋對(duì)評(píng)分預(yù)測(cè)帶來影響的權(quán)重,以優(yōu)化算法的空間復(fù)雜度和時(shí)間復(fù)雜度。本文使用式(14)作為評(píng)分預(yù)測(cè)式,參考式(13)得到融合后的預(yù)測(cè)損失函數(shù):
綜上,式(14)與式(15)即基于隱語義模型和鄰域模型融合后的適用于信任網(wǎng)絡(luò)的推薦算法評(píng)分預(yù)測(cè)式與預(yù)測(cè)損失函數(shù)。
對(duì)目標(biāo)函數(shù)的最優(yōu)值進(jìn)行求解通常會(huì)使用梯度下降(gradient desent)法,其中梯度為多元函數(shù)的偏導(dǎo)向量。逐步求出損失函數(shù)的最小值,需要確定每個(gè)步驟的步長(zhǎng)以及方向,通過梯度計(jì)算可以得到函數(shù)下降最快的方向。對(duì)于未確定參數(shù),采用梯度下降算法,可表示為:
如圖1所示,對(duì)于參數(shù)θ而言,損失函數(shù)L對(duì)其求偏導(dǎo)即表示梯度,其中α表示該方向上的步長(zhǎng),也被稱為學(xué)習(xí)速率。梯度算法可以分為兩類:隨機(jī)梯度下降(stochastic gradient descent,SGD)算法、批梯度下降(batch gradient descent,BGD)算法。其中,BGD算法為通過最小化所有訓(xùn)練樣本的損失函數(shù)而得到的全局最優(yōu)解,而SGD算法則大體向全局最優(yōu)的方向求解,但是SGD算法可以不用每次迭代過程中都使用全體訓(xùn)練樣本,因此SGD的復(fù)雜度相對(duì)較小,本文使用復(fù)雜度優(yōu)先的SGD算法。
圖1 采用梯度下降算法求解損失函數(shù)的最優(yōu)解
首先,定義評(píng)分值、顯式信任數(shù)值以及隱式信任數(shù)值的表達(dá)誤差:
由式(17)~式(19)的計(jì)算可以得到參數(shù)的偏導(dǎo)結(jié)果,下面給出其關(guān)鍵運(yùn)算步驟的偽代碼,算法1的作用是通過文本進(jìn)行數(shù)據(jù)輸入預(yù)處理,生成3個(gè)矩陣,算法2為采用隨機(jī)梯度下降算法進(jìn)行推薦算法迭代訓(xùn)練模型的偽代碼流程,并在最后給出其評(píng)分預(yù)測(cè)結(jié)果。
本文的實(shí)驗(yàn)部分主要是在開源數(shù)據(jù)集Epinions上對(duì)本文設(shè)計(jì)的推薦算法與經(jīng)典的TrustMF算法進(jìn)行對(duì)比,實(shí)驗(yàn)方法采用離線實(shí)驗(yàn)。將離線的實(shí)驗(yàn)數(shù)據(jù)集分為訓(xùn)練集和測(cè)試集,在訓(xùn)練集上進(jìn)行用戶的興趣模型訓(xùn)練,然后在測(cè)試數(shù)據(jù)集上對(duì)訓(xùn)練的模型進(jìn)行預(yù)測(cè)測(cè)試,并用相關(guān)指標(biāo)算法進(jìn)行評(píng)分。在對(duì)比對(duì)象的選擇方面,選擇TrustMF的原因是:相較于其他相關(guān)研究信任網(wǎng)絡(luò)下的推薦算法(如SoRech[17]、SocialMF[18]等相關(guān)算法[19-22]),該算法可以在評(píng)分預(yù)測(cè)問題中取得較好的成績(jī)。
本文實(shí)驗(yàn)選擇的Epinions數(shù)據(jù)集為開源數(shù)據(jù),分為兩個(gè)部分:rating_data和trust_data,其中rating_data為用戶歷史完成評(píng)分的數(shù)據(jù),格式為三元組(user_id, item_id, rating_value);trust_data為表示用戶間信任關(guān)系的數(shù)據(jù),格式為三元組形式(source_user_id, target_user_id,trust_statement_value);該數(shù)據(jù)集的基本信息見表2、表3。
表2 Epinions數(shù)據(jù)集基本信息
表3 Epinions數(shù)據(jù)集數(shù)據(jù)范圍
實(shí)驗(yàn)評(píng)測(cè)指標(biāo)主要選取RMSE和MAE,這兩個(gè)指標(biāo)數(shù)值都反比于推薦預(yù)測(cè)的準(zhǔn)確性,即指標(biāo)數(shù)值越小,則誤差越小,準(zhǔn)確性越高。在進(jìn)行實(shí)驗(yàn)前,將Epinions數(shù)據(jù)集隨機(jī)劃分為5份,1份是測(cè)試集,其余4份是訓(xùn)練集,算法中已知參數(shù)的設(shè)置見表4。
表4 算法中已知參數(shù)
為了說明本文設(shè)計(jì)的算法對(duì)冷啟動(dòng)問題的優(yōu)化作用,實(shí)驗(yàn)先從推薦系統(tǒng)冷啟動(dòng)的角度開始進(jìn)行。推薦系統(tǒng)的冷啟動(dòng)是指在進(jìn)行評(píng)分預(yù)測(cè)時(shí),測(cè)試集中只選用評(píng)分物品數(shù)量小于5的用戶來進(jìn)行測(cè)試。實(shí)驗(yàn)結(jié)果見表5。
表5 冷啟動(dòng)測(cè)試評(píng)測(cè)結(jié)果
從實(shí)驗(yàn)結(jié)果可以得出,除個(gè)別情況下某一指標(biāo)(d=10時(shí)本文算法的MAE略大于TrustMF的MAE)稍差,其他情況下本文算法都優(yōu)于其他各個(gè)推薦算法的冷啟動(dòng)效果??梢宰C明,相比于其他參考算法,本文的推薦算法在解決冷啟動(dòng)問題方面更好。迭代優(yōu)化實(shí)驗(yàn)則使用所有用戶作為測(cè)試集,得到的評(píng)分預(yù)測(cè)結(jié)果見表6。
從表6可以看出,所有算法的實(shí)驗(yàn)評(píng)測(cè)效果均好于冷啟動(dòng)實(shí)驗(yàn)組的評(píng)測(cè)結(jié)果。這是因?yàn)樵诶鋯?dòng)時(shí)遇到的數(shù)據(jù)稀疏問題影響了推薦系統(tǒng)的效果。而采用全部用戶集上的數(shù)據(jù)時(shí),因?yàn)榘衢T用戶和產(chǎn)品,所以提升了算法的推薦效果。同時(shí)從實(shí)驗(yàn)結(jié)果看,相比其他算法,本文算法的評(píng)測(cè)結(jié)果有一定的優(yōu)化提升。
表6 使用數(shù)據(jù)集中所有用戶進(jìn)行測(cè)試的評(píng)測(cè)結(jié)果
為了進(jìn)一步了解信任網(wǎng)絡(luò)對(duì)推薦算法優(yōu)化的影響,本文以用戶在信任網(wǎng)絡(luò)中的度為依據(jù)進(jìn)行用戶群體的劃分設(shè)計(jì)測(cè)試集。將用戶視為圖論中的點(diǎn),修改點(diǎn)的出度和入度之和就是修改點(diǎn)在信任網(wǎng)絡(luò)圖中的度。本文取隱式向量維度d=10,與TrustMF進(jìn)行對(duì)比測(cè)試,如圖2所示。
從圖2可以看出,隨著信任網(wǎng)絡(luò)中度數(shù)的增加,推薦算法對(duì)用戶興趣的預(yù)測(cè)準(zhǔn)確率基本呈上升趨勢(shì)。而且,在多數(shù)情況下,本文的推薦算法因?yàn)榻Y(jié)合了隱語義模型和顯式信任關(guān)系,推薦結(jié)果的評(píng)分預(yù)測(cè)精度更高,效果優(yōu)于對(duì)比算法TrustMF。
圖2 當(dāng)d=10時(shí),不同信任網(wǎng)絡(luò)度數(shù)的MAE值和RMSE值
作為推薦系統(tǒng)的核心,對(duì)推薦算法的研究受到學(xué)術(shù)界和產(chǎn)業(yè)界的廣泛關(guān)注和重視,評(píng)分預(yù)測(cè)是推薦算法研究中的核心問題。傳統(tǒng)推薦算法在面對(duì)顯式行為數(shù)據(jù)稀疏時(shí)容易出現(xiàn)冷啟動(dòng)的問題,為了緩解該問題對(duì)推薦算法進(jìn)行評(píng)分預(yù)測(cè)的準(zhǔn)確度的影響,本文結(jié)合信任網(wǎng)絡(luò)的特點(diǎn)和用戶信任關(guān)系數(shù)據(jù)進(jìn)行建模,設(shè)計(jì)了適用于信任網(wǎng)絡(luò)的推薦算法,并進(jìn)行了相關(guān)實(shí)驗(yàn)評(píng)測(cè)。本文將用戶行為數(shù)據(jù)分為顯式行為數(shù)據(jù)和隱式行為數(shù)據(jù),因?yàn)檩斎氲挠脩絷P(guān)系數(shù)據(jù)中具有二元顯式信任關(guān)系,本文基于用戶之間的相似度來設(shè)定用戶之間的隱式信任關(guān)系,結(jié)合顯式信任關(guān)系數(shù)據(jù)、評(píng)分?jǐn)?shù)據(jù)以及隱式信任關(guān)系數(shù)據(jù)一起進(jìn)行預(yù)處理,生成矩陣,進(jìn)行建模。
在隱語義模型的選擇上,本文借鑒SVD++模型,結(jié)合信任網(wǎng)絡(luò)的特點(diǎn)進(jìn)行改進(jìn),并融合了鄰域模型進(jìn)行推薦算法的評(píng)分預(yù)測(cè)函數(shù)和損失函數(shù)的設(shè)計(jì)。然后利用隨機(jī)梯度下降算法進(jìn)行函數(shù)中的參數(shù)迭代求導(dǎo),直至損失函數(shù)收斂于最小值,從而求得優(yōu)化后的相關(guān)參數(shù),將其代入評(píng)分預(yù)測(cè)函數(shù)后得到推薦算法評(píng)分預(yù)測(cè)值。最后本文通過開源數(shù)據(jù)集,采用離線測(cè)試的方案,使用RMSE和MAE兩個(gè)典型評(píng)測(cè)指標(biāo)對(duì)本文設(shè)計(jì)的推薦算法和TrustMF算法進(jìn)行評(píng)測(cè)實(shí)驗(yàn)。實(shí)驗(yàn)結(jié)果證明,本文設(shè)計(jì)的推薦算法在信任網(wǎng)絡(luò)中優(yōu)于其他參照算法,對(duì)于解決推薦系統(tǒng)的冷啟動(dòng)問題有良好的效果,并具有一定的實(shí)用意義。