夏景明 劉聰慧
摘 ?要: 為了解決傳統(tǒng)協(xié)同過濾算法數(shù)據(jù)稀疏而導(dǎo)致的推薦不準(zhǔn)確等問題,引入商品屬性值的概念,根據(jù)改進(jìn)后的用戶相似度填充用戶?屬性矩陣,最后對物品興趣程度及商品屬性評分和進(jìn)行加權(quán)推薦。通過在電影數(shù)據(jù)集MovieLens上的實驗表明,改進(jìn)后的算法能夠顯著提升推薦準(zhǔn)確率。
關(guān)鍵詞: 協(xié)同過濾; 商品屬性評分; 用戶興趣評分; 推薦算法; 混合推薦; 實驗分析
中圖分類號: TN911.1?34; TP183 ? ? ? ? ? ? ? ? ? ? 文獻(xiàn)標(biāo)識碼: A ? ? ? ? ? ? ? ? ?文章編號: 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 ?引 ?言
近年來,各個電商平臺的發(fā)展推進(jìn)了推薦算法的發(fā)展,協(xié)同過濾算法[1?3]是推薦算法之一。然而數(shù)據(jù)稀疏[4?5]導(dǎo)致推薦不準(zhǔn)確的問題依然存在[6],這些問題一直是專家研究的熱點,文獻(xiàn)[7]提出隱藏語義信息的推薦方法對用戶和項目標(biāo)簽進(jìn)行建模;文獻(xiàn)[8]提出了一種基于信任度的相似性算法來改善推薦算法中數(shù)據(jù)稀疏性問題;文獻(xiàn)[9]通過結(jié)合兩種或兩種以上的混合方法進(jìn)行推薦,以解決冷啟動等問題,利用對物品興趣程度和商品屬性評分和進(jìn)行加權(quán)推薦。文獻(xiàn)[10]利用基于用戶的協(xié)同過濾算法計算興趣點的相關(guān)性;文獻(xiàn)[11]提出協(xié)同過濾相似性度量方法改進(jìn)來提高推薦效果。
以上推薦效果有了明顯的改進(jìn),但是卻忽略了對商品屬性的挖掘。本文通過挖掘商品屬性特征,通過計算用戶對包含某一屬性值的商品的打分得到用戶?屬性評分矩陣;通過分析用戶的屬性對Pearson公式進(jìn)行改進(jìn),最后對物品興趣程度和商品屬性評分和進(jìn)行加權(quán)推薦。
1 ?用戶相似性度量方法
本文對傳統(tǒng)的User?Based CF算法中的Pearson公式進(jìn)行改進(jìn),Pearson公式如下:
傳統(tǒng)的User?Based CF有以下兩點問題:
1) 用戶很少主動對商品進(jìn)行評分,數(shù)據(jù)稀疏的問題會對用戶相似性的計算產(chǎn)生很大的影響。
2) 沒有對商品屬性進(jìn)行挖掘,本文將計算用戶對商品屬性喜愛程度來挖掘用戶對屬性的總體偏好。
2 ?基于商品屬性的協(xié)同過濾改進(jìn)算法的實現(xiàn)
2.1 ?基于用戶對屬性評分的協(xié)同過濾算法改進(jìn)
構(gòu)建用戶?屬性評分矩陣。根據(jù)用戶?商品評分?jǐn)?shù)據(jù)、商品屬性數(shù)據(jù)以及用戶評論商品個數(shù)計算用戶對商品屬性的評分。
1) 商品屬性矩陣[X]
商品[i]有多種屬性,每種屬性又可以分為多個屬性。[amn]表示商品[i]第[m]種屬性的第[n]個屬性,如果該商品有此屬性,則[amn]=1,否則等于0。
2) 用戶?商品屬性值分布
式中:[Puamn]表示用戶[u]對屬性[amn]的打分;[Iamn]表示具有屬性[amn]的商品;[Iu]表示用戶評分的商品;[r(I)]表示用戶對商品[I]的評分;[rIamn]表示用戶評價過的具有[amn]屬性的商品平均評分,以此得出用戶對屬性的評分。
若用戶評價過的項目過少,會造成打分偏差,如用戶A評價過商品個數(shù)[I]過少,卻對商品打分很高,用戶就會對所有的該商品的屬性有很高的評分,忽略了用戶評論數(shù)量。[P]表示用戶評論過的商品的數(shù)量,[Q]表示一共的個數(shù)。最終得到用戶?商品屬性值矩陣[R]。
2.2 ?基于用戶特征的用戶相似度計算改進(jìn)
用戶屬性中引入了性別、年齡、職業(yè)屬性。用戶?屬性矩陣中,[U]表示用戶集合,[U={u1,u2,…,u}],[F]表示用戶屬性的集合,用戶[U]的屬性可以表示為[f={fu1,fu2,…,fun}]。
1) 用戶相似度計算
[Sim(u,v)]是Pearson公式,用于計算用戶相似度,將用戶的年齡、職業(yè)、性別屬性和Pearson公式進(jìn)行加權(quán)混合,改進(jìn)后的公式[simim(u,v)]如下:
式中:[Pred(u,i)]是用戶[u]對商品[i]的評分;[ru]是用戶[u]評價過商品的平均分;[rvi]表示鄰居用戶[v]對[i]的評分;[rv]表示用戶[v]所評價商品的平均評分;[amn∈IPuamn]表示用戶[u]對商品[i]的所有屬性[amn]相加得到用戶[u]對商品[i]的評分;[a]表示權(quán)重,[a∈[0,1]]。
2.3 ?基于項目屬性的協(xié)同過濾算法改進(jìn)流程
輸入:商品屬性矩陣[X],用戶?商品評分矩陣
輸出:目標(biāo)用戶推薦列表
Step1:隨機(jī)將80%用戶?商品評分矩陣作為訓(xùn)練集,20%作為測試集;
Step2:利用式(2)將用戶?商品評分矩陣和商品屬性矩陣轉(zhuǎn)化為用戶?屬性矩陣;
Step3:進(jìn)行用戶相似性改進(jìn),具體見式(3);
Step4:利用相似用戶對此用戶屬性矩陣[R]進(jìn)行填充,見式(4);
Step5:進(jìn)行用戶推薦,目標(biāo)用戶對商品的評分是目標(biāo)商品[i]通過鄰居得到的預(yù)測評分和目標(biāo)用戶對該商品的屬性值的和加權(quán)得到最后的預(yù)測評分,具體見式(5)。
3 ?實驗分析
3.1 ?數(shù)據(jù)集
實驗采用MovieLens數(shù)據(jù)集,有用戶評分信息、用戶信息等。本文選用電影內(nèi)容和電影地區(qū)屬性。電影一共有18個屬性:喜劇、兒童劇等;電影的地區(qū)有:美國、中國、英國等;用戶的屬性有:性別、年齡、職業(yè)。隨機(jī)將80%用戶?商品評分矩陣作為訓(xùn)練集,20%作為測試集。
數(shù)據(jù)集選取1 000個用戶,100 210條評分?jǐn)?shù)據(jù),3 952個電影數(shù)據(jù),如表1所示。
3.2 ?實驗環(huán)境
實驗環(huán)境是Windows 7操作系統(tǒng),工具是Pycharm,語言是Python。
3.3 ?評估指標(biāo)
1) [F]值是為了平衡準(zhǔn)確率和召回率兩者之間的結(jié)果,將準(zhǔn)確率和召回率進(jìn)行混合。定義準(zhǔn)確率Precision、召回率Recall和[F]如下:
3.4 ?實驗結(jié)果分析
3.4.1 ?參數(shù)值的確定
求改進(jìn)后的用戶相似度權(quán)重值[a1],[a2],[a3],式(5)的[a]初始定為0.5,后續(xù)根據(jù)實驗進(jìn)行調(diào)整。由表2可以看出,在[a1],[a2],[a3]值為0.25時,MAE取得最小值,比Pearson公式的MAE下降了4%。
在最后計算目標(biāo)用戶商品預(yù)測打分時,加入了權(quán)重[a],[a]在[0,1]之間,用戶相似度權(quán)重值[a1],[a2],[a3]等于0.25,實驗結(jié)果如圖1所示。[a]值在0~0.4,MAE的值逐漸下降,在[a]為0.4時得到最小的MAE值;從0.4~1.0之間MAE值逐漸上升;當(dāng)[a]=0.4時,MAE最小。
3.4.2 ?鄰居值和推薦個數(shù)的確定
改進(jìn)后的算法new與Pearson,Jaccard的MAE和[F]值對比,結(jié)果如圖2,圖3所示。圖2中,改進(jìn)后的算法最優(yōu),鄰居數(shù)為35時,得MAE最小值為0.75。圖3中,改進(jìn)后的算法最優(yōu),推薦個數(shù)在15~20時,[F]值達(dá)到最大。
4 ?結(jié) ?語
本文通過提取用戶屬性和傳統(tǒng)計算用戶相似度的算法進(jìn)行加權(quán)得到改進(jìn)后的用戶相似度計算方法,再通過用戶相似度填充用戶?屬性評分的稀疏矩陣,最后給目標(biāo)用戶推薦商品時,將鄰居用戶推薦商品的分?jǐn)?shù)和用戶自身對商品的評分混合加權(quán)得到最終推薦商品列表,通過實驗表明,本文改進(jìn)后的協(xié)同過濾算法較傳統(tǒng)的協(xié)同過濾算法在推薦準(zhǔn)確度上有明顯的提高。
注:本文通訊作者為劉聰慧。
參考文獻(xiàn)
[1] 孔艷莉.基于協(xié)同過濾算法的個性化推薦技術(shù)研究[D].北京:北京工業(yè)大學(xué),2016.
[2] 項亮.推薦系統(tǒng)實踐[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ī)科學(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] 賀懷清,計瑜,惠康華,等.一種基于稀疏分段的協(xié)同過濾推薦算法[J].現(xiàn)代電子技術(shù),2019,42(9):90?94.
[13] 楊麗麗,袁浩浩.基于組合優(yōu)化理論的協(xié)同過濾推薦算法[J].現(xiàn)代電子技術(shù),2018,41(1):139?142.