唐 震,黃 剛,華雯麗
(南京郵電大學(xué) 計(jì)算機(jī)學(xué)院、軟件學(xué)院、網(wǎng)絡(luò)空間安全學(xué)院,江蘇 南京 210023)
隨著信息技術(shù)和互聯(lián)網(wǎng)環(huán)境的不斷發(fā)展,網(wǎng)絡(luò)用戶的不斷增加,人們進(jìn)入了大數(shù)據(jù)的信息時(shí)代。電子商務(wù)市場和社交媒體的逐漸壯大是信息和數(shù)據(jù)急速增長的主要原因,網(wǎng)絡(luò)數(shù)據(jù)的快速增長在豐富互聯(lián)網(wǎng)生活的同時(shí)產(chǎn)生大量無用的數(shù)據(jù),這些冗余信息給人們的生活帶來了不便。用戶對信息的反應(yīng)速度無法跟上信息的傳輸及更新速度,用戶會(huì)對信息的選擇產(chǎn)生偏差,這導(dǎo)致了信息利用率的下降,這種類型的問題稱為信息過載[1]。解決信息過載的方法一般有兩種,其中一種為搜索引擎,利用用戶指定的關(guān)鍵字,通過關(guān)鍵詞檢索被動(dòng)地過濾出用戶感興趣的信息,速度快但并不能突出用戶的個(gè)體需求。另一個(gè)便是推薦系統(tǒng),推薦系統(tǒng)通過提供信息過濾機(jī)制來幫助用戶處理信息過載問題,能夠更好地滿足用戶個(gè)性化需求。
推薦系統(tǒng)大致可分為三類:基于內(nèi)容的推薦[2]、協(xié)同過濾[3]推薦方法和混合推薦方法[4]?;趦?nèi)容的推薦是根據(jù)物品的相關(guān)信息,用戶相關(guān)信息以及用戶相關(guān)行為構(gòu)建模型找出用戶喜愛的物品。協(xié)同過濾通過用戶反饋信息進(jìn)行推薦,有兩種常用類型:基于用戶的協(xié)同過濾(UCF)和基于項(xiàng)目的協(xié)同過濾(ICF)?;旌贤扑]方法將不同的推薦算法過程或結(jié)果進(jìn)行結(jié)合得出最終的推薦結(jié)果,組合后能夠彌補(bǔ)單個(gè)推薦算法的缺點(diǎn)。
協(xié)同過濾算法是目前研究最多、應(yīng)用最廣泛的經(jīng)典推薦算法。該算法實(shí)現(xiàn)簡單,適用性強(qiáng),推薦效果較好。但隨著互聯(lián)網(wǎng)數(shù)據(jù)的幾何式增長,協(xié)同過濾推薦系統(tǒng)出現(xiàn)了很多問題,由于協(xié)同過濾需要利用用戶評分矩陣,所以當(dāng)項(xiàng)目用戶過多時(shí),部分評分缺失,計(jì)算相似度困難。面對新用戶,沒有足夠的歷史數(shù)據(jù),無法計(jì)算目標(biāo)用戶的相似用戶群,給推薦帶來了障礙,這是推薦系統(tǒng)中經(jīng)典的冷啟動(dòng)問題[5]。并且當(dāng)數(shù)據(jù)量過大,推薦系統(tǒng)難以避免的會(huì)出現(xiàn)推薦速度慢,推薦準(zhǔn)確度低的問題。
解決冷啟動(dòng)問題一般通過利用用戶的注冊信息,用戶上下文信息,基于熱門數(shù)據(jù)的推薦等方法。Koren Y等人[6]提出了基于矩陣分解的系統(tǒng)過濾算法,矩陣分解的一個(gè)優(yōu)點(diǎn)是它允許合并額外的信息。當(dāng)沒有明確的反饋時(shí),推薦系統(tǒng)可以使用隱式反饋來推斷用戶偏好,隱式反饋通過觀察用戶行為來間接反映用戶的偏好。張峰等人[7]提出了使用BP神經(jīng)網(wǎng)絡(luò)緩解協(xié)同過濾推薦算法的冷啟動(dòng)問題,根據(jù)用戶評分向量交集大小選擇候選最近鄰居集,采用BP神經(jīng)網(wǎng)絡(luò)預(yù)測用戶對項(xiàng)的評分,減小候選最近鄰數(shù)據(jù)集的稀疏性,解決了冷啟動(dòng)問題。
推薦系統(tǒng)準(zhǔn)確度問題通過混合推薦算法、先進(jìn)的評分預(yù)測算法等加以解決。Cheng-Che Lu和VS-Tseng[8]提出基于內(nèi)容、基于情感的協(xié)同過濾推薦算法,該方法通過對用戶選擇的反饋,適應(yīng)用戶興趣的變化,進(jìn)而推薦出自己喜歡的、更有趣的物品,并進(jìn)行即時(shí)連續(xù)推薦。
文中提出了一種融合協(xié)同過濾算法和CatBoost[9]的推薦算法,該算法旨在提高推薦系統(tǒng)模型的準(zhǔn)確度,實(shí)現(xiàn)個(gè)性化推薦,提高用戶的滿意度,并在一定程度上緩解推薦系統(tǒng)冷啟動(dòng)問題。算法思路:通過協(xié)同過濾算法構(gòu)建用戶相似度矩陣,根據(jù)預(yù)測評分公式計(jì)算出用戶對未評分物品的預(yù)測評分,由此得到候選集,再利用CatBoost算法對整體數(shù)據(jù)集進(jìn)行訓(xùn)練,對候選集進(jìn)行預(yù)測評分,最后將兩個(gè)預(yù)測評分進(jìn)行加權(quán)融合,得到最終的預(yù)測評分從而實(shí)現(xiàn)對用戶的推薦。由于利用CatBoost算法進(jìn)行數(shù)據(jù)集訓(xùn)練利用到的特征較多,可以更好地實(shí)現(xiàn)用戶個(gè)性化推薦,與協(xié)同過濾算法進(jìn)行加權(quán)融合后得到的結(jié)果更加準(zhǔn)確。對于新用戶或者歷史交互記錄缺少的用戶,直接用CatBoost算法進(jìn)行預(yù)測并推薦,可以有效緩解用戶的冷啟動(dòng)問題。
協(xié)同過濾算法(collaborative filtering recommendation)仍然是目前最為流行、使用最為廣泛的推薦算法。該算法的整體推薦效果在很多場景中不亞于新研究出來的其他推薦算法,并且相比較其他算法,協(xié)同過濾推薦算法的性能最為穩(wěn)定。協(xié)同過濾算法通過系統(tǒng)提供的用戶項(xiàng)反饋來產(chǎn)生推薦,目的是在反饋信息中查找推薦信息,不需要關(guān)于用戶或項(xiàng)目的額外數(shù)據(jù),可以作為推薦系統(tǒng)候選生成器。
基于用戶的協(xié)作過濾通過分析用戶的歷史行為數(shù)據(jù),然后根據(jù)不同用戶對相同物品的評分或偏好程度來評測用戶之間的相似性,對有相同偏好的用戶進(jìn)行物品推薦?;陧?xiàng)目的協(xié)同過濾通過對不同物品的評分來預(yù)測項(xiàng)目之間的相似性,再根據(jù)用戶歷史行為數(shù)據(jù),得到用戶喜歡的物品,通過項(xiàng)目相似性矩陣找到相似度最高的物品,從而推薦給用戶。
基于用戶的協(xié)同過濾和基于項(xiàng)目的協(xié)同過濾的核心思想是在整個(gè)數(shù)據(jù)空間尋找用戶或項(xiàng)目的前k個(gè)最近鄰,都需要進(jìn)行相似度計(jì)算。相似度計(jì)算的常用方法有余弦相似度、皮爾森(Pearson)相關(guān)系數(shù)法、歐幾里得距離法、杰卡德相似系數(shù)法等。
余弦相似度計(jì)算公式如下:
(1)
其中,I為所有項(xiàng)目的集合,i為項(xiàng)目集合中的單個(gè)項(xiàng)目,Ru,i為用戶u對項(xiàng)目i的真實(shí)評分,Rv,i為用戶v對項(xiàng)目i的真實(shí)評分。
皮爾森相關(guān)系數(shù)計(jì)算公式為:
sim(u,v)=
歐幾里得距離公式為:
(3)
杰卡德系數(shù)為:
(4)
(5)
在協(xié)同過濾算法中加入熱門商品懲罰項(xiàng)和時(shí)間衰減因子可以提高個(gè)性化推薦的準(zhǔn)確度。懲罰熱門物品的原因是如果一個(gè)物品過于熱門,會(huì)有很多用戶對其進(jìn)行評分,但這并不能說明這些用戶有著相同的興趣,所以對熱門物品增加一個(gè)懲罰項(xiàng),減少熱門物品對用戶相似度的影響。
熱門商品懲罰項(xiàng)計(jì)算公式為:
(6)
其中,N(i)表示對物品i進(jìn)行過評分的所有用戶。
由于用戶最近的行為更能表達(dá)用戶的當(dāng)前興趣,所以在計(jì)算用戶相似度時(shí)可以增加時(shí)間衰減函數(shù)。時(shí)間衰減函數(shù)為:
(7)
其中,tui表示用戶u對物品i產(chǎn)生行為的時(shí)間,tvi表示用戶v對物品i產(chǎn)生行為的時(shí)間。通過對相似度計(jì)算方法的改進(jìn),得到優(yōu)化后的余弦相似度公式:
sim(u,v)=
(8)
CatBoost全稱為Gradient Boosting(梯度提升)+Categorical Features(類別型特征),是一種對決策樹進(jìn)行梯度增強(qiáng)的算法,屬于集成學(xué)習(xí)算法的一種。它由Yandex公司的研究人員和工程師開發(fā),用于Yandex和其他公司的搜索、推薦系統(tǒng)、個(gè)人助理、自動(dòng)駕駛汽車、天氣預(yù)報(bào)和許多其他任務(wù)[10]。
Gradient Boosting方法是Boosting方法的一種,Boosting模型是通過最小化損失函數(shù)得到最優(yōu)模型,是一個(gè)迭代的過程,每一次新的訓(xùn)練的目的是改進(jìn)前一次訓(xùn)練的效果。Gradient Boosting的主要思想是每次都在前一次模型損失函數(shù)的負(fù)梯度方向建立新的模型使得損失函數(shù)能夠不斷下降[11]。Gradient Boosting方法適用于異質(zhì)化數(shù)據(jù),梯度提升方法比神經(jīng)網(wǎng)絡(luò)的入門門檻更低,使用起來也更簡單。近年來,不少學(xué)者嘗試將集成學(xué)習(xí)算法運(yùn)用到推薦系統(tǒng)中,崔巖等[12]提出融合協(xié)同過濾和XGBoost的推薦算法,提高了推薦的準(zhǔn)確性;李智彬[13]提出融合SVD與LightGBM的音樂推薦算法,解決推薦系統(tǒng)冷啟動(dòng)問題。作為最新的集成學(xué)習(xí)算法由于對CatBoost算法的相關(guān)研究較少,還沒有學(xué)者將其運(yùn)用在推薦算法中。
CatBoost是一種能夠很好地處理類別型特征的梯度提升算法庫。根據(jù)官方測評結(jié)果[14],CatBoost在準(zhǔn)確率方面比同類型的XGBoost以及LightGBM表現(xiàn)更加優(yōu)秀,該測評結(jié)果是在部分?jǐn)?shù)據(jù)集上進(jìn)行的實(shí)驗(yàn),在大多數(shù)實(shí)驗(yàn)對比中,CatBoost都有著較為不錯(cuò)的訓(xùn)練速度與準(zhǔn)確率。
CatBoost相比其他梯度提升算法具有兩大優(yōu)勢:第一,不需要人為地處理類別型特征,CatBoost算法可以直接使用類別特征進(jìn)行模型訓(xùn)練,CatBoost使用獨(dú)特的方法處理類別特征[15]。首先對樣本進(jìn)行隨機(jī)排序,然后針對類別型特征中的某個(gè)取值,每個(gè)樣本的該特征轉(zhuǎn)為數(shù)值型時(shí)都是基于排在該樣本之前的類別標(biāo)簽取均值,同時(shí)加入了優(yōu)先級和優(yōu)先級的權(quán)重系數(shù)。并且可以將類別特征進(jìn)行組合,利用特征之間的聯(lián)系,這極大地豐富了特征維度。定義編碼值的公式為:
(9)
類別特征的任何組合都可以視為新特征。例如,假設(shè)任務(wù)是電影推薦,有兩個(gè)特征:用戶ID和電影類型,某些用戶喜歡戰(zhàn)爭類的電影。在將用戶ID和電影類型轉(zhuǎn)換為數(shù)字特征時(shí),會(huì)丟失此信息。將用戶ID與電影類型兩種特征進(jìn)行組合解決了這個(gè)問題,并提供了一個(gè)新的特征。
在數(shù)據(jù)集中,特征組合數(shù)與特征數(shù)為指數(shù)關(guān)系,對于特征較多的數(shù)據(jù)集不可能在算法中考慮所有組合,這樣會(huì)增加計(jì)算量。CatBoost在決策樹的新一輪拆分時(shí),以貪婪的方式對特征進(jìn)行組合[16]:對于樹中的第一個(gè)拆分不考慮組合。在下一個(gè)分割節(jié)點(diǎn)選擇時(shí),CatBoost將所有組合特征和分類特征與數(shù)據(jù)集中的所有分類特征組合在一起。組合值會(huì)動(dòng)態(tài)轉(zhuǎn)換為數(shù)字,通過計(jì)算它的TS(target statistics)值作為新的特征值參與樹模型構(gòu)建。CatBoost通過以下方式生成數(shù)字和類別特征的組合:在決策樹中,所有的拆分都被作為具有兩個(gè)值的類別特征,采用與類別特征相同的組合方式進(jìn)行組合使用。
CatBoost相對于其他梯度提升算法的第二個(gè)優(yōu)勢:在選擇生成樹結(jié)構(gòu)時(shí),計(jì)算葉子節(jié)點(diǎn)的算法可以避免過擬合。傳統(tǒng)的GBDT算法存在由于梯度估計(jì)偏差引起的過擬合問題,預(yù)測偏差是由一種特殊類型的目標(biāo)泄漏引起的。CatBoost提出使用Ordered boosting[16]的方法來解決預(yù)測偏差從而得到梯度步長的無偏估計(jì)。Ordered boosting算法首先會(huì)生成一個(gè)長度為n的序列,對每個(gè)樣本xi訓(xùn)練出一個(gè)單獨(dú)的模型Mi,使得Mi是僅利用了序列中的前i個(gè)樣本,不包含xi的訓(xùn)練集得到的訓(xùn)練模型。利用Mj-1訓(xùn)練模型得到第j個(gè)樣本的梯度估計(jì)。
CatBoost同時(shí)具有CPU和GPU實(shí)現(xiàn)。GPU的實(shí)現(xiàn)允許更快的訓(xùn)練,同時(shí)還具有快速的CPU評分實(shí)現(xiàn)。對于數(shù)值密集型特征的訓(xùn)練,最重要的就是找到最佳分割,這是GBDT算法最主要的計(jì)算負(fù)擔(dān)。CatBoost使用對稱決策樹作為基礎(chǔ)學(xué)習(xí)者,并將特征離散化為固定數(shù)量的箱(bins),以減少內(nèi)存使用量,在訓(xùn)練模型時(shí)可以設(shè)置最大箱數(shù)[17]。
本模型融合CatBoost與協(xié)同過濾的算法為用戶進(jìn)行推薦,形成新的算法模型UCF-CB。由于傳統(tǒng)的協(xié)同過濾算法根據(jù)用戶評分信息計(jì)算用戶對評分物品的預(yù)測評分從而進(jìn)行推薦,隨著網(wǎng)絡(luò)信息的發(fā)展,用戶以及物品的信息不斷增加,協(xié)同過濾難以滿足用戶的個(gè)性化需求。融合CatBoost的協(xié)同過濾算法可以更全面地對用戶及物品信息進(jìn)行分析,得到更為準(zhǔn)確的預(yù)測評分,提高用戶的滿意度。本算法的協(xié)同過濾算法模塊,利用優(yōu)化后的余弦相似度公式計(jì)算出目標(biāo)用戶的相似用戶群,并對相似性進(jìn)行排序,通過預(yù)測評分公式得到召回集并對召回集進(jìn)行排序得到候選集。再利用CatBoost算法對數(shù)據(jù)集進(jìn)行訓(xùn)練,對候選集進(jìn)行二次評分并將兩次評分結(jié)果進(jìn)行融合,通過對參數(shù)以及權(quán)值的更新,達(dá)到提高算法準(zhǔn)確度的目的,最后利用Top-N生成推薦列表。
本算法包括通過協(xié)同過濾產(chǎn)生召回集,利用CatBoost進(jìn)行模型訓(xùn)練并對召回集的物品進(jìn)行二次評分,生成推薦三個(gè)階段。算法流程如圖1所示。
圖1 算法流程
三個(gè)階段具體實(shí)現(xiàn)步驟為:
階段1:生成召回集D。
輸入:用戶歷史評分?jǐn)?shù)據(jù)。
輸出:用戶召回集D。
算法步驟:
(1)將數(shù)據(jù)集進(jìn)行劃分,70%的數(shù)據(jù)作為訓(xùn)練集,30%的數(shù)據(jù)作為測試集。
(2)在訓(xùn)練集中計(jì)算用戶之間的相似度,采用加入熱門商品懲罰項(xiàng)和時(shí)間衰減因子的優(yōu)化算法復(fù)雜度的余弦相似度公式(8)進(jìn)行相似度計(jì)算,并構(gòu)建相似度矩陣。
(3)選取前k個(gè)目標(biāo)用戶近鄰,利用式(5)計(jì)算目標(biāo)用戶對未評分項(xiàng)目的預(yù)測評分。
(4)對預(yù)測評分進(jìn)行排序,組成召回集D。
階段2:CatBoost模型訓(xùn)練。
輸入:用戶歷史交互數(shù)據(jù),用戶特征數(shù)據(jù),物品特征數(shù)據(jù)。
輸出:訓(xùn)練好的CatBoost模型。
算法步驟:
(1)整合輸入數(shù)據(jù),提取特征,生成訓(xùn)練集。
(2)對部分特征進(jìn)行優(yōu)化處理,利用CatBoost對訓(xùn)練集進(jìn)行模型訓(xùn)練。
(3)優(yōu)化模型,使用GridSearchCV對模型進(jìn)行調(diào)參。
(4)得到優(yōu)化后的模型,保存模型。
階段3:產(chǎn)生推薦列表。
輸入:協(xié)同過濾召回集D,協(xié)同過濾一次預(yù)測評分?jǐn)?shù)據(jù),CatBoost模型。
輸出:用戶推薦列表。
(1)在召回集中,選取每位用戶評分最高的前k個(gè)物品,形成候選集。
(2)利用訓(xùn)練好的CatBoost模型對候選集進(jìn)行二次評分預(yù)測,與協(xié)同過濾一次評分進(jìn)行加權(quán),得到最終的預(yù)測評分,將項(xiàng)目最終得分進(jìn)行排序。
(3)利用Top-N產(chǎn)生推薦列表反饋給目標(biāo)用戶。
文中采用的數(shù)據(jù)集是MovieLens-1m數(shù)據(jù)集,MovieLens-1M數(shù)據(jù)集含有來自6 040名用戶對3 952部電影的100余萬條評分?jǐn)?shù)據(jù)。分為三個(gè)表:用戶評分信息、用戶信息、電影信息。其中用戶信息包括用戶id,用戶性別,用戶年齡,用戶職業(yè)和壓縮編碼,其中年齡1對應(yīng)1~18歲(不包含18歲),18表示18~24歲,25表示25~34歲,35表示35~44歲,45表示45~49歲,50表示50~55歲,56表示大于等于56歲,部分用戶信息如表1所示。電影信息包括電影id、電影名稱、電影類型,部分電影信息如表2所示。評分?jǐn)?shù)據(jù)由6 040名用戶對3 952部電影的評分組成,一共1 000 209條數(shù)據(jù),包括用戶和電影ID,得分值以及交互信息產(chǎn)生的時(shí)間戳,部分評分信息如表3所示。
表1 用戶信息
表2 電影信息
表3 評分信息
表1中的Zip-code為壓縮編碼,Occupation為用戶職業(yè)編號(hào)。
表2中Genres為電影類型特征,由符號(hào)|隔開,整個(gè)數(shù)據(jù)集共有18個(gè)類別特征。
Timestamp為用戶打分的時(shí)間戳,用戶評分范圍為1~5,沒有0分選擇。
如果使用原始數(shù)據(jù)集進(jìn)行集成模型訓(xùn)練,可利用到的特征僅有Gender,Age,Occupation,Genres四類。特征太少會(huì)導(dǎo)致模型訓(xùn)練出來的效果較差,所以需要從原始數(shù)據(jù)中提取出更多特征,提高數(shù)據(jù)集特征的維度。
首先處理Genres中的電影類型特征,將特征逐一提取出來,構(gòu)造18*N的特征矩陣,其中N為評分?jǐn)?shù)據(jù)總條數(shù),18為特征總數(shù)。將矩陣逐列添加到評分信息文件中,列名為電影類型的名稱。
從Title中提取出電影的相關(guān)上映時(shí)間,將上映時(shí)間加入到評分信息中,再從用戶打分的時(shí)間戳中提取出用戶打分的年份,將用戶對電影的評分年份也作為一個(gè)特征,最后刪除掉無用的信息,Zip-code,Title,Timestamp,Genres,得到最終的訓(xùn)練數(shù)據(jù)集。
文中提出的算法會(huì)得到用戶對于未評分物品的預(yù)測評分,所以使用均方誤差(mean squared error,MSE)作為預(yù)測評分準(zhǔn)確度指標(biāo)。計(jì)算公式如下:
(10)
均方誤差可以評價(jià)數(shù)據(jù)的變化程度,MSE的值越小,預(yù)測模型的精確度越高。
(1)Boosting類算法準(zhǔn)確率對比。
將數(shù)據(jù)集劃分,在訓(xùn)練集上使用CatBoost算法對數(shù)據(jù)進(jìn)行訓(xùn)練,進(jìn)行參數(shù)調(diào)節(jié),使用GridSearchCV對模型進(jìn)行參數(shù)調(diào)整。將task_type參數(shù)設(shè)置為“GPU”,可以有效提高模型的運(yùn)行效率。對樹的深度depth,生成樹的數(shù)量iterations,學(xué)習(xí)率learning_rate,子樣本subsample,對象采樣方法bootstrap_type,隨機(jī)子空間方法rsm等參數(shù)分別進(jìn)行調(diào)參設(shè)置。最終更新depth=10iterations=1 100,learning_rate=0.15,rsm=0.1,subsample=0.66。此時(shí)得到最佳訓(xùn)練模型。圖3為學(xué)習(xí)率對應(yīng)的得分值,評分標(biāo)準(zhǔn)為“r2”得分值,當(dāng)學(xué)習(xí)率為0.15時(shí),模型效果最好。將調(diào)節(jié)好的模型進(jìn)行保存,在測試集上對模型進(jìn)行效果測試。在此數(shù)據(jù)集上,分別利用三種流行的boosting算法進(jìn)行實(shí)驗(yàn),分別得到三種算法在訓(xùn)練集以及測試集上的結(jié)果。由圖2的實(shí)驗(yàn)結(jié)果顯示,在此數(shù)據(jù)集上CatBoost與LightGBM表現(xiàn)幾乎沒有差別,CatBoost在測試集上的表現(xiàn)略微優(yōu)于LightGBM,提升了約1.5%,XGBoost算法相對來說效果較差。以上數(shù)據(jù)在一定程度上證明了CatBoost算法在推薦系統(tǒng)中的可行性。
圖2 Boosting算法準(zhǔn)確性對比
圖3 CatBoost學(xué)習(xí)率得分
(2)召回集各算法準(zhǔn)確率對比。
在2.2節(jié)算法階段1中,說明了召回集的生成過程。召回集D共有233 329條數(shù)據(jù),占總數(shù)據(jù)量的23.3%,混合XGBoost的協(xié)同過濾算法MSE值為0.800 3,文中提出的UCF-CB算法的MSE為0.693 15。將文中算法與文獻(xiàn)[18]提出的Weighted KM-Slope-Vu算法以及文獻(xiàn)[19]提出的WSO算法進(jìn)行對比(見圖4),文中算法的MSE均小于對比算法,表明提出的推薦算法在準(zhǔn)確性上要優(yōu)于對比算法。同時(shí)相比較在測試集上的評分預(yù)測結(jié)果,UCF-XGB與UCF-CB算法在準(zhǔn)確性上都比原始的算法要有所提升。
圖4 召回集上算法對比
(3)最終推薦結(jié)果分析。
為了最終產(chǎn)生推薦列表,本實(shí)驗(yàn)在召回集中對每個(gè)用戶選取協(xié)同過濾評分最高的前k個(gè)物品,取k值為8,共計(jì)42 211項(xiàng),重新組成候選集,用混合模型進(jìn)行評分預(yù)測。按照最終評分利用Top-N算法推薦給用戶。這里的k值可以根據(jù)要求推薦的數(shù)量而定,要求更精確的推薦,可以適當(dāng)減小k值,要求更廣泛的推薦,可以加大k值。
最終的混合模型UCF-CB在D1上的MSE為0.637 81,協(xié)同過濾算法的MSE為0.794 3,UCF-XGB算法的MSE為0.749 67。對比原始的協(xié)同過濾算法以及UCF-XGB有明顯的提升,文中提出的算法模型在最終的推薦集上有著較好的表現(xiàn)(見圖5)。
圖5 混合模型分析
文中提出的混合推薦算法UCF-CB,通過改進(jìn)后的協(xié)同過濾算法得到用戶的召回集D,利用訓(xùn)練后的CatBoost算法對召回集進(jìn)行二次評分預(yù)測,與協(xié)同過濾一次評分進(jìn)行加權(quán)融合,得到最終的預(yù)測評分。在實(shí)驗(yàn)2中,證明了該算法的優(yōu)越性。最后將召回集進(jìn)行壓縮得到D1,通過UCF-CB算法進(jìn)行評分預(yù)測,生成推薦列表反饋給用戶。文中將不同的算法進(jìn)行混合,提高了推薦系統(tǒng)的準(zhǔn)確性,通過實(shí)驗(yàn)對比驗(yàn)證了相比較傳統(tǒng)的系統(tǒng)過濾算法有著明顯的提高,并且利用CatBoost集成學(xué)習(xí)模型可以解決推薦系統(tǒng)中的冷啟動(dòng)問題。同時(shí)文中提出的算法也有不足之處,由于協(xié)同過濾算法在龐大的數(shù)據(jù)集上計(jì)算量過大,運(yùn)行效率較差,會(huì)導(dǎo)致混合算法整體的效率較低。所以,下一步的工作將研究如何提高算法模型的運(yùn)行效率,將矩陣分解運(yùn)用到協(xié)同過濾算法中,解決數(shù)據(jù)稀疏性,對原始數(shù)據(jù)進(jìn)行降維,減少計(jì)算量,使模型的運(yùn)行效率更高。