劉彥伯 溫雪巖 徐克生 于鳴
摘? 要: 現(xiàn)如今推薦算法已得到廣泛應用,但大多數(shù)推薦算法均存在各自的局限性。針對這一問題,提出一種基于Boosting框架的推薦系統(tǒng)架構,以多種基本推薦算法為基礎,集成一個強推薦系統(tǒng)。將基于Boosting的推薦系統(tǒng),在MovieLens 100K中進行測試。測試與分析結果表明,該系統(tǒng)測試結果顯示Precision達到39.44%,比原來提高8.63%。因此,集成的推薦系統(tǒng)能夠有效提升推薦效果,為用戶提供良好的用戶體驗。
關鍵詞: 推薦系統(tǒng); 系統(tǒng)架構; 系統(tǒng)優(yōu)化; Boosting框架; 系統(tǒng)集成; 系統(tǒng)測試
中圖分類號: TN911?34; TP391? ? ? ? ? ? ? ? ? ?文獻標識碼: A? ? ? ? ? ? ? ? ? ? ? 文章編號: 1004?373X(2020)08?0019?03
Architecture and optimization of recommendation system based on Boosting framework
LIU Yanbo1, WEN Xueyan1, XU Kesheng2, YU Ming1
(1. School of Information and Computer Engineering, Northeast Forestry University, Harbin 150040, China;
2. Harbin Institute of Forestry Machinery, State Forestry Administration, Harbin 150086, China)
Abstract: Nowadays, the recommendation algorithms have been widely used in various fields, but most of them have their own limitations. A recommendation system architecture based on Boosting framework is proposed to solve this problem, by which a strong recommendation system is integrated on the basis of a variety of basic recommendation algorithms. The Boosting?based recommendation system is tested in MovieLens 100K. The testing and analysis results show that the precision of the system reaches 39.44%, which is 8.63% higher than that of the original system. Therefore, the integrated recommendation system can effectively improve the recommendation effect and provide users with a good experience.
Keywords: recommendation system; system architecture; system optimization; Boosting framework; system integration; system testing
0? 引? 言
隨著網(wǎng)絡的發(fā)展與信息時代的來臨,網(wǎng)絡上各類的信息數(shù)據(jù)逐漸擴大。面對大幅增長的信息,用戶通常不清楚自身所需的信息是否存在或如何獲取信息。且用戶難以從中選出實際有用的信息,從而出現(xiàn)信息超載問題[1]。為此,各學者提出了推薦系統(tǒng),其可根據(jù)用戶的信息,如以往的消費記錄、愛好等,將用戶感興趣的商品或新聞推薦給用戶[2?3]。
推薦系統(tǒng)現(xiàn)已廣泛應用于較多領域[4],但各種推薦系統(tǒng)均存在不同的問題。例如,基于ItemCF[5]的推薦系統(tǒng),只分析了該用戶以往感興趣或相似的商品,而并不能顯式地得到其他用戶的判斷情況;而基于UserCF[6]的推薦系統(tǒng),則依賴于和該用戶興趣相似的其他用戶喜好[7]。為更加全面地分析用戶的喜好,并進一步提升用戶滿意度與推薦效果。本文引入Boosting算法的思想,其主要是將多個分類器組合在一起,構成一個分類效果更強的分類器[8]。文中指在基于UserCF算法的推薦與時間上下文的推薦[9?10]為基礎,提出一種基于Boosting的推薦系統(tǒng)架構。
1? 基于Boosting框架的推薦系統(tǒng)
基于Boosting框架的推薦系統(tǒng)是將較多基本推薦系統(tǒng)相集成,形成一個效果優(yōu)良的推薦系統(tǒng)。在本文中,將采用基于ItemCF算法的推薦、UserCF算法的推薦和時間上下文的推薦作為基本推薦系統(tǒng),如圖1所示。
1.1? 基本推薦算法
在本節(jié)中,將依次介紹集成的推薦系統(tǒng)中3個基本推薦算法:基于ItemCF的推薦、基于UserCF的推薦和基于時間上下文的推薦。
1.1.1? 基于ItemCF的推薦
ItemCF的核心思想是,給用戶推薦其過去消費商品的相似商品?;贗temCF的推薦算法主要分為兩個步驟:
1) 計算商品之間的相似度
用戶感興趣的商品通常局限于某幾個類別,在同一用戶消費清單上的不同商品,一般認為其位于有限的商品類別中;在不同用戶消費清單上的相同商品,一般認為其屬于同類別的商品。因此,有較大的相似度。商品之間的相似度計算公式為:
式中:[Wi,j]表示商品i和j之間的相似度;[Ni]表示喜歡商品i的用戶集合;[Ni]表示喜歡商品i的用戶個數(shù)。
2) 計算用戶U對一個商品的興趣
利用式(2)計算用戶對商品的興趣。
式中:[Pu,j]表示用戶u對商品j的興趣;Sj,k表示和商品j相似度較高的前k個商品;Nu表示用戶u消費過的商品;ru,i表示用戶u對商品i的評分。
1.1.2? 基于UserCF的推薦
UserCF的核心思想是,具有相同愛好的用戶可能會喜歡同樣的商品。因此,將與當前用戶有相同愛好的其他用戶消費過的商品推薦給他?;赨serCF的推薦算法主要包括兩個步驟:
1) 找到與目標用戶具有相同喜好的用戶集合
不同的用戶相同的消費產(chǎn)品越多,則說明這些用戶的興趣愛好越相似。UserCF就是利用這種用戶行為的相似性來計算興趣相似度,計算公式為:
在UserCF算法中,[Wu,v]表示用戶u和用戶v的相似度;Nu表示用戶u消費過商品的集合;Nv表示用戶v消費過商品的個數(shù)。
2) 找到用戶集合中其他用戶消費過,但當前用戶沒有消費過的商品
給用戶推薦與其具有相同喜好的K個用戶消費過的商品,首先找到K個用戶喜歡而用戶沒有消費過的商品,計算用戶對這種商品的感興趣程度并進行排序。然后,給用戶推薦興趣程度較高的幾種商品。用戶對某種商品的興趣程度計算公式為:
式中:[Pu,i]表示用戶u對商品i的感興趣程度;Ni表示過去消費過商品i的用戶;rv,i表示用戶v對商品i的評分。
1.1.3? 基于時間上下文的推薦
以上算法均未考慮時間因素,從而對推薦系統(tǒng)的準確率有一定影響。在得到用戶消費的時間信息后,其可改進相似度計算,如下:
式中:[Tui]表示用戶u在時間[Tui]中消費過商品i;α表示時間衰減參數(shù),其取值隨系統(tǒng)用戶興趣的變化而變化,變化越快,取值越大,反之亦然。
時間信息不僅會影響相關表的計算,也會對推薦結果產(chǎn)生影響。用戶當前消費的商品通常與最近該用戶的消費相關,計算公式為:
式中,[T0]表示當前時間。
1.2? 集成的推薦系統(tǒng)
XGBoost算法是當前最流行的集成算法之一,本文采用XGBoost算法框架構建集成推薦系統(tǒng)。
1.2.1? XGBoost算法
XGBoost算法主要是通過構建多個隨機樹提高預測效果。
XGBoost的預測模型為:
式中:K表示構建的隨機樹總個數(shù);[fk(xi)]表示第k棵隨機樹,在本文中表示第k個基本推薦系統(tǒng);[yi]表示推薦商品列表。
損失函數(shù)為:
式中:i表示樣本;[lyi,yi]表示樣本i的預測誤差,誤差越小越優(yōu);[Ωfk]表示樹的復雜度,泛化能力的強弱與復雜度高低呈負相關。
1.2.2? 基于XGBoost的推薦系統(tǒng)
XGBoost算法屬于Boosting算法,其本質(zhì)是將多個分類效果一般的分類器組合成一個分類效果較強的分類器。
推薦系統(tǒng)主要是將用戶感興趣的商品選出來推薦給用戶,在一定層面上可視為對系統(tǒng)中的商品進行二分類,即用戶感興趣的商品與用戶不感興趣的商品。因此,本文將幾個基本推薦算法作為商品的弱分類器進行串聯(lián),集成一個推薦效果較強的推薦系統(tǒng)。
2? 試驗和分析
2.1? 試驗數(shù)據(jù)集
基于Boosting的推薦系統(tǒng)將在公開數(shù)據(jù)集MovieLens 100K中進行測試。本文采用的MovieLens 100K數(shù)據(jù)集包括帶時間信息的10萬條評分,主要是943名觀眾對1 682部電影評論。文中選取部分數(shù)據(jù)如表1所示。
2.2? 集成的推薦系統(tǒng)試驗結果分析
采用TOP?N的方式對系統(tǒng)進行評估,使用N=5,10,15,20,25進行實驗。經(jīng)過實驗,展示不同N值的準確度與覆蓋率,如圖2所示。
由圖2a)可看出,基于Boosting框架推薦算法的推薦結果在TOP?5和TOP?10上比其他算法表現(xiàn)更優(yōu),準確度比基于ItemCF算法高出6%以上,其覆蓋率在TOP?10上達到了74.319%。如表2所示,將基于ItemCF算法的推薦、基于UserCF算法的推薦和基于時間上下文的推薦集成為較強的推薦系統(tǒng),Precision為39.44%,recall為24.52%,F(xiàn)1?measure為30.24%,在Precision,Recall,F(xiàn)1?measure這3種指標上均高于基本推薦算法。結果表明,基于Boosting框架的推薦系統(tǒng)具有實用性。
3? ?結? 論
本文基于Boosting框架,將基于ItemCF的推薦算法、基于UserCF的推薦算法和基于時間上下文的推薦算法集成構建一個強推薦系統(tǒng),并在MovieLens 100K數(shù)據(jù)集中對新算法進行測試分析。實驗結果表明,基于Boosting的推薦系統(tǒng)對于用戶推薦分析預測有效。從而更加全面地分析用戶喜好,并進一步提升用戶滿意度與推薦效果。但本文的推薦系統(tǒng)仍存在難以應對的數(shù)據(jù)稀疏性問題,因此將在后續(xù)工作中做出改進。
參考文獻
[1] 劉偉,劉柏嵩,王洋洋.海量學術資源個性化推薦綜述[J].計算機工程與應用,2018,54(3):30?39.
[2] 王順箐.以用戶畫像構建智慧閱讀推薦系統(tǒng)[J].圖書館學研究,2018(4):92?96.
[3] WEI J, HE J H, CHEN K, et al. Collaborative filtering and deep learning based recommendation system for cold start items [J]. Expert systems with applications, 2017, 69: 29?39.
[4] 劉輝,郭夢夢,潘偉強.個性化推薦系統(tǒng)綜述[J].常州大學學報(自然科學版),2017,29(3):51?59.
[5] ???教育資源個性化推薦系統(tǒng)的研究與實現(xiàn)[D].貴陽:貴州大學,2017.
[6] 潘麗芳,張大龍,李慧.基于用戶的協(xié)同過濾(UserCF)新聞推薦算法研究[J].山西師范大學學報(自然科學版),2018,32(4):31?35.
[7] 張博倫.基于協(xié)同過濾的個性化推薦系統(tǒng)研究[D].西安:西安工業(yè)大學,2017.
[8] 陳爽爽.基于Gradient Boosting算法的癲癇檢測[D].濟南:山東大學,2013.
[9] 繆雪峰,陳群輝,胡羅凱,等.Spark平臺下基于上下文信息的影片混合推薦[J].計算機工程與應用,2017(10):79?84.
[10] 丁祥武,張東輝.基于Spark的中文新詞提取[J].計算機工程與設計,2017,38(11):303?309.