李偉豪
摘要:隨著互聯(lián)網(wǎng)技術(shù)和數(shù)字媒體的不斷發(fā)展,因?yàn)樾畔①Y源過(guò)載使用戶很難找到自己喜歡的物品,而推薦系統(tǒng)能有效處理該問(wèn)題。文章針對(duì)推薦系統(tǒng)中存在常見的噪聲用戶和冷啟動(dòng)問(wèn)題,提出了基于專家用戶協(xié)同過(guò)濾和奇異值分解(SVD)的混合推薦算法。先對(duì)用戶進(jìn)行專家用戶人工篩選降噪,再利用SVD算法分解后填充專家評(píng)分矩陣,同時(shí)在計(jì)算用戶與專家的相似度時(shí)加入時(shí)間權(quán)重,最終選擇最優(yōu)項(xiàng)目進(jìn)行推薦。最后使用MovieLens數(shù)據(jù)集將本文算法與傳統(tǒng)算法進(jìn)行實(shí)驗(yàn)分析對(duì)比,證明了該算法的有效性。
關(guān)鍵詞:推薦系統(tǒng);專家用戶;SVD;冷啟動(dòng);噪聲用戶;混合推薦算法
中圖分類號(hào):TP391.3? ? ? 文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1009-3044(2022)09-0054-04
1引言
隨著互聯(lián)網(wǎng)信息量不斷增長(zhǎng)以及大數(shù)據(jù)時(shí)代的到來(lái),這對(duì)每個(gè)人的生活都帶來(lái)了影響,為了應(yīng)對(duì)海量的信息光有普通的搜索引擎在很多時(shí)候是達(dá)不到用戶的個(gè)性化需求的。推薦系統(tǒng)在處理信息過(guò)載[1]的問(wèn)題時(shí)會(huì)有較好的效果。推薦系統(tǒng)通過(guò)大數(shù)據(jù)分析、學(xué)習(xí)出用戶的偏好,然后推薦用戶大概率會(huì)喜歡的物品。時(shí)至今日,在很多的領(lǐng)域都能看見推薦系統(tǒng)[2,3]的身影。
協(xié)同過(guò)濾推薦[4,5](Collaborative Filtering, CF)是眾多經(jīng)典推薦算法中的一類。其中基于用戶的協(xié)同推薦算法[6](User-based CF,UCF)其思想是先計(jì)算出用戶之間的相似度,按照相似度大小由高到低排列該用戶的鄰居集合,再依據(jù)得到的鄰居集合來(lái)計(jì)算出各自評(píng)分來(lái)推測(cè)該用戶可能會(huì)喜歡哪個(gè)物品;基于物品的協(xié)同推薦算法[7](Item-based CF,ICF)其思想是先計(jì)算出物品之間的相似度,然后依據(jù)相似度大小由高到低排列出相似物品集,最后把排在前面的相似度高的物品推薦給用戶。但傳統(tǒng)的CF算法中無(wú)論是ICF或是UCF,在面對(duì)現(xiàn)實(shí)世界的稀疏評(píng)分矩陣或是噪聲用戶的影響時(shí),其效果往往不理想。后來(lái)Le[8]等人提出了奇異值矩陣分解方法(singular value decomposition,SVD),該方法通過(guò)降維特征分解原始評(píng)分矩陣,然后在召回階段由稀疏矩陣推算出其他的空缺評(píng)分。
但SVD也存在一些問(wèn)題。舉個(gè)例子,如果有1萬(wàn)個(gè)用戶和1000萬(wàn)條物品的評(píng)分矩陣,我們簡(jiǎn)單估計(jì)下它需要的內(nèi)存。假設(shè)每個(gè)評(píng)分用4個(gè)字節(jié)表示,如果采用SVD分解,將這個(gè)完整的矩陣加載到內(nèi)存中,大概需要372G內(nèi)存。這對(duì)內(nèi)存有一定要求。而通過(guò)提取專家用戶評(píng)分矩陣可以有效緩解這一問(wèn)題,且專家用戶評(píng)價(jià)的物品類型廣,一些冷門的物品也會(huì)進(jìn)行評(píng)價(jià),由此有效緩解了冷啟動(dòng)問(wèn)題。同時(shí)因?yàn)槊课粚<矣脩舻脑u(píng)價(jià)數(shù)量大,能給出更加客觀的評(píng)分,能對(duì)評(píng)分有效降噪。因此,本文提出了基于SVD模型和專家用戶協(xié)同過(guò)濾的混合推薦算法(SVD-ECF),算法首先設(shè)置閾值挑選專業(yè)影評(píng)人,組成專家評(píng)分矩陣,然后利用SVD技術(shù)對(duì)原始評(píng)分矩陣進(jìn)行降維分解之后,利用隨機(jī)梯度下降法[9]學(xué)習(xí)并填充空白評(píng)分,得到近似評(píng)分矩陣,在計(jì)算用戶與專家的相似度時(shí)加入時(shí)間權(quán)重,挑選出與用戶相似的專家近鄰,最終基于專家近鄰對(duì)物品評(píng)分的高低進(jìn)行推薦。
2相關(guān)工作
2.1協(xié)同過(guò)濾推薦算法
普通的協(xié)同過(guò)濾推薦算法普遍采用了KNN算法[10]預(yù)測(cè)用戶評(píng)分。這種算法原理是:首先找出k個(gè)最近鄰居(可以是基于用戶,也可以是基于物品),預(yù)測(cè)出用戶對(duì)物品的評(píng)價(jià)。再依據(jù)預(yù)測(cè)的評(píng)價(jià)得分高低排列出推薦列表。協(xié)同過(guò)濾算法可被分為基于用戶的協(xié)同過(guò)濾算法(UCF)和基于物品的協(xié)同過(guò)濾算法(ICF)。本文主要是對(duì)UCF以及SVD進(jìn)行混合和改進(jìn),ICF就不是本文的重點(diǎn)了。
2.1.1基于用戶的協(xié)同過(guò)濾算法
“物以類聚,人以群分”這句俗話能較為形象的描述UCF的原理。在基于用戶的協(xié)同過(guò)濾算法中用戶集為U={u,u,u,...,u}m表示用戶數(shù)量,物品集為I={i,i,i,...,i}n表示物品數(shù)量,二者構(gòu)成一個(gè)R[m×n]的用戶評(píng)分矩陣,根據(jù)這個(gè)評(píng)分矩陣計(jì)算并找出用戶的相似鄰居,關(guān)于相似度的計(jì)算采用的是常見的皮爾森相關(guān)性的相似度計(jì)算法[11],方法如下:
2.3 專家用戶
專家用戶的概念在2009年由Amatriain等人提出[14]。專家用戶的定義如下:某個(gè)領(lǐng)域,他們能客觀的給出深思熟慮的、波動(dòng)小的、有理有據(jù)的評(píng)價(jià)(打分)。不同于普通用戶集的噪聲大,專家在評(píng)分時(shí)候更加客觀、公正,使得物品的評(píng)分反映更加真實(shí);而且因?yàn)閷<沂菍I(yè)影評(píng)人,很多冷門物品也會(huì)評(píng)價(jià),無(wú)論他本人是否關(guān)注這類物品,如此一來(lái)能有效緩解新物品的冷啟動(dòng)問(wèn)題;除此之外專家評(píng)分?jǐn)?shù)據(jù)相較于普通用戶評(píng)分?jǐn)?shù)據(jù)更加的稠密。在現(xiàn)實(shí)生活中,相較于普通用戶的推薦,大家更樂(lè)意聽取權(quán)威的專家推薦。國(guó)內(nèi)的著名電影網(wǎng)站豆瓣猜也充分利用了專家用戶這種思想。
3基于SVD模型和專家用戶協(xié)同過(guò)濾的層疊式推薦算法
3.1尋找專家
首先設(shè)置一個(gè)閾值α,依據(jù)數(shù)據(jù)集里的用戶—項(xiàng)目評(píng)分矩陣計(jì)算出每個(gè)用戶評(píng)分總數(shù),然后按照評(píng)分?jǐn)?shù)目總數(shù)從大到小依次排序,剔除掉總評(píng)分?jǐn)?shù)目小于預(yù)定閾值α的用戶們,最終剩下的用戶們則組成專家用戶集。
3.2改進(jìn)基于用戶相似度計(jì)算
目前,有關(guān)基于用戶的相似度的計(jì)算方法大多數(shù)都沒(méi)有考慮引入一個(gè)時(shí)間權(quán)重,而在現(xiàn)實(shí)世界中,人們感興趣的點(diǎn)往往會(huì)跟隨時(shí)間改變。比如很多孩子年少時(shí)愛看青春偶像劇,長(zhǎng)大后可能更愛看家庭劇。如果還是按照很久以前用戶的喜好進(jìn)行推薦,結(jié)果很可能不如人意。一個(gè)實(shí)用的推薦系統(tǒng)應(yīng)該推薦給用戶他們現(xiàn)在需要的東西,或者現(xiàn)在正感興趣的東西。出于這樣的考慮,本文決定在基于用戶之間的相似度計(jì)算時(shí),引入時(shí)間權(quán)重。使得最近評(píng)價(jià)過(guò)或者購(gòu)買過(guò)的物品有著較高的權(quán)重,很久以前評(píng)價(jià)過(guò)或者購(gòu)買過(guò)的物品有著較低的權(quán)重。
基于上述討論,本文將利用指數(shù)函數(shù)來(lái)設(shè)計(jì)遺忘函數(shù),用來(lái)表示時(shí)間變化量對(duì)用戶喜好的影響程度[15]:
3.3基于SVD模型和專家用戶協(xié)同過(guò)濾的層疊式過(guò)濾推薦算法及模型
在實(shí)際進(jìn)行推薦的過(guò)程中,現(xiàn)實(shí)世界噪聲用戶多且傳統(tǒng)協(xié)同過(guò)濾算法會(huì)遇到數(shù)據(jù)稀疏以及冷啟動(dòng)等問(wèn)題,這些問(wèn)題都會(huì)影響到最終的推薦結(jié)果質(zhì)量。本文提出一種基于SVD模型和專家用戶協(xié)同過(guò)濾的混合推薦算法:首先對(duì)用戶數(shù)據(jù)集進(jìn)行篩選,設(shè)置一個(gè)閾值α,只留下評(píng)分總條目個(gè)數(shù)大于等于α的專家用戶。然后對(duì)剩下的項(xiàng)目評(píng)分矩陣A使用SVD矩陣分解技術(shù)得到三個(gè)矩陣分別為U、S、V,再對(duì)對(duì)角矩陣S進(jìn)行降維處理,并得到對(duì)應(yīng)的降維后的用戶矩陣U和項(xiàng)目矩陣V。 再用隨機(jī)隨機(jī)梯度下降法填充得到最終的近似矩陣R。最后在近似矩陣R中加入時(shí)間權(quán)重改進(jìn)用戶與專家的相似度計(jì)算公式,得到預(yù)測(cè)評(píng)分P′。如此一來(lái)利用SVD技術(shù)解決了由傳統(tǒng)協(xié)同過(guò)濾算法的數(shù)據(jù)稀疏性問(wèn)題帶來(lái)的預(yù)測(cè)效率低問(wèn)題,專家用戶有效緩解冷啟動(dòng)等問(wèn)題,減少了噪聲用戶。同時(shí)也彌補(bǔ)了SVD矩陣分解帶來(lái)的解釋性不強(qiáng)等問(wèn)題,提高了精度。具體算法描述如下:
輸入:用戶項(xiàng)目評(píng)分?jǐn)?shù)據(jù)集
4實(shí)驗(yàn)結(jié)果和分析
4.1實(shí)驗(yàn)數(shù)據(jù)
本文采用Movielens數(shù)據(jù)集[16],此數(shù)據(jù)集由美國(guó)明尼蘇達(dá)大學(xué)的Grouplens實(shí)驗(yàn)室提供,此數(shù)據(jù)集是十分經(jīng)典的用戶電影評(píng)分?jǐn)?shù)據(jù)集。本數(shù)據(jù)集里有100 004條評(píng)分、943位用戶、以及9743個(gè)電影,其中每位用戶至少評(píng)價(jià)過(guò)20部電影。用戶評(píng)分范圍為1~5分,0分表示未對(duì)該電影進(jìn)行評(píng)價(jià),評(píng)分等級(jí)分為10級(jí),間隔區(qū)間為0.5。
4.2評(píng)價(jià)標(biāo)準(zhǔn)
通過(guò)對(duì)比算法的預(yù)測(cè)評(píng)分與真實(shí)評(píng)分能評(píng)價(jià)出一個(gè)算法的好壞,在需要向用戶展示預(yù)估評(píng)分時(shí)這個(gè)指標(biāo)尤為重要。預(yù)測(cè)評(píng)分準(zhǔn)確度的指標(biāo)有很多,本質(zhì)上都是比較算法預(yù)測(cè)評(píng)分與實(shí)際評(píng)分的差值大小。如果預(yù)測(cè)評(píng)分與真實(shí)評(píng)分的差值大,那么推薦系統(tǒng)的精確度就低,反之推薦系統(tǒng)的精確度就高。本文將采用較為經(jīng)典的平均絕對(duì)誤差(Mean Absolute Error,MAE)與準(zhǔn)確性(precision)[17]來(lái)衡量SVD-ECF算法的精確性。
4.3實(shí)驗(yàn)結(jié)果分析
4.3.1 參數(shù)分析
1)閾值α的選取
首先我們對(duì)Movielen數(shù)據(jù)集上所有用戶進(jìn)行了評(píng)分?jǐn)?shù)量統(tǒng)計(jì),如圖1所示。
由圖1可以看出用戶的評(píng)分?jǐn)?shù)量集中在50條至250條,只有大約100多人能夠?qū)﹄娪霸u(píng)價(jià)超過(guò)250條。
由于專家用戶的選取是本文的第一步工作,閾值α的選取十分重要,如果閾值α的值過(guò)大或過(guò)小都會(huì)對(duì)推薦系統(tǒng)的有效性產(chǎn)生影響,所有實(shí)驗(yàn)第一步要確定閾值α的大小。
實(shí)驗(yàn)結(jié)果如圖2所示。
由圖2實(shí)驗(yàn)結(jié)果可知,隨著閾值α的不斷增加,MAE值先不斷下降至閾值α=160時(shí)去到最小值,之后隨著閾值α的增加MAE值也隨著增加。這是因?yàn)樽畛蹼S著α值的增大,剔除了很多噪聲用戶使得MAE值不斷下降,但在α閥值高于160之后,篩選出的用戶量也因此變得很少,因?yàn)橛?xùn)練數(shù)據(jù)量不足導(dǎo)致MAE上升。因此本文選擇閾值α=160時(shí)進(jìn)行實(shí)驗(yàn)。
2)保留維度k值選取
本文使用了SVD算法對(duì)專家-項(xiàng)目矩陣進(jìn)行了降維,因此k值的選取尤為重要,k值若是太小,則有可能漏掉重要特征,使得推薦精準(zhǔn)性下降。但k值若是太大降維效果就不明顯了。應(yīng)此本文對(duì)k值的選擇進(jìn)行了實(shí)驗(yàn),實(shí)驗(yàn)中縱坐標(biāo)代表MAE的值,橫坐標(biāo)代表k值所占維度比例:
由圖3可知,在k值所占維度比例為0~0.3時(shí),所丟失了過(guò)多的特征信息,因此導(dǎo)致MAE值偏高,當(dāng)k值占比達(dá)到0.4時(shí),算法性能逐漸穩(wěn)定。本文選取k值占比為0.4時(shí)與其他傳統(tǒng)推薦算法進(jìn)行比較[18]。
4.3.2 性能對(duì)比與分析
如圖4所示,SVD-ECF在MovieLens數(shù)據(jù)集上的MAE值總是低于UCF、ICF,UCF與ICD算法雖然隨著鄰居數(shù)量的增加使得MAE的值不斷下降,但最終下降趨勢(shì)平緩下來(lái),并在鄰居用戶大于25,MAE反而有些上升,這是因?yàn)橛脩魯?shù)量增多之后用戶相似度較低的用戶也加入其中,使得MAE上升,總體來(lái)說(shuō)算法性能都沒(méi)有超過(guò)本文算法。而傳統(tǒng)SVD算法在鄰居數(shù)量小于15時(shí)MAE低于本文算法,但隨著鄰居數(shù)量增多,SVD-ECF表現(xiàn)比傳統(tǒng)SVD算法好。但僅僅依靠一個(gè)評(píng)估標(biāo)準(zhǔn)不能完全確定一個(gè)推薦系統(tǒng)的好壞,因此本文采用precision指標(biāo)繼續(xù)進(jìn)行對(duì)比。
如圖5所示,隨著鄰居數(shù)量增加,UCF與ICF的精確性持續(xù)上漲,在鄰居數(shù)量達(dá)到30時(shí),上漲趨勢(shì)明顯變緩,最終沒(méi)能超過(guò)SVD和本文算法,而SVD-ECF與SVD在k值占比都為0.4時(shí),SVD-ECF當(dāng)鄰居個(gè)數(shù)大于20之后精確度更高。 結(jié)果表明,SVD-ECF算法顯然能夠獲得比其他傳統(tǒng)算法更好的推薦結(jié)果。
5結(jié)論
本文針對(duì)現(xiàn)實(shí)世界中噪聲用戶過(guò)多,傳統(tǒng)過(guò)濾算法會(huì)受到數(shù)據(jù)稀疏、冷啟動(dòng)等問(wèn)題的影響,提出了一種基于SVD模型和專家用戶的層疊過(guò)濾推薦算法,該算法通過(guò)設(shè)置閾值挑選專家用戶,然后使用SVD算法分解專家-項(xiàng)目評(píng)分矩陣,并加入時(shí)間權(quán)重優(yōu)化相似度計(jì)算。實(shí)驗(yàn)證明本文算法能夠有效提高推薦準(zhǔn)確度。SVD算法需要進(jìn)行矩陣分解,計(jì)算復(fù)雜度高,在大規(guī)模的數(shù)據(jù)上,SVD分解會(huì)降低程序的速度。SVD分解可以在程序調(diào)入時(shí)運(yùn)行一次。在大型系統(tǒng)中,SVD每天運(yùn)行一次或者其頻率更低,并且還要離線運(yùn)行,專家集正好精煉了數(shù)據(jù)集,且有效緩解了噪聲與冷啟動(dòng)問(wèn)題。但本文算法需要大量專家用戶的數(shù)據(jù),能否保護(hù)用戶的隱私的同時(shí)收集數(shù)據(jù)是之后的工作需要解決的問(wèn)題。
參考文獻(xiàn):
[1] 藺豐奇,劉益.信息過(guò)載問(wèn)題研究述評(píng)[J].情報(bào)理論與實(shí)踐,2007,30(5):710-714.
[2] Kunaver M,Po?rl T.Diversity in recommender systems - A survey[J].Knowledge-Based Systems,2017,123:154-162.
[3] 劉建國(guó),周濤,汪秉宏.個(gè)性化推薦系統(tǒng)的研究進(jìn)展[J].自然科學(xué)進(jìn)展,2009,19(1):1-15.
[4] Fu M S,Qu H,Yi Z,et al.A novel deep learning-based collaborative filtering model for recommendation system[J].IEEE Transactions on Cybernetics,2019,49(3):1084-1096.
[5] Kwon K,Cho J,Park Y.Multidimensional credibility model for neighbor selection in collaborative recommendation[J].Expert Systems With Applications,2009,36(3):7114-7122.
[6] Zhao Z D,Shang M S.User-based collaborative-filtering recommendation algorithms on hadoop[C]//2010 Third International Conference on Knowledge Discovery and Data Mining.January 9-10,2010,Phuket,Thailand.IEEE,2010:478-481.
[7] 汪從梅,王成良,徐玲.自適應(yīng)用戶的Item-based協(xié)同過(guò)濾推薦算法[J].計(jì)算機(jī)應(yīng)用研究,2013,30(12):3606-3609.
[8] Le B H,Mori K,Thawonmas R.An extension for bounded-SVD—A matrix factorization method with bound constraints for recommendersystems[J].Journal of Information Processing,2016,24(2):314-319.
[9] Gemulla R,NijkampE,Haas P J,et al.Large-scale matrix factorization with distributed stochastic gradient descent[C]//Proceedings of the 17th ACM SIGKDD international conference on Knowledge discovery and data mining - KDD '11.August21-24,2011.SanDiego,California,USA.NewYork:ACM Press,2011.
[10] Zhang M L,Zhou Z H.ML-KNN:a lazy learning approach to multi-label learning[J].Pattern Recognition,2007,40(7):2038-2048.
[11] Dow H E, Li R, Potter T W. Computer-based method: US,1994.
[12] Barragáns-Martínez A B,Costa-Montenegro E,Burguillo J C,et al.A hybrid content-based and item-based collaborative filtering approach to recommend TV programs enhanced with singular value decomposition[J].Information Sciences,2010,180(22):4290-4311.
[13] ZhouX,HeJ,Huang G Y,et al.A personalized recommendation algorithm based on approximating the singular value decomposition (ApproSVD)[C]//2012 IEEE/WIC/ACM International Conferences on Web Intelligence and Intelligent Agent Technology.December 4-7,2012,Macao,China.IEEE,2012:458-464.
[15] 史艷翠,戴浩男,石和平,等.一種基于時(shí)間戳的新聞推薦模型[J].計(jì)算機(jī)應(yīng)用與軟件,2016,33(6):40-43.
[16] HarperFM,KonstanJA.The MovieLensdatasets[J].ACM Transactions on Interactive Intelligent Systems,2016,5(4):1-19.
[17] Herlocker J L,KonstanJ A,Terveen LG,et al.Evaluating collaborative filtering recommender systems[J].ACM Transactions on Information Systems,2004,22(1):5-53.
[18] 劉晴晴,羅永龍,汪逸飛,等.基于SVD填充的混合推薦算法[J].計(jì)算機(jī)科學(xué),2019,46(S1):468-472.
【通聯(lián)編輯:王力】