宋龍生 王家樂(lè) 倪勝巧
摘要:信息過(guò)載的問(wèn)題愈發(fā)嚴(yán)重在大數(shù)據(jù)時(shí)代針對(duì)不同用戶(hù)提高電影推薦系統(tǒng)的推薦性能一直存在巨大的挑戰(zhàn)為了有效地解決信息過(guò)載和用戶(hù)體驗(yàn)滿(mǎn)意度低的問(wèn)題需要選擇合適的個(gè)性化推薦算法文章概述了主流的機(jī)器學(xué)習(xí)推薦算法并通過(guò)實(shí)驗(yàn)比較分析了各算法的優(yōu)缺點(diǎn)針對(duì)推薦算法普遍存在的冷啟動(dòng)和數(shù)據(jù)稀疏性問(wèn)題提出了相應(yīng)的解決方案
關(guān)鍵詞:電影推薦;協(xié)同過(guò)濾(CF);冷啟動(dòng);奇異值分解(SVD)
中圖法分類(lèi)號(hào):TP391文獻(xiàn)標(biāo)識(shí)碼: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? 引言
近年來(lái),隨著互聯(lián)網(wǎng)的飛速發(fā)展,影視產(chǎn)業(yè)的數(shù)量和種類(lèi)激增且發(fā)展迅猛,“電影過(guò)載”的問(wèn)題愈發(fā)嚴(yán)重,導(dǎo)致用戶(hù)尋找自己喜歡的電影需要浪費(fèi)很多時(shí)間。因此,在互聯(lián)網(wǎng)信息過(guò)載和多數(shù)用戶(hù)需求不明確的時(shí)代背景下,如何在海量的影視資源中,針對(duì)不同用戶(hù)提供個(gè)性化的推薦是亟待解決的問(wèn)題。
2? 推薦算法分類(lèi)
(1)基于流行度的推薦算法
流行度即熱度,基于流行度的推薦算法最常見(jiàn)的就是將各個(gè)榜單中的熱點(diǎn)內(nèi)容(微博熱搜、TopN 商品)推薦給用戶(hù),流行度的衡量有多種方式,如在一段時(shí)間內(nèi)某個(gè)商品頁(yè)面或者電影的點(diǎn)擊率、觀看率、完播率、用戶(hù)的互動(dòng)/反饋次數(shù)等。社會(huì)因素和從眾心理因素也可能影響物品的流行度。
(2)基于內(nèi)容的推薦算法
基于內(nèi)容的推薦系統(tǒng)來(lái)源于最早的信息檢索系統(tǒng),它的主要原理是首先根據(jù)物品的元數(shù)據(jù),抽取出一些特征來(lái)表示該物品(item),然后根據(jù)用戶(hù)過(guò)去的特征數(shù)據(jù),來(lái)學(xué)習(xí)出此用戶(hù)的喜好特征(profile),最后通過(guò)比較前兩步得到的用戶(hù) profile 與候選 item 的特征數(shù)據(jù),為該用戶(hù)推薦一組相關(guān)性最大的 item。
(3)基于協(xié)同過(guò)濾的推薦算法
協(xié)同過(guò)濾推薦算法在推薦系統(tǒng)中被廣泛應(yīng)用,其一般用于用戶(hù)給物品進(jìn)行評(píng)分的系統(tǒng)中,通過(guò)用戶(hù)對(duì)物品的評(píng)分來(lái)學(xué)習(xí)并刻畫(huà)用戶(hù)喜好。目前,協(xié)同過(guò)濾推薦系統(tǒng)分為基于用戶(hù)的協(xié)同過(guò)濾推薦( User?Based CF)和基于物品的協(xié)同過(guò)濾推薦( Item?Based CF)[ 1] 。
(4)基于模型的推薦算法
基于模型的推薦方法有很多,常用的模型包括 Aspect? Model ,pLSA ,LDA 、聚類(lèi)、 SVD ,Matrix Factorization ,LR,GBDT 等,雖然其訓(xùn)練時(shí)間更長(zhǎng),但是推薦結(jié)果準(zhǔn)確率更高,結(jié)合特征工程則可以達(dá)到更好的效果。
(5)基于關(guān)聯(lián)規(guī)則的推薦算法
基于關(guān)聯(lián)規(guī)則的挖掘算法主要從 Apriori 和 FP?Growth兩個(gè)算法發(fā)展而來(lái)。該算法的優(yōu)勢(shì)是通過(guò)較少的用戶(hù)反饋量就可以學(xué)習(xí)過(guò)濾到機(jī)器難以自動(dòng)分析的內(nèi)容,提高了內(nèi)容分析的精確性。劣勢(shì)是存在冷啟動(dòng)和稀疏性的問(wèn)題,容易過(guò)度推薦熱點(diǎn)物品。
(6)混合推薦算法
在現(xiàn)實(shí)生產(chǎn)應(yīng)用中,推薦系統(tǒng)基本不會(huì)使用單一的推薦算法來(lái)完成推薦任務(wù),因此需要具體分析與結(jié)合不同的場(chǎng)景,選擇幾種合適的算法進(jìn)行不同策略的算法加權(quán)混合使用。
3? 推薦算法問(wèn)題的解決
3.1? 冷啟動(dòng)問(wèn)題
(1)提供非個(gè)性化的推薦:給新用戶(hù)首先提供收藏榜、排行榜等多樣化化數(shù)據(jù),用戶(hù)進(jìn)行多次篩選,等到積累了一定的用戶(hù)數(shù)據(jù)和行為時(shí)再推薦。
(2)利用用戶(hù)的注冊(cè)信息:包括性別、年齡、職業(yè)等數(shù)據(jù),并且提供多種注冊(cè)與登錄方式,如利用社交賬號(hào)登錄,這可以在用戶(hù)授權(quán)的情況下導(dǎo)入該用戶(hù)在不同社交賬號(hào)上的一些個(gè)性化社交數(shù)據(jù),利用已經(jīng)構(gòu)建的用戶(hù)畫(huà)像進(jìn)行冷啟動(dòng)。
(3)利用用戶(hù)的手機(jī)等興趣偏好進(jìn)行冷啟動(dòng),如了解用戶(hù)手機(jī)上安裝了哪些 APP,從而構(gòu)建更加完整的用戶(hù)畫(huà)像。
(4)采用專(zhuān)家標(biāo)注來(lái)完善物品信息,以便計(jì)算物品相似度、對(duì)用戶(hù)進(jìn)行問(wèn)卷調(diào)查。
3.2? 數(shù)據(jù)稀疏性問(wèn)題
(1)用戶(hù)聚類(lèi):把相似的用戶(hù)聚類(lèi)以減少用戶(hù)量。融合譜聚類(lèi)和多因素影響的興趣點(diǎn)推薦方法[2]使用自適應(yīng)譜聚類(lèi)方法對(duì)用戶(hù)進(jìn)行分組,將組內(nèi)用戶(hù)訪(fǎng)問(wèn)過(guò)的興趣點(diǎn)組成待推薦集合,計(jì)算待推薦集合中興趣點(diǎn)的吸引力評(píng)分,向用戶(hù)推薦評(píng)分較高的興趣點(diǎn),執(zhí)行效率和準(zhǔn)確率均得到提高。
(2)數(shù)據(jù)降維:使用降維技術(shù)對(duì)關(guān)系矩陣進(jìn)行壓縮。若干重要數(shù)據(jù)類(lèi)型的降維方法研究[3]提出了一種基于分位數(shù)距離協(xié)方差的充分降維方法,不依賴(lài)于線(xiàn)性條件,并且對(duì)異方差具有魯棒性,大大提高了模型預(yù)測(cè)的準(zhǔn)確性。
4? 個(gè)性化電影推薦方法
本文使用 GroupLens 實(shí)驗(yàn)室收集在明尼蘇達(dá)大學(xué)的 MovieLens?100K 數(shù)據(jù)集,包含943個(gè)用戶(hù)對(duì)1682部電影的10000條評(píng)分(1~ 5分),使用 train_test_split 函數(shù)劃分?jǐn)?shù)據(jù)集(訓(xùn)練集占70%,測(cè)試集占30%),并構(gòu)建用戶(hù)?物品矩陣,評(píng)價(jià)指標(biāo)選用均方根誤差:
4.1? 基于 item 的協(xié)同過(guò)濾算法
構(gòu)建評(píng)分矩陣后,我們需要計(jì)算兩部電影間相似度,預(yù)測(cè)指定用戶(hù)對(duì)指定電影的評(píng)分。首先找出與電影 i? id 相似的電影 i? items,然后從這些相似的電影 i? items 中篩選出被用戶(hù) u_id 評(píng)分過(guò)的電影 u_items,最后結(jié)合電影 i? id 與電影 i? items 的相似度和用戶(hù) u? id 對(duì)電影 u_items 的評(píng)分,預(yù)測(cè) u_id 對(duì) i_id 的評(píng)分。評(píng)分預(yù)測(cè)公式為:
其中,相似度算法先采用余弦距離計(jì)算。最終在訓(xùn)練集:測(cè)試集為3:1 的情況下,訓(xùn)練集預(yù)測(cè) RMSE =3.470,測(cè)試集預(yù)測(cè) RMSE=3.468,發(fā)現(xiàn)均方根誤差很大,
為了減小誤差,需要改變相似度算法采用歐氏距離計(jì)算并且增加訓(xùn)練集比例為4 ∶1,改變后發(fā)現(xiàn)訓(xùn)練集預(yù)測(cè) RMSE=3.339,測(cè)試集預(yù)測(cè) RMSE=3.336,訓(xùn)練結(jié)果略有提升但并不明顯,因而在此例中使用基于 item 的協(xié)同過(guò)濾推薦系統(tǒng)并不理想。
4.2? 基于 User 的協(xié)同過(guò)濾算法
基于 User 的協(xié)同過(guò)濾算法具體實(shí)現(xiàn)為:首先找出與用戶(hù) u? id 相似的用戶(hù) u? ids,然后從這些相似的用戶(hù) u_ids 中篩選出對(duì)電影 i_id 評(píng)分過(guò)的用戶(hù) u_items ,最后結(jié)合用戶(hù) u? id 與用戶(hù) i? items 的相似度預(yù)測(cè)用戶(hù) u_id 對(duì)電影 i_id 的評(píng)分。為了使某一部電影的所有用戶(hù)評(píng)分一致,需要對(duì)所有的用戶(hù)評(píng)分做歸一化處理。評(píng)分預(yù)測(cè)公式為:
其中,訓(xùn)練集預(yù)測(cè) RMSE=3.163386705146778,測(cè)試集預(yù)測(cè) RMSE =3.3922642153746834,發(fā)現(xiàn)基于 User?CF均方根誤差相較于基于 Item?CF 有了一定提升,改變相似度算法采用歐氏距離計(jì)算并且增加訓(xùn)練集比例為4:1后,訓(xùn)練集預(yù)測(cè) RMSE =3.093,測(cè)試集預(yù)測(cè) RMSE=3.330。根據(jù)結(jié)果發(fā)現(xiàn),在基于 User?CF 中,測(cè)試集上的預(yù)測(cè)效果普遍不如在訓(xùn)練集上的預(yù)測(cè)結(jié)果,但是均比基于 Item?CF 預(yù)測(cè)效果更好。
4.3? 基于 SVD 的協(xié)調(diào)過(guò)濾算法
SVD 即奇異值分解,其原理為:任意一個(gè) m × n 的矩陣 A 都可以像 A = U ∑ VT 一樣分解,其中得到的 U 是一個(gè) m × m 的方陣(里面的向量是正交的,U里面的向量稱(chēng)為左奇異向量),∑是一個(gè) m × n 的矩陣(除了對(duì)角線(xiàn)的元素都是0 ,對(duì)角線(xiàn)上的元素稱(chēng)為奇異值),V^T 是一個(gè) n × n 的矩陣(里面的向量也是正交的,V 里面的向量稱(chēng)為右奇異向量),從而可以通過(guò)特征值和特征向量求解矩陣特征。評(píng)分預(yù)測(cè)函數(shù)p 使用特征向量的點(diǎn)積,因此有:
然而,由于電影評(píng)分只在區(qū)間[1 ,5],因此預(yù)測(cè)函數(shù) P 修正為:
最終,在訓(xùn)練集:測(cè)試集為4 ∶1時(shí)訓(xùn)練之后,訓(xùn)練集預(yù)測(cè) RMSE=2.326619342693467,測(cè)試集預(yù)測(cè) RMSE =2.326619342693467,相較于改進(jìn)過(guò)后的基于 Item?CF 和基于 User?CF,RMSE 由3.33降低至2.33左右,不論是訓(xùn)練集還是測(cè)試集,訓(xùn)練結(jié)果都有明顯提升。
4.4? 三大協(xié)同過(guò)濾算法結(jié)果對(duì)比分析
表1 為以上三種推薦算法的 RMSE 實(shí)驗(yàn)結(jié)果,根據(jù)表1 可以得出總結(jié):基于 User?CF 的相似度矩陣為943×943,遠(yuǎn)小于基于 Item?CF 的相似度矩陣1682×1682,并且測(cè)試集只有訓(xùn)練集的四分之一,導(dǎo)致測(cè)試集矩陣比訓(xùn)練集的矩陣小得多。所以,基于 User?CF 推薦系統(tǒng)更適用于用戶(hù)少、物品多、時(shí)效性較強(qiáng)的場(chǎng)合,并且能夠根據(jù)人與人的相似性來(lái)發(fā)現(xiàn)“驚喜”或推薦新的信息?;?SVD 的協(xié)調(diào)推薦算法預(yù)測(cè)效果突出,唯一的不足就是其難以解釋?zhuān)皇槭且环N非常好的推薦算法。
5? 結(jié)語(yǔ)
首先,本文總結(jié)了主流的推薦算法,分析比較了幾種算法的優(yōu)缺點(diǎn)。然后,論述了基于 item、基于 User、基于 SVD 的三大協(xié)同過(guò)濾算法,得到其推薦預(yù)測(cè)效果為 SVD>User>item ,改進(jìn)分析了三種協(xié)同過(guò)濾算法的具體實(shí)現(xiàn)。最后,針對(duì)推薦算法存在的冷啟動(dòng)和數(shù)據(jù)稀疏性問(wèn)題,進(jìn)行分析并提出了解決方案,筆者將在后續(xù)研究中對(duì)推薦算法存在的其他問(wèn)題進(jìn)行深入探析。
參考文獻(xiàn):
[1] 吳金李.基于協(xié)同過(guò)濾的購(gòu)物網(wǎng)站推薦系統(tǒng)研究與實(shí)現(xiàn)[D].鎮(zhèn)江:江蘇大學(xué),2017.
[2] 郭蕾,劉文菊,王賾,等.融合譜聚類(lèi)和多因素影響的興趣點(diǎn)推薦方法[ J/OL].[2022?05?12].http://kns.cnki.net/ kcms/detail/10.1478.G2.20220228.2021.004.html.
[3] 程浩洋.若干重要數(shù)據(jù)類(lèi)型的降維方法研究[ D].合肥:中國(guó)科學(xué)技術(shù)大學(xué),2021.
作者簡(jiǎn)介:
宋龍生(2000—) ,本科,研究方向:計(jì)算機(jī)軟件開(kāi)發(fā)。王家樂(lè)(2001— ),本科,研究方向:計(jì)算機(jī)軟件開(kāi)發(fā)。
倪勝巧(1982—) ,博士,副教授,研究方向:計(jì)算機(jī)專(zhuān)業(yè)教育、機(jī)器學(xué)習(xí)(通信作者)。