王茂華 郝云力 柏春松
摘要:針對傳統相似度忽略用戶局部偏好、用戶評分差異和非共同評分項等因素的影響,提出了一種基于損失因子和數據集劃分的協同過濾推薦算法.算法根據用戶對項目的偏好度來劃分數據集,并提出用兩個修正因子來改進傳統的相似度.在MovieLens數據集上將所提算法和Pearson算法、參考文獻[1]中的算法進行比較,實驗結果表明,基于損失因子和數據集劃分的協同過濾推薦算法更明顯地降低了MAE值.
關鍵詞:協同過濾;損失因子;劃分數據集;Pearson
中圖分類號:TP391? 文獻標識碼:A? 文章編號:1673-260X(2019)01-0051-03
網絡信息的爆炸式增長使得用戶越來越難以搜索到自己需要的信息.而推薦技術可以根據用戶的需求、歷史行為等數據,從大量的網絡信息中為目標用戶推薦感興趣的信息,因此得到了廣泛的應用[1].
在眾多的推薦算法中,基于協同過濾的算法是目前應用最廣的推薦算法[2-5].針對傳統的協同過濾算法的推薦準確度較低這一難題,國內外的學者提出了眾多的改進算法.李容等通過分析用戶共同評分項和用戶平均分的影響,用兩個修正因子來改進傳統相似度.張宏等[6]將用戶評分時間和商品流行度引入相似度計算中.鄭潔等[7]將用戶評分的活躍度和項目評價結果對平均值的偏差引入相似度的計算.何佶星等[8]提出以基于歐氏距離的KNN算法確定領域,以流行度閾值來劃分數據集.
從以上算法的實驗結果可以看出,推薦質量得到了不同程度的提升,但是推薦算法的推薦準確度仍然不能達到令人滿意結果.本文通過分析皮爾遜算法存在的問題,提出了一種基于損失因子和劃分數據集的推薦算法.首先根據用戶偏好劃分數據集,同時引入了損失因子和用戶共同評分項以改進算法的相似度.本文算法使用Movielens數據集進行試驗驗證,結果表明,本文算法能夠有效地降低預測誤差,提高了推薦準確度.
1 傳統相似度算法存在的問題
1.1 忽略用戶局部偏好的影響
傳統相似度算法主要是計算用戶的整體相似度,但是用戶可能僅僅只有共同的偏好或厭惡.如表1所列的用戶評分矩陣,利用皮爾遜相似度算法可得u1和u2的相似度為1,但是直觀上來看,u1的偏好是I1和I2,而u2的偏好是I3和I6,兩者的偏好并不相同.同時可以看到,u1和u2都不喜歡I4和I5.用戶u1和u3雖然相似度為1,但是他們僅有共同的偏好,厭惡的項目并不相同.u1討厭的是I4和I5,而u3討厭的是I3和I6.傳統的皮爾遜推薦算法忽略了用戶局部偏好的影響,降低了推薦的準確度.
1.2 忽略用戶評分差異
傳統的皮爾遜相似度計算只考慮兩個用戶評分向量的線性相關性,而忽略了每個維度上的數值差異,即用戶的評分標準不一樣,這會導致針對每個項目的具體評分出現這樣一種情況[1]:如表1所示,根據皮爾遜相似度計算方法可得用戶u4和u5的相似度為1,但是直觀上看,用戶u4對I6以外的所有項目都不喜歡,而用戶u5對所有的項目都喜歡.
1.3 忽略了非共同評分項數值的影響
目前,用戶的相似度普遍根據用戶的共同評分項進行計算.隨著行業的發展,用戶數和項目數呈指數級增長,然而用戶評分的項目數變化很小,這導致用戶評分矩陣變的極度稀疏.用戶共同評分過的項目極少,大量的非共同評分項在評價中沒有起到任何作用,不利于預測用戶的偏好.以往的論文[1]已經證明共同評分項占用比對相似度有影響,但是沒有考慮非共同評分項的實際數值所帶來的差異.
3 實驗結果分析
本文采用MovieLens數據集中最小數據集進行測試.該數據集包含943名用戶對1682部電影的10萬條評分,評分范圍為1到5,每個用戶至少評論過20部電影.本文采用平均絕對誤差(MAE)來計算預測誤差.
測試時,鄰居數量分別選取5、10、20、25、30、35、40、45、50,100,利用數據集u1.base進行訓練,利用u1.test進行測試.測試算法分別為Pearson、本文算法(簡記為Proposed)、參考文獻[1]的算法(簡記為LI)進行比較,本文在三種算法下所得評分預測的MAE值如表4所示,對比圖如圖1所示:
在實驗中,當鄰域集數量為5時候,閾值?姿=15時,MAE值取得最小值,其他鄰域集時?姿=1時MAE值最小.當鄰域集的數量超過100時,MAE值處于穩定狀態.
從實驗結果可以看出,在不同的鄰域集下,采用本文算法的MAE相對于前兩種算法都有明顯的下降,這說明本文算法確實在推薦質量上有了一定的提高.
4 結束語
本文通過分析傳統的皮爾遜相似度算法忽略用戶局部偏好、用戶評分差異和非共同評分項等方面的不足,提出了根據用戶對項目的偏好情況劃分數據集的思路,并引入損失因子和共同評分因子以修正相似度.實驗結果表明,該方法能夠有效地降低MAE值,提高了推薦效果.后續可以考慮結合流行度劃分數據集對算法進行進一步的改進.
參考文獻:
〔1〕李容,李明奇,郭文強.基于改進相似度的協同過濾算法研究[J].計算機科學,2016,43(12):206-208.
〔2〕Symeonidis P, Nanopoulos A, Papadopouls A, et al. Collaborative filtering based on user trends [J]. Advances in Data Analysis, 2006 4425: 375-382.
〔3〕Adomavicius G, Tuzhilin A. Toward the next generation of recommender systems: a survey of the state-of-the-art and possible extensions [J]. IEEE Trans on Knowledge and Data Engineering, 2005 17 (6): 734-749.
〔4〕Zhang Kai, Feng Zhiyong, Chen Shichan, et al. A framework for passengers demand prediction and recommendation [C]// Proc of IEEE International Conference on Services Computing. 2016: 340-347.
〔5〕Resnick P, Iacovou N, Suchak M, et al. GroupLens: an open architecture for collaborative filtering of net news [C]// Proc of ACM Conference on Computer Supported Cooperative Work. 1994: 175-186.
〔6〕張宏,王慧.基于用戶評分和共同評分項的協同過濾算法的研究[J].計算機應用研究,2018,36(1).
〔7〕鄭潔,錢育蓉,楊興耀,等.基于信任和項目偏好的協同過濾算法[J].計算機應用,2016,26(10):2784-2788.
〔8〕何佶星,陳汶濱,牟斌皓.流行度劃分平均偏好權重的協同過濾個性化推薦算法[J].計算機科學,2018,45(6A).