楊嫘
摘 要:數(shù)據(jù)稀疏是協(xié)同過(guò)濾預(yù)測(cè)精度的一個(gè)重要影響因素。Slope One算法使用簡(jiǎn)單的線性回歸模型解決該問(wèn)題,但它只使用評(píng)分?jǐn)?shù)據(jù)做計(jì)算,未考慮相似性。提出一種基于用戶(hù)習(xí)慣偏好相似度的Slope One算法(UPS Slope One)。UPS Slope One首先基于用戶(hù)習(xí)慣偏好聚類(lèi),得到三組不同偏好的用戶(hù),然后分別計(jì)算各組評(píng)分偏差,計(jì)算時(shí)將用戶(hù)習(xí)慣偏好相似度融入其中,最后使用線性回歸模型預(yù)測(cè)評(píng)分。在MovieLens數(shù)據(jù)集上的實(shí)驗(yàn)表明,該算法可得到更高的推薦質(zhì)量、預(yù)測(cè)準(zhǔn)確性和穩(wěn)定性。
關(guān)鍵詞:推薦系統(tǒng);用戶(hù)習(xí)慣偏好;Slope One;相似性度量
DOI:10. 11907/rjdk. 182505
中圖分類(lèi)號(hào):TP312
文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):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)絡(luò)技術(shù)的發(fā)展,各行各業(yè)的海量數(shù)據(jù)導(dǎo)致信息過(guò)載,為解決這個(gè)問(wèn)題,許多網(wǎng)站利用各種推薦系統(tǒng)提高服務(wù)質(zhì)量,吸引和留住優(yōu)質(zhì)用戶(hù)。例如亞馬遜的圖書(shū)推薦、市場(chǎng)推薦,YouTube的視頻推薦以及網(wǎng)頁(yè)中的搜索結(jié)果。協(xié)同過(guò)濾是推薦系統(tǒng)成功的技術(shù)之一,它通過(guò)分析用戶(hù)數(shù)據(jù)以及跟蹤瀏覽歷史、購(gòu)買(mǎi)記錄和評(píng)分記錄等獲得的數(shù)據(jù)向用戶(hù)推薦項(xiàng)目[1-3]。
協(xié)同過(guò)濾可劃分為基于用戶(hù)的協(xié)同過(guò)濾[4]和基于項(xiàng)目的協(xié)同過(guò)濾[5-6]。Slope One是Daniel Lemire & Anna Maclachlan提出的基于項(xiàng)目的協(xié)同過(guò)濾算法,具有和其它復(fù)雜的推薦算法大致相同的推薦質(zhì)量,且使用時(shí)間和空間更少。Slope One算法基于所有用戶(hù)的評(píng)分計(jì)算項(xiàng)目之間的得分偏差,然而一些用戶(hù)與當(dāng)前用戶(hù)相似性非常低,在沒(méi)有篩選的情況下將這些分?jǐn)?shù)添加到預(yù)測(cè)中會(huì)降低預(yù)測(cè)精度。因此,本文考慮用戶(hù)相似性提出一種新的Slope One算法。與一般的相似度計(jì)算方法不同,本文使用基于用戶(hù)習(xí)慣偏好的聚類(lèi)方法。該方法考慮到不同偏好的用戶(hù)有不同的評(píng)價(jià)習(xí)慣,用戶(hù)可聚集到不同的用戶(hù)組,將用戶(hù)組引入到當(dāng)前用戶(hù)鄰居的選擇中,可以得到更準(zhǔn)確、更可靠的結(jié)果。實(shí)驗(yàn)表明,本文算法可顯著提高稀疏評(píng)分?jǐn)?shù)據(jù)的性能。
1 相關(guān)工作
推薦技術(shù)分為基于模型的方法和基于內(nèi)存的方法[7]。基于模型的方法首先構(gòu)建一個(gè)基于用戶(hù)-項(xiàng)目評(píng)分矩陣的預(yù)測(cè)模型。與前者不同,基于內(nèi)存的方法首先計(jì)算用戶(hù)間或項(xiàng)目間的相似度,然后選擇top-k個(gè)相似用戶(hù)或項(xiàng)目作為當(dāng)前用戶(hù)或目標(biāo)項(xiàng)目的鄰居生成預(yù)測(cè)結(jié)果。在之前的相關(guān)工作中,協(xié)同過(guò)濾的修改和改進(jìn)主要體現(xiàn)在相似度度量修改和鄰居選擇上[8-9]。針對(duì)相似度度量修改,傳統(tǒng)的相似度度量方法如皮爾遜相關(guān)系數(shù)(PCC)、余弦(COS)在推薦系統(tǒng)中被廣泛使用。除此之外,Jamali ?& Ester [10]提出一種基于PCC使用sigmoid函數(shù)修改相似度度量的方法(SPCC),強(qiáng)調(diào)共有評(píng)分項(xiàng)目的重要性。如果用戶(hù)間共有評(píng)分項(xiàng)目越多,他們就越相似。余弦相似度計(jì)算辦法不考慮評(píng)分尺度,修正的余弦相似度度量辦法解決了這一缺點(diǎn)。如Ahn[11]介紹了一種啟發(fā)式相似度度量辦法PIP,但是PIP僅考慮局部的評(píng)分信息而忽略了整體用戶(hù)的偏好;Liu等 [12]分析了PIP的缺點(diǎn),提出一種新的啟發(fā)式相似度模型(NHSM)。NHSM不僅繼承了PIP方法的優(yōu)點(diǎn),還注意共有評(píng)分項(xiàng)目和用戶(hù)偏好的平衡;Zhang等 [13]提出一種新型有效的相似度度量辦法,分別考慮局部和全局視角中的用戶(hù)偏好。
傳統(tǒng)的Slope One算法僅計(jì)算用戶(hù)評(píng)分的平均差而不考慮項(xiàng)目之間的內(nèi)在聯(lián)系,為解決這個(gè)問(wèn)題,杜茂康等[14]提出了一個(gè)基于鄰居項(xiàng)目的Slope One算法,選擇目標(biāo)項(xiàng)目的一些最鄰近項(xiàng)目參與計(jì)算,然后通過(guò)項(xiàng)目相似性加權(quán)預(yù)測(cè)評(píng)分;林德軍等 [15]從數(shù)學(xué)運(yùn)算的角度提出一個(gè)利用SVD(奇異值分解)簡(jiǎn)化評(píng)分矩陣的改進(jìn)算法;柴華等 [16]將上述兩種方法相結(jié)合解決問(wèn)題。上述所有改進(jìn)算法都保留了Slope One算法的特點(diǎn),即純粹以項(xiàng)目為基礎(chǔ)而不包括用戶(hù)角色。Li[17]提出了一個(gè)結(jié)合鄰居用戶(hù)的Slope One算法,考慮一定的相似度符合條件的鄰居用戶(hù),在一定程度上刪除了一些弱相關(guān)用戶(hù)數(shù)據(jù),但其計(jì)算量偏差與原來(lái)的Slope One算法相同。本文提出一個(gè)改進(jìn)的Slope One算法,考慮了項(xiàng)目和用戶(hù)的影響。