公翠娟,賓 晟,孫更新
(青島大學(xué)數(shù)據(jù)科學(xué)與軟件工程學(xué)院,山東 青島 266071)
隨著大數(shù)據(jù)時(shí)代的到來(lái),數(shù)據(jù)冗余嚴(yán)重干擾了人們獲取有效信息。推薦系統(tǒng)很好地解決了這一問(wèn)題,成為相關(guān)領(lǐng)域的研究熱點(diǎn)。推薦系統(tǒng)根據(jù)人們的興趣愛(ài)好、需求信息以及消費(fèi)行為等[1],為用戶推薦其可能感興趣的商品或者信息。目前,推薦系統(tǒng)廣泛應(yīng)用于各行各業(yè),如亞馬遜的商品推薦,iTunes的音樂(lè)推薦,Netflix的電影推薦等。目前,推薦系統(tǒng)采用的算法主要分為三類:協(xié)同過(guò)濾的推薦算法[2-3]、基于內(nèi)容的推薦算法[4]和混合推薦算法[5]。其中,協(xié)同過(guò)濾推薦算法是目前應(yīng)用最廣泛的,它又分為三類:基于用戶(user-based)的協(xié)同過(guò)濾推薦算法[6]、基于項(xiàng)目(item-based)的協(xié)同過(guò)濾推薦算法[7]和基于矩陣分解(matrix factorization)的協(xié)同過(guò)濾推薦算法[8]。基于矩陣分解的協(xié)同過(guò)濾推薦算法因在Netflix Prize大賽上的突出表現(xiàn)被越來(lái)越多的研究人員所關(guān)注,該算法將用戶對(duì)商品的評(píng)分以矩陣的形式表示,將矩陣進(jìn)行分解來(lái)挖掘低維隱特征空間,進(jìn)而得到兩個(gè)低維的用戶特征矩陣和商品特征矩陣,最后通過(guò)兩個(gè)低維的特征向量的內(nèi)積來(lái)刻畫(huà)用戶與物品之間的關(guān)聯(lián)性。雖然上述推薦算法得到了較好的推薦結(jié)果,但是用戶商品評(píng)分矩陣存在數(shù)據(jù)稀疏性以及分布不均等特點(diǎn),導(dǎo)致推薦準(zhǔn)確率低、冷啟動(dòng)等問(wèn)題。
針對(duì)上述問(wèn)題,研究人員引入外來(lái)信息并在一定程度上較好地改善了推薦結(jié)果,物品內(nèi)容的描述與評(píng)論信息為物品增加了有用的信息保障;或者其他領(lǐng)域的信息同時(shí)服務(wù)于用戶和商品也會(huì)對(duì)推薦的結(jié)果造成影響。由于傳統(tǒng)的推薦算法忽略了用戶之間的社交關(guān)系對(duì)于推薦結(jié)果的影響,社交關(guān)系能夠體現(xiàn)出用戶之間喜好的相似性,單純考慮用戶對(duì)商品的評(píng)分已經(jīng)不能滿足推薦的需求,因此將社交關(guān)系引入推薦系統(tǒng)中的社會(huì)化推薦算法成為當(dāng)前推薦系統(tǒng)研究的熱點(diǎn)[9],從最初直接利用用戶間的直接社交信息,到近年來(lái)通過(guò)相關(guān)算法獲得用戶間的間接關(guān)系構(gòu)建模型進(jìn)行推薦,都大大提高了推薦的準(zhǔn)確率。根據(jù)社交推薦模型的構(gòu)建方式對(duì)其梳理:1)依據(jù)用戶社交關(guān)系,改變當(dāng)前用戶的隱性變量;2)同步分解評(píng)分矩陣和社交矩陣獲取推薦隱性變量。
對(duì)于社會(huì)化推薦算法,最早可追溯到1997年Kautz等人提出的ReferralWeb系統(tǒng)[10],其在傳統(tǒng)協(xié)同過(guò)濾模型上融合社交網(wǎng)絡(luò),為用戶提供了更加準(zhǔn)確的推薦結(jié)果,由此證明融合社交關(guān)系為推薦系統(tǒng)提供了更加可靠的數(shù)據(jù),同時(shí)為社會(huì)化推薦算法提供了新思路;Yang[11]等人采用矩陣分解技術(shù),根據(jù)用戶的信任關(guān)系將其映射到低維潛在特征空間,目的是更準(zhǔn)確地反映用戶的相互影響,有效地提高了推薦的準(zhǔn)確性;李鎮(zhèn)東[12]等人提出了一種以單調(diào)飽和函數(shù)為權(quán),利用目標(biāo)用戶和其他項(xiàng)目共同評(píng)分個(gè)數(shù)相對(duì)用戶總數(shù)值的真切值作為傳統(tǒng)相似度系數(shù)的加權(quán)二部圖推薦算法;曹玉琳[13]等人通過(guò)標(biāo)簽的相似性來(lái)計(jì)算用戶之間和資源之間的相似性,進(jìn)行近鄰選擇,提出了一種融合社會(huì)標(biāo)簽的近鄰感知的聯(lián)合概率矩陣分解推薦算法,有效利用標(biāo)簽的語(yǔ)義性提高了推薦質(zhì)量;王瑞琴[14]等人借鑒社會(huì)心理學(xué)中的信任產(chǎn)生原理,基于用戶信譽(yù)度的信任擴(kuò)展方法,緩解數(shù)據(jù)的稀疏性問(wèn)題,提出了一種信任加強(qiáng)的矩陣分解推薦算法;Ma[15]等人基于用戶特征矩陣共享表示的方法,提出了一種基于用戶特征矩陣共享表示的社交推薦模型,有效提高了推薦的準(zhǔn)確性。
大多數(shù)社會(huì)化推薦算法只是引入一種社交關(guān)系,但是加入的每一種社交關(guān)系對(duì)推薦結(jié)果的影響是不同的,所以引入一種社交關(guān)系肯定會(huì)影響推薦結(jié)果的準(zhǔn)確性。為了解決這一問(wèn)題,本文基于多子網(wǎng)復(fù)合復(fù)雜網(wǎng)絡(luò)模型構(gòu)建多關(guān)系社交網(wǎng)絡(luò)[16],利用共享用戶特征矩陣,將多種社交關(guān)系引入推薦系統(tǒng),提出了一種融合多種社交關(guān)系的矩陣分解推薦算法。
假設(shè)推薦系統(tǒng)中包括m個(gè)用戶和n個(gè)商品,Rm×n=[Rij]m×n表示用戶—商品評(píng)分矩陣,如圖1所示,Rij代表用戶i對(duì)商品j的評(píng)分,其中Rij∈[1,5],通常Rm×n中有許多空元素,導(dǎo)致用戶—商品評(píng)分矩陣是一個(gè)非常稀疏的矩陣。
在社交網(wǎng)絡(luò)中,如圖2所示,用戶之間的社交關(guān)系可以用矩陣C表示:C=[Cik]m×m,Cik的值為0或1,0表示用戶之間不存在社交關(guān)系,1表示用戶之間存在社交關(guān)系。
圖1 用戶商品評(píng)分矩陣Fig.1 User item rating matrix
圖2 用戶社交關(guān)系矩陣
傳統(tǒng)的矩陣分解算法[17]模型如圖3a所示,用戶商品評(píng)分矩陣Rm×n被分解成兩個(gè)低維的特征矩陣Um×k,Vk×n,分別表示用戶特征矩陣和商品特征矩陣,其中k表示向量的維數(shù),一般情況下k遠(yuǎn)遠(yuǎn)小于m和n,進(jìn)而達(dá)到降維的目的。Ui和Vj分別表示對(duì)應(yīng)的用戶ui和商品vj的潛在特征空間,通過(guò)UiTVj預(yù)測(cè)評(píng)分矩陣中的空值,進(jìn)而得到預(yù)測(cè)評(píng)分矩陣。
圖3 推薦算法模型
為了方便研究,使用函數(shù)f(x)=1/Rmax,把用戶對(duì)商品的評(píng)分映射到[0,1]區(qū)間,其中Rmax表示用戶對(duì)商品的最大評(píng)分。傳統(tǒng)的矩陣分解只是利用了簡(jiǎn)單的線性模型R=UTV,得到的結(jié)果會(huì)過(guò)于擬合評(píng)分矩陣,導(dǎo)致預(yù)測(cè)評(píng)分過(guò)分偏離真實(shí)的數(shù)據(jù),最終預(yù)測(cè)結(jié)果失真[18]。所以,本文引用logistic函數(shù)g(x)=1/(1+e-x),使得在[0,1]范圍內(nèi)界定用戶對(duì)商品的評(píng)分,所以觀測(cè)得到的條件概率分布可定義為
(1)
(2)
(3)
然后經(jīng)過(guò)貝葉斯推理可得到U與V聯(lián)合的后驗(yàn)概率分布:
(4)
傳統(tǒng)的推薦算法中用戶之間是相互獨(dú)立的,這忽略了用戶之間的社交關(guān)系。在現(xiàn)實(shí)世界中,如果兩個(gè)用戶之間存在社交關(guān)系,則用戶之間的喜好以及對(duì)商品的選擇是會(huì)相互影響的,單純考慮用戶對(duì)商品的評(píng)分已經(jīng)無(wú)法滿足推薦的需求。因此這就需要將社交關(guān)系融入到推薦系統(tǒng),進(jìn)而提高推薦的準(zhǔn)確率。
假設(shè)用戶之間只有一種社交關(guān)系,通過(guò)共享用戶的潛在特征空間將社交關(guān)系融入到矩陣分解推薦算法中,即社交關(guān)系的用戶潛在特征空間與用戶評(píng)分矩陣中的用戶潛在空間是相同的,然后通過(guò)概率矩陣分解進(jìn)行分析。C=Cik表示一個(gè)m×m的社交關(guān)系矩陣,將社交網(wǎng)絡(luò)分解成U∈Rl×m和Z∈Rl×m分別表示用戶特征矩陣和社交特征矩陣,將觀測(cè)到的社交關(guān)系的條件分布定義為:
(5)
假設(shè)用戶特征向量U和社交特征向量Z服從均值為0的球形高斯先驗(yàn)分布:
(6)
(7)
然后通過(guò)簡(jiǎn)單的貝葉斯推理,就可以得到:
(8)
將一種社交關(guān)系融入到矩陣分解推薦系統(tǒng),算法模型如圖3b所示,同時(shí)分解用戶商品評(píng)分矩陣和社交關(guān)系矩陣,得到一個(gè)潛在的用戶特征空間,根據(jù)共享用戶特征空間,將用戶商品評(píng)分矩陣與社交關(guān)系矩陣緊湊聯(lián)系,社會(huì)推薦的后驗(yàn)分布取對(duì)數(shù)可得:
(9)
其中,C是一個(gè)不依賴于參數(shù)的常數(shù),最大化的后驗(yàn)分布函數(shù)等價(jià)于最小化的目標(biāo)函數(shù),目標(biāo)函數(shù)為
(10)
(11)
采用梯度下降算法對(duì)目標(biāo)函數(shù)進(jìn)行求解:
(12)
(13)
(14)
(15)
本文采用Epinions作為實(shí)驗(yàn)數(shù)據(jù)集,Epinions是一個(gè)知識(shí)共享網(wǎng)站和評(píng)論網(wǎng)站,用戶可以評(píng)論商品或者給出從1到5的整數(shù)評(píng)級(jí)。新用戶可以根據(jù)這些評(píng)論或者評(píng)級(jí)來(lái)判定商品是否值得購(gòu)買或者電影是否值得觀看。Epinions包括用戶的信任關(guān)系,用戶對(duì)商品的打分信息以及評(píng)論信息。Epinions數(shù)據(jù)集由49 290個(gè)用戶組成,包括139 738個(gè)不同的項(xiàng)目,664 824條評(píng)論信息,487 181條信任關(guān)系。
在實(shí)驗(yàn)過(guò)程中采用五折交叉驗(yàn)證方法,對(duì)推薦模型進(jìn)行訓(xùn)練與測(cè)試。將Epinions數(shù)據(jù)集平均分成五等份,每次實(shí)驗(yàn)中,隨機(jī)選取一組作為測(cè)試集,其余四組作為訓(xùn)練集。進(jìn)行5次實(shí)驗(yàn),確保每組測(cè)試集都被測(cè)試。實(shí)驗(yàn)的最終結(jié)果為5次實(shí)驗(yàn)的平均值。
本文采用三個(gè)不同的評(píng)價(jià)指標(biāo)衡量推薦的準(zhǔn)確性,分別為平均絕對(duì)值誤差(Mean Absolute Error, MAE)、均方根誤差(Root Mean Squared Error, RMSE)[19]和標(biāo)準(zhǔn)平均絕對(duì)誤差(Normalized Mean Absolute Error,NMAE)[20]。這3種評(píng)價(jià)指標(biāo)通過(guò)計(jì)算預(yù)測(cè)評(píng)分與真實(shí)評(píng)分之間的誤差來(lái)衡量推薦算法的準(zhǔn)確度,它們的值越小,表示推薦的準(zhǔn)確性越高。MAE、RMSE和NMAE的定義分別如式(16)~(18)。
(16)
(17)
(18)
其中,rij是用戶i對(duì)商品的j的真實(shí)評(píng)分,r′ij是用戶ui對(duì)商品j的預(yù)測(cè)評(píng)分,EP表示測(cè)試集,rmax和rmin分別表示用戶評(píng)分區(qū)間的最大值和最小值。
在實(shí)驗(yàn)過(guò)程中,算法用戶特征個(gè)數(shù)K=5,迭代次數(shù)為1 000次,λU=λV=0.001。參數(shù)α用于調(diào)節(jié)社交關(guān)系矩陣和用戶評(píng)分矩陣之間的比重,參數(shù)β用于調(diào)節(jié)兩種社交關(guān)系之間的所占比重,α、β的不同取值將直接影響推薦的結(jié)果。采用仿真實(shí)驗(yàn)的方法確定α和β的取值。β=1時(shí)表示只引入了一種社交關(guān)系,當(dāng)α取不同的值時(shí),其中MAE的值在數(shù)據(jù)集上的變化如圖4所示。
圖4 參數(shù)α的影響
由圖4可知,在Epinions數(shù)據(jù)集中,當(dāng)α=0.8時(shí),MAE和RMSE取值最小,即在只有一種社交關(guān)系的時(shí)候,α=0.8時(shí)推薦準(zhǔn)確率最高。
用Ou、Ov分別表示用戶u和v評(píng)價(jià)過(guò)的商品集,用戶u和v共同評(píng)分的商品越多,那么表明他們可能有相同的興趣并且彼此相互影響,具體定義如式(19):
(19)
當(dāng)fuv>0.2,代表用戶u和v興趣相似,設(shè)滿足這個(gè)條件的用戶之間的關(guān)系為c2關(guān)系。繼續(xù)加載c2關(guān)系。當(dāng)α、β取不同的值時(shí),在Epinions數(shù)據(jù)集上MAE和RMSE的變化如圖5所示。
圖5 參數(shù)α、β的影響
由圖5可知,在Epinions數(shù)據(jù)集中,當(dāng)參數(shù)α=0.3,β=0.4時(shí),MAE的值最小,即在該算法中的推薦準(zhǔn)確率最高,同理,當(dāng)α=0.7,β=0.5時(shí),RMSE的值最小,即在該算法中的推薦準(zhǔn)確率最高。
為了驗(yàn)證本文所提的算法MDRS2的性能以及多種社交關(guān)系對(duì)推薦的影響,本文將MDRS2算法與SocRec算法[14](Social Recommendation Using Probabilistic Matrix Factorization,SocRec),TDSRec算法[19](Similarity Social Recommendation with Trust and Distrust Information)和MDRS1算法在Epinions數(shù)據(jù)集上進(jìn)行比較。SocRec算法在矩陣分解的基礎(chǔ)上考慮了用戶之間的社會(huì)關(guān)系屬性,融入了一種社交關(guān)系;TDSRec算法在考慮社交網(wǎng)絡(luò)的同時(shí),融合基于用戶評(píng)分偏好的相似性,共同對(duì)用戶評(píng)分矩陣中的數(shù)值進(jìn)行了預(yù)測(cè);MDRS1算法僅考慮了一種社交關(guān)系;MDRS2算法通過(guò)共享用戶特征空間,將用戶商品評(píng)分矩陣與社交關(guān)系矩陣緊湊聯(lián)系,將多種社交關(guān)系融入到矩陣分解中。實(shí)驗(yàn)統(tǒng)計(jì)結(jié)果如表1所示。
表1 不同算法的實(shí)驗(yàn)結(jié)果
由表1可知,在Epinions數(shù)據(jù)集中,本文提出的算法MDRS2的MAE、RMSE和NMAE的值相比其他方法的MAE、RMSE和NMAE的值要小,即預(yù)測(cè)的準(zhǔn)確性較高。由此可見(jiàn),引入兩種社交關(guān)系的推薦算法比其他三種推薦算法的準(zhǔn)確率要高,表明在推薦算法中,引入用戶之間的多種關(guān)系將提高推薦的準(zhǔn)確率,并且用戶之間的關(guān)系越多,推薦的準(zhǔn)確率越高。
本文通過(guò)分解用戶商品評(píng)分矩陣,根據(jù)多子網(wǎng)復(fù)合復(fù)雜網(wǎng)絡(luò),利用共享用戶的潛在特征空間將多種社交關(guān)系融入到矩陣分解推薦算法中。通過(guò)在真實(shí)數(shù)據(jù)集上的實(shí)驗(yàn)證明了本文所提的融合多關(guān)系的矩陣分解推薦算法提高了推薦的準(zhǔn)確率。說(shuō)明引入多種社交關(guān)系可以更好地為用戶做個(gè)性化推薦,并且引入的關(guān)系越多,推薦的效果越好。在今后的研究中,可以將用戶的間接關(guān)系與直接關(guān)系相結(jié)合,來(lái)進(jìn)一步研究社交關(guān)系對(duì)推薦的影響。