潘磊
(江蘇科技大學計算機科學與工程學院,江蘇鎮江212003)
個性化推薦系統中相似度計算的優化
潘磊
(江蘇科技大學計算機科學與工程學院,江蘇鎮江212003)
個性化推薦系統能夠比較有效的解決我們獲取信息時遇到的信息過載問題,發展至今產生了許多經典的推薦算法,其中最成熟應用最為廣泛的是協同過濾算法。相似度的準確計算在協同過濾算法中起到了非常重要的作用,為了進一步提高推薦系統的推薦準確率,本文對相似度計算方法進行了研究。通過項目相似度和評分差異性對計算結果影響的大小,計算時給予不同的權重,并在MovieLens上對推薦結果進行預測,試驗結果顯示,MAE值降低了2.5%,優化后的相似度計算方法可以提高個性化推薦系統的推薦準確率。
推薦系統;項目相似度;評分差異性;協同過濾;準確率
隨著Web2.0時代的到來,網絡給人們日常生活帶來便利的同時也制造了麻煩。在信息的汪洋大海中,用戶尋找感興趣的信息變得異常困難,往往把寶貴的時間和精力浪費在過濾無用的信息上。對于信息過載問題[1]通常的解決辦法有3種:第一種是搜索引擎,谷歌是其中的代表;第二種是分類目錄,有代表性的有雅虎和Hao123等網站;第三類是個性化系統。本文主要研究的是第三類解決方案,在基于協同過濾的個性化系統中,優化相似度的計算方法,從而提高推薦結果的準確性。
協同過濾算法中相似度計算在找到相似用戶或者物品時起到很重要的作用,影響著最終推薦結果的準確度和用戶滿意度[2]。因此,本文在研究傳統的相似度計算方法基礎之上,引入物品相似度,并且根據數據集的特點,細粒度的考慮了不同用戶評分之間的差異性。
協同過濾算法中鄰居的興趣能在一定程度上反映用戶的興趣,因此通常要找到用戶或者物品的鄰居[3],據此給出推薦列表。根據鄰居的挑選原則,我們通常可以把他們分成兩類:一類是固定數量的鄰居(K-neighborhoods):不論鄰居的“遠近”,只取最近的K個,作為其鄰居。另一類是基于相似度門檻的鄰居(Threshold-based neighborhoods)。不論采用哪一種方法,要獲得近鄰首要的問題就是計算相似度,然后再根據相似度確定鄰居集合,本文主要是以基于用戶的協同過濾算法為例。

1)歐幾里德距離(Euclidean Distance):

2)皮爾遜相關系數(Pearson Correlation Coefficient):

3)Cosine相似度(Cosine Similarity):

4)Jacard系數余弦相關系數的擴展:

歐幾里德定義的相關系數利用評分矩陣中用戶a,b對共同評分項目Tab的項目評分的二范數來計算用戶的相似度,分母中的平方項放大了用戶a,b評分差異帶來的計算誤差。皮爾遜相關系數P取值在-1與+1之間,若P>0,表明兩個變量是正相關;若P<0,表明兩個變量是負相關。余弦相似度利用利用a,b用戶評分向量的余弦夾角來計算相似度,取值為0到1,取值越大代表相關性越大。Jacard系數是對余弦系數的擴展,考慮了Ra,Rb長度。傳統的相似度計算應用到具體的數據集上,例如Movelens數據集,我們可以充分利用數據集自身的特點進行優化,傳統相似度計算沒有考慮:
1)兩個用戶對同一個物品評價分值的差異對物品的影響。如果兩個用戶同時給高分或者同時給低分,在某種程度上更能反映用戶間興趣的相似性,但是如果兩個用戶對同一物品評分的分值差異比較大,更能說明不同用戶間的興趣偏好的差異性較大,在計算用戶相似度時應該細化考慮,分別給予不同的權重值。
2)兩個用戶評價的項目的相似度對最終計算結果的影響。評分矩陣的行向量,也即用戶對公共評分項目的評分向量,如果兩個用戶之間評分的項目更加相似,那么在計算用戶相似度時應該適當的增加權重。
針對上述相似度計算的討論可以對算法進行相應的改進,考慮項目相似度[4],利傳統的相似度計算方法計算得到所有項目之間的相似度矩陣Mnn,代表項目之間的相似度,定義:

代表a,b用戶間共同評價項目與目標項目之間的相似度之和,w1越大說明用戶評價的物品越相似,計算用戶相似度時應該適當增加權重。同時考慮不同用戶的評分差異性,定義權重因子,假設在評分值區間為1~5分的系統中,認為小于等于2分為低評分,大于等于4分認為是高評分,評分差值大于3分的認為評分差異較大,給出如下定義:

綜合起來考慮定義權重因子:

根據公式wa,b(i)給出算法的描述和過程。
算法:計算用戶相似度權重
輸入:用戶A,B、用戶-項目評分矩陣R、項目之間的相似度矩陣Mnn、A,B共同評分項目Tab
輸出:wa,b(i)
Step1:wa,b(i)=0,T=Tab;
Step2:從T中取出uj,T=T-{uj};
Step3:Mnn查找mij;
Step4:查找評分矩陣R,計算|raj-rbj|,根據公式(6)確定參數σ;
Step5:wa,b(i)=wa,b(i)+σmij;
Step6:T=?結束,否則跳轉到第二步。
根據上面得到的wa,b(i)改進后的皮爾遜相關系數為:

改進后的Jacard相似度為:

本文采用MovieLens數據集進行實驗,對改進前后的相似度采用MAE值進行評測比較。每個用戶對已經看過的電影根據個人滿意度給予不同的評分值,不同的評分值代表用戶興趣度的不同,評分值的區間為1~5分,評分值高低代表了用戶的偏好,最后通過MAE對改進后的系統推薦結果評測。MAE是現在被廣泛認可的評價指標之一,可以真實的反映實際評分與預測評分之間的誤差大小,公式如下:

實驗通過MATLAB完成,經過多次試驗調優,發現(σ1,σ2,σ3)=(1.1,1.1,0.8)時,實驗效果最佳,實驗結果如圖1、2所示。
圖1對比了基于Jacard系數優化前后的協同過濾算法的MAE值,從圖上可以看出,隨著鄰居集的個數增加MAE值也隨之下降,直到鄰居個數達到80以上,MAE值趨于穩定。實驗結果顯示,采用優化后的Jacard系數的協同過濾算法,推薦結果的MAE值有明顯的降低,推薦準確率更高。

圖1 基于優化的Jacard系數的協同過濾算法的MAE

圖2 基于優化的皮爾遜相關系數的協同過濾算法的MAE
圖2對比了基于皮爾遜相關系數優化前后的協同過濾算法的MAE,從圖上可以看出,隨著鄰居集的個數增加MAE值也隨之下降,直到鄰居個數達到80以上,MAE值趨于穩定。實驗結果顯示,采用優化后的皮爾遜相關系數的協同過濾算法,推薦結果MAE有明顯的下降,推薦準確率較高。
對比兩幅實驗結果圖可知,隨著鄰居集的增加,兩條曲線的MAE的差值增大,直到鄰居集的個數達到80以上MAE值趨于穩定。實驗結果表明,本文改進后的相關性計算方法,在某種程度上可以有效地降低基于協同過濾的推薦系統的MAE值,提高系統的準確度和用戶滿意度。但是由于本實驗只是在MovieLens數據集上取得可比較好的結果,在其他數據集上的表現仍待進一步驗證。
傳統的推薦系統的不足在于沒有衡量用戶間評分的差異性和項目相似性的差異對相似度計算結果的影響。本文針對這兩點進行改進,提升了推薦結果的準確率,但是由于引入了項目相似度的計算,增加了系統的時空復雜度,影響系統的性能。σ參數的確定需要多次試驗獲才能獲得,同時由于增加了相似物品在相似度計算中的權重,有可能會導致覆蓋率的下降,產生長尾效應[7],如何增加對長尾商品的推薦,這些問題仍然需要進一步討論和研究。
[1]項亮.推薦系統實戰[M].北京:人民郵電出版社,2012.
[2]周濤.個性化推薦的十大挑戰[EB/DL].http://blog.sciencenet.cn/blog-3075-588779.html,2012-07-04.
[3]李春,李珍民,高曉芳,等.基于鄰居決策的協同過濾推薦算法[J].計算機工程,2010,36(13):34.
[4]榮輝桂,火生旭,胡春華,等.基于用戶相似度的協同過濾推薦算法[J].通信學報,2014,35(2):16-24.
[5]汪靜,印鑒,鄭利榮,等.基于共同評分和相似權重的協同過濾推薦算法[J].計算機科學,2010(2):99-104.
[6]馮媛媛,王曉東,姚宇.電子商務長尾物品的推薦[J].計算機應用,2015,35(S2):151-154.
[7]楊博,趙鵬飛.推薦算法綜述[J].山西大學學報,2011,34(3):337-350.
[8]孫輝,馬躍,楊海波,等.一種相似度改進的用戶聚類協同過濾推薦愛算法[J].小型微型計算機系統,2014,35(9):1967-1970.
[9]劉宏哲,須德.基于本體的語義相似度和相關度計算研究綜述,計算機科學,2012,39(2):8-13.
[10]冷亞軍,梁昌勇,陸青,等基于近鄰評分填補的協同過濾推薦算法[J].計算機工程 2012,38(21):56-60.
[11]劉建國,周濤,汪秉宏.個性化推薦系統的研究進展[J].自然科學進展,2009,19(1):1-15.
[12]徐文龍,嚴泳鍵.結合項目相似度的協同過濾算法[J].計算機應用與軟件,2013,30(9):293-295.
[13]朱文奇.推薦系統用戶相似度計算方法研究[D].重慶:重慶大學,2014.
[14]陳如明.大數據時代的挑戰、價值與對應策略[J].移動通信,2012,36(17):14-15.
[15](奧地利)Dietmar Jannach等著.推薦系統[M].蔣凡譯.北京:人民郵電出版社,2013.
[16]徐翔,王煦法.協同過濾算法中的相似度優化方法[J].計算機工程,2010,36(6):92-95.
Optimized similarity calculation in personalized recommendation system
PAN Lei
(School of Computer Science and Engineering,Jiangsu University of Science and Technology,Zhenjiang212003 ,China)
Personalized recommendation system can effectively solve the information overload problem.Many classic recommendation algorithms have came into our world with the development of the recommendation system technology.Collaborative filtering algorithm is the one most widely used.Similarity plays a very important role in collaborative filtering algorithm.In order to improve the recommendation accuracy of recommendation system,we research the similarity calculation method in this paper.We optimize the traditional similarity calculation method,considering item similarity and difference in score,give different weights when we calculate the similarity.At last,we forecast the result of the recommendation on the data set named MovieLens.The result of the exprement shows that the value of MAE decreases by 2.5%and the optimized method increases recommendation accuracy.
ecommendation system;item similarity;score difference;collaborative filtering;accuracy
TN0
A
1674-6236(2017)23-0055-04
2016-11-21稿件編號:201611156
潘磊(1988—),男,江蘇泗洪人,碩士研究生。研究方向:數據挖掘,個性化推薦。