孟俊才 李存志
摘要
在協(xié)同過濾算法中,相似度度量方法是其核心。傳統(tǒng)的相似性度量方法主要關(guān)注了共同評(píng)分項(xiàng)之間的相似度,卻未考慮其評(píng)分標(biāo)準(zhǔn)和共同評(píng)分?jǐn)?shù)量對(duì)相似性的影響。本文提出了平均分懲罰機(jī)制和共同評(píng)分項(xiàng)懲罰機(jī)制,對(duì)缺失的項(xiàng)目評(píng)分進(jìn)行計(jì)算。實(shí)驗(yàn)表明,本文所提方法能較好的提高推薦的準(zhǔn)確性和穩(wěn)定性。
【關(guān)鍵詞】協(xié)同過濾 Pearson相似度 共同評(píng)分項(xiàng)目
1引言
隨著近年來信息技術(shù)的迅猛發(fā)展,為人們的工作、學(xué)習(xí)和生活提供了很大的便利。然而,面對(duì)各種形態(tài)的信息,人們無法及時(shí)準(zhǔn)確的找到滿足自己需求的信息,目前主流的已有很多高效的推薦算法,包括基于內(nèi)容的推薦、基于協(xié)同過濾的推薦、基于關(guān)聯(lián)規(guī)則的推薦等。協(xié)同過濾算法以其更優(yōu)異的性能被更多的人使用,其核心是根據(jù)歷史行為在用戶群找出相似的用戶,對(duì)自己未瀏覽過的項(xiàng)目進(jìn)行預(yù)測(cè)。但是項(xiàng)目數(shù)量的增大,會(huì)導(dǎo)致用戶的數(shù)據(jù)急劇稀疏,會(huì)很大程度的影響推薦的準(zhǔn)確性。對(duì)于協(xié)同過濾算法的缺陷,已有很多學(xué)者做出了不懈的努力。
計(jì)算相似度時(shí),皮爾森相似度或改進(jìn)后的余弦相似度都是以平均分作為不用的用戶的評(píng)價(jià)標(biāo)準(zhǔn),會(huì)受到數(shù)據(jù)稀疏的影響,可能某個(gè)用戶只選擇了少量的自己不感興趣的商品,就會(huì)導(dǎo)致整體評(píng)分偏低,此時(shí)就不能用平均分去衡量一個(gè)用戶的評(píng)分標(biāo)準(zhǔn)。并且,不同用戶之間共同評(píng)分項(xiàng)數(shù)量的多少也會(huì)影響到整體的準(zhǔn)確性,如果兩個(gè)用戶之間對(duì)于不同項(xiàng)目的評(píng)分公有項(xiàng)很少,但相似度很高,而共同評(píng)分項(xiàng)很多,相似性偏低,顯然是不合理的。故綜上兩個(gè)問題,本文提出了平均分懲罰機(jī)制和共同評(píng)分項(xiàng)懲罰機(jī)制,來削弱平均分差距大和共同評(píng)分項(xiàng)少的對(duì)相似性度量的影響,進(jìn)而優(yōu)化數(shù)據(jù)稀疏問題。由實(shí)驗(yàn)表明,此方法可以更好的度量不同用戶之間的相似度,提高了系統(tǒng)整體的推薦準(zhǔn)確性,也使得系統(tǒng)更加穩(wěn)定性。
2協(xié)同過濾算法的缺陷及改進(jìn)
2.1傳統(tǒng)協(xié)同過濾算法
傳統(tǒng)的協(xié)同過濾推薦算法是根據(jù)用戶的評(píng)分矩陣,尋找和目標(biāo)用戶的前k個(gè)最相近的樣本,從而預(yù)測(cè)出目標(biāo)用戶為評(píng)分的項(xiàng)目的近似評(píng)分,進(jìn)行最終推薦。常用相似性度量方法有以下三種。
余弦相似度:用戶u對(duì)項(xiàng)目j評(píng)分作為向量u,用戶v對(duì)j項(xiàng)目評(píng)分作為向量v,不同用戶之間的相似度用cos(u,v)表示,既兩個(gè)向量之間夾角的cos值。
修正的余弦相似度:余弦相似度沒有考慮評(píng)分標(biāo)準(zhǔn)問題,會(huì)導(dǎo)致評(píng)分標(biāo)準(zhǔn)高的只能和評(píng)分標(biāo)準(zhǔn)高的相似性較強(qiáng),顯然不合理,故引出修正的余弦相似性,用用戶u對(duì)于項(xiàng)目j的評(píng)分Ruj減去其所有評(píng)分過的項(xiàng)目的均值,能更好的產(chǎn)生推薦結(jié)果。
相關(guān)相似性:此方法考慮了每個(gè)項(xiàng)目的評(píng)分對(duì)于用戶的衡量標(biāo)準(zhǔn)問題,故在每個(gè)項(xiàng)目上都減去了平均分,使得計(jì)算更為精準(zhǔn)。其計(jì)算方法和修正的余弦相似度一致。本文采用此方法。
2.2協(xié)同過濾算法的缺陷及改進(jìn)
評(píng)分標(biāo)準(zhǔn)問題:由于數(shù)據(jù)的稀疏,會(huì)出現(xiàn)兩個(gè)用戶的衡量標(biāo)準(zhǔn)相同,一個(gè)用戶看到的都是自己感興趣的,另一個(gè)用戶看到的都是不感興趣的,如表1所示,用戶u1的評(píng)分都處于3分以下,表示都不太感興趣,用戶u2的評(píng)分都處于3分以上,表示興趣度很高,雖然算法中都減去了各自的平均分,但相似度為l,是不合理的,需要改進(jìn)。
共同評(píng)分項(xiàng)占比問題:同樣由于數(shù)據(jù)的極度稀疏,評(píng)分矩陣中不同用戶公有的評(píng)價(jià)過的項(xiàng)目極少,會(huì)因此導(dǎo)致雖然共同評(píng)分項(xiàng)極少,但相似度極高。如表1所示,O表示未評(píng)價(jià),用戶u1和用戶u3共同評(píng)分項(xiàng)只有項(xiàng)目I1,且評(píng)分相同,相似度值為l。而用戶Ul和用戶U4共同評(píng)分項(xiàng)為I1、I2和I4,因在項(xiàng)目I1上的評(píng)分不同,導(dǎo)致其相似度低于ul和u2的相似度,也是不合理的。
評(píng)分標(biāo)準(zhǔn)懲罰機(jī)制:提出了兩個(gè)用戶對(duì)于同一個(gè)項(xiàng)目評(píng)分的差值比d-|ruj-rvj|/N,用戶u和v對(duì)項(xiàng)目j的評(píng)分分別為rnj和rvj,N表示系統(tǒng)所允許的最大評(píng)分,本文最大評(píng)分為5。用戶u和用戶v對(duì)于同一項(xiàng)目的評(píng)分差與系統(tǒng)支持最大評(píng)分比可以很好的度量用戶間評(píng)分的差異,對(duì)平均分不同而方差近似的用戶進(jìn)行了約束,從而能夠更準(zhǔn)確的衡量其相似性。
低共同評(píng)分項(xiàng)懲罰機(jī)制:前文講到低共同評(píng)分項(xiàng)會(huì)使得部分用戶的貢獻(xiàn)度低而對(duì)于評(píng)分預(yù)測(cè)占很大的權(quán)重。不同用戶間所評(píng)分電影的交集越多時(shí),說明兩個(gè)用戶的興趣方向一致,從而可以用共同評(píng)分項(xiàng)占比去衡量?jī)蓚€(gè)人的相似關(guān)系,可以用Tanimoto系數(shù)表示,T(u,v)=(∑ui∩vi)/(∑(ui ∪vi),用戶u和用戶v交集與其并集的商即為其共同評(píng)分項(xiàng)占比,避免了用戶間共同評(píng)分項(xiàng)目少,而評(píng)分近似導(dǎo)致相似度很高的情況。
針對(duì)評(píng)分標(biāo)準(zhǔn)不同和低共同評(píng)分項(xiàng)對(duì)用戶間相似性的影響,上文提出了不同的解決方案,結(jié)合不同用戶間的評(píng)分差占比和Tanimoto系數(shù),本文對(duì)Tanimoto系數(shù)進(jìn)行了修正,如公式所示,修正后的Tanimoto能夠更好的抑制用戶間平分差值大和共同評(píng)分項(xiàng)少的問題,使得計(jì)算相似性更加準(zhǔn)確。
將傳統(tǒng)的相關(guān)相似性度量公式與修正后的Tanimoto相結(jié)合,去重新計(jì)算用戶相似矩陣,SIM既本文最終使用的計(jì)算方法:SIM-sim+simp∞。
3實(shí)驗(yàn)結(jié)果及分析
實(shí)驗(yàn)數(shù)據(jù)采用MovieLens數(shù)據(jù)集,該數(shù)據(jù)為943名用戶對(duì)1682部電影的100000條評(píng)分,評(píng)分范圍為1-5的整數(shù),0表示未評(píng)分。隨機(jī)選取80%作為訓(xùn)練集,20%作為測(cè)試集。
平均絕對(duì)誤差:用預(yù)測(cè)出的數(shù)據(jù)與測(cè)試集的誤差衡量算法的準(zhǔn)確性,MAE=l/n∑|ru,j - ruJ|,ru.j,ru,J分別表示實(shí)際評(píng)分和預(yù)測(cè)評(píng)分,MAE為絕對(duì)誤差的均值,數(shù)值越小表示準(zhǔn)確率越高。
均方根誤差:它是觀測(cè)值與真值偏差的平方與觀測(cè)次數(shù)n比值的平方根。1/n∑(ru,j-ru,J)2ru,j表示實(shí)際評(píng)分,ru,J表示預(yù)測(cè)評(píng)分,n表示預(yù)測(cè)出的數(shù)據(jù)集合,計(jì)算結(jié)果RMSE為均方根誤差,數(shù)值越小表示偏差越小,推薦精度越高。
本文改進(jìn)后的算法對(duì)數(shù)據(jù)中缺失的數(shù)據(jù)進(jìn)行預(yù)測(cè),將之與測(cè)試集中的數(shù)據(jù)進(jìn)行平均絕對(duì)誤差和均方根誤差計(jì)算,用于衡量預(yù)測(cè)的準(zhǔn)確性。根據(jù)最近鄰k值得不同,將傳統(tǒng)的協(xié)同過濾算法與本文改進(jìn)后的協(xié)同過濾算法進(jìn)行對(duì)比。如圖1所示。
將傳統(tǒng)協(xié)同過濾算法中的Tanimoto相似性、余弦相似性以及相關(guān)相似性與本文的算法進(jìn)行對(duì)比。由圖1中可看出本文算法較傳統(tǒng)相似性算法準(zhǔn)確度有較高的提升,本文算法在k值為10時(shí),比傳統(tǒng)相似性算法MAE值降低約10%,RMSE值降低約8.5%,且在k為20時(shí)趨于收斂,故有很好的穩(wěn)定性,無需提供較多的鄰居集合即可得到較為準(zhǔn)確的預(yù)測(cè)結(jié)果,有助于提供系統(tǒng)的效率也有助于緩解數(shù)據(jù)稀疏帶來的負(fù)面影響。
參考文獻(xiàn)
[1]陳雅茜,音樂推薦系統(tǒng)及相關(guān)技術(shù)研究[J].計(jì)算機(jī)工程與應(yīng)用,2012,48 (18):9—16.
[2]楊武,唐瑞,盧玲,基于內(nèi)容的推薦與協(xié)同過濾融合的新聞推薦方法[J].計(jì)算機(jī)應(yīng)用,2016,36 (02):414-418.
[3]Kaleli C. An entropy-based neighborselection approach for collaborativefiltering[J]. Knowledge-BasedSystems, 2014, 56 (C): 273-280.
[4]何明,劉偉世,張江.支持推薦非空率的關(guān)聯(lián)規(guī)則推薦算法[J].通信學(xué)報(bào),2017 (10):18-25.
[5]陳曦,成韻姿.一種優(yōu)化組合相似度的協(xié)同過濾推薦算法[J].計(jì)算機(jī)工程與科學(xué),2017, 39 (01):180-187.