趙文濤,張 爍
(河南理工大學 計算機科學與技術學院,河南 焦作 454150)
協(xié)同過濾推薦技術[1]在推薦系統(tǒng)中占據著很重要的地位。協(xié)同過濾推薦技術可以通過用戶對物品的評分或者別的行為模式為用戶提供優(yōu)質的推薦服務?;卩徲虻乃惴╗2]是協(xié)同過濾推薦算法中最基本也是最常用的方法之一。其基于用戶對項目的評級,把具有相似評級的用戶稱為最近鄰居[3],如果找到鄰近的鄰居,則通過鄰居預測用戶的未評級項目,然后向用戶推薦具有高預測評級的項目。
但是,現(xiàn)存的基于協(xié)同過濾推薦算法的推薦系統(tǒng)仍然存在諸多問題,譬如冷啟動[4],數據稀疏性以及可擴展性[5-8]等。一般而言,傳統(tǒng)相似性算法可以很好地反映2個用戶或項目之間的相似程度,但卻沒有重復考慮用戶偏好。同時,當數據稀疏的時候,用戶或項目之間可能沒有共同評級項目,相似性計算將無法進行[9],這也被稱為共同評定問題。
當前,研究人員為協(xié)同過濾提供了非常豐富的理論依據和技術支持,文獻[10]給出了Jaccard和均方差組合的方法(Jaccard mean squared difference,JMSD),JMSD中Jaccard用于捕獲共同評定項目的比例,均方差(mean squared difference,MSD)用于獲取評級信息,該方法解決了傳統(tǒng)算法過于依賴距離和矢量導致相似性度量不準確的問題,文獻[11]提出了另一種相似性方法,結合6種相似性度量來獲得全局相似性,每個測量的權重是通過神經網絡學習獲得的。但是,這些措施在稀疏數據的情況下不起作用。文獻[12]通過考慮用戶在不同評級等級上提供的本地和全局評級信息,結合Matusita系數提出一個新的Matusita協(xié)同過濾模型 (Matusita collaborative filtering,MCF),有效解決了稀疏數據集下的共同評級問題,然而該算法只單純計算用戶得分偏好而忽視了用戶興趣偏好,在極端情況下推薦會非常不穩(wěn)定。文獻[13]考慮到傳統(tǒng)的余弦相似度不考慮用戶偏好的問題,通過用戶項目評級值減去項目平均值的方法得到修正余弦。文獻[14]提出了一種新的相似性度量,稱為新啟發(fā)式相似性方法,為每個共同評定的項目計算3個參數,分別是接近度,重要性和奇異性,之后,將每個計算出的參數乘以修改后的Jaccard相似度。
上述研究并沒有從全局的角度分析用戶的興趣偏好問題,尤其是在數據稀疏的情況下,傳統(tǒng)的推薦算法僅使用戶間的共同項目,會讓推薦的精度更加不準確。針對這些問題,本文通過深入挖掘和分析用戶的興趣偏好,從多角度考慮影響用戶偏好的因素;同時,采用全局項目擴大了相似用戶的查找范圍,避免數據稀疏性引起的相似度計算問題;最后,結合加權的JMSD提高算法的精確度。
傳統(tǒng)用戶項目評分矩陣如表1,用戶評分是1—5,0表示用戶間沒有共同項目,如果對用戶U1進行推薦,會發(fā)現(xiàn)U2,U3與U1并沒有共同評分項目,傳統(tǒng)相似度計算無法進行,相似度默認為0,U4與U1的有共同項目評分分別為(5,4)和(1,1),根據計算相似度為負值,此時,推薦系統(tǒng)會把優(yōu)先級高的U2,U3推薦給U1。反觀U3對項目的打分非常低,U1卻對此類物品有高的評分,從用戶偏好的角度出發(fā),U3和U1對物品的喜好有所不同,U2會更適合向U1推薦。但傳統(tǒng)的相似性度量顯然沒有考慮到這個問題,并且現(xiàn)實中的數據往往比較稀疏,用戶間的共同項目缺失嚴重,上述問題出現(xiàn)頻率會更多,這會對推薦的精度產生很大影響。
表1 用戶項目評分矩陣Tab.1 User-Item scoring matrix
2.2.1 用戶的興趣偏好貼近度
在模糊數學中,貼近度可以用來表示2個集合的貼近程度,若2個模糊集合距離越大,貼近程度越遠,集合的相關性越弱。假設u=(u1,u2,u3…un),則海明貼近度為
(1)
用戶的興趣偏好度可以通過項目評級表現(xiàn)出來,評分越接近的用戶,他們喜歡某一物品的概率也會越大。所以可以通過貼近度算法來計算用戶間的偏好。定義用戶的評級項目L=(l1,l2,l3…lm),u和v是L上的評分集合,則基于用戶偏好的貼近度可以定義為
(2)
(2)式僅使用了用戶共有評定項目,這只能反映很小一部分用戶的真實狀況,忽視了游離在共同項目之外的用戶評分,未能全面把握用戶的興趣偏好。本文使用全局評分項目,擴大對用戶興趣偏好的查找范圍。然后,考慮到稀疏數據上由于評分分布稀疏且不均勻,公式計算會偏大造成用戶貼近度失真的問題,利用分層的思想把全局項目分成用戶共同項目和用戶本地項目。對于無共同評定部分計算,使用平均評分填充。計算表達式為
(3)
2.2.2 用戶的評分偏好
每個用戶都有屬于自己的評分風格,有的用戶可能不喜歡給高分,有的用戶可能會給相同的評分,對同一喜好物品,不同用戶基于自己的評分偏好,可能會給出不同的數值,這就會降低推薦的精確度。考慮到用戶在全局的評分項,通過計算不同用戶可能出現(xiàn)的評分概率分布用以處理用戶評分偏好問題。用戶的評級偏好定義為
(4)
(4)式中:P(u,v)的取值為[0,1];φ表示用戶對物品的評分取值范圍;l(u)與l(v)表示用戶對所評分物品的數目;Φn與φm表示評分φ在u,v用戶的物品評分列表中出現(xiàn)的次數之和。(4)式反映了在離散區(qū)間內,不同用戶全局評分的概率分布的密度。對(4)式進行舉例演示,假設u=(0,0,1,0,0,2,0,0,3,0,0,4,0,0,5),v=(1,2,0,2,3,0,3,3,0,4,5,0,5,3,0)是項目的評級數據,其中評級值是1—5,根據(4)式,可以得出
(5)
2.2.3Jeffries-Matusita距離的組合相似度
Jeffries-Matusita距離[15]廣泛用于各種領域,如圖像處理,信號和模式識別等。對于度量距離較小的2個分量,會反映出較差的可分性,從而得出精度不高的結果。在協(xié)同過濾中,該距離可以用來計算用戶的相似度,所以可以利用Jeffries-Matusita算法把用戶在全局實際評分中的偏好度轉化成用戶間的相似度,表示為
(6)
2.3.1 基于logistic函數的懲罰因子
在推薦系統(tǒng)中,不同用戶之間的共同評定項目的數量變化很大。評級越多的項目,從中提取的信息越多,相似度計算結果就越準確。因此,共同評定項目數量的比例是一個非常重要的影響因素。本文引入logistic函數對用戶的共同評分項進行線性映射,得到一種關于共同評定的限制性懲罰因子,如果用戶共同項目越少,得分就會越小。模型表示為
(7)
2.3.2 加權JMSD算法
JMSD算法考慮了用戶的共同評級和項目信息,但是如前文所提問題一樣,該算法過度依靠用戶的共同項目,未能考慮到全局信息,在稀疏的數據下,用戶共同項目較少,用戶對項目評級缺失,共同評級計算難度大,這會造成相似度計算不準確。結合(7)式,對JMSD算法進行加權得
simJM(u,v)=Qu,v×JMSD
(8)
加權JMSD算法使用用戶的絕對評級信息和共同評級的比例,這是偏好度算法沒有考慮到的地方。使基于用戶的偏好度算法與加權JMSD算法相結合,可以充分利用他們的優(yōu)點。最終得出本文算法模型為
simED-JM(u,v)=D(u,v)+simJM(u,v)
(9)
(9)式通過考慮用戶興趣偏好貼近度和用戶的評分偏好,有效地使用共同評級項目和所有評級信息,這解決了在稀疏數據中,常規(guī)度量中找到相似性的參數僅考慮共同評定項目的實際評級信息而造成的共同評定問題;最后,結合加權JMSD算法對用戶的絕對評級信息和共同評級的比例,提高了協(xié)同過濾算法的準確度。具體算法流程如圖1。
圖1 算法公式流程圖Fig.1 Algorithm formula flow chart
相似度計算完成后,預測表達式可以表示為
(10)
(10)式中,Nu表示用戶u的最近鄰居集合。該方法可以計算目標用戶的所有未評級項目[16]。然后,推薦算法將前N個項目推薦給目標用戶作為推薦結果。
推薦系統(tǒng)中推薦精度的評價標準有多種,現(xiàn)階段使用最廣的是平均絕對偏差MAE和均方根誤差RMSE等[17]方法進行精度評估。MAE和RMSE的值越小表明推薦越精確越高,MAE用于估計實際評級與預測評級之間的平均絕對偏差,用pui和rui分別表示用戶u在項目i上的預測評級和實際評級。MAE可以定義為
(11)
RMSE用來表示實際評級與預測評級之間的均方根誤差,定義為
(12)
本次實驗采用的數據集是Movielens 100 K。Movielens 100 K含有943名用戶對1 682部電影的100 000次評分,其中評分為5分制,稀疏程度為93.7%。其中,MAE,RMSE覆蓋的性能值是基于鄰居數K的數值計算的,K的值定義為10到100,間隔為10。
圖2和圖3分別展示出了在Movielens 100K的數據集上不同的相似性度量在不同K值下MAE和RMSE的對比。從圖2和圖3中可知,JMSD算法和修正的余弦算法明顯不如其他算法,除了以上2個算法外,其他算法的函數曲線相對穩(wěn)定,隨著K值增加,算法準確率不斷上升,之后略有下降。相比于性能較好的MCF算法[8]與COS算法,本文模型算法ED-JM在MAE指標上分別提高了2.1%和1.86%,在RMSE指標上分別提高了4%和3.68%。
圖2 在Movielens100 K下不同相似性度量的MAE對比Fig.2 MAE comparison of different similarity measuresunder movielens 100 K
圖3 在Movielens100 K下不同相似性度量在RMSE對比Fig.3 Comparison of different similarity measures in RMSE under Movielens 100 K
數據的稀疏性可能會使協(xié)同過濾算法的精度降低,為進一步驗證所提算法,采用更為稀疏的數據集FilmTrust進行實驗。FilmTrust數據集是一個小型的公開數據集。該數據集在2 071部電影中有1 508位用戶擁有35 497個評分,其值為0.5的倍數,范圍從0.5到4。FilmTrust的稀疏度為98.86%。在實驗方面,使用COS算法、JMSD算法和MCF算法進行對比。
表2為不同算法在鄰居數為[10,20,40,80,100]上不同的MAE值。
表2 不同相似度對應的MAETab.2 MAE values for different similarities
表3展示了3種相似度與本文算法在MAE上平均和最小的誤差對比。
表3 算法誤差對比Tab.3 Algorithm error comparison
由于FilmTrust數據集展現(xiàn)更為稀疏的特性,從表2、表3可知,隨著K值增加,算法誤差逐漸變大。JMSD算法準確度的高低和用戶項目數有關,所以該算法相比其他算法依舊有著較差的MAE;傳統(tǒng)協(xié)同過濾算法COS只考慮用戶共同項目,所以在稀疏數據下整體性能較差,如表3,余弦算法最低誤差率達到14.89%,該點在全圖中有著最大誤差。MCF的平均誤差率為4.39%,相比Movielens 100 K實驗可以發(fā)現(xiàn),MCF算法對比所提算法性能有所下降。從圖4可知,所提算法明顯優(yōu)于其他算法,在K=10的時候,本文算法精度要略低于MCF算法,但隨著鄰居數增加,算法要優(yōu)于MCF算法并在K=40取得最優(yōu)點。由此可見,本文算法在稀疏數據下也會有著高的準確率。
圖4 FilmTrust數據集下不同的MAEFig.4 Different MAEs in the FilmTrust dataset
傳統(tǒng)相似性度量算法不能向稀疏數據集中的用戶提供有效推薦,本文算法有效地利用全局所有評級信息,而非單純考慮用戶提供的共同評定項目值。該算法將用戶的興趣貼近度評分偏好考慮到相似度計算中,然后結合加權JMSD算法,得出一個基于用戶偏好的改進協(xié)同過濾算法。通過實驗表明,本文算法不僅緩解了稀疏性問題,算法的精度也要高于傳統(tǒng)算法和文獻算法。在未來研究中,要進一步優(yōu)化推薦算法,提高算法的精確度,為用戶提供更好的推薦體驗。