王明佳,韓景倜
(上海財經大學a.數學學院;b.信息管理與工程學院;c.金融科技研究院;d.上海市金融信息技術研究重點實驗室,上海 200433)
協同過濾推薦算法所面臨的一個主要問題就是數據稀疏性問題,例如在真實的互聯網協同過濾推薦系統中,每個用戶的評分信息相當有限,一些大的推薦系統如亞馬遜網站中,所有的商品中被用戶評分過的項目非常的少,據統計用戶評價的項目一般不會超過總資源數目的百分之一[1-3]。那么如何克服用戶-項目評分矩陣數據稀疏的問題呢?最常用的辦法就是降低數據的稀疏程度,對于未評分的項目采用固定評分進行填充,研究中發現這種改進方法可以一定程度降低數據的稀疏性,但是實際上對于未評分的項目,用戶的喜好程度肯定不一樣,不可能給予同樣的評分,因此采用固定評分填充的方法不能解決數據稀疏情況下傳統相似性度量方法存在的問題[4,5]。另外也有研究者提出通過降維的方式來處理數據稀疏問題,例如李遠博[6]采用基于PCA降維的協同過濾推薦算法,作者首先通過對評分矩陣采用PCA降維的方法,降低了評分矩陣的稀疏性,保留了最能代表用戶興趣的維數;郁雪等[7]本文提出了一種局部主成分分析協同過濾算法,采用兩階段分類和基于主成分的語義分析的降維技術,分別對各類主題頁面局部降維,保持某種主題感興趣的用戶群;但是也有一些學者在研究中發現,對評分矩陣采用降維的方法可能會導致評分矩陣中有效信息流失[8-10]。
針對以上問題,本文擬采用多維度用戶相似性計算方法解決數據稀疏情況下用戶相似性度量精度不高的問題,提出了一種多維度用戶相似性度量的協同過濾算法。首先根據用戶-項目打分矩陣,考察用戶共同評分項目和用戶活躍度對用戶相似的影響,并計算用戶的相似度,同時通過修正皮爾遜用戶相似性計算用戶的相似性,最后綜合計算用戶的相似性,并通過一個權值來控制兩者的重要程度,選取項目近鄰居集合,利用評分預測公式計算未評分項目,選取得分高的N個項目推薦給目標用戶。新算法不但可以很好的緩解數據的稀疏程度,還可以保留傳統協同過濾算法的優勢,提高了算法的精度。
在傳統的基于用戶的協同過濾推薦算法中,本文首先通過用戶-項目評分矩陣來計算用戶之間的相似性,然后選擇目標用戶的最近鄰居集合,最后根據鄰居集合來預測未評分項目,產生推薦結果。在實際的應用過程中,由于評分數據非常的稀疏,僅簡單的使用用戶對項目的評分數據來計算用戶之間的相似性,會降低推薦精度。本文必須從用戶對項目評分矩陣里面進行深層次挖掘,多維度進行分析來計算用戶之間的相似度。因此本文提出了三個維度來描述用戶之間的相似性。
(1)基于共同評分項目數維度
本文首先從用戶對共同評分項目這個維度來分析用戶的相似性。在用戶-項目評分矩陣中,可以將每個用戶ui的項目評分集統計出來,用items(ui)={item1,item3…}來表示。在現實生活中,如果兩個用戶共同評分項目的數量越多,則這兩個用戶具有越多相同的興趣愛好,因此這兩個用戶的相似度也就越高。
(2)基于用戶活躍定維度
項目評分矩陣中,可以通過一個用戶對項目的評分數量來表示一個用戶的活躍程度,如果他評分項目的數目越多,那么他的活躍度也就越大;反之,則該用戶的活躍度越低。本文將用戶ui目的評分數用RatingN(ui)來表示。
在實際生活中,活躍度高的用戶往往由于評價的項目數目多而使該用戶與目標用戶容易產生交集,導致兩用戶之間具有較高的相似度,但是并不能代表兩用戶之間具有很高的興趣相似性。對于活躍度較低的用戶,如果該用戶與目標用戶一旦發生評價項目交集,由于這是小概率的事件,因此可以說明二者之間具有很好的興趣偏好,用戶之間的相似性高。
(3)基于相似度計算方法修正維度
傳統的皮爾遜用戶相似性計算公式中在考察兩用戶之間相似性的時候,只考慮的兩用戶共同評分項目上之間的相似性,該方法具有局限性,沒有從全局角度考察量用戶的興趣偏好,因此不能很好的反映用戶之間的真實相似度。
因此本文在傳統的皮爾遜用戶相似性計算公式上進行修正,引入用戶評分的均方差,具體的計算公式如下:

σu和σv分別表示用戶u和用戶v的評分均方差,可以反映用戶評分的離散程度。根據上面公式計算的用戶相似性不但可以很好的繼承傳統皮爾遜用戶相似性的優勢,本文還考慮了用戶的評分習慣。如果兩用戶的評分反差越少,則說明兩用的評分傾向具有一致性,用戶u和用戶v的相似性也越高。
(1)基于共同評分項目數目第一維度用戶相似性計算
對于用戶u和用戶v,其中items(u)表示用戶u的評分項目集合,items(v)表示用戶v的評分項目集合,根據基于用戶共同評分項目用戶相似性計算原則,本文可以采用Jaccard系數來計算用戶之間的相似度,計算的具體公式如下:

從上面的計算公式可以發現,當用戶u和用戶v之間的共同評分項目越多時,則表示用戶u和用戶v之間的相似性越高。
(2)結合用戶活躍度第二維度用戶相似性計算
對于用戶u和用戶v,其中RatingN(u)表示用戶u的活躍程度,RatingN(v)表示用戶v的活躍程度,根據基于用戶活躍程度對用戶相似性計算原則,則用戶之間的相似度為:

從上面的計算公式可以發現,評分數目越多的用戶對用戶相似性的影響度越低,評分數目越少的用戶對用戶相似性的影響越大,這比較符合本文提出的用戶活躍度原則。
(3)基于相似度修正第三維度用戶相似性計算
本文在傳統的皮爾遜用戶相似性計算公式上進行修正,引入用戶評分的均方差,具體的計算公式如下:

其中σu和σv分別表示用戶u和用戶v的評分均方差,可以反映用戶評分的離散程度。
(4)用戶的總相似性計算

其中sim2(u,v)代表結合共同評分項目數目和用戶活躍度的用戶相似性;sim3(u,v)代表修正的皮爾遜用戶相似性,本文使用一個權重系數W來調節兩者的比例,w的取值范圍為[0,1]。
針對傳統基于項目的協同過濾算法中,在數據極度稀疏的情況下,計算出來的項目相似度不能很好的反映項目相似性的實際情況,本文擬采用多維度用戶相似性計算方法提高算法推薦質量,提出了一種多維度用戶相似性度量的協同過濾算法。首先根據用戶-項目打分矩陣,考察用戶共同評分項目和用戶活躍度對用戶相似的影響,并計算用戶的相似度,同時通過修正皮爾遜用戶相似性計算用戶的相似性,最后結合共同評分項目數目和用戶活躍度的用戶相似性以及修正的皮爾遜用戶相似性綜合計算用戶的相似性,并通過一個權值來控制兩者的重要程度,選取項目近鄰居集合,利用評分預測公式計算未評分項目,選取得分高的N個項目推薦給目標用戶,具體算法如下:
(1)數據輸入,建立用戶-項目評分矩陣。
(2)分別計算結合共同評分項目數目和用戶活躍度的用戶相似性以及修正的皮爾遜用戶相似性。
(3)計算基于多維度用戶相似性度量的協同過濾算法的用戶的相似性。
(4)采用以下公式進行項目評分預測:

其中,為用戶u所有評分的平均值,sim(i,j)為i和j項目的相似度,n為選擇前n個最近鄰。當Ru=0時,令R-=0。
u
(5)選取N個評分高的項目推薦給目標用戶。
為了驗證本文提出的基于多維度用戶相似性度量協同過濾推薦算法的實際推薦效果,本文利用Movielens網站提供的電影評分數據集進行驗證,在該網站當中用對觀看過的電影進行打分,最高分為5分,最低分為1分,評分越高代表該用戶對該電影越喜歡。用戶對電影喜好程度取決于電影的分類、導演、演員這幾個要素。其中,電影分類可以代表電影的劇情特征,導演決定了電影的風格和內涵層次深度,所以這兩個特征是主要的。
本文選取movieLens的小數據作為實驗數據集,該數據集共有943個用戶,電影的數量為1682部,以及大約有10萬次的評分,具體信息如表1所示。

表1 電影評分數據集稀疏程度
訓練集合測試本文采用隨機選取的辦法,例如訓練集占整個數據集總數的X,那么剩下的(1-X)作為測試集。當X=0.8時,即本文選取數據集中的80%作為訓練集,余下的20%作為測試集。
本文采用平均絕對誤差MAE,召回率RE和準確率三個評價指標:
(1)平均絕對誤差MAE
MAE是檢驗一個推薦系統好壞的常用標準,在實際的推薦過程中,利用訓練集中數據經過推薦算法得到未評分項目的預測分,然后將預測分與測試集中的實際評分進行比較,具體計算如公式(1)所示:

num為算法評分項目數目,pi為基于算法預測的評分,qi測試集中用戶原始打分。
(2)召回率RE
召回率一般是用來表示推薦系統中預測項目出現在測試集中的比例,具體計算如公式(2)所示:

RE用戶Ui的召回率,Ni表示推薦系統中對用戶進行預測的項目中正確命中的個數,Pi表示的是測試集中用戶喜歡的項目數。
(3)準確率P
推薦的準確率P通常是表示推薦系統中測試集中商品出現在推薦列表中的比例,其計算如公式(3)所示:

P表示系統用戶Ui的推薦準確率,Ni表示系統用戶Ui推薦列表中的商品出現在測試集中的數量,Di為推薦列表的長度。
2.2.1 權重參數w的確定
本文提出的基于多維度用戶相似性度量的協同過濾算法中引入一個參數w,用于調節結合共同評分項目數和用戶活躍度的用戶相似性以及修正的皮爾遜用戶相似性的比重,如果權重系數w的取值太大或者太小會影響推薦系統的推薦精度,因此本文需要考察不同權重系數對推薦系統精度的影響,當訓練集占整個數據集總數的80%時,數據的稀疏為94.95%。推薦系統的評分偏差的絕對值的平均(MAE)即系統的推薦精度與w的取值關系如圖1所示。從圖中可以發現當數據稀疏度為94.95%時,權重系數為0.4,即修正的皮爾遜用戶相似性的占的比重較大時,推薦系統的推薦質量最好。

圖1 權值a與系統推薦MAE的關系
2.2.2 推薦算法的性能
對于本文提出的基于多維度用戶相似性度量的協同過濾算法,將從MAE、召回率RE和準確率三個方面考察算法的優劣程度,并將結果與經典的余弦相似性協同過濾算法以及皮爾遜相似性協同過濾算法進行對比。為了驗證算法的推薦精度,試驗的取樣密度為80%,數據的稀疏程度為94.95%,權重系數w的取值為0.4,試驗結果如圖2至圖4所示。

圖2 不同推薦方法的MAE對比
從圖2中可以發現,本算法和經典的系統過濾算法(余弦相似性和皮爾遜相似性)的MAE值都隨著近鄰居集個數的增加而減少,但是本文提出的推薦算法的MAE都低于傳統的協同過濾算法,這說明利用多維度計算用戶之間的相似性,可以緩解數據的稀疏性,預測的評分更加接近真實評分值,提高了算法的準確率。

圖3 不同推薦方法的召回率對比

圖4 不同推薦方法的準確率對比
圖3和圖4分別表示了三種算法與測評分在召回率和準確率上對比的實驗結果,從圖3可以看出,三種算法的預測評分的召回率和準確率都隨著近鄰居集的個數的增加而增大,本文提出的基于多維度用戶相似性度量的協同過濾算法在召回率和準確率上相比于兩種經典的協同過濾算法都有所提高;通過對召回率和準確率的衡量可以追蹤用戶對推薦結果的滿意度,對提高推薦服務具有一定的實際意義。
針對傳統推薦系統在數據稀疏性情況下用戶相似性度量精度不高的問題,提出了一種多維度用戶相似性度量的協同過濾算法。首先根據用戶-項目打分矩陣,考察用戶共同評分項目和用戶活躍度對用戶相似的影響,并計算用戶的相似度,同時通過修正皮爾遜用戶相似性計算用戶的相似性,最后結合共同評分項目數目和用戶活躍度的用戶相似性以及修正的皮爾遜用戶相似性綜合計算用戶的相似性,并通過一個權值來控制兩者的重要程度,選取項目近鄰居集合,利用評分預測公式計算未評分項目,選取得分高的N個項目推薦給目標用戶。研究結果表明權重系數為0.4,即修正的皮爾遜用戶相似性的占的比重較大時,推薦系統的推薦質量最好;同時本文提出的多維度用戶相似性度量的協同過濾算法在MAE、召回率RE和準確率三個方面都要優于經典的余弦相似性協同過濾算法以及皮爾遜相似性協同過濾算法。
參考文獻:
[1] Kawano A,Honda K,Kasugai H,et al.A Greedy Algorithm Fork-Mem?ber Co-clustering and Its Applicability to Collaborative Filtering[J].Procedia Computer Science,2013,(22).
[2] 魯凱,張冠元,王斌.CICF:一種基于上下文信息的協同過濾推薦算法[J].中文信息學報,2014,28(2).
[3] Zhang J,Peng Q K,Sun S Q,et al.Collaborative Filtering Recommen?dation Algorithm Based on User Preference Derived From Item Do?main Features[J].Physica A,2014,(396).
[4] 郝立燕,王靖.基于填充和相似性信任因子的協同過濾推薦算法[J].計算機應用,2013,33(3).
[5] 王鵬,王晶晶,俞能海.基于核方法的User-Based協同過濾推薦算法[J].計算機研究與發展,2013,50(7).
[6] 李遠博,曹菡.基于PCA降維的協同過濾推薦算法[J].計算機技術與發展,2016,(2).
[7] 郁雪,李敏強.基于局部主成分分析的協同過濾推薦模型[J].計算機工程,2010,36(14).
[8] De Meo P.Improving Recommendation Quality by Merging Col?laborative Filtering and Social Relationships[C].Intelligent Systems Design and Applications(ISDA),11th International Conference,2011.
[9] 蔣勝,王忠群,修宇,皇蘇斌.集成社會化標簽和用戶背景信息的協同過濾推薦方法[J].計算機應用,2014,34(8).
[10] 代金龍.協同過濾算法中數據稀疏性問題研究[D].重慶:重慶大學碩士論文,2013.