蔡依芳,艾 均,蘇 湛
(上海理工大學光電信息與計算機工程學院,上海 200093)
worldchinacai@126.com;aijun@outlook.com;suzhan@foxmail.com
近年來,信息技術與移動網絡的飛速發展使得互聯網每天都產生海量信息,在網絡上暢游的用戶在尋求滿足自身需求時必然面臨過多的選擇。大量相似的選擇和質量未知的信息增加了用戶的困惑,讓選擇更加困難,這就導致用戶不僅沒能從海量數據中獲取便利,還要花費大量的時間進行目標篩選,這種現象被稱為信息過載。
推薦系統是解決信息過載問題的一個有效方案,它通過學習用戶歷史行為偏好主動預測用戶對未評分或反饋的物品潛在的反應,并將那些預測評分較高或偏好正面的物品,通過推薦列表等形式自動化、個性化地推薦給不同用戶,從而幫助他們更快速地找到需要或喜歡的物品。這種技術的成功應用有效提升了用戶對系統的好感,也可以幫助商家尋找對某物品感興趣的潛在用戶群體,既解決了用戶的困擾,又為商家創造了價值。因此,推薦系統目前已被廣泛應用于多個領域,例如電子商務平臺、在線流媒體網站、電影推薦網站、在線音樂網站或應用、社交網絡平臺,等等。
本文通過分析推薦算法過程中用戶共同評分物品的數量和質量問題,設計用戶間的相似性度量方法和對應的協同過濾個性化推薦算法,并通過在真實的電影評分數據集上實驗以驗證算法的有效性。
個性化推薦算法通常分為三類:基于內容的推薦算法、基于內存和模型的協同過濾算法以及混合推薦算法。
三種算法存在不同的使用限制。(1)基于內容的推薦算法通過分析物品的內容信息(新聞、圖書等)預測或形成推薦,但其非常依賴內容信息的數據質量,也非常容易給出那些顯而易見的推薦,但推薦的準確性和多樣性受限。(2)協同過濾算法只要系統提供用戶對物品的評分信息集合就可以工作。其中,基于內存的協同過濾利用相似用戶打分的習慣,使用近鄰算法篩選鄰居并預測未知評分;基于模型的協同過濾,例如貝葉斯分類器、模糊算法和矩陣分解模型,使用歷史評分數據訓練不同的模型用于推薦或預測。(3)混合推薦算法則融合不同類型的算法,試圖結合它們各自的優點進行推薦,但其計算復雜性更高,推薦結果可解釋性較差。
在各類算法中最知名的是協同過濾算法,它的出現標志個性化推薦系統的誕生。作為當今應用最為廣泛的推薦算法,協同過濾算法較其他算法復雜度更低,可解釋強,部署方便,可以有效緩解信息過載問題。
所有協同過濾算法的目標都是盡可能地減小預測誤差,提高推薦列表多樣性,增強推薦列表的排序質量。但是,受到冷啟動和稀疏性這兩個推薦系統固有問題的影響,傳統的基于用戶或基于物品的協同過濾相似性計算方法(例如,Cosine相似性和Pearson相似性)總是因冷啟動問題使新用戶沒有鄰居參考,或因稀疏性問題導致評分數據不足,選擇的鄰居不準確,預測結果不理想。對于這些問題,許多研究人員提出了相應的改進方法,例如,NIKOLAOS等人將Pearson相似性值進行分級處理以增加相似性高鄰居的權值;HE等人利用觀點傳播的理論,通過歸一化之后的評分來計算推薦系統用戶之間的相互影響,并以此為依據進行預測;基于信息熵的協同過濾將熵的概念與傳統的相似性度量相結合以提高推薦系統的性能,等等。
這些方法在一定程度上確實提高了預測的準確性,但是,僅考慮用戶共同評分數值差異是不全面的,也應同時考慮利用用戶之間共同評分物品集合中物品的數量。因為即便兩個用戶對相同物品評分差異較大,但只要這兩個用戶具有一個較大的共同評過分的物品集合,就可以推測這兩個用戶間的相似性較高。
更進一步來說,還應該考慮這個共同評分物品集合的質量,以區分共同評分物品集合大致相等時,集合中不同物品特征對用戶相似性的影響。如果用戶的共同評分集合中熱門物品較多,其相似性應低于共同評分集合中以冷門物品為主的用戶,因為那些喜歡小眾物品的用戶之間顯然更具有偏好上的相似性。
綜上所述,本文研究共同評分在總評分數中占比的問題和用戶共同評分物品中熱門物品的影響度量問題。設計融合共同評分數量和質量的相似性度量,以及在此基礎上的個性化推薦算法,以實現提高推薦系統性能的目標。
協同過濾推薦的核心假設是相似的用戶具有相似的偏好,在此基礎上,可以選擇相似性較高的鄰居,利用這些鄰居對目標物品的評分來預測目標用戶對該物品的評分。在這類算法中,計算用戶間的相似性是算法學習過程的核心步驟。兩個用戶相似性越大,該鄰居用戶在推薦的過程中的影響就越大。一般來說,計算用戶相似性的主要依據就是兩個用戶對同一集合中物品評分的差異。理論上,評分數值差異越小,兩個用戶的偏好和品味就越相似;反之,數值差異越大,偏好差異也就越大。
本文采用Pearson相關系數來度量兩個用戶間基于共同評分物品集合的評分數值,以度量相似性的一部分權重。Pearson相關系數是統計學上求兩個變量關系的方法,可以用來度量兩個用戶對相同物品集合的評分差異。具體說來,Pearson相關系數對用戶評分的偏差進行加權平均,結果作為用戶或物品的相似性,且其取值范圍為-1.0至1.0,計算公式如式(1)所示:


共同評分集合元素數量多的用戶間相似性應該大于共同評分數量少的用戶,但如果兩個用戶是共同評分物品集合中物品較為熱門的情況,則他們的相似性應低于相似條件下物品集合中物品較為冷門的情況。本文采用杰卡德相似性來度量兩個用戶因共同評分物品集合元素數量而決定的相似性權重。
Jaccard系數公式如式(2)所示,它計算了用戶和用戶都評過分的物品個數與兩個用戶評過分的物品總個數之比。該值越大,說明這兩個用戶之間共同評過分的物品集合與兩人評過分物品的總數之間的比例越高,說明在不考慮評分數值的情況下,這兩個用戶對物品的選擇是相似的。

為了進一步度量用戶共同評分物品集合中熱門物品的特征,即用戶共同評分集合的質量,本文設計了如式(3)所示的(,)系數以降低含有熱門物品的共同評分集合的權重。其中,共同評分物品集合中每個物品被訓練集中所有用戶選擇的次數記為物品度值d,給定共同評分物品集合中熱門物品特征,由該集合所有物品d的最大值表示?;谑?3),如果兩個用戶共同評分物品集合中存在一個非常流行,即度值很高的物品,則這兩個用戶之間的共同評分物品集合的質量就相對較低,其權值在相似性計算過程中被降低。
在此基礎上,融合共同評分集合數量和質量的相似性由式(4)度量,稱該系數為共同評分數量和質量系數(Common Rating Quantity and Quality,CRQQ)。

最終,本文設計的綜合考慮共同評分物品數值差異與集合數量和質量的相似性計算公式如式(5)所示,即兩個用戶間評分差異小,并且共同評分物品集合數量和質量均較高時,兩個用戶最相似。如共同評分物品數量、共同評分物品質量或共同評分數值差異三者當中只有一項到兩項較高時,其權重被降低,以便更加準確地度量不同用戶間的特征差異。

基于相似性計算結果,以及按照相似性從高到低選擇的個鄰居,本文使用式(6)把鄰居用戶對預測目標物品的評分和該鄰居平均評分的差值做加權計算,基于該鄰居和目標用戶相似性,來實現預測用戶對未知物品的評分。

本文使用MovieLens數據集進行對比實驗,該數據集有610 個用戶對9,742 部電影的100,836 條評分信息。為了保證實驗的有效性,實驗采用折十交叉驗證進行,即數據集被分成10 份,每次實驗取其中一份作為測試集,另外9 份作為訓練集,共進行10 次實驗,最終取10 次結果的平均值作為最終實驗結果進行比較。
為了驗證本文設計的CRQQ算法,用來對比的基準算法有三個,分別是:多層級協同過濾(Multi-Level Collaborative Filtering,MLCF)、用戶觀點傳播算法(User Opinion Spreading,UOS)以及使用了信息熵的Pearson算法(Pearson Entropy)。
本文使用平均絕對誤差(Mean Absolute Error,MAE)、均方根誤差(Root Mean Squared Error,RMSE)衡量算法對未知評分的預測誤差,使用半衰期(Half Life Utility,HLU)度量推薦列表排序質量,采用Accuracy和F1比較各個算法對用戶偏好分類的預測準確率。
MAE和RMSE公式如式(7)和式(8)所示,其計算由算法預測值和真實值的差值加權構成,因此兩個誤差度量參數均為越低越好。

HLU代表算法的排序能力,算法將用戶喜歡的物品排在前面的能力越好,HLU值越大,其計算方法如式(9)所示:

Accuracy和F1指標是推薦系統分類預測指標,這兩個指標的計算公式如式(10)—式(13)所示:

其中,在一次預測中,代表算法推薦了用戶喜歡的物品的總體數量,代表算法推薦了用戶不喜歡的物品的總體數量,代表系統未推薦用戶喜歡的物品的總體數量,代表系統未推薦用戶不喜歡的物品的總體數量。這幾個參數的數值越高,算法對用戶偏好分類(喜歡或不喜歡)的預測就越準確。
圖1展示了四種算法隨鄰居數變化的MAE誤差結果。鄰居數為1時,CRQQ算法比Pearson Entropy算法誤差低6.68%。隨著鄰居數的增加,所有算法誤差都隨之降低,但是CRQQ算法總是能在最少的鄰居數下最先達到最小誤差值,其次是UOS、Pearson Entropy、MLCF,最終CRQQ算法將準確率提高了0.57%—6.68%。結果表明,本文設計的算法能夠更快速地選取最合適的鄰居,從而得到最精準的預測結果。

圖1 幾種算法的MAE結果對比Fig.1 Comparison of MAE results of different algorithms
圖2展示了四種算法的RMSE誤差對比。RMSE對大誤差加大了懲罰,此時,CRQQ算法的誤差依舊是所有算法中最低的,這代表CRQQ算法預測結果很少出現大誤差,結果最準確。隨著鄰居數增加,CRQQ算法誤差結果迅速下降,優勢更加明顯,分別比Pearson Entropy誤差降低了0.48%—8.41%,比UOS誤差降低了1.40%—3.24%,比MLCF誤差降低了0.92%—3.23%。由此可知,CRQQ算法無論是大誤差還是小誤差都比其他算法少,進一步說明本文在預測準確性上的改善能力。

圖2 不同算法的RMSE結果對比Fig.2 Comparison of RMSE results of different algorithms
圖3是四種算法的HLU排序能力指標,值越大說明算法排序能力越好??傮w來說,所有算法的HLU得分前期增長明顯,后期略微下降。但不變的是,CRQQ得分一直是第一,它在鄰居數為26時取值最大為1.02。相同鄰居數下,UOS值為0.99,Pearson Entropy和MLCF算法為0.96,差別不大,但MLCF后期得分比Pearson Entropy算法更加平穩。CRQQ算法在排序能力上比其他算法提高了0.63%—10.21%,這說明共同評分數量和質量在推薦算法排序能力上的優勢也比其他算法大。

圖3 不同算法的HLU結果對比Fig.3 Comparison of HLU results of different algorithms
圖4是算法的Accuracy得分對比。Accuracy代表算法預測用戶喜歡與否正確的概率,可以判斷系統分類是否有效。CRQQ算法得分穩定在0.704上下,排名第一;Pearson Entropy得分在0.703上下,排名第二;第三、第四分別是MLCF(0.700)和UOS(0.699)。CRQQ比其他算法高了0.14%—0.71%,代表本文算法在對用戶喜歡和不喜歡某物品的分類上準確度最高。

圖4 不同算法的Accuracy結果對比Fig.4 Comparison of Accuracy results of different algorithms
F1代表Precision和Recall的綜合得分,得分越高,說明模型或算法的效果越理想。從圖5中可以看到,CRQQ算法從鄰居數為1時就具有領先的優勢,UOS第二,Pearson Entropy第三,MLCF最差。在鄰居數為0至50之間,CRQQ算法總是能夠取得最高的F1得分。此時,CRQQ算法比其他算法高出了0.24%—1.05%。由此可見,使用共同評分數量和質量校正的算法分類精度效果更好。

圖5 不同算法的F1結果對比Fig.5 Comparison of F1 results of different algorithms
以上分析了四種算法的整體表現,表1則記錄了在相同鄰居數下,CRQQ算法與其他算法在各指標的對比中提升的最高百分比。

表1 最高提升百分比Tab.1 Best improvement percentage
由表1可知,本文算法在五種指標上分別高出MLCF算法0.63%—5.98%,高出UOS算法0.70%—3.24%,高出Pearson Entropy算法4.44%—10.21%。
總體而言,本文設計的算法CRQQ綜合表現領先,Pearson Entropy算法次之,UOS算法第三,多層級協同過濾算法MLCF第四。但當考慮算法在相同的、且較少鄰居數下的對比效果時,Pearson Entropy算法表現較差,因其達到最優預測效果,在相同條件下需要更多的鄰居。值得注意的是,CRQQ算法不但各個指標領先,且需要的鄰居數量也最少,體現出一定的性能優越性。
為提高協同過濾個性化推薦算法的預測準確性,提升推薦列表排序質量,增強算法對偏好分類的準確性,本文研究了兩個用戶間共同評分物品集合的數量和質量對用戶相似性度量的影響,設計了融合共同評分數量和質量的相似性度量方法和對應的協同過濾個性化推薦算法。并在MovieLens電影評分數據集上與領域內幾個典型協同過濾算法對比,研究發現本文設計的融合用戶共同評分數量和質量的協同過濾個性化推薦算法可以將預測誤差降低8.41%,將推薦列表排序性能提高10.21%,將偏好分類預測準確率提高2.55%。實驗證明,改良后的算法無論是預測準確性還是分類或排序能力都有較大的提升,充分說明共同評分物品對推薦算法評分預測的影響。在未來的工作中,可以繼續挖掘用戶公共評分的其他影響,進一步提高算法性能。