孟俊才 李存志



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