張 潔,李 港
(南京郵電大學(xué) 計(jì)算機(jī)學(xué)院,江蘇 南京 210023)
如今伴隨著網(wǎng)絡(luò)的飛速發(fā)展,人們每天都要面臨著如何從海量資源中獲取自己所需要的信息的問(wèn)題。但大量的信息使得人們無(wú)從下手,造成選擇上的困難,從而無(wú)法準(zhǔn)確獲取用戶自身需要的信息數(shù)據(jù),這一問(wèn)題被人們稱作“信息過(guò)載”問(wèn)題。
當(dāng)下,人們?yōu)榱私鉀Q該問(wèn)題提出了兩種方法。一種方法是使用搜索引擎來(lái)進(jìn)行信息的檢索;另一種方法是通過(guò)推薦系統(tǒng)進(jìn)行的信息過(guò)濾。搜索引擎需要人們提供關(guān)鍵字的匹配信息,匹配結(jié)果基本上依賴于用戶對(duì)關(guān)鍵詞的描述準(zhǔn)確程度。而推薦系統(tǒng)(Recommender System,RS)是一種可以讓使用者迅速找到對(duì)他們有用信息的工具[1],它可以針對(duì)人們不同的需求幫助人們獲得他們感興趣的信息[2-3]。
完整的推薦系統(tǒng)包括三部分:用戶、項(xiàng)目資源和推薦算法。通過(guò)分析用戶的興趣和偏好來(lái)建立一種用戶模型,并根據(jù)項(xiàng)目的特點(diǎn)建立項(xiàng)目資源模型。然后,將目標(biāo)用戶的特征與所有項(xiàng)目的特征進(jìn)行比較,以便通過(guò)使用推薦算法預(yù)測(cè)用戶可能喜歡哪些項(xiàng)目,并且將預(yù)測(cè)結(jié)果推薦給用戶。在這個(gè)過(guò)程中,人們最重視的部分就是推薦算法部分,該部分的性能關(guān)乎整個(gè)系統(tǒng)的性能。
協(xié)同過(guò)濾(Collaborative Filtering,CF)算法是推薦技術(shù)中最成熟的技術(shù)之一[4]。人們通常將協(xié)同過(guò)濾算法劃分為兩類:一類被稱為基于用戶的協(xié)同過(guò)濾推薦算法,它的依據(jù)是具有相似歷史評(píng)級(jí)的用戶應(yīng)該具有相似的興趣,因此可以根據(jù)類似用戶對(duì)給定項(xiàng)目的評(píng)級(jí)來(lái)預(yù)測(cè)目標(biāo)用戶對(duì)特定項(xiàng)目所缺少的評(píng)級(jí);另一類則被稱為基于項(xiàng)目的協(xié)同過(guò)濾推薦算法,該算法認(rèn)為兩項(xiàng)目之間存在著聯(lián)系,通過(guò)獲取兩項(xiàng)目之間的相似度,并根據(jù)該值向目標(biāo)用戶推薦與其感興趣的項(xiàng)目相似度高的項(xiàng)目。不過(guò),不論是選擇前者還是選擇后者,兩種算法能否準(zhǔn)確地為用戶推薦其感興趣的商品的核心在于相似度計(jì)算的準(zhǔn)確與否。但由于信息日益增多,用戶對(duì)項(xiàng)目的遺留的評(píng)分?jǐn)?shù)據(jù)也變得稀疏起來(lái)。正是因?yàn)閿?shù)據(jù)的稀疏性以及用戶之間共同評(píng)價(jià)項(xiàng)目數(shù)量稀少,一般的協(xié)同過(guò)濾推薦在計(jì)算相似度時(shí)很難準(zhǔn)確地計(jì)算兩者相似度,從而無(wú)法獲得較好的推薦質(zhì)量。
針對(duì)上述問(wèn)題,研究人員相繼提出了許多能夠提高相似度計(jì)算的方法。石京京等[5]在傳統(tǒng)的用戶評(píng)分矩陣基礎(chǔ)上加入了物品分類以及面世時(shí)間來(lái)計(jì)算物品之間的相似度。于金霞等[6]將傳統(tǒng)的兩種相似度計(jì)算方法相結(jié)合,獲得新的相似度計(jì)算方案。Sun等[7]提出將 Triangle相似度和傳統(tǒng)的Jaccard相似度計(jì)算公式結(jié)合,形成一種新的相似度計(jì)算方法,使得計(jì)算用戶間相似度更加精確。Suryakant等[8]將 Jaccard、COS、MMD 三種相似度計(jì)算方法進(jìn)行融合,提出一種新的名為CjacMD的相似度計(jì)算方法。Patra等[9]使用一對(duì)用戶的所有評(píng)分以及利用Bhattacharyya的相似性,提出了一種名為BCF的相似度計(jì)算方法。
本文針對(duì)傳統(tǒng)的基于用戶的協(xié)同過(guò)濾算法無(wú)法準(zhǔn)確地計(jì)算用戶之間的相似度問(wèn)題,提出了一種基于用戶評(píng)分信息熵的融合協(xié)同過(guò)濾算法。在傳統(tǒng)Pearson相似度計(jì)算公式的基礎(chǔ)上,針對(duì)用戶之間的聯(lián)系加入用戶懲罰系數(shù)形成新的相似度計(jì)算公式,并將改進(jìn)后的相似度計(jì)算公式與評(píng)分信息熵算法進(jìn)行融合形成一種新的相似度計(jì)算方法。
傳統(tǒng)基于用戶的協(xié)同過(guò)濾推薦算法的思想:如果兩用戶擁有相似的歷史評(píng)分,那么他們之間應(yīng)該存在著相似的項(xiàng)目興趣,從而利用類似用戶對(duì)給定項(xiàng)目的評(píng)分來(lái)預(yù)測(cè)目標(biāo)用戶對(duì)指定項(xiàng)目的評(píng)分。具體流程如下。
(1)構(gòu)造用戶評(píng)分矩陣。通過(guò)創(chuàng)建m?n的矩陣R來(lái)表示用戶對(duì)項(xiàng)目的評(píng)分?jǐn)?shù)據(jù)。如表1所示,其中m指的是用戶的總數(shù),n指的是項(xiàng)目的總數(shù),使用集合U={u1,u2,…,um}來(lái)表示用戶,使用集合I={I1,I2,…,In} 來(lái)表示項(xiàng)目,用戶m對(duì)項(xiàng)目n的評(píng)分使用Rmn來(lái)表示。
表1 用戶項(xiàng)目評(píng)分矩陣R
(2)計(jì)算用戶之間的相似度,找到最近的鄰居。根據(jù)以上的評(píng)分矩陣R使用相似度計(jì)算方法獲得相似度,并且以用戶之間的相似度為基礎(chǔ)來(lái)選擇最近鄰居集。把計(jì)算所得的相似度以降序的方式進(jìn)行排列,截取所需要的前k個(gè)值相對(duì)應(yīng)的用戶集合作為目標(biāo)用戶的k個(gè)最近鄰居集。
(3)預(yù)測(cè)評(píng)級(jí)。使用來(lái)自與u最相似的用戶對(duì)i的評(píng)級(jí)來(lái)預(yù)測(cè)目標(biāo)用戶u對(duì)新項(xiàng)目i的評(píng)級(jí)。預(yù)測(cè)評(píng)級(jí)計(jì)算如下
其中,Nu表示用戶u的相似鄰居集,表示用戶u的評(píng)分平均值,表示用戶v的評(píng)分平均值,Rvi表示用戶v對(duì)項(xiàng)目i的評(píng)分。
1.2.1 余弦相似度
余弦相似度是把兩用戶對(duì)項(xiàng)目的評(píng)級(jí)當(dāng)作兩組向量,其相似度值使用計(jì)算所得到的兩組向量夾角的余弦值來(lái)代替。如果計(jì)算出的余弦值較大,則說(shuō)明兩者具有較高的相似性程度。
一般計(jì)算余弦相似度的公式如下
其中,Iu是用戶u所評(píng)價(jià)的項(xiàng)目集合,Iv是用戶v所評(píng)價(jià)的項(xiàng)目集合。
1.2.2 Pearson相似度
Pearson相似度能夠刻畫兩組數(shù)據(jù)之間所顯現(xiàn)的線性相關(guān)的大小,其取值范圍在-1和1之間。Pearson相似度是以兩個(gè)用戶的共同評(píng)價(jià)的項(xiàng)目集合為基礎(chǔ)進(jìn)行相似度計(jì)算的。使用該方法計(jì)算時(shí),需要去除該用戶所評(píng)價(jià)的所有商品的平均值。一般使用如下的計(jì)算公式來(lái)計(jì)算該相似度
1.2.3 Jaccard相似度
Jaccard相似度并不涉及項(xiàng)目的具體評(píng)分值,它只需要計(jì)算兩組數(shù)據(jù)集合之間的交集數(shù)目比上并集數(shù)目的值。其計(jì)算公式如下
其中,Iu表示的是用戶u已評(píng)價(jià)過(guò)的項(xiàng)目,Iv表示的是用戶v已評(píng)價(jià)過(guò)的項(xiàng)目,指的是項(xiàng)目集合的長(zhǎng)度。
根據(jù)傳統(tǒng)的Pearson相似度計(jì)算公式可以得出:當(dāng)兩個(gè)用戶對(duì)商品評(píng)價(jià)的共同項(xiàng)目的個(gè)數(shù)較少時(shí),使用這種相似度計(jì)算方法會(huì)獲得兩者之間存在較高相似度的結(jié)果。這是因?yàn)閭鹘y(tǒng)的Pearson相似度是根據(jù)用戶共同評(píng)價(jià)項(xiàng)目集合來(lái)計(jì)算用戶之間的相似度,忽略了共同評(píng)價(jià)的項(xiàng)目可能占兩者評(píng)價(jià)項(xiàng)目總數(shù)很小的情況。例如,用戶A和用戶B共同進(jìn)行評(píng)分的項(xiàng)目有5項(xiàng),而用戶A和用戶C共同評(píng)價(jià)的項(xiàng)目只有2項(xiàng)。按理來(lái)說(shuō),用戶A和用戶B之間的相似度要高于用戶A和用戶C,畢竟兩者共同評(píng)價(jià)的項(xiàng)目要多于用戶A和用戶C共同評(píng)價(jià)的項(xiàng)目,表明兩用戶擁有更為相似的興趣。但由于傳統(tǒng)的Pearson相似度是基于共同項(xiàng)目集合,所以使用該方法計(jì)算出的結(jié)果是用戶A和用戶C之間的相似度要高于用戶A和用戶B,這其實(shí)是不符合實(shí)際情況的。隨著用戶評(píng)價(jià)項(xiàng)目的增多,傳統(tǒng)的Pearson相似度計(jì)算公式計(jì)算出的相似度將會(huì)出現(xiàn)更大的偏差。比如說(shuō)用戶u對(duì)1 000件商品進(jìn)行評(píng)價(jià),而用戶v評(píng)價(jià)過(guò)的商品中只有幾十件,與用戶u一樣,這樣會(huì)導(dǎo)致用戶u和用戶v有較高的相似度。但實(shí)際上,用戶u和用戶v感興趣的商品可能完全不一樣,這樣導(dǎo)致推薦結(jié)果不佳。
針對(duì)這一問(wèn)題,考慮用戶之間兩者共同評(píng)價(jià)的項(xiàng)目在評(píng)分總項(xiàng)目中所占比例,文中引入式(5)作為用戶懲罰系數(shù),用來(lái)提高用戶之間的聯(lián)系,這樣可以降低當(dāng)兩用戶共同評(píng)分項(xiàng)目數(shù)占兩用戶總評(píng)分項(xiàng)目總數(shù)較少時(shí),可能獲得較高相似度的影響。
其中,Iu和Iv分別表示用戶u和用戶v的項(xiàng)目集合,表示用戶u已對(duì)該項(xiàng)目評(píng)分的商品數(shù)目,表示用戶v已經(jīng)進(jìn)行過(guò)評(píng)分的商品數(shù)目,表示二者都對(duì)該項(xiàng)目評(píng)分過(guò)的商品數(shù)目。
將 Relation(u,v)公式融入到傳統(tǒng)的 Pearson 相似度計(jì)算公式中,從而考慮了用戶之間共同評(píng)價(jià)項(xiàng)目數(shù)占他們?cè)u(píng)價(jià)項(xiàng)目數(shù)之和的比重,降低了共同評(píng)價(jià)數(shù)目較少時(shí)帶來(lái)的相似度計(jì)算偏差,提升了相似度計(jì)算的準(zhǔn)確度,其計(jì)算公式如下
其中,Iuv指的是用戶u和用戶v共同評(píng)價(jià)的項(xiàng)目集合,Rui是用戶u對(duì)項(xiàng)目i的評(píng)分,Rvi是用戶v對(duì)項(xiàng)目i的評(píng)分,是用戶u所有評(píng)分的平均值,是用戶v所有評(píng)分的平均值。
香農(nóng)(Claude Shannon)在1948年提出了有關(guān)信息熵的概念。通常使用信息熵來(lái)表示一個(gè)系統(tǒng)的信息含量,也相當(dāng)于用來(lái)表示一組樣本的離散程度或者說(shuō)衡量一組信息的混亂程度的度量。如果信息熵的值越小,表明信息混亂程度越小,分布越有序[10-11]。相反地,如果信息熵的值越大,表明信息混亂程度越大,分布越離散。
假設(shè)離散樣本集 X 的取值為{x1,x2,…,xn},記P(X= xi)= p(xi),則該樣本集的信息熵計(jì)算公式為
其中,n為離散樣本集X中信息類別的個(gè)數(shù),p(xi)為樣本集X中類別為i的信息出現(xiàn)的概率,H(X)為計(jì)算所得到的信息熵。由式(7)可以看出,計(jì)算信息熵所得的值與X的概率分布有關(guān),而與具體的取值無(wú)關(guān)。當(dāng)X中所有分類都具有相同的出現(xiàn)機(jī)會(huì),即p(x1)=p(x2)=…=p(xn) 時(shí),信息熵H(X) 取得最大值。
假設(shè)用戶u的評(píng)分集合為Ru={Ru1,Ru2,…,Run},Rui的取值為1~5分,則用戶u對(duì)項(xiàng)目評(píng)分為Rui的概率分布函數(shù)p(Rui)的計(jì)算方式:用戶對(duì)項(xiàng)目評(píng)分為Rui的項(xiàng)目數(shù)與該用戶進(jìn)行過(guò)評(píng)分的總項(xiàng)目數(shù)之比。由此可以根據(jù)用戶的評(píng)分值來(lái)計(jì)算用戶的信息熵。當(dāng)項(xiàng)目評(píng)分出現(xiàn)的次數(shù)都是相等時(shí),用戶的信息熵可以達(dá)到最大值。如果兩個(gè)用戶每個(gè)評(píng)分的數(shù)量都是一致的,例如用戶A和用戶B在5個(gè)項(xiàng)目上都給出了具體的評(píng)價(jià)分?jǐn)?shù),用戶A對(duì)這5個(gè)項(xiàng)目的評(píng)分為{4,5,0,4,0,5},用戶 B 對(duì)這 5 個(gè)項(xiàng)目的評(píng)分為{2,0,0,3,2,3}。 當(dāng)使用傳統(tǒng)的信息熵進(jìn)行相似度計(jì)算時(shí),可以得出用戶A和用戶B具有相同的信息熵,但實(shí)際上相對(duì)于用戶B所給出的較低的評(píng)分,用戶A對(duì)于這些項(xiàng)目具有更高的評(píng)價(jià),這樣說(shuō)來(lái),其實(shí)兩者并不具有較高的共同興趣愛(ài)好,也就是兩者并不是很好的相似用戶。這是由于傳統(tǒng)的信息熵只關(guān)注用戶評(píng)分出現(xiàn)次數(shù)而忽略具體的評(píng)分值導(dǎo)致的。
因此,通過(guò)式(8)的用戶評(píng)分信息熵值來(lái)代表用戶的信息熵。
假設(shè)Iuv={I1,I2,…,In} 為用戶u和v都給出具體評(píng)分的項(xiàng)目集合,{Ru1,Ru2,…,Run}為用戶u對(duì)于共同項(xiàng)目所給出的具體評(píng)分?jǐn)?shù)據(jù)集合,{Rv1,Rv2,…,Rvn}為用戶v對(duì)共同項(xiàng)目所給出的具體評(píng)分?jǐn)?shù)據(jù)集合;計(jì)算用戶u和用戶v的評(píng)分差集Duv={Ru1-Rv1,…,Run-Rvn}={d1,…,dn}, 然后以用戶之間的評(píng)分差集來(lái)計(jì)算H(Duv)作為用戶u和用戶v的評(píng)分信息熵。該計(jì)算方法充分考慮了用戶具體的評(píng)分值,彌補(bǔ)了傳統(tǒng)信息熵計(jì)算的不足之處。該值越小,說(shuō)明用戶u和用戶v的評(píng)分越接近。
綜上,用戶評(píng)分信息熵越小,說(shuō)明兩者對(duì)共同項(xiàng)目的評(píng)分分布越一致,即表明兩者之間的相似程度越高;反之,若用戶評(píng)分信息熵越大,說(shuō)明兩用戶之間針對(duì)共同評(píng)價(jià)項(xiàng)目的評(píng)分存在較大差異,兩者之間的相似度越小。除此之外,如果兩用戶都評(píng)價(jià)過(guò)的項(xiàng)目數(shù)越多,說(shuō)明兩者之間的相似度也應(yīng)該越高,于是引進(jìn)用戶之間共同評(píng)價(jià)項(xiàng)目數(shù)n,所以用戶u和v之間使用評(píng)分信息熵計(jì)算相似度的公式[12]為
其中,n為用戶u和用戶v都給出評(píng)分的項(xiàng)目數(shù),H(Duv)表示用戶u和用戶v的評(píng)分信息熵。
結(jié)合使用融入用戶之間聯(lián)系因素的Pearson相似度計(jì)算公式得到的相似度和利用評(píng)分信息熵計(jì)算相似度公式得到的相似度,兩用戶之間的最終相似度計(jì)算公式如下
其中,Sim PRE(u,v)表示用戶u和用戶v之間的最終相似度。
根據(jù)以上描述,基于評(píng)分信息熵的融合協(xié)同過(guò)濾算法主要包括兩個(gè)部分:基于用戶評(píng)分信息熵的相似度以及基于改進(jìn)的Pearson相似度。因此,該融合算法的具體流程如圖1所示。
圖1 算法流程圖
輸入:用戶評(píng)分信息,用戶鄰居數(shù)量k。
輸出:平均絕對(duì)誤差MAE,均方根誤差RMSE。
第1步:讀取用戶評(píng)分信息文件,構(gòu)造用戶?項(xiàng)目評(píng)分矩陣R。
第2步:選取目標(biāo)用戶u,根據(jù)式(6)計(jì)算用戶之間改進(jìn)后的Pearson相似度值。
第3步:根據(jù)式(8)計(jì)算目標(biāo)用戶與其他用戶之間的評(píng)分信息熵H(Duv)。
第4步:根據(jù)式(10)計(jì)算用戶之間的最終相似度,并根據(jù)該結(jié)果獲得目標(biāo)用戶的最近鄰居集合N。
第5步:結(jié)合最近鄰居集合N以及式(1),計(jì)算目標(biāo)用戶對(duì)未評(píng)分項(xiàng)目的預(yù)測(cè)評(píng)分值。
第6步:獲得為目標(biāo)用戶推薦的項(xiàng)目集。
第7步:根據(jù)所獲得的項(xiàng)目集以及式(11)、式(12),計(jì)算平均絕對(duì)誤差(MAE)和均方根誤差(RMSE)的值。
本實(shí)驗(yàn)采用的數(shù)據(jù)集由明尼蘇達(dá)大學(xué)的GroupLens小組收集提供的MovieLens 1M的電影數(shù)據(jù)集。此數(shù)據(jù)集包含6 000名用戶關(guān)于4 000部電影的約1 000 000條評(píng)分?jǐn)?shù)據(jù),每條電影的評(píng)分為1~5分的整分制。在實(shí)驗(yàn)中將數(shù)據(jù)集按照8∶2的方式劃分為訓(xùn)練集和測(cè)試集兩部分。在訓(xùn)練集的數(shù)據(jù)上使用算法來(lái)計(jì)算用戶之間的相似度后,并以此為依據(jù)對(duì)測(cè)試集數(shù)據(jù)中的項(xiàng)目利用公式獲得預(yù)測(cè)的評(píng)分值,然后比較使用算法計(jì)算所得的預(yù)測(cè)評(píng)分以及該項(xiàng)目的實(shí)際評(píng)分來(lái)計(jì)算推薦精度。
在數(shù)據(jù)集上進(jìn)行實(shí)驗(yàn),需要將使用算法計(jì)算出來(lái)用戶對(duì)電影的預(yù)測(cè)評(píng)分與該用戶對(duì)該電影的真實(shí)評(píng)分進(jìn)行比較。因此,本實(shí)驗(yàn)采用MAE與RMSE來(lái)計(jì)算評(píng)分預(yù)測(cè)的準(zhǔn)確度。如果計(jì)算出來(lái)的值越小,則說(shuō)明通過(guò)該算法得出來(lái)的預(yù)測(cè)越準(zhǔn)確。其計(jì)算公式分別如式(11)和式(12)所示。
其中,n為用戶u評(píng)價(jià)的n個(gè)項(xiàng)目,預(yù)測(cè)評(píng)分為{pu1,pu2,…,pun},該用戶的實(shí)際評(píng)分為{qu1,qu2,…,qun}。
本文選取基于Pearson相似度的傳統(tǒng)協(xié)同過(guò)濾算法,使用Jaccard?Pearson相似度作為相似度計(jì)算的協(xié)同過(guò)濾算法、文獻(xiàn)[12]提出的融合懲罰因子的協(xié)同過(guò)濾算法、文獻(xiàn)[8]提出的CjacMD相似度計(jì)算方法的協(xié)同過(guò)濾算法以及本文所提出的算法進(jìn)行仿真實(shí)驗(yàn)對(duì)比。
最近鄰居個(gè)數(shù)的不同也會(huì)影響MAE值,只有選擇合適的最近鄰居個(gè)數(shù)才能獲得最好的推薦效果。如果選取過(guò)少的最近鄰居個(gè)數(shù),則推薦的結(jié)果沒(méi)有參考的價(jià)值,如果選取過(guò)量的最近鄰居個(gè)數(shù),則可能混入其他噪聲數(shù)據(jù),推薦效果反而不佳。在本文實(shí)驗(yàn)中,最近鄰居個(gè)數(shù)k取值分別為 10,20,30,40,60,80,100。
圖2表示5種算法在不同近鄰個(gè)數(shù)情況下的MAE值。從圖2中可以看出,隨著最近鄰居個(gè)數(shù)的不斷增加,基于Pearson相似度的傳統(tǒng)協(xié)同過(guò)濾算法的MAE值起初也是呈下降趨勢(shì),當(dāng)k值為60左右時(shí),獲得最小的MAE值,之后隨著最近鄰居個(gè)數(shù)越來(lái)越大,MAE值反而逐漸上升。而其余4種改進(jìn)的協(xié)同過(guò)濾推薦算法的MAE值都呈現(xiàn)下降的趨勢(shì),并隨著k的值不斷增加,MAE值趨向穩(wěn)定。在不同k值的情況下,4種改進(jìn)的協(xié)同過(guò)濾算法的MAE值均要比傳統(tǒng)的Pearson相似度協(xié)同過(guò)濾算法低。除此之外,相比于其他3種改進(jìn)的協(xié)同過(guò)濾算法,本文所提出的算法在引入用戶評(píng)分信息熵來(lái)計(jì)算用戶共同評(píng)分項(xiàng)目的評(píng)分差異的同時(shí),也考慮了用戶共同評(píng)價(jià)項(xiàng)目占他們總共評(píng)價(jià)項(xiàng)目數(shù)之和所帶來(lái)的影響,所以在用戶相似度計(jì)算上更為準(zhǔn)確。從圖2中可以看出,雖然其他3種改進(jìn)的協(xié)同過(guò)濾算法的MAE值也隨著最近鄰居個(gè)數(shù)的增加而降低,但本文所提出的算法的MAE值在不同近鄰個(gè)數(shù)情況下比其他3種改進(jìn)的協(xié)同過(guò)濾算法的MAE值還低,并一直保持著最低的MAE值。在k=40時(shí),MAE值取得最小值,之后MAE值一直穩(wěn)定在0.70左右。
圖2 各種算法在MovieLens 1M上的MAE對(duì)比圖
圖3表示5種算法在不同近鄰個(gè)數(shù)情況下的RMSE值。從圖3中可以看出,隨著最近鄰居個(gè)數(shù)的不斷增加,5種協(xié)同過(guò)濾推薦算法的RMSE值都呈現(xiàn)下降的趨勢(shì)。除了基于Pearson相似度的傳統(tǒng)協(xié)同過(guò)濾算法的RMSE值在最近鄰居個(gè)數(shù)比較多的情況下波動(dòng)有點(diǎn)大,其余4種改進(jìn)的協(xié)同過(guò)濾推薦算法的RMSE值最后都趨向穩(wěn)定。在不同k值的情況下,4種改進(jìn)的協(xié)同過(guò)濾算法的RMSE值均要比傳統(tǒng)的Pearson相似度協(xié)同過(guò)濾算法的RMSE值低;相比于其他3種改進(jìn)的協(xié)同過(guò)濾算法,本文所提出的算法在相似度計(jì)算方面考慮的因素更全面,有更準(zhǔn)確的相似度計(jì)算方法,從圖3中可以看出,本文所提出的算法擁有最小的RMSE值,并且隨著最近鄰居個(gè)數(shù)的不斷增加,也一直保持著最小的RMSE值。在k=40時(shí),RMSE值取得最小值,之后RMSE值一直穩(wěn)定在0.91左右。
圖3 各種算法在MovieLens 1M上的RMSE對(duì)比圖
本文算法在MovieLens 1M數(shù)據(jù)集上的MAE、RMSE指標(biāo)的表現(xiàn)都優(yōu)于其余4種算法。說(shuō)明本文所提出的融合算法能夠使用戶之間的相似度計(jì)算更準(zhǔn)確,從而為用戶獲得更好的推薦項(xiàng)目。
在協(xié)同過(guò)濾推薦系統(tǒng)中,相似度計(jì)算的準(zhǔn)確與否決定了能否準(zhǔn)確地進(jìn)行物品推薦。本文在加入用戶之間聯(lián)系因子的Pearson相似度計(jì)算方法的基礎(chǔ)上融入評(píng)分信息熵形成新的相似度計(jì)算公式,并使用該公式計(jì)算用戶之間的相似度,從而獲得目標(biāo)用戶的最近鄰居集,并為目標(biāo)用戶產(chǎn)生推薦。通過(guò)實(shí)驗(yàn)表明,該方法可以更準(zhǔn)確地計(jì)算用戶之間的相似度,在一定程度上提高了推薦的準(zhǔn)確度。