李昆侖,王萌萌,于志波,翟利娜
(河北大學(xué) 電子信息工程學(xué)院,河北 保定 071000)E-mail:likunlun@hbu.edu.cn
隨著互聯(lián)網(wǎng)時代的到來,面對過載的信息與資源,用戶難以快速找到有用的信息,個性化推薦系統(tǒng)應(yīng)運而生,繼而出現(xiàn)了多種推薦算法,常用的有基于內(nèi)容、基于用戶的協(xié)同過濾的推薦算法[1]等.協(xié)同過濾推薦算法是當(dāng)前各類算法研究中應(yīng)用最多且推薦效果最好的算法之一.因此,協(xié)同過濾推薦算法廣泛應(yīng)用于各大電子商務(wù)平臺與網(wǎng)站中,例如淘寶、京東、亞馬遜等.但是隨著用戶和項目數(shù)量的劇增,導(dǎo)致用戶評分?jǐn)?shù)據(jù)稀疏性問題嚴(yán)重影響到推薦系統(tǒng)的推薦質(zhì)量[2].
用戶之間的關(guān)注度作為社交信息中的一個重要特征信息,為系統(tǒng)推薦提供了新的依據(jù)[3].文獻(xiàn)[4]提出采用概率矩陣分解來對評分進(jìn)行預(yù)測,在構(gòu)建用戶特征模型時加入社交信任,并對用戶特征向量本身進(jìn)行擴(kuò)展,該方法能夠在數(shù)據(jù)稀疏情況下提高推薦精度;文獻(xiàn)[5]提出一種帶偏置的專家信任推薦算法,在形成評分時融合專家的評價可信度、活躍度、評價偏差度,因此在數(shù)據(jù)稀疏時可以提高推薦精度;文獻(xiàn)[6]提出一種新的雙層鄰居選擇,通過選擇最具影響力和最值得信賴的鄰居來提高鄰居選擇的質(zhì)量,故在數(shù)據(jù)稀疏的情況下能夠提高推薦精度;文獻(xiàn)[7]提出利用社交網(wǎng)絡(luò)特征,在傳統(tǒng)矩陣分解模型的基礎(chǔ)上加入信任特征矩陣,能夠達(dá)到提高系統(tǒng)推薦精度的目的.然而多數(shù)社交信息并沒有給出用戶之間的信任度值,如何度量用戶之間信任度值是當(dāng)前有待解決的問題.
針對推薦系統(tǒng)中存在的數(shù)據(jù)稀疏性問題,本文提出了一種融合信任度值與半監(jiān)督密度峰值聚類的改進(jìn)協(xié)同過濾推薦算法,該算法將約束對的半監(jiān)督信息[10-12]融入到密度峰值聚類算法[8,9]中,提高算法的在線推薦效率;同時將用戶的信任信息融入到評分預(yù)測中為目標(biāo)用戶產(chǎn)生推薦,改善由數(shù)據(jù)稀疏性導(dǎo)致的推薦精度不準(zhǔn)確等問題.本文算法進(jìn)行了相關(guān)的理論分析,并在不同數(shù)據(jù)集上與其他算法進(jìn)行了相關(guān)的實驗對比,本文算法在平均絕對誤差方面和均方根誤差方面均表現(xiàn)優(yōu)異.
傳統(tǒng)的基于用戶的協(xié)同過濾推薦算法的關(guān)鍵是快速準(zhǔn)確的定位目標(biāo)用戶的鄰居集,這將直接影響到推薦算法的推薦效率和推薦精度.一般推薦過程分為三個步驟,具體如下:
Sept1.獲取用戶-項目評分信息,建立用戶-項目評分矩陣n*m,如表1所示.
Sept2.根據(jù)表1,計算全體用戶之間的相似度,得到用戶相似度矩陣,依據(jù)相似度大小確定目標(biāo)用戶的最近鄰居集.
Sept3.根據(jù)最近鄰居集中的用戶對目標(biāo)項目i進(jìn)行評分預(yù)測.
傳統(tǒng)的協(xié)同過濾推薦算法在尋找最近鄰居集時對所有用戶進(jìn)行相似度計算,相似度的計算量大,導(dǎo)致算法的推薦效率下降;在處理稀疏數(shù)據(jù)時,其推薦精度也急劇下降.因此本文引入相似度聚類以提高算法的在線推薦效率,并結(jié)合社交信息改善由數(shù)據(jù)稀疏性導(dǎo)致的推薦質(zhì)量差等問題.下面本文將針對改進(jìn)部分進(jìn)行詳細(xì)介紹.
本文引入半監(jiān)督密度峰值聚類算法,根據(jù)相似度進(jìn)行聚類,將興趣相同的用戶分為一類,并建立用戶興趣度集合Iu.在線推薦時,僅需對Iu中的用戶進(jìn)行相似度計算,繼而減少相似度的計算量,提高算法的推薦效率.
3.1.1 密度峰值聚類
用戶對項目的具體評分Rnm,表示用戶對該項目的興趣程度,因此本文采用密度峰值聚類算法對用戶的評分矩陣進(jìn)行相似度聚類,構(gòu)建用戶的興趣集合.將每個用戶評分作為一個樣本點,算法如下:
1)計算兩兩樣本點之間的距離dij,修正余弦相似度在計算中減去用戶所有評分項目的平均值消除評分的差異問題,因此本文采用修正余弦相似度的度量方式.如式(1)所示:
(1)
2)計算每個樣本點的密度,ρi為該樣本截斷距離dc內(nèi)的樣本總數(shù),為防止不同樣本點的ρi相同,采用dc內(nèi)樣本點高斯核函數(shù)之和的倒數(shù)代替,式(2)所示:
(2)
3)計算每個樣本點的距離δi,δi分兩種:一種情況,該點到高密度點之間的距離;另一種情況,該點為局部密度最大點,則該點的距離表示與其它點之間的最大距離.如式(3)所示:
(3)
4)選取聚類中心,根據(jù)ρi和δi繪制決策圖,在決策圖中選取簇的聚類中心,通常選取ρi和δi均為較大的點作為簇的聚類中心,即在決策圖中處于右上角與其它點分離明顯的部分點,如圖1所示.
圖1 ρ-δ決策圖
5)分配剩余各點,確定聚類中心后將剩余點分配到距離最近的密度比其大的點所屬的類.
3.1.2 約束對信息嵌入
由于密度峰值聚類算法對dc過于依賴,且聚類后的數(shù)據(jù)無法服從真實數(shù)據(jù)的分布,因此本文在原算法的基礎(chǔ)上提出約束對限制的半監(jiān)督聚類算法.約束對限制包括正關(guān)聯(lián)約束(must-link)和負(fù)關(guān)聯(lián)約束(cannot-link),即對必須在同一簇中而沒有被分到同一個簇中的數(shù)據(jù)實行must-link約束,對不該在同一個簇中卻被錯誤的分到同一個簇中的數(shù)據(jù)實行cannot-link約束.這兩種約束具有兩種性質(zhì).
對稱性:
(xi,xj)∈must-link?(xj,xi)∈must-link(xi,xj)∈cannot-link?(xj,xi)∈cannot-link
(4)
傳遞性:
(xi,xj)∈must-link&(xj,xm)∈must-link?(xi,xm)∈must-link(xi,xj)∈cannot-link&(xj,xm)∈cannot-link?(xi,xm)∈cannot-link
(5)
根據(jù)各點之間的相似度值,構(gòu)造n個用戶之間的相似度矩陣S,用n*n的矩陣表示:
相似值s(i,j)越大,則表示兩個樣本之間越相似,若s(i,j)=1,則表示i和j完全相同,在計算數(shù)據(jù)集相似度矩陣時,保存所有樣本對之間的最大相似度Smax.
在獲得數(shù)據(jù)集相似度矩陣的基礎(chǔ)上,將已知的某些樣本對之間的兩種類型的must-link和cannot-link信息嵌入矩陣中.實驗中采用Random函數(shù)隨機(jī)產(chǎn)生成對約束對進(jìn)行約束,若屬于同一簇加入must-link約束集;反之,加入cannot-link約束集.基于must-link和cannot-link具有對稱性和傳遞性,可以對矩陣中的其它樣本間的相似度進(jìn)行調(diào)整擴(kuò)展,進(jìn)而充分地挖掘樣本對之間隱藏的約束對的約束關(guān)系.
將約束對監(jiān)督信息嵌入數(shù)據(jù)集的相似度矩陣中,會生成已知的某些樣本對之間的兩種類型的成對點限制中滿足must-link和cannot-link約束的樣本對,以及由初始的must-link和cannot-link約束集的性質(zhì)進(jìn)行擴(kuò)展得到新的must-link和cannot-link約束.由于采用修正余弦相似度計算樣本間的相似度,如果兩個樣本屬于同一簇則為must-link約束,將其相似度值設(shè)置為數(shù)據(jù)集所有樣本對之間的最大相似度Smax;如果兩個樣本不屬于同一類,則為cannot-link,則令其相似度值為0.步驟如下:
1)根據(jù)最初加入的成對約束建立數(shù)據(jù)集成對約束標(biāo)記矩陣M,矩陣大小為樣本的總數(shù),定義如下:
(6)
2)在成對約束標(biāo)記矩陣的基礎(chǔ)上利用改造的Floyd算法求解成對約束擴(kuò)展情況,算法如下:
輸入:成對約束標(biāo)記矩陣M,樣本總數(shù)n
輸出:經(jīng)過擴(kuò)展的成對約束標(biāo)記矩陣Mextend
Sept1.對矩陣M進(jìn)行三次嵌套遍歷循環(huán)i,j,k
Sept2.任意點之間的相似度為s(i,j)=1,且s(j,k)=1,則點s(i,k)=1
Sept3.任意點之間的相似度為s(i,j)=-1,且s(j,k)=-1,則點s(i,k)=-1
3)根據(jù)擴(kuò)展后的成對約束標(biāo)記矩陣Mextend修正數(shù)據(jù)集相似度矩陣S中樣本對之間的相似度值,計算如下:
(7)
為緩解推薦算法數(shù)據(jù)稀疏性問題,利用社交網(wǎng)絡(luò)信任信息給目標(biāo)用戶匹配精準(zhǔn)鄰居用戶以提高推薦精度.在社交網(wǎng)絡(luò)中,用戶之間的關(guān)注度反映了用戶之間的信任程度,如圖2所示,本文通過用戶之間的關(guān)注度計算用戶之間信任度值并構(gòu)造信任度集合Tu.
圖2 社交網(wǎng)絡(luò)有向圖
其中箭頭指向表示該用戶為目標(biāo)信任用戶,如0→1,表示用戶0信任用戶1.
定義1.令Ttrust表示信任度,例如用戶u0對用戶u1的信任程度,記為Ttrust(u0,u1).
定義2.令Lij表示傳遞路徑,例如用戶u0到用戶u1的傳遞路徑,記為L01(u0,u1).
3.2.1 直接信任度值計算的改進(jìn)
傳統(tǒng)觀念認(rèn)為,用戶之間的信任是等價的,即用戶u0信任用戶u1,則用戶u1也信任用戶u0,兩者信任程度等價.然而現(xiàn)實生活中,用戶u0和用戶u1之間的信任程度通常并不等價,如果用戶u0信任用戶u1,不能代表用戶u1也一定信任用戶u0.因此本文引入信任權(quán)值,如式(8)、式(9)所示:
(8)
(9)
其中I(u0),I(u1)分別表示用戶u0,u1關(guān)注的用戶的集合,|I(u0)∪I(u1)|表示用戶I(u0)或者用戶I(u1)關(guān)注的用戶的集合的數(shù)量.式(8)、式(9)分別計算了用戶u0對用戶u1的信任權(quán)值和用戶u1對用戶u0的信任權(quán)值.
定義3.令Dtrust表示直接信任,根據(jù)用戶關(guān)系矩陣T,對于任意u0,u1,如果用戶u0關(guān)注了用戶u1,則存在Dtrust(u0,u1),記作u0→u1.
直接信任計算公式如式(10)、式(11)所示:
(10)
(11)
其中|I(u0)∩I(u1)|表示用戶I(u0)和用戶I(u1)共同關(guān)注的用戶的集合的數(shù)量.
3.2.2 間接信任度值計算的改進(jìn)
為給目標(biāo)用戶匹配更多的鄰居用戶,需要利用社會網(wǎng)絡(luò)信任傳遞性質(zhì),將更多沒有直接關(guān)聯(lián)的用戶聯(lián)系起來.
定義4.令I(lǐng)trust(u,v)表示間接信任,若u信任w,w信任v,則存在Itrust(u,v),反之,不存在間接信任關(guān)系.
隨著間接信任用戶的增加信任度減小,所以本文采用兩級路徑傳播,如圖2所示,用戶u0到用戶u5的信任度傳遞為L025,L015,每條路徑的間接信任度計算如式(12)、式(13):
L025=Dtrust(u0,u2)*Dtrust(u2,u5)
(12)
L015=Dtrust(u0,u1)*Dtrust(u1,u5)
(13)
u0到u5存在兩條路徑傳遞,每條路徑信任值不同,對應(yīng)的權(quán)重值也不同,因此引入等效電阻理論的距離度量方式[13],計算間接路徑的信任度.如圖3所示.
圖3 兩個用戶間的電路圖
令:
R1=L025
(14)
R2=L015
(15)
間接信任方式計算公式如式(16)所示:
(16)
綜合用戶直接信任Dtrust(u,v)和間接信任Itrust(u,v)得到用戶總的信任Trust(u,v),將Trust(u,v)作為用戶信任的相似度值,記作sim_t(u,v),如公式(17)所示:
sim_t(u,v)=
(17)
其中Dtrust(u,v)和Itrust(u,v)均不為零時,sim_t(u,v)表示綜合用戶的直接信任度值和間接信任度值;Itrust(u,v)=0時,sim_t(u,v)表示用戶之間只存在直接信任度值;Dtrust(u,v)=0時,sim_t(u,v)表示用戶之間只存在間接信任度值.
根據(jù)用戶興趣度和信任度的關(guān)系,通過設(shè)置推薦權(quán)重δ,平衡用戶興趣度和信任度的權(quán)重,可以提高識別鄰居的能力,不同應(yīng)用情況,對兩種信息依賴程度不同,通過調(diào)整δ的取值調(diào)節(jié)兩種信息對預(yù)測評分的影響,避免出現(xiàn)興趣度或信任度權(quán)重較大的問題.如公式(18)所示:
wu,v=
(18)
其中δ=0時,wu,v僅表示用戶的興趣相似度值;δ=1時,wu,v僅表示用戶的信任相似度值;0<δ<1時,表示綜合用戶興趣相似度值和信任相似度值.
計算目標(biāo)用戶u對未評分項目i的預(yù)測值,其評分Pu,i預(yù)測如公式(19)所示:
(19)
本文的主要思路是根據(jù)用戶-項目評分矩陣M,使用基于約束對的密度峰值聚類將用戶進(jìn)行分類,并采用TOP-N方法構(gòu)建興趣度集合Iu,提高對目標(biāo)用戶的在線推薦效率;再依據(jù)用戶關(guān)系矩陣T度量用戶之間的信任度值,采用TOP-N方法構(gòu)建信任度集合Tu;最后將兩個集合的預(yù)測值進(jìn)行線性加權(quán).具體步驟如下:
輸入:用戶-項目評分矩陣M,用戶關(guān)系矩陣T.
輸出:前N個推薦項目.
Sept1.根據(jù)矩陣M,使用半監(jiān)督密度峰值聚類將用戶按興趣度分類,計算ρi和δi,并根據(jù)公式(1)將用戶進(jìn)行相似度分類.
Sept2.根據(jù)公式(1)計算目標(biāo)用戶u和聚類中心的相似度,并將用戶u0加入到相似度高度的簇.
Sept3.根據(jù)公式(1)計算目標(biāo)用戶u與簇內(nèi)所有用戶的相似度,得到用戶興趣相似度的sim_i(u,v)值,并采用TOP-N方法建立興趣度集合Iu.
Sept4.根據(jù)用戶關(guān)系矩陣T,利用公式(10)、(11)、(16)、(17)計算目標(biāo)用戶u與T中的信任度值sim_t(u,v),并采用TOP-N方法建立信任度集合Tu.
Sept5.刪除Iu和Tu集合中目標(biāo)用戶已評分的項目,構(gòu)建評分預(yù)測候選集Cu.
Sept6.對集合Cu中的項目,通過式(19)計算預(yù)測評分值,將預(yù)測評分值降序排序,給目標(biāo)用戶u提供前N個推薦項目.
本文實驗均在CPU為i7-7700HQ,2.80GHz,內(nèi)存為8.00GB的計算機(jī)上運行,實驗軟件為python 3.7.本文實驗采用三個經(jīng)典的包含信任關(guān)系數(shù)據(jù)集:Epinions數(shù)據(jù)集、Filmtrust數(shù)據(jù)集和Ciao數(shù)據(jù)集,數(shù)據(jù)集的具體評分信息和信任信息如表2所示.
表2 三個不同數(shù)據(jù)集的統(tǒng)計信息
本實驗將數(shù)據(jù)集按照80%和20%的比例分為兩部分,前者作為訓(xùn)練集使用,用來構(gòu)造推薦模型,后者作為測試集使用,這樣可以保證訓(xùn)練集和測試集數(shù)據(jù)都是隨機(jī)的且都來自同一數(shù)據(jù)集.本實驗采用平均絕對誤差(Mean Absolute Error,MAE)和均方根誤差(Root Mean Squared Error,RMSE),這兩種評價指標(biāo)通過計算真實評分與預(yù)測評分之間的誤差來衡量推薦結(jié)果的準(zhǔn)確性,差值越小,表示偏差越小,推薦效果越好,如公式(20)、公式(21)所示:
(20)
(21)
本文相似度計算由用戶興趣度和信任度兩部分組成,δ作為調(diào)節(jié)因子.δ的取值為[0,1],間隔0.1.δ取值分為三種情況,δ=0時,算法僅依據(jù)用戶興趣度產(chǎn)生推薦;δ=1時,算法僅依據(jù)用戶信任度產(chǎn)生推薦;0<δ<1時,算法綜合興趣度和信任度產(chǎn)生推薦,且δ越大則信任度占比越大.
圖4給出δ在不同數(shù)據(jù)集上的變化趨勢,隨著δ的增加,MAE和RMSE均呈現(xiàn)先減小后增大,表明興趣度和信任度的占比不同會直接影響該算法的推薦結(jié)果,從圖4(a)中可以得到,在Epinions數(shù)據(jù)集上,MAE值在δ=0.5時取得最小值,RMSE值在δ=0.6時取得最小值,綜合用戶興趣度和信任度在MAE值和RMSE值的考慮,取δ=0.55時,該算法有最佳推薦結(jié)果.從圖4(b)可以得到,在Filmtrust數(shù)據(jù)集上,MAE值和RMSE值均在δ=0.6取得最小值,綜合興趣度和信任度的MAE值和RMSE值的考慮,當(dāng)δ=0.6時,該算法有最佳推薦結(jié)果.從圖4(c)可以得到,在Ciao數(shù)據(jù)集上,MAE值和RMSE值均在δ=0.7時取得最小值,綜合興趣度和信任度的MAE值和RMSE值的考慮,當(dāng)δ=0.7時,該算法有最佳推薦結(jié)果.Epinions數(shù)據(jù)集的信任密度為0.02%,δ取值0.55;Filmtrust數(shù)據(jù)集的信任密度為0.08%,δ取值0.6;Ciao數(shù)據(jù)集的信任密度為0.23%,δ取值0.7,說明信任密度越大,信任度占比越重.
圖4 不同數(shù)據(jù)集對δ值的影響
為能更清晰地分析信任度在推薦系統(tǒng)中的作用,將本文算法進(jìn)行信任效果對比,即不加信任、加直接信任以及加入間接信任時的三種方法進(jìn)行對比分析.
如圖5所示,圖5(a)、(d)為本文算法在Epinions數(shù)據(jù)集上的運行結(jié)果,圖5(b)、(e)為本文算法在Filmtrust數(shù)據(jù)集上的運行結(jié)果,圖5(c)、(f)為本文算法在Ciao數(shù)據(jù)集上的運行結(jié)果.根據(jù)實驗結(jié)果圖縱向?qū)Ρ确治?,?dāng)加入直接信任度值時的MAE值和RMSE值始終小于不加入信任度值計算的MAE值和RMSE值;加入間接信任度值計算的MAE值和RMSE值始終小于僅加入直接信任度值計算的MAE值和RMSE值.根據(jù)實驗結(jié)果圖的橫向?qū)Ρ确治觯ㄟ^圖5(a)、(d)可以分析,在Epinions數(shù)據(jù)集上,當(dāng)推薦數(shù)量N=35時,本文算法的MAE值和RMSE值均為最小,即當(dāng)推薦數(shù)量為35時,該算法有最佳推薦結(jié)果,能夠充分挖掘用戶之間的信任信息;通過圖5(b)、(e)可以分析,在Filmtrust數(shù)據(jù)集上,當(dāng)推薦數(shù)量N=25時,本文算法的MAE和RMSE值均為最小值,即當(dāng)推薦數(shù)量為25時,該算法的推薦結(jié)果最佳,能夠充分挖掘用戶之間的隱式信息;通過圖5(c)、(f)可以分析,Ciao數(shù)據(jù)集上,當(dāng)推薦數(shù)量N=30時,本文算法的MAE和RMSE值均為最小值,即當(dāng)推薦數(shù)量為30時,該算法的推薦結(jié)果最好,可以充分挖掘用戶之間的信任信息.因此當(dāng)該算法同時考慮直接信任度值和間接信任度值時能夠有效降低MAE值和RMSE值,提高對目標(biāo)用戶的推薦質(zhì)量,同時也說明該算法在不同的數(shù)據(jù)集上有不同的最佳推薦數(shù)量.
圖5 三種信任度值在不同數(shù)據(jù)集上的對比結(jié)果
為更直觀地分析本文算法的推薦質(zhì)量,本文選用一個傳統(tǒng)的算法模型和三個改進(jìn)的且?guī)в行湃味戎涤嬎愕乃惴P?,分別是基于用戶的協(xié)同過濾算法模型(UBCF)[14]、基于社交網(wǎng)絡(luò)矩陣分解的推薦算法模型(SRM-MF)[15]、基于用戶信任和商品評級的推薦算法模型(TrustSVD)[16]以及融合用戶信任的協(xié)同過濾推薦算法模型(SUPTserCF)[17],與本文提出的算法模型進(jìn)行對比分析.
如圖6所示,圖6(a)、(d)為各個算法在Epinions數(shù)據(jù)集上的對比結(jié)果,圖6(b)、(e)為各個算法在Filmtrust數(shù)據(jù)集上的對比結(jié)果,圖6(c)、(f)為本文算法在Ciao數(shù)據(jù)集上的運行結(jié)果.從實驗結(jié)果圖中可以分析,在Epinions數(shù)據(jù)集、Filmtrust數(shù)據(jù)集上和Ciao數(shù)據(jù)集上,UBCF算法的MAE值和RMSE值均遠(yuǎn)大于其他四種算法模型,說明其他算法模型在不同的數(shù)據(jù)集上均可以有效地提高推薦算法的推薦精度.如圖6(a)、(d)所示,在Epinions數(shù)據(jù)集上,根據(jù)實驗結(jié)果的橫向?qū)Ρ确治?,SRM-MF算法、TrustSVD算法、SUPTserCF算法以及本文算法均在推薦數(shù)量N=35時平均絕對誤差最小,且隨著推薦數(shù)量的增加MAE值趨于平穩(wěn)不再有大的波動,說明隨著推薦數(shù)量的增加各個算法的平均絕對誤差不會再減小,該數(shù)據(jù)集的最佳推薦數(shù)量為35.如圖6(b)、(e)所示,在Filmtrust數(shù)據(jù)集上,通過實驗結(jié)果的橫向?qū)Ρ确治?,SRM-MF算法、TrustSVD算法、SUPTserCF以及本文算法均在推薦數(shù)量N=25時MAE值和RMSE值均為最小值,此后隨著推薦數(shù)量的增加,MAE值和RMSE值不會再降低,且略有上升,說明隨著推薦數(shù)量的增加各個算法的MAE值和RMSE值不會再下降,該數(shù)據(jù)集的最佳推薦數(shù)量為25.如圖6(c)、(f)所示,在Ciao數(shù)據(jù)集上,通過實驗結(jié)果的橫向?qū)Ρ确治?,SRM-MF算法、TrustSVD算法、SUPTserCF以及本文算法均在推薦數(shù)量N=30時MAE值和RMSE值均為最小值,此后隨著推薦數(shù)量的增加,MAE值和RMSE值不會再降低,該數(shù)據(jù)集的最佳推薦數(shù)量為30.在不同的數(shù)據(jù)集上對實驗結(jié)果進(jìn)行縱向?qū)Ρ确治?,?dāng)推薦數(shù)量N值相同時,在Epinions數(shù)據(jù)集、Filmtrust數(shù)據(jù)集和Ciao數(shù)據(jù)集上本文算法的MAE和RMSE值均小于其它對比算法,證明本文算法在提高推薦精度上有良好的效果.
本文針對傳統(tǒng)協(xié)同過濾推薦算法在數(shù)據(jù)稀疏情況下的不足,提出了一種融合信任度值與半監(jiān)督密度峰值聚類的改進(jìn)協(xié)同過濾推薦算法.該方法通過半監(jiān)督密度峰值聚類將用戶按興趣分類建立用戶興趣度集合;并結(jié)合社交網(wǎng)絡(luò)的信任關(guān)系,通過計算直接信任度值和間接信任度值建立用戶信任集合.在基于用戶的興趣度集合和信任度集合分別選擇鄰居用戶,根據(jù)鄰居集合為用戶產(chǎn)生推薦.該算法降低了在尋找目標(biāo)用戶集合的時間損耗并為用戶匹配精準(zhǔn)鄰居集合,提高了系統(tǒng)的推薦效率和推薦精度.