夏景明 劉聰慧
摘 ?要: 為了解決傳統(tǒng)協(xié)同過濾算法數(shù)據(jù)稀疏而導(dǎo)致的推薦不準(zhǔn)確等問題,引入商品屬性值的概念,根據(jù)改進(jìn)后的用戶相似度填充用戶?屬性矩陣,最后對(duì)物品興趣程度及商品屬性評(píng)分和進(jìn)行加權(quán)推薦。通過在電影數(shù)據(jù)集MovieLens上的實(shí)驗(yàn)表明,改進(jìn)后的算法能夠顯著提升推薦準(zhǔn)確率。
關(guān)鍵詞: 協(xié)同過濾; 商品屬性評(píng)分; 用戶興趣評(píng)分; 推薦算法; 混合推薦; 實(shí)驗(yàn)分析
中圖分類號(hào): TN911.1?34; TP183 ? ? ? ? ? ? ? ? ? ? 文獻(xiàn)標(biāo)識(shí)碼: A ? ? ? ? ? ? ? ? ?文章編號(hào): 1004?373X(2020)23?0120?04
Abstract: In order to solve the problem of inaccurate recommendation caused by sparse data in traditional collaborative filtering algorithm, the concept of commodity attribute value is introduced. The user attribute matrix is filled according to the improved user similarity. The degree of interest and commodity attribute is graded and weighted recommendation is carried out. The experiments on movie dataset Movielens show that the improved algorithm can significantly improve the recommendation accuracy.
Keywords: collaborative filtering; commodity attribute score; user interesting score; recommendation algorithm; hybrid recommendation; experiment analysis
0 ?引 ?言
近年來,各個(gè)電商平臺(tái)的發(fā)展推進(jìn)了推薦算法的發(fā)展,協(xié)同過濾算法[1?3]是推薦算法之一。然而數(shù)據(jù)稀疏[4?5]導(dǎo)致推薦不準(zhǔn)確的問題依然存在[6],這些問題一直是專家研究的熱點(diǎn),文獻(xiàn)[7]提出隱藏語義信息的推薦方法對(duì)用戶和項(xiàng)目標(biāo)簽進(jìn)行建模;文獻(xiàn)[8]提出了一種基于信任度的相似性算法來改善推薦算法中數(shù)據(jù)稀疏性問題;文獻(xiàn)[9]通過結(jié)合兩種或兩種以上的混合方法進(jìn)行推薦,以解決冷啟動(dòng)等問題,利用對(duì)物品興趣程度和商品屬性評(píng)分和進(jìn)行加權(quán)推薦。文獻(xiàn)[10]利用基于用戶的協(xié)同過濾算法計(jì)算興趣點(diǎn)的相關(guān)性;文獻(xiàn)[11]提出協(xié)同過濾相似性度量方法改進(jìn)來提高推薦效果。
以上推薦效果有了明顯的改進(jìn),但是卻忽略了對(duì)商品屬性的挖掘。本文通過挖掘商品屬性特征,通過計(jì)算用戶對(duì)包含某一屬性值的商品的打分得到用戶?屬性評(píng)分矩陣;通過分析用戶的屬性對(duì)Pearson公式進(jìn)行改進(jìn),最后對(duì)物品興趣程度和商品屬性評(píng)分和進(jìn)行加權(quán)推薦。
1 ?用戶相似性度量方法
本文對(duì)傳統(tǒng)的User?Based CF算法中的Pearson公式進(jìn)行改進(jìn),Pearson公式如下:
傳統(tǒng)的User?Based CF有以下兩點(diǎn)問題:
1) 用戶很少主動(dòng)對(duì)商品進(jìn)行評(píng)分,數(shù)據(jù)稀疏的問題會(huì)對(duì)用戶相似性的計(jì)算產(chǎn)生很大的影響。
2) 沒有對(duì)商品屬性進(jìn)行挖掘,本文將計(jì)算用戶對(duì)商品屬性喜愛程度來挖掘用戶對(duì)屬性的總體偏好。
2 ?基于商品屬性的協(xié)同過濾改進(jìn)算法的實(shí)現(xiàn)
2.1 ?基于用戶對(duì)屬性評(píng)分的協(xié)同過濾算法改進(jìn)
構(gòu)建用戶?屬性評(píng)分矩陣。根據(jù)用戶?商品評(píng)分?jǐn)?shù)據(jù)、商品屬性數(shù)據(jù)以及用戶評(píng)論商品個(gè)數(shù)計(jì)算用戶對(duì)商品屬性的評(píng)分。
1) 商品屬性矩陣[X]
商品[i]有多種屬性,每種屬性又可以分為多個(gè)屬性。[amn]表示商品[i]第[m]種屬性的第[n]個(gè)屬性,如果該商品有此屬性,則[amn]=1,否則等于0。
2) 用戶?商品屬性值分布
式中:[Puamn]表示用戶[u]對(duì)屬性[amn]的打分;[Iamn]表示具有屬性[amn]的商品;[Iu]表示用戶評(píng)分的商品;[r(I)]表示用戶對(duì)商品[I]的評(píng)分;[rIamn]表示用戶評(píng)價(jià)過的具有[amn]屬性的商品平均評(píng)分,以此得出用戶對(duì)屬性的評(píng)分。
若用戶評(píng)價(jià)過的項(xiàng)目過少,會(huì)造成打分偏差,如用戶A評(píng)價(jià)過商品個(gè)數(shù)[I]過少,卻對(duì)商品打分很高,用戶就會(huì)對(duì)所有的該商品的屬性有很高的評(píng)分,忽略了用戶評(píng)論數(shù)量。[P]表示用戶評(píng)論過的商品的數(shù)量,[Q]表示一共的個(gè)數(shù)。最終得到用戶?商品屬性值矩陣[R]。
2.2 ?基于用戶特征的用戶相似度計(jì)算改進(jìn)
用戶屬性中引入了性別、年齡、職業(yè)屬性。用戶?屬性矩陣中,[U]表示用戶集合,[U={u1,u2,…,u}],[F]表示用戶屬性的集合,用戶[U]的屬性可以表示為[f={fu1,fu2,…,fun}]。
1) 用戶相似度計(jì)算
[Sim(u,v)]是Pearson公式,用于計(jì)算用戶相似度,將用戶的年齡、職業(yè)、性別屬性和Pearson公式進(jìn)行加權(quán)混合,改進(jìn)后的公式[simim(u,v)]如下:
式中:[Pred(u,i)]是用戶[u]對(duì)商品[i]的評(píng)分;[ru]是用戶[u]評(píng)價(jià)過商品的平均分;[rvi]表示鄰居用戶[v]對(duì)[i]的評(píng)分;[rv]表示用戶[v]所評(píng)價(jià)商品的平均評(píng)分;[amn∈IPuamn]表示用戶[u]對(duì)商品[i]的所有屬性[amn]相加得到用戶[u]對(duì)商品[i]的評(píng)分;[a]表示權(quán)重,[a∈[0,1]]。
2.3 ?基于項(xiàng)目屬性的協(xié)同過濾算法改進(jìn)流程
輸入:商品屬性矩陣[X],用戶?商品評(píng)分矩陣
輸出:目標(biāo)用戶推薦列表
Step1:隨機(jī)將80%用戶?商品評(píng)分矩陣作為訓(xùn)練集,20%作為測(cè)試集;
Step2:利用式(2)將用戶?商品評(píng)分矩陣和商品屬性矩陣轉(zhuǎn)化為用戶?屬性矩陣;
Step3:進(jìn)行用戶相似性改進(jìn),具體見式(3);
Step4:利用相似用戶對(duì)此用戶屬性矩陣[R]進(jìn)行填充,見式(4);
Step5:進(jìn)行用戶推薦,目標(biāo)用戶對(duì)商品的評(píng)分是目標(biāo)商品[i]通過鄰居得到的預(yù)測(cè)評(píng)分和目標(biāo)用戶對(duì)該商品的屬性值的和加權(quán)得到最后的預(yù)測(cè)評(píng)分,具體見式(5)。
3 ?實(shí)驗(yàn)分析
3.1 ?數(shù)據(jù)集
實(shí)驗(yàn)采用MovieLens數(shù)據(jù)集,有用戶評(píng)分信息、用戶信息等。本文選用電影內(nèi)容和電影地區(qū)屬性。電影一共有18個(gè)屬性:喜劇、兒童劇等;電影的地區(qū)有:美國、中國、英國等;用戶的屬性有:性別、年齡、職業(yè)。隨機(jī)將80%用戶?商品評(píng)分矩陣作為訓(xùn)練集,20%作為測(cè)試集。
數(shù)據(jù)集選取1 000個(gè)用戶,100 210條評(píng)分?jǐn)?shù)據(jù),3 952個(gè)電影數(shù)據(jù),如表1所示。
3.2 ?實(shí)驗(yàn)環(huán)境
實(shí)驗(yàn)環(huán)境是Windows 7操作系統(tǒng),工具是Pycharm,語言是Python。
3.3 ?評(píng)估指標(biāo)
1) [F]值是為了平衡準(zhǔn)確率和召回率兩者之間的結(jié)果,將準(zhǔn)確率和召回率進(jìn)行混合。定義準(zhǔn)確率Precision、召回率Recall和[F]如下:
3.4 ?實(shí)驗(yàn)結(jié)果分析
3.4.1 ?參數(shù)值的確定
求改進(jìn)后的用戶相似度權(quán)重值[a1],[a2],[a3],式(5)的[a]初始定為0.5,后續(xù)根據(jù)實(shí)驗(yàn)進(jìn)行調(diào)整。由表2可以看出,在[a1],[a2],[a3]值為0.25時(shí),MAE取得最小值,比Pearson公式的MAE下降了4%。
在最后計(jì)算目標(biāo)用戶商品預(yù)測(cè)打分時(shí),加入了權(quán)重[a],[a]在[0,1]之間,用戶相似度權(quán)重值[a1],[a2],[a3]等于0.25,實(shí)驗(yàn)結(jié)果如圖1所示。[a]值在0~0.4,MAE的值逐漸下降,在[a]為0.4時(shí)得到最小的MAE值;從0.4~1.0之間MAE值逐漸上升;當(dāng)[a]=0.4時(shí),MAE最小。
3.4.2 ?鄰居值和推薦個(gè)數(shù)的確定
改進(jìn)后的算法new與Pearson,Jaccard的MAE和[F]值對(duì)比,結(jié)果如圖2,圖3所示。圖2中,改進(jìn)后的算法最優(yōu),鄰居數(shù)為35時(shí),得MAE最小值為0.75。圖3中,改進(jìn)后的算法最優(yōu),推薦個(gè)數(shù)在15~20時(shí),[F]值達(dá)到最大。
4 ?結(jié) ?語
本文通過提取用戶屬性和傳統(tǒng)計(jì)算用戶相似度的算法進(jìn)行加權(quán)得到改進(jìn)后的用戶相似度計(jì)算方法,再通過用戶相似度填充用戶?屬性評(píng)分的稀疏矩陣,最后給目標(biāo)用戶推薦商品時(shí),將鄰居用戶推薦商品的分?jǐn)?shù)和用戶自身對(duì)商品的評(píng)分混合加權(quán)得到最終推薦商品列表,通過實(shí)驗(yàn)表明,本文改進(jìn)后的協(xié)同過濾算法較傳統(tǒng)的協(xié)同過濾算法在推薦準(zhǔn)確度上有明顯的提高。
注:本文通訊作者為劉聰慧。
參考文獻(xiàn)
[1] 孔艷莉.基于協(xié)同過濾算法的個(gè)性化推薦技術(shù)研究[D].北京:北京工業(yè)大學(xué),2016.
[2] 項(xiàng)亮.推薦系統(tǒng)實(shí)踐[M].北京:人民郵電出版社,2012:51?58.
[3] 張亮.基于協(xié)同過濾與劃分聚類的推薦算法研究[D].長春:吉林大學(xué),2014.
[4] 劉文佳,張駿.改進(jìn)的協(xié)同過濾算法在電影推薦系統(tǒng)中的應(yīng)用[J].現(xiàn)代商貿(mào)工業(yè),2018(17):59?62.
[5] 郭寧寧,王寶亮,侯永宏,等.融合社交網(wǎng)絡(luò)特征的協(xié)同過濾推薦算法[J].計(jì)算機(jī)科學(xué)與探索,2018,12(2):208?217.
[6] KIM S?C, SUNG K?J, PARK C?S, et al. Improvement of collaborative filtering using rating normalization [J]. Multimedia tools and applications, 2016, 75(9): 4957?4968.
[7] CHEN Chaochao, ZHENG Xiaolin, WANG Yan, et al. Capturing semantic correlation for item recommendation in tagging systems [C]// Proceedings of the 30th Conference on Artificial Intelligence. Phoenix, Arizona: AAAI, 2016: 108?114.
[8] CHEN Hao, LI Zhongkun, HU Wei. An improved collaborative recommendation algorithm based on optimized user similarity [J]. The journal of supercomputing, 2016, 72(7): 2565?2578.
[9] COVINGTO P, ADAM S. Deep neural networks for YouTube recommendations [C]// Proceedings of the 10th ACM Conference on Recommender Systems. Boston, MA, USA: ACM, 2016: 191?198.
[10] CHEN Xuefeng, ZENG Yifeng, CONG Gao, et al. On information coverage for location category based point?of?interest recommendation [C]// Twenty?ninth AAAI Conference on Artificial Intelligence. Austin, Texas, USA: AAAI Press, 2015: 37?43.
[11] AHN H J. A new similarity measure for collaborative filtering to alleviate the new user cold?starting problem [J]. Information sciences, 2008, 178(1): 37?51.
[12] 賀懷清,計(jì)瑜,惠康華,等.一種基于稀疏分段的協(xié)同過濾推薦算法[J].現(xiàn)代電子技術(shù),2019,42(9):90?94.
[13] 楊麗麗,袁浩浩.基于組合優(yōu)化理論的協(xié)同過濾推薦算法[J].現(xiàn)代電子技術(shù),2018,41(1):139?142.