楊嫘
摘 要:數(shù)據(jù)稀疏是協(xié)同過濾預測精度的一個重要影響因素。Slope One算法使用簡單的線性回歸模型解決該問題,但它只使用評分數(shù)據(jù)做計算,未考慮相似性。提出一種基于用戶習慣偏好相似度的Slope One算法(UPS Slope One)。UPS Slope One首先基于用戶習慣偏好聚類,得到三組不同偏好的用戶,然后分別計算各組評分偏差,計算時將用戶習慣偏好相似度融入其中,最后使用線性回歸模型預測評分。在MovieLens數(shù)據(jù)集上的實驗表明,該算法可得到更高的推薦質(zhì)量、預測準確性和穩(wěn)定性。
關鍵詞:推薦系統(tǒng);用戶習慣偏好;Slope One;相似性度量
DOI:10. 11907/rjdk. 182505
中圖分類號:TP312
文獻標識碼:A文章編號:1672-7800(2019)006-0065-05
Abstract: Data sparsity is a main factor affecting the prediction accuracy of collaborative filtering. Slope One algorithm uses simple linear regression model to solve this problem. It uses rating data to do calculation without considering the similarity. In this paper, we proposed an improved Slope One algorithm based on user preference similarity. First, we obtain three groups of users with different preferences based on the user preference clustering, and then calculate the deviation of each group, we add the user preference similarity to deviation calculation, finally use linear regression model to predict the rating. Experiments on the MovieLens data set show that the proposed algorithm can achieve better recommendation quality and prediction accuracy. Meanwhile, the stability of the algorithm is also relatively satisfying.
Key Words: recommender systems; user preference; Slope One; similarity measure
0 引言
隨著網(wǎng)絡技術的發(fā)展,各行各業(yè)的海量數(shù)據(jù)導致信息過載,為解決這個問題,許多網(wǎng)站利用各種推薦系統(tǒng)提高服務質(zhì)量,吸引和留住優(yōu)質(zhì)用戶。例如亞馬遜的圖書推薦、市場推薦,YouTube的視頻推薦以及網(wǎng)頁中的搜索結果。協(xié)同過濾是推薦系統(tǒng)成功的技術之一,它通過分析用戶數(shù)據(jù)以及跟蹤瀏覽歷史、購買記錄和評分記錄等獲得的數(shù)據(jù)向用戶推薦項目[1-3]。
協(xié)同過濾可劃分為基于用戶的協(xié)同過濾[4]和基于項目的協(xié)同過濾[5-6]。Slope One是Daniel Lemire & Anna Maclachlan提出的基于項目的協(xié)同過濾算法,具有和其它復雜的推薦算法大致相同的推薦質(zhì)量,且使用時間和空間更少。Slope One算法基于所有用戶的評分計算項目之間的得分偏差,然而一些用戶與當前用戶相似性非常低,在沒有篩選的情況下將這些分數(shù)添加到預測中會降低預測精度。因此,本文考慮用戶相似性提出一種新的Slope One算法。與一般的相似度計算方法不同,本文使用基于用戶習慣偏好的聚類方法。該方法考慮到不同偏好的用戶有不同的評價習慣,用戶可聚集到不同的用戶組,將用戶組引入到當前用戶鄰居的選擇中,可以得到更準確、更可靠的結果。實驗表明,本文算法可顯著提高稀疏評分數(shù)據(jù)的性能。
1 相關工作
推薦技術分為基于模型的方法和基于內(nèi)存的方法[7]?;谀P偷姆椒ㄊ紫葮嫿ㄒ粋€基于用戶-項目評分矩陣的預測模型。與前者不同,基于內(nèi)存的方法首先計算用戶間或項目間的相似度,然后選擇top-k個相似用戶或項目作為當前用戶或目標項目的鄰居生成預測結果。在之前的相關工作中,協(xié)同過濾的修改和改進主要體現(xiàn)在相似度度量修改和鄰居選擇上[8-9]。針對相似度度量修改,傳統(tǒng)的相似度度量方法如皮爾遜相關系數(shù)(PCC)、余弦(COS)在推薦系統(tǒng)中被廣泛使用。除此之外,Jamali ?& Ester [10]提出一種基于PCC使用sigmoid函數(shù)修改相似度度量的方法(SPCC),強調(diào)共有評分項目的重要性。如果用戶間共有評分項目越多,他們就越相似。余弦相似度計算辦法不考慮評分尺度,修正的余弦相似度度量辦法解決了這一缺點。如Ahn[11]介紹了一種啟發(fā)式相似度度量辦法PIP,但是PIP僅考慮局部的評分信息而忽略了整體用戶的偏好;Liu等 [12]分析了PIP的缺點,提出一種新的啟發(fā)式相似度模型(NHSM)。NHSM不僅繼承了PIP方法的優(yōu)點,還注意共有評分項目和用戶偏好的平衡;Zhang等 [13]提出一種新型有效的相似度度量辦法,分別考慮局部和全局視角中的用戶偏好。
傳統(tǒng)的Slope One算法僅計算用戶評分的平均差而不考慮項目之間的內(nèi)在聯(lián)系,為解決這個問題,杜茂康等[14]提出了一個基于鄰居項目的Slope One算法,選擇目標項目的一些最鄰近項目參與計算,然后通過項目相似性加權預測評分;林德軍等 [15]從數(shù)學運算的角度提出一個利用SVD(奇異值分解)簡化評分矩陣的改進算法;柴華等 [16]將上述兩種方法相結合解決問題。上述所有改進算法都保留了Slope One算法的特點,即純粹以項目為基礎而不包括用戶角色。Li[17]提出了一個結合鄰居用戶的Slope One算法,考慮一定的相似度符合條件的鄰居用戶,在一定程度上刪除了一些弱相關用戶數(shù)據(jù),但其計算量偏差與原來的Slope One算法相同。本文提出一個改進的Slope One算法,考慮了項目和用戶的影響。