宋龍生 王家樂 倪勝巧



摘要:信息過載的問題愈發嚴重在大數據時代針對不同用戶提高電影推薦系統的推薦性能一直存在巨大的挑戰為了有效地解決信息過載和用戶體驗滿意度低的問題需要選擇合適的個性化推薦算法文章概述了主流的機器學習推薦算法并通過實驗比較分析了各算法的優缺點針對推薦算法普遍存在的冷啟動和數據稀疏性問題提出了相應的解決方案
關鍵詞:電影推薦;協同過濾(CF);冷啟動;奇異值分解(SVD)
中圖法分類號:TP391文獻標識碼:A
Collaborative filtering movie recommendationalgorithm based on SVD
SONG Longsheng',WANG Jialel,NI Shengqiao1.2
(1.College of Information Science and Technology,Tibet University,Lhasa 850000,China:
2.College of Computer Science,Sichuan University,Chengdu 610065,China)
Abstract:Nowadays, the problem of information overload is becoming more and more serious. In the sea of big data, it has been a huge challenge to improve the recommendation performance of moie recommendation system for different users. In order to effectively solve the problems of information overload and low user experience satisfaction, it is necessary to choose an appropriate personalized recommendation algorithm. In this paper, the mainstream machine learning recommendation algorithms are summarized, and the advantages and disadvantages of each algorithm are compared and analyzed through experiments. Finally, corresponding solutions are proposed to solve the common problems of cold start and data sparsity in recommendation algorithms.
Key words: film recommendation, collaborative filtering(CF), cold start, singular value decomposition(SVD)
1? 引言
近年來,隨著互聯網的飛速發展,影視產業的數量和種類激增且發展迅猛,“電影過載”的問題愈發嚴重,導致用戶尋找自己喜歡的電影需要浪費很多時間。因此,在互聯網信息過載和多數用戶需求不明確的時代背景下,如何在海量的影視資源中,針對不同用戶提供個性化的推薦是亟待解決的問題。
2? 推薦算法分類
(1)基于流行度的推薦算法
流行度即熱度,基于流行度的推薦算法最常見的就是將各個榜單中的熱點內容(微博熱搜、TopN 商品)推薦給用戶,流行度的衡量有多種方式,如在一段時間內某個商品頁面或者電影的點擊率、觀看率、完播率、用戶的互動/反饋次數等。社會因素和從眾心理因素也可能影響物品的流行度。
(2)基于內容的推薦算法
基于內容的推薦系統來源于最早的信息檢索系統,它的主要原理是首先根據物品的元數據,抽取出一些特征來表示該物品(item),然后根據用戶過去的特征數據,來學習出此用戶的喜好特征(profile),最后通過比較前兩步得到的用戶 profile 與候選 item 的特征數據,為該用戶推薦一組相關性最大的 item。
(3)基于協同過濾的推薦算法
協同過濾推薦算法在推薦系統中被廣泛應用,其一般用于用戶給物品進行評分的系統中,通過用戶對物品的評分來學習并刻畫用戶喜好。目前,協同過濾推薦系統分為基于用戶的協同過濾推薦( User?Based CF)和基于物品的協同過濾推薦( Item?Based CF)[ 1] 。
(4)基于模型的推薦算法
基于模型的推薦方法有很多,常用的模型包括 Aspect? Model ,pLSA ,LDA 、聚類、 SVD ,Matrix Factorization ,LR,GBDT 等,雖然其訓練時間更長,但是推薦結果準確率更高,結合特征工程則可以達到更好的效果。
(5)基于關聯規則的推薦算法
基于關聯規則的挖掘算法主要從 Apriori 和 FP?Growth兩個算法發展而來。該算法的優勢是通過較少的用戶反饋量就可以學習過濾到機器難以自動分析的內容,提高了內容分析的精確性。劣勢是存在冷啟動和稀疏性的問題,容易過度推薦熱點物品。
(6)混合推薦算法
在現實生產應用中,推薦系統基本不會使用單一的推薦算法來完成推薦任務,因此需要具體分析與結合不同的場景,選擇幾種合適的算法進行不同策略的算法加權混合使用。
3? 推薦算法問題的解決
3.1? 冷啟動問題
(1)提供非個性化的推薦:給新用戶首先提供收藏榜、排行榜等多樣化化數據,用戶進行多次篩選,等到積累了一定的用戶數據和行為時再推薦。
(2)利用用戶的注冊信息:包括性別、年齡、職業等數據,并且提供多種注冊與登錄方式,如利用社交賬號登錄,這可以在用戶授權的情況下導入該用戶在不同社交賬號上的一些個性化社交數據,利用已經構建的用戶畫像進行冷啟動。
(3)利用用戶的手機等興趣偏好進行冷啟動,如了解用戶手機上安裝了哪些 APP,從而構建更加完整的用戶畫像。
(4)采用專家標注來完善物品信息,以便計算物品相似度、對用戶進行問卷調查。
3.2? 數據稀疏性問題
(1)用戶聚類:把相似的用戶聚類以減少用戶量。融合譜聚類和多因素影響的興趣點推薦方法[2]使用自適應譜聚類方法對用戶進行分組,將組內用戶訪問過的興趣點組成待推薦集合,計算待推薦集合中興趣點的吸引力評分,向用戶推薦評分較高的興趣點,執行效率和準確率均得到提高。
(2)數據降維:使用降維技術對關系矩陣進行壓縮。若干重要數據類型的降維方法研究[3]提出了一種基于分位數距離協方差的充分降維方法,不依賴于線性條件,并且對異方差具有魯棒性,大大提高了模型預測的準確性。
4? 個性化電影推薦方法
本文使用 GroupLens 實驗室收集在明尼蘇達大學的 MovieLens?100K 數據集,包含943個用戶對1682部電影的10000條評分(1~ 5分),使用 train_test_split 函數劃分數據集(訓練集占70%,測試集占30%),并構建用戶?物品矩陣,評價指標選用均方根誤差:
4.1? 基于 item 的協同過濾算法
構建評分矩陣后,我們需要計算兩部電影間相似度,預測指定用戶對指定電影的評分。首先找出與電影 i? id 相似的電影 i? items,然后從這些相似的電影 i? items 中篩選出被用戶 u_id 評分過的電影 u_items,最后結合電影 i? id 與電影 i? items 的相似度和用戶 u? id 對電影 u_items 的評分,預測 u_id 對 i_id 的評分。評分預測公式為:
其中,相似度算法先采用余弦距離計算。最終在訓練集:測試集為3:1 的情況下,訓練集預測 RMSE =3.470,測試集預測 RMSE=3.468,發現均方根誤差很大,
為了減小誤差,需要改變相似度算法采用歐氏距離計算并且增加訓練集比例為4 ∶1,改變后發現訓練集預測 RMSE=3.339,測試集預測 RMSE=3.336,訓練結果略有提升但并不明顯,因而在此例中使用基于 item 的協同過濾推薦系統并不理想。
4.2? 基于 User 的協同過濾算法
基于 User 的協同過濾算法具體實現為:首先找出與用戶 u? id 相似的用戶 u? ids,然后從這些相似的用戶 u_ids 中篩選出對電影 i_id 評分過的用戶 u_items ,最后結合用戶 u? id 與用戶 i? items 的相似度預測用戶 u_id 對電影 i_id 的評分。為了使某一部電影的所有用戶評分一致,需要對所有的用戶評分做歸一化處理。評分預測公式為:
其中,訓練集預測 RMSE=3.163386705146778,測試集預測 RMSE =3.3922642153746834,發現基于 User?CF均方根誤差相較于基于 Item?CF 有了一定提升,改變相似度算法采用歐氏距離計算并且增加訓練集比例為4:1后,訓練集預測 RMSE =3.093,測試集預測 RMSE=3.330。根據結果發現,在基于 User?CF 中,測試集上的預測效果普遍不如在訓練集上的預測結果,但是均比基于 Item?CF 預測效果更好。
4.3? 基于 SVD 的協調過濾算法
SVD 即奇異值分解,其原理為:任意一個 m × n 的矩陣 A 都可以像 A = U ∑ VT 一樣分解,其中得到的 U 是一個 m × m 的方陣(里面的向量是正交的,U里面的向量稱為左奇異向量),∑是一個 m × n 的矩陣(除了對角線的元素都是0 ,對角線上的元素稱為奇異值),V^T 是一個 n × n 的矩陣(里面的向量也是正交的,V 里面的向量稱為右奇異向量),從而可以通過特征值和特征向量求解矩陣特征。評分預測函數p 使用特征向量的點積,因此有:
然而,由于電影評分只在區間[1 ,5],因此預測函數 P 修正為:
最終,在訓練集:測試集為4 ∶1時訓練之后,訓練集預測 RMSE=2.326619342693467,測試集預測 RMSE =2.326619342693467,相較于改進過后的基于 Item?CF 和基于 User?CF,RMSE 由3.33降低至2.33左右,不論是訓練集還是測試集,訓練結果都有明顯提升。
4.4? 三大協同過濾算法結果對比分析
表1 為以上三種推薦算法的 RMSE 實驗結果,根據表1 可以得出總結:基于 User?CF 的相似度矩陣為943×943,遠小于基于 Item?CF 的相似度矩陣1682×1682,并且測試集只有訓練集的四分之一,導致測試集矩陣比訓練集的矩陣小得多。所以,基于 User?CF 推薦系統更適用于用戶少、物品多、時效性較強的場合,并且能夠根據人與人的相似性來發現“驚喜”或推薦新的信息。基于 SVD 的協調推薦算法預測效果突出,唯一的不足就是其難以解釋,但不失為是一種非常好的推薦算法。
5? 結語
首先,本文總結了主流的推薦算法,分析比較了幾種算法的優缺點。然后,論述了基于 item、基于 User、基于 SVD 的三大協同過濾算法,得到其推薦預測效果為 SVD>User>item ,改進分析了三種協同過濾算法的具體實現。最后,針對推薦算法存在的冷啟動和數據稀疏性問題,進行分析并提出了解決方案,筆者將在后續研究中對推薦算法存在的其他問題進行深入探析。
參考文獻:
[1] 吳金李.基于協同過濾的購物網站推薦系統研究與實現[D].鎮江:江蘇大學,2017.
[2] 郭蕾,劉文菊,王賾,等.融合譜聚類和多因素影響的興趣點推薦方法[ J/OL].[2022?05?12].http://kns.cnki.net/ kcms/detail/10.1478.G2.20220228.2021.004.html.
[3] 程浩洋.若干重要數據類型的降維方法研究[ D].合肥:中國科學技術大學,2021.
作者簡介:
宋龍生(2000—) ,本科,研究方向:計算機軟件開發。王家樂(2001— ),本科,研究方向:計算機軟件開發。
倪勝巧(1982—) ,博士,副教授,研究方向:計算機專業教育、機器學習(通信作者)。