夏景明 周剛 談玲 李沖
摘 ?要: 在新聞網(wǎng)站、電子書城等應(yīng)用中,為了提高計算用戶間的相似性,在傳統(tǒng)基于用戶協(xié)同過濾和基于內(nèi)容的混合推薦的基礎(chǔ)上,引入人口統(tǒng)計信息和專家信任等因子,對混合推薦算法進(jìn)行改進(jìn)。最后,通過GroupLens提供的數(shù)據(jù)集對算法進(jìn)行驗(yàn)證,與傳統(tǒng)基于用戶和基于項(xiàng)目的協(xié)同過濾算法相比,文中所提算法在準(zhǔn)確率上有顯著的提高。
關(guān)鍵詞: 算法改進(jìn); 個性化推薦; 內(nèi)容推薦; 協(xié)同過濾; 算法驗(yàn)證; 混合推薦
中圖分類號: TN911.1?34; TP183 ? ? ? ? ? ? ? ? ? ?文獻(xiàn)標(biāo)識碼: A ? ? ? ? ? ? ? ? ? 文章編號: 1004?373X(2019)15?0101?05
An improved hybrid multi?factor recommendation algorithm
XIA Jingming1, ZHOU Gang1, TAN Ling2, LI Chong1
(1. School of Electronic & Information Engineering, Nanjing University of Information Science and Technology, Nanjing 210044, China;
2. School of Computer and Software, Nanjing University of Information Science and Technology, Nanjing 210044, China)
Abstract: In news websites, e?book malls and other applications, in order to improve the similarity between computing users, the demographic information and expert trust factors are introduced on the basis of the traditional user?based collaborative filtering and content?based mixed recommendations. The hybrid recommendation algorithm is improved. The algorithm is verified by means of the dataset provided by GroupLens. In comparison with traditional user?based and project?based collaborative filtering algorithms, the accuracy of the algorithm has been significantly improved.
Keywords: algorithm improvement; personalized recommendation; content recommendation; collaborative filtering; algorithm verification; mixed recommendation
0 ?引 ?言
在實(shí)現(xiàn)基于內(nèi)容推薦和協(xié)同過濾推薦的混合推薦算法時,存在數(shù)據(jù)稀疏性問題,如果用戶評分矩陣非常稀疏,在計算用戶相似性時將會遇到困難,如果單依靠傳統(tǒng)常見評級的推薦算法來確定用戶之間的相似性,任何一個都存在一定的誤差。所以,影響協(xié)同過濾技術(shù)的準(zhǔn)確性是一個主要問題。在對用戶進(jìn)行預(yù)測的過程中,用戶會得到推薦那些以前沒有評價過的商品,但是這些商品在他的小社區(qū)已經(jīng)得到了用戶的正面評價,只依靠他的社區(qū)近鄰的小概率點(diǎn)擊是不準(zhǔn)確的。同時,由于沒有考慮到用戶的年齡、性別、職業(yè)、地理位置等人口統(tǒng)計信息以及專家意見,在預(yù)測準(zhǔn)確度上存在偏差。因此,本文在基于內(nèi)容和協(xié)作推薦算法的基礎(chǔ)上,引入人口統(tǒng)計信息[1]和專家意見等因子[2]來提高預(yù)測評分的準(zhǔn)確性。
基于協(xié)同過濾的推薦算法[3?4]是通過用戶與數(shù)據(jù)項(xiàng)之間的特殊關(guān)系,系統(tǒng)給出一個推薦物品列表。基于內(nèi)容的推薦算法[5?6],考慮了屬性信息和文本的內(nèi)容,因此系統(tǒng)會給出一個滿足用戶需求的推薦項(xiàng)目列表。人口統(tǒng)計信息考慮了用戶的性別、年齡、職業(yè)、薪資等因數(shù),在計算用戶間的相似性起到一定程度的補(bǔ)充作用。專家意見相比普通用戶有著更好的合理性,提高了預(yù)測結(jié)果的置信度。結(jié)合以上方法的優(yōu)點(diǎn),本文設(shè)計一種混合的推薦算法,相比單一的基于內(nèi)容推薦或者基于協(xié)同過濾的推薦在準(zhǔn)確率上存在明顯的優(yōu)勢。
1 ?混合推薦系統(tǒng)
在當(dāng)今的推薦系統(tǒng)中,基于內(nèi)容推薦和協(xié)同過濾在推薦系統(tǒng)應(yīng)用中有著很重的比例,兩者各有優(yōu)點(diǎn),但是在單獨(dú)使用時,存在很多限制,同時,由于沒有考慮人口統(tǒng)計信息和專家意見,在計算準(zhǔn)確度上存在一定的誤差?;旌贤扑]作為兩種或更多種方法的組合,已經(jīng)提出克服傳統(tǒng)推薦方法的主要限制并改進(jìn)所提供的推薦質(zhì)量[7]。
混合推薦算法類型如下:
集成類型:通過調(diào)整不同的推薦算法,將不同類型的算法組合成一個整體。
流式型:建議過程被分成幾個子過程,依次使用各種推薦算法生成最終的推薦列表。
并聯(lián)型:核心思想是利用幾種混合機(jī)制將推薦項(xiàng)目混合在一起的算法[8]。
三種并聯(lián)混合算法描述如下[9]:
1) 并聯(lián)混合:在呈現(xiàn)給用戶的階段,幾種方法的結(jié)果混合在一起。因此,在這種情況下,用戶[u]和項(xiàng)目[i]的推薦結(jié)果是一個推薦數(shù)組,每個推薦數(shù)組對應(yīng)[n]個推薦結(jié)果,對應(yīng)公式如下:
2) 權(quán)重混合:固定線性方程用于連接兩個獨(dú)立推薦算法結(jié)果列表。由于權(quán)重方案是靜態(tài)的,因此必須指定方程,推薦結(jié)果和相對權(quán)重定義如下:
3) 切換混合:切換混合算法存在幾個推薦人,選擇最相似的一個推薦人產(chǎn)生的推薦。對于[k]個推薦系統(tǒng)的情況,用戶[u]和項(xiàng)目[i]描述如下:
2 ?一種改進(jìn)的用戶多因子混合推薦算法
2.1 ?算法策略
在計算兩個用戶相似度時,傳統(tǒng)的協(xié)同過濾算法沒有考慮專家意見、人口統(tǒng)計信息等間接因素,因此最終預(yù)測分?jǐn)?shù)可能會有一些偏差。本文針對這些缺點(diǎn)進(jìn)行改進(jìn),在對待普通用戶時,首先計算用戶興趣[10]的分布矩陣,完成用戶間興趣相似度計算。然后結(jié)合人口統(tǒng)計信息,進(jìn)一步提高用戶間的相似度計算,完成預(yù)測分?jǐn)?shù)。對待專家意見,由于在某個領(lǐng)域,專家評分矩陣相比普通用戶評分矩陣更加合理,借鑒專家意見可以提高推薦置信度。
在提出建議時,首先,找到與用戶[u]相似的資源聚合,使用[K]維向量來表示用戶偏好,計算用戶興趣相似度并更新用戶興趣的分布矩陣,經(jīng)過多次操作,用戶興趣趨于穩(wěn)定,計算用戶間的興趣相似性[11],找到基于興趣相似近鄰集合[Ulist]。然后,在興趣相似近鄰集合[Ulist]的基礎(chǔ)上,基于普通用戶間的人口統(tǒng)計信息,計算人口統(tǒng)計信息的相似性,找到最終的近鄰集合[Unear],完成普通用戶預(yù)測分?jǐn)?shù)。其次,根據(jù)專家的評分矩陣計算用戶[u]和專家[e]之間的相似度,找到最終的近鄰結(jié)合[Ue],計算目標(biāo)用戶[u]和近鄰專家[e]之間的相似度,進(jìn)行預(yù)測評分。最后,基于協(xié)同過濾的推薦算法計算目標(biāo)用戶對項(xiàng)目的評分,由普通用戶近鄰評分和專家近鄰評分的線性組合完成預(yù)測,最終的預(yù)測評分由基于內(nèi)容和協(xié)作加權(quán)取得。
2.2 ?算法描述
由于資源類別的數(shù)量遠(yuǎn)遠(yuǎn)少于資源數(shù)量,因此將所有興趣資源轉(zhuǎn)變?yōu)橛脩襞d趣類別,從而減少計算量。例如,圖書商城的資源包括期刊、專著、報紙和其他類型的財產(chǎn),包括能源、計算機(jī)、建筑、機(jī)械、文學(xué)和其他屬性。根據(jù)項(xiàng)目類別表示用戶的興趣,這是基于用戶?項(xiàng)目評級矩陣和項(xiàng)目類別屬性特征建立用戶類別屬性矩陣,從而獲得每個用戶的興趣[12]。
根據(jù)項(xiàng)目類別表示用戶興趣,即基于用戶?項(xiàng)目評分矩陣和項(xiàng)目類別屬性特征建立用戶類別屬性矩陣,從而獲得各個類別的興趣。該分配可以按照下面的PM矩陣進(jìn)行描述:
3 ?算法驗(yàn)證
在本節(jié)中,將改進(jìn)的混合算法與傳統(tǒng)的協(xié)同過濾算法和基于內(nèi)容的算法進(jìn)行比較,并且對得到的實(shí)驗(yàn)結(jié)果進(jìn)行分析。
3.1 ?評價指標(biāo)
統(tǒng)計準(zhǔn)確性度量標(biāo)準(zhǔn)是通過將預(yù)測評級直接與實(shí)際用戶評級進(jìn)行比較來評估推薦技術(shù)的準(zhǔn)確性。MAE(平均絕對誤差)通常用作統(tǒng)計精度度量。它是推薦偏離用戶特定值的一種度量,計算如下:
為了驗(yàn)證實(shí)用性和可靠性,使用centOS6.8系統(tǒng),用Python2.7進(jìn)行算法實(shí)現(xiàn)。在實(shí)驗(yàn)中,把數(shù)據(jù)集分成80%的訓(xùn)練集和20%的測試集。在實(shí)驗(yàn)過程中,根據(jù)用戶對訓(xùn)練集中記錄的訪問來計算一組建議,如果推薦一組資源出現(xiàn)在訪問記錄的測試集中,則生成一個正確的推薦。
3.2 ?參數(shù)設(shè)置
影響混合算法推薦效果的參數(shù)有三個:第一個參數(shù)[a]是在計算普通用戶之間的相似度時根據(jù)普通用戶間的興趣度和人口統(tǒng)計信息的因數(shù)進(jìn)行取值,參數(shù)大小取值范圍為[0.1,0.9];第二個參數(shù)[α]是在基于普通用戶的預(yù)測分?jǐn)?shù)的基礎(chǔ)上,借鑒專家評分矩陣,兩個預(yù)測評分進(jìn)行線性加權(quán),參數(shù)大小取值范圍為[0.1,0.9];第三個參數(shù)[β]是對基于內(nèi)容的推薦和基于用戶的協(xié)同推薦進(jìn)行線性加權(quán),加權(quán)后得到最終的預(yù)測分?jǐn)?shù),參數(shù)大小取值范圍為[0.1,0.9]。
試驗(yàn)中,選擇的近鄰個數(shù)[N]分別為20,40,60,80,100,120和140。在本實(shí)驗(yàn)中,不斷組合三個參數(shù)值的大小,使得混合算法的推薦效果最優(yōu),并與傳統(tǒng)的協(xié)同過濾等算法進(jìn)行比較。
3.3 ?數(shù)據(jù)集
本試驗(yàn)中使用了GroupLens數(shù)據(jù)集,該數(shù)據(jù)集總共有900個用戶對1 563本書進(jìn)行評論,總評論數(shù)量達(dá)到了110 000條,其中,每位用戶評論了20本書,其分?jǐn)?shù)由1~5構(gòu)成,這些數(shù)據(jù)構(gòu)成本實(shí)驗(yàn)使用的參考數(shù)據(jù)集。
3.4 ?實(shí)驗(yàn)結(jié)果
首先,[a]和[α]取值范圍為[0.1,0.9],依次代入式(9)、式(13)中,使得在普通用戶興趣度穩(wěn)定下基于人口統(tǒng)計信息和專家建議的協(xié)同算法對目標(biāo)用戶的物品打分的預(yù)測值與真實(shí)值之間的[MAE]最小,結(jié)果如圖2所示。
由圖2可知,當(dāng)[a]取值為0.7,[α]取值為0.2時,在普通用戶興趣度穩(wěn)定下基于人口統(tǒng)計信息和專家建議的協(xié)同算法下目標(biāo)用戶對物品打分的預(yù)測值與真實(shí)值之間的[MAE]最小。
最后,由式(14)可知混合推薦結(jié)果加權(quán)系數(shù) [β]取值范圍為[0.1,0.9],進(jìn)行MAE測試,實(shí)驗(yàn)結(jié)果如圖3所示。
由圖3可知,當(dāng)[β]取值為0.6時,使得MAE值最小,結(jié)合內(nèi)容推薦和協(xié)同過濾推薦效果達(dá)到最優(yōu)。
為驗(yàn)證所提方法的有效性,與傳統(tǒng)的協(xié)同過濾推薦算法相比,用戶數(shù)逐漸增加,計算推薦算法的MAE實(shí)驗(yàn)結(jié)果如圖4所示,當(dāng)近鄰數(shù)為120,參數(shù)[(a,α,β)=(0.7,0.2,0.6)]時,混合推薦算法產(chǎn)生的推薦效果最佳。
4 ?結(jié) ?論
本文提出一種在內(nèi)容與協(xié)作基礎(chǔ)上融入人口統(tǒng)計信息和專家意見的混合推薦算法。該混合推薦算法使用歷史信息的用戶評級來生成用戶興趣并產(chǎn)生最近鄰集合,再參考人口統(tǒng)計信息和專家意見生成有效最近鄰組進(jìn)行預(yù)測評分,最終根據(jù)內(nèi)容推薦和協(xié)作推薦的預(yù)測評分產(chǎn)生最終的預(yù)測評分,生成目標(biāo)用戶的推薦列表。實(shí)驗(yàn)結(jié)果表明,在計算預(yù)測評分上,與傳統(tǒng)基于用戶和基于項(xiàng)目的協(xié)作算法相比,有效地提高了預(yù)測評分的準(zhǔn)確性。
參考文獻(xiàn)
[1] DAI Y, YE H, GONG S. Personalized recommendation algorithm using user demography information [C]// 2009 Second International Workshop on Knowledge Discovery and Data Mining. ?Moscow: [s.n.], 2009: 100?103.
[2] 高發(fā)展,黃夢醒,張婷婷. 綜合用戶特征及專家信任的協(xié)作過濾推薦算法[J].計算機(jī)科學(xué),2017,44(2):103?106.
GAO Fazhan, HUANG Mengxing, ZHANG Tingting. Collabo?rative filtering recommendation algorithm based on user characteristics and expert opinions [J]. Computer science, 2017, 44(2): 103?106.
[3] WU Q, HUANG M, MU Y. A collaborative filtering algorithm based on user similarity and trust [C]// 2017 14th Conference on Web Information Systems and Applications (WISA). Liuzhou, Guangxi Province, China: [s.n.], 2017: 263?266.
[4] WANG X, WANG C. ?Recommendation system of e?commerce based on improved collaborative filtering algorithm[C]// 2017 8th IEEE International Conference on Software Engineering and Service Science. Beijing: IEEE, 2017: 332?335.
[5] PAL A, PARHI P, AGGARWAL M. An improved content based collaborative filtering algorithm for movie recommendations [C]// Proceedings of 2017 Tenth International Conference on Contemporary Computing. Noida: [s.n.], 2017: 1?3.
[6] MATHEW P, KURIAKOSE B, HEGDE V. Book recommendation system through content based and collaborative filtering method [C]// 2016 International Conference on Data Mining and Advanced Computing. Ernakulam: [s.n.], 2016: 47?52.
[7] 高虎明,趙鳳躍.一種融合協(xié)同過濾和內(nèi)容過濾的混合推薦方法[J].現(xiàn)代圖書情報技術(shù),2015(6):20?26.
GAO Huming, ZHAO Fengyue. A hybrid recommendation method combining collaborative filtering and content filtering [J]. New technology of library and information service, 2015(6): 20?26.
[8] 肖斌,徐佳慶,張宇洋.基于協(xié)同過濾算法的個性化圖書推薦系統(tǒng)研究[J].電腦知識與技術(shù),2016,12(27):155?158.
XIAO Bin, XU Jiaqing, ZHANG Yuyang. Research on perso?nalized book recommendation system based on collaborative filtering algorithm [J]. Computer knowledge and technology, 2016, 12(27): 155?158.
[9] REDDY Raj. Million books digital library project: research issues in data mining and text mining [D]. Pittsburgh: Carnegie Mellon University, 2006.
[10] 全海金,邱玉輝,李瑞.基于用戶行為及語義相關(guān)實(shí)時更新用戶興趣的推薦系統(tǒng)[J].計算機(jī)科學(xué),2005(3):76?78.
QUAN Haijin, QIU Yuhui, LI Rui. The recommender system with real?time updated user interests based on user behaviors and similar semantic [J]. Computer science, 2005(3): 76?78.
[11] 楊秀萍.融合用戶評分和屬性相似度的協(xié)同過濾推薦算法[J].計算機(jī)與現(xiàn)代化,2017(7):16?19.
YANG Xiuping. Collaborative filtering recommendation algorithm based on user score and user attributes similarity [J]. Computer and modernization, 2017(7): 16?19.
[12] YANG W, CUI X, ?LIU J, et al. Users interests?based movie recommendation in heterogeneous network [C]// 2015 International Conference on Identification, Information, and Know?ledge in the Internet of Things. Beijing: [s.n.], 2015: 74?77.
[13] 焦東俊.基于用戶人口統(tǒng)計與專家信任的協(xié)同過濾算法[J].計算機(jī)工程與科學(xué),2015,37(1):179?183.
JIAO Dongjun. Collaborative filtering algorithm based on user demographics and expert opinions [J]. Computer engineering &science, 2015, 37(1): 179?183.
[14] WANG B, TAO Z, HU J. Improving the diversity of user?based Top?N recommendation by cloud model [C]// 2010 5th International Conference on Computer Science & Education. Hefei: [s.n.], 2010: 1323?1327.