譚臺哲,晏家斌
廣東工業(yè)大學(xué) 計算機(jī)學(xué)院,廣州 510006
隨著信息技術(shù),尤其是大數(shù)據(jù)技術(shù)的快速發(fā)展,用戶獲取信息的方式已經(jīng)發(fā)生了很大的改變,面對信息的爆炸式增長,“信息過載”問題日益突出,而推薦系統(tǒng)作為一種解決信息過載問題的有效方法引起了廣泛的關(guān)注[1-9]。
推薦系統(tǒng)是指在海量的數(shù)據(jù)中,經(jīng)過篩選過濾處理,為用戶提供最需要、最關(guān)注、最具吸引力的項目(如視頻、音頻、新聞資訊等等),以緩解信息過載問題[10]。目前,推薦系統(tǒng)主要有三大類[11]:基于協(xié)同過濾算法的推薦系統(tǒng)、基于網(wǎng)絡(luò)結(jié)構(gòu)的推薦以及這兩種算法相結(jié)合的混合推薦。協(xié)同過濾(Collaborative Filtering,CF)算法是目前推薦系統(tǒng)中應(yīng)用最廣的算法[11],它主要是基于用戶的歷史數(shù)據(jù),通過建模分析,來預(yù)測特定用戶的內(nèi)容偏好[12],它可以分為基于用戶的協(xié)同過濾(User-based CF)和基于內(nèi)容的協(xié)同過濾(Item-based CF)?;诰W(wǎng)絡(luò)結(jié)構(gòu)的推薦系統(tǒng)不考慮用戶和內(nèi)容的特征,而僅僅把它們看成抽象的節(jié)點,因此算法利用的信息都藏在用戶和內(nèi)容的選擇關(guān)系中。比較著名的是文獻(xiàn)[13]中所提出網(wǎng)絡(luò)推斷算法(Network-Based Inference,NBI),該算法利用二部圖進(jìn)行資源分配,取得了比協(xié)同過濾算法更好的效果?;旌贤扑]系統(tǒng)是指將多種算法融合到一個系統(tǒng)中,使其充分發(fā)揮各個算法的優(yōu)勢[14]。
隨著機(jī)器學(xué)習(xí),尤其是深度學(xué)習(xí)算法的興起,將傳統(tǒng)的推薦系統(tǒng)與機(jī)器學(xué)習(xí)、深度學(xué)習(xí)融合到一起的新型混合推薦系統(tǒng)正在成為一個研究的熱點。例如,在文獻(xiàn)[15]中Ning 等人提出將協(xié)同過濾算法與機(jī)器學(xué)習(xí)融合,通過優(yōu)化推薦感知目標(biāo)函數(shù)從數(shù)據(jù)中學(xué)習(xí)項目相似性。在文獻(xiàn)[16]中Silva 等人提出了一種新的機(jī)器學(xué)習(xí)進(jìn)化方法,通過自動選取技術(shù)將不同推薦技術(shù)的結(jié)果進(jìn)行篩選,增強(qiáng)了推薦系統(tǒng)的準(zhǔn)確性。文獻(xiàn)[17]提出將協(xié)同過濾算法與表示學(xué)習(xí)及排序?qū)W習(xí)進(jìn)行深度融合集成一個統(tǒng)一框架,利用這一框架進(jìn)行推薦。文獻(xiàn)[18]提出利用矩陣分解和多層感知機(jī)相結(jié)合,通過神經(jīng)網(wǎng)絡(luò)來學(xué)習(xí)用戶特征,從而提高推薦系統(tǒng)的準(zhǔn)確性。
隨著注意力機(jī)制在圖像分類任務(wù)中的成功應(yīng)用[19],結(jié)合注意力機(jī)制的神經(jīng)網(wǎng)絡(luò)已成為研究熱點。文獻(xiàn)[20]拋棄了傳統(tǒng)的CNN 和RNN,提出完全用由Attention 機(jī)制組成的網(wǎng)絡(luò)結(jié)構(gòu),并在當(dāng)時的機(jī)器翻譯中取得了最高的BLEU 值。注意力機(jī)制不僅在機(jī)器視覺和自然語言處理領(lǐng)域獲得了成就,在推薦系統(tǒng)領(lǐng)域也受到了廣泛的關(guān)注。文獻(xiàn)[21]提出利用注意力機(jī)制來考察用戶歷史信息中不同屬性對于用戶偏好的影響。文獻(xiàn)[22]在總結(jié)前人經(jīng)驗的基礎(chǔ)上提出了融合注意力機(jī)制的深度協(xié)同過濾推薦算法,但是文章中所用到的特征都是比較低級的特征,對性能的提升有限。
本文在總結(jié)當(dāng)前主流算法的基礎(chǔ)上,提出了注意力模型與神經(jīng)網(wǎng)絡(luò)相結(jié)合的方式,提取高階特征,對特定推薦商品的物品屬性進(jìn)行加權(quán)分配,增大相似商品的權(quán)重,減少非相似商品的權(quán)重,得到的推薦商品的認(rèn)可度評分。其次,采用了自適應(yīng)增強(qiáng)學(xué)習(xí)模型對推薦結(jié)果進(jìn)行優(yōu)選,提高了推薦結(jié)果的準(zhǔn)確性。最后,在現(xiàn)有推薦系統(tǒng)評價指標(biāo)的基礎(chǔ)上,本文首次引入了用戶群體評價認(rèn)可度指標(biāo),通過認(rèn)可度指標(biāo)可以在用戶體驗維度對推薦系統(tǒng)性能給出更精確的評價。
協(xié)同過濾算法是誕生最早的推薦算法[23],也是到目前為止應(yīng)用最為廣泛的推薦算法之一[24]。它主要通過對目標(biāo)用戶歷史行為數(shù)據(jù)的深度挖掘來發(fā)現(xiàn)其特殊偏好,基于不同的偏好對用戶進(jìn)行群組劃分,在群組里面尋找品味相似的商品并推薦給目標(biāo)用戶。
在引言中已經(jīng)提到,協(xié)同過濾算法主要分為基于用戶的協(xié)同過濾及基于內(nèi)容的協(xié)同過濾。在這兩種算法中,以基于用戶的協(xié)同過濾算法應(yīng)用最為廣泛[25],下面將重點介紹下這種算法的實現(xiàn)過程。
基于用戶的協(xié)同過濾算法分為兩類,分別是基于KNN 模型的在線推薦與基于模型的離線推薦[26]。由于前者存在數(shù)據(jù)稀疏性以及用戶興趣標(biāo)簽時常變化的問題,因此基于模型的離線推薦方式擁有更好的可擴(kuò)展性和數(shù)據(jù)整合性。其難點在于構(gòu)造模型與保證離線推薦準(zhǔn)確度。基于模型的離線方式User-based CF算法主要包含以下三個步驟:
(1)尋找與目標(biāo)用戶行為習(xí)慣相似的用戶,生成近似用戶組,再根據(jù)相似度最高的近鄰用戶進(jìn)行推薦。尋找相似用戶時常用的算法有余弦相似度、修正的余弦相似度算法等。
余弦相似度算法:
式中,u表示目標(biāo)用戶評分向量,v表示數(shù)據(jù)集中近鄰用戶的評分向量。
修正余弦相似度算法就是在余弦相似度的基礎(chǔ)上加入了已評分向量的算術(shù)平均值,如公式(2)所示:
在計算用戶相似度時,考慮到兩個用戶間可能完全沒有觀看過相似的電影(物品),使用上述相似性矩陣?yán)速M計算資源,使用物品-用戶倒排表可以容易看出哪些用戶觀看過相似的電影。構(gòu)造兩個用戶的協(xié)同矩陣c[u][v],如果兩個用戶在的同一部電影的用戶表格中出現(xiàn),則將協(xié)同矩陣計算為c[u][v]+1,從而得到所有用戶之間不為零的c[u][v]。如圖1所示。
(2)對于計算出的余弦相似度,通過用戶的偏愛程度對其進(jìn)行加權(quán):
式中,ratingv(m)表示用戶v對物品m的喜愛程度。
圖1 物品-用戶倒排表
(3)根據(jù)預(yù)測分?jǐn)?shù)進(jìn)行排序,選取前k個推薦給目標(biāo)用戶:
這種基于協(xié)同過濾的傳統(tǒng)推薦算法,主要有兩個方面的缺陷:
(1)針對于某個特定商品,目標(biāo)用戶是否喜歡,只與同種類別的物品強(qiáng)相關(guān),而與其他物品弱相關(guān)。不同品類物品的偏好數(shù)據(jù)與推薦物品品類的強(qiáng)關(guān)聯(lián)性將影響實際推薦物品的命中率。
(2)在選取推薦結(jié)果時,通過簡單的排序算法,將用戶之間的相似度與相似用戶的偏好程度放到一起,弱化了用戶相似度、不同用戶偏好程度這兩個不同維度特征對于推薦系統(tǒng)的影響,降低了推薦結(jié)果的準(zhǔn)確性。
常用的用于評價推薦系統(tǒng)的性能指標(biāo)主要有兩個[27]:準(zhǔn)確度(Precision)和召回率(Recall Ratio)。
準(zhǔn)確度,反映了推薦結(jié)果中發(fā)生過用戶-物品評分記錄的所占比例。
召回率,又稱查全率,反映了推薦結(jié)果對于用戶喜愛電影的覆蓋情況。
上述公式中,R(u)表示對用戶u所推薦的電影列表,T(u)表示用戶u真實喜歡的電影列表。
準(zhǔn)確率、召回率作為模型的通用評價標(biāo)準(zhǔn),主要關(guān)注推薦結(jié)果的優(yōu)劣,而未考慮相似用戶集的劃分是否準(zhǔn)確。在此基礎(chǔ)上,本文提出了一種新的評價指標(biāo):相似用戶的平均認(rèn)可度(Average Recognition Degree of similar users,ARD)。該指標(biāo)表示一個相似用戶集內(nèi),用戶對于特定推薦商品的實際評分均值。其計算公式如下:
其中,I表示相似用戶集,R表示推薦列表,Mi(r)表示相似用戶集I中的用戶i對于推薦列表中的第r部電影的實際評分,分別表示相似用戶數(shù)和推薦列表數(shù)。
通過計算公式可以知道,當(dāng)給定相似用戶集時,推薦系統(tǒng)的精度越高,則平均認(rèn)可度越大;當(dāng)給定推薦列表時,相似用戶組劃分越準(zhǔn)確,則平均認(rèn)可度越大。該指標(biāo)能夠綜合、全面地反映推薦系統(tǒng)的性能。
近年來,注意力模型(Attention Model)[28]被廣泛地應(yīng)用于自然語言處理、語音識別、圖像識別等多種不同類型的深度學(xué)習(xí)任務(wù)中,并取得了令人矚目的成績。
注意力模型也稱資源分配模型,它借鑒了人類的選擇注意力機(jī)制,其核心思想是對目標(biāo)數(shù)據(jù)進(jìn)行加權(quán)變換。目前,注意力機(jī)制的原理結(jié)構(gòu)[29]如圖2所示。
將需要處理的數(shù)據(jù)稱為源數(shù)據(jù),用S來表示。將S中的元素構(gòu)造成一系列的鍵值對,K表示屬性,V表示對應(yīng)屬性的值,此時給定目標(biāo)中的某個需求元素Q,通過計算Q和各個K的相似性或者相關(guān)性,得到每個K對應(yīng)V的權(quán)重系數(shù),然后對V進(jìn)行加權(quán)求和,即得到了最終的Attention 數(shù)值。本質(zhì)上注意力機(jī)制是對S中元素的V值進(jìn)行加權(quán)求和,而Q和K則用來計算對應(yīng)V的權(quán)重系數(shù)。
其中αi表示Q與S中對應(yīng)鍵值K的權(quán)重系數(shù),其計算公式如下:
式中,sim表示相似度算法,常用的相似算法有四種:
(1)MLP算法
式中vT、W、U為MLP模型的參數(shù),可通過學(xué)習(xí)獲得。
(2)點乘算法
(3)縮放點乘算法
式中d表示向量維度。
(4)雙線性算法
注意力模型可以通過對不同特征所占權(quán)重的重新分配,使得重點突出,弱化不相關(guān)因素對結(jié)果的影響,從而增強(qiáng)結(jié)果的可靠性。
Ada-Boosting是英文“Adaptive Boosting”(自適應(yīng)增強(qiáng))的縮寫,該算法是對Boosting 算法的改進(jìn)。Boosting也稱為增強(qiáng)學(xué)習(xí)算法或提升算法,是一種重要的集成學(xué)習(xí)技術(shù),它通過對簡單的弱分類器進(jìn)行加權(quán)組合獲得強(qiáng)分類器,從而極大提升分類器的預(yù)測精度,而這在直接構(gòu)造強(qiáng)分類器非常困難的情況下,為機(jī)器學(xué)習(xí)算法的設(shè)計提供了一種有效的新思路和新方法。其中最為成功應(yīng)用的是,F(xiàn)reund等人提出的Ada-Boosting算法[30]。
Ada-Boosting 的自適應(yīng)在于:前一輪迭代中,分類錯誤的基本分類器,它的樣本權(quán)值會增大;而正確分類的分類器其樣本權(quán)值會減小,并再次用來訓(xùn)練下一個基本分類器。同時,在每一輪迭代中,都會加入一個新的弱分類器,直到達(dá)到某個預(yù)定的足夠小的錯誤率或達(dá)到預(yù)先指定的最大迭代次數(shù),最后將每一輪中的弱分類器進(jìn)行加權(quán)組合,得到最終的強(qiáng)分類器。
本文中相關(guān)符號定義。
Dt(i):第t輪的樣本權(quán)值分布;
wi:每個訓(xùn)練樣本的權(quán)值;
hk:第k個弱分類器;
Ht:第t輪的基本分類器;
Hfinal:最終的強(qiáng)分類器;
e:誤差率;
αt:基本分類器的權(quán)重。
可以把Ada-Boosting算法可以簡述為三個步驟:
(1)初始化訓(xùn)練數(shù)據(jù)的權(quán)值分布D1
假設(shè)有N個訓(xùn)練樣本數(shù)據(jù),則每一個訓(xùn)練樣本最開始時,都被賦予相同的權(quán)值:wi=1/N,則N個訓(xùn)練樣本的初始權(quán)值分布為D1(i):
(2)進(jìn)行迭代t=1,2,…,T
①計算當(dāng)前每個弱分類器的誤差率et:
選取誤差率最低的h作為第t輪迭代的基本分類器Ht:
②計算每一個簡單分類器在最終的分類器中所占的權(quán)重:
③更新訓(xùn)練樣本的權(quán)重分布:
其中Zt是一個歸一化常數(shù):
(3)按每一輪基本分類器的權(quán)重值αt進(jìn)行組合,得到f(x)
再將函數(shù)f(x)通過符號函數(shù)sign進(jìn)行處理,得到最終的分類器Hfinal:
最后將通過該式生成的分類器用于分類任務(wù)。
這種自適應(yīng)增強(qiáng)算法,能夠以簡單的分類器獲取比較好的分類效果,這對于推薦結(jié)果的最終確定有很好的輔助作用。
本文針對傳統(tǒng)推薦算法的兩個缺陷進(jìn)行了改進(jìn),得到了一個混合推薦系統(tǒng),主要步驟如下:
(1)推薦結(jié)果預(yù)估
根據(jù)相似用戶組,找出目標(biāo)用戶可能喜歡的若干商品,得到商品預(yù)推薦組。再利用注意力模型根據(jù)每個推薦商品自身的屬性去計算目標(biāo)用戶對于推薦商品的評價,得到推薦商品認(rèn)可度評分。
商品屬性我們通過一個深度神經(jīng)網(wǎng)絡(luò)來生成。如圖3所示。
圖3 神經(jīng)網(wǎng)絡(luò)
這里,以商品的基本信息作為輸入數(shù)據(jù),以商品的類別信息作為輸出標(biāo)簽。以電影推薦為例,電影的基本信息包括上映時間、導(dǎo)演、編劇、題材、演員等等,類別信息為喜劇、懸疑、綜藝、紀(jì)錄片等等。
將商品屬性向量通過Self-Attention模型,流程如圖4所示。
圖4 Self-Attention模型流程圖
圖4中,Qi表示第i個預(yù)推薦商品的屬性向量,Ki表示目標(biāo)用戶第i個評分物品的屬性向量,sim表示相似度算法,S表示相似度值,a表示對應(yīng)向量的權(quán)重,V表示目標(biāo)用戶的真實評分,A-value表示預(yù)推薦商品的認(rèn)可度評分。
(2)推薦結(jié)果優(yōu)選
利用Ada-Boosting 分類器對用戶相似度及對應(yīng)的推薦商品認(rèn)可度進(jìn)行分類判別。Ada-Boosting 模型訓(xùn)練流程如圖5所示。
圖5 分類器訓(xùn)練流程圖
①利用原始推薦系統(tǒng)生成訓(xùn)練樣本的數(shù)據(jù),將用戶相似度、用戶喜愛程度作為兩個維度的特征,以目標(biāo)用戶是否喜愛作為數(shù)據(jù)標(biāo)簽。
②校驗、整理數(shù)據(jù),將一些不合理的數(shù)據(jù)刪除。
③初始化分類器,樣本權(quán)重均一化,設(shè)置迭代次數(shù)。
④迭代,利用決策樹尋找每一輪的基本分類器。
⑤當(dāng)左右子樹的概率差值小于0.05,或者到達(dá)最大迭代次數(shù)時,結(jié)束訓(xùn)練。
⑥保存訓(xùn)練好的集成分類器模型。
(3)模型導(dǎo)入及應(yīng)用
將前面兩步中訓(xùn)練好的模型導(dǎo)入推薦系統(tǒng),分別替代傳統(tǒng)推薦系統(tǒng)中的相應(yīng)模塊。傳統(tǒng)推薦系統(tǒng)的流程,如圖6所示。
圖6 傳統(tǒng)推薦系統(tǒng)的算法流程
通過圖6 可以看到,傳統(tǒng)推薦系統(tǒng)中,在最后給出推薦列表時是將用戶相似度、相似用戶偏好度進(jìn)行求積操作,得到預(yù)測分?jǐn)?shù),再對預(yù)測分?jǐn)?shù)進(jìn)行排序處理,選取前K個推薦給用戶。這種處理方式?jīng)]有考慮到特定推薦商品只與類似商品具有強(qiáng)相關(guān)性,而與其他商品是弱相關(guān)或者不相關(guān)的,同時,在最后進(jìn)行結(jié)果優(yōu)選時,只對預(yù)測分?jǐn)?shù)進(jìn)行排序,弱化了用戶相似度、用戶偏好度對于推薦結(jié)果的不同影響,造成推薦精度不高、推薦結(jié)果不能被用戶認(rèn)可等多方面的問題。
本文提出了一個基于注意力模型SAA(Self-Attention with Ada-Boosting model)混合推薦系統(tǒng)。SAA首先增加了一個預(yù)推薦商品認(rèn)可度評價模塊,該模塊兼顧了物品屬性對于推薦結(jié)果造成的影響,通過增加Self-Attention模型進(jìn)行權(quán)重的重新分配,從而得到更準(zhǔn)確的推薦信息。其次,從多維特征出發(fā),將用戶相似度、預(yù)推薦商品認(rèn)可度作為兩個維度的特征,分別考慮其對于最后預(yù)測結(jié)果的影響,使用SAA 模型進(jìn)行了處理。改進(jìn)的推薦系統(tǒng)算法流程如圖7 所示。需要注意的是在本文中,使用SAA 模型進(jìn)行處理之前對相似用戶進(jìn)行了一個排序處理,選取前N個。
圖7 SAA混合推薦系統(tǒng)算法流程
通過以上兩個算法,使得推薦系統(tǒng)的性能得到了較大的提升。這里以推薦系統(tǒng)中最經(jīng)典的電影推薦系統(tǒng)為例,使用本文的混合推薦模型與各個主流的電影推薦系統(tǒng)[31]進(jìn)行了性能對比,如表1所示。
表1 推薦系統(tǒng)性能對比 %
操作系統(tǒng):AWS AMI Linux;環(huán)境配置:m5ad.2xlarge(8vCPU,內(nèi)存32 GB,1*300 GB SSD);數(shù)據(jù)集:Movielens-1M、Movielens-10M。
本文在傳統(tǒng)的用戶協(xié)同過濾算法基礎(chǔ)上,引入了注意力模型與自適應(yīng)增強(qiáng)學(xué)習(xí)算法。注意力模型關(guān)注物品本身屬性對于推薦結(jié)果造成的影響;自適應(yīng)增強(qiáng)學(xué)習(xí)針對用戶相似度及目標(biāo)用戶對預(yù)推薦商品認(rèn)可度的多維度精確分類。這種混合推薦系統(tǒng)(UserCF-SAA)綜合分析了相似度和認(rèn)可度兩個不同維度特征對于推薦結(jié)果的影響,從圖8、9中可以看到,在1M和10M數(shù)據(jù)集上本文所采用的UserCF-SAA 方法精確度都獲得了明顯的提升,最高提升達(dá)到了18%。
圖8 改進(jìn)推薦系統(tǒng)的精確率對比-1M(Model=MovieLens-1M,Test size=0.4,Number of Users=3 587)
圖9 改進(jìn)推薦系統(tǒng)的精確率對比-10M(Model=MovieLens-10M,Test size=0.4,Number of Users=3 587)
召回率反映了推薦結(jié)果對于用戶喜愛電影的覆蓋情況,召回率越高,表示推薦系統(tǒng)越全面。從圖10、11中可以看到,無論是在1M數(shù)據(jù)集還是在最新的10M數(shù)據(jù)集上,加入SAA 的UserCF 召回率明顯高于其他兩種UserCF 算法。圖 9 中,SAA 方式與其他兩種 UserCF 方式都在相似用戶數(shù)量為400 名時達(dá)到峰值。當(dāng)相似用戶數(shù)量超過400 時,不管是SAA 方式還是其他的兩種UserCF方式,其召回率都呈現(xiàn)遞減趨勢,這個主要是因為相似用戶數(shù)量的增大,會引起噪聲數(shù)據(jù)、無效用戶評分?jǐn)?shù)據(jù)的大量增加,從而對推薦結(jié)果造成干擾。圖11中,SAA的算法的曲線下降緩慢,而其他兩中UserCF算法下降更快,說明加入SAA 之后,在訓(xùn)練數(shù)據(jù)足夠大時,模型的抗干擾性能獲得了提升。
圖10 改進(jìn)推薦系統(tǒng)的召回率對比-1M(Model=MovieLens-1M,Test size=0.4,Number of Movies=1 000)
圖11 改進(jìn)推薦系統(tǒng)的召回率對比-10M(Model=MovieLens-10M,Test size=0.4,Number of Movies=1 000)
相似用戶平均認(rèn)可度可以直觀反映相似用戶對于推薦電影的認(rèn)可程度,認(rèn)可度越高表示推薦系統(tǒng)在相似用戶間進(jìn)行推薦時越精準(zhǔn)。從圖12、13可以看出,三種UserCF的平均認(rèn)可度都隨著相似用戶數(shù)量的增加而提高。
圖12 改進(jìn)推薦系統(tǒng)的平均認(rèn)可度對比-1M(Model=MovieLens-1M,Test size=0.4,Number of Movies=1 000)
圖13 改進(jìn)推薦系統(tǒng)的平均認(rèn)可度對比-10M(Model=MovieLens-10M,Test size=0.4,Number of Movies=1 000)
通過圖 12 可以看到,在 1M 數(shù)據(jù)集上,UserCF 和UserCF-IIF都出現(xiàn)了一段先下降再上升的趨勢,這是因為它們在給出推薦列表時,將用戶相似度與喜好程度做了一個簡單的求積排序,弱化了相似用戶的共有特征,在相似用戶數(shù)較少時共有特征不顯著,用戶偏好就會成為一個影響推薦結(jié)果的重要因子,相似用戶的增大,會加劇這種負(fù)面影響,從而造成了認(rèn)可度的下降;隨著相似用戶數(shù)的增大,起主導(dǎo)作用就變成了用戶間的共有特征,因此認(rèn)可度也隨著相似用戶數(shù)量的增大而增大;因為UserCF-IIF中引入了流行商品懲罰機(jī)制,它的回落出現(xiàn)得更早且更明顯。而對于圖13,由于訓(xùn)練數(shù)據(jù)的增加,模型能夠更好地擬合相似用戶的偏好特征,找出其共性,使得曲線更貼近真實情況。
SAA 方式較其他兩種方式對于相似用戶的數(shù)量更為敏感,幾乎呈現(xiàn)出線性增長的趨勢,這是因為本文在做推薦時,將用戶相似度和目標(biāo)用戶認(rèn)可度分別進(jìn)行了處理,這樣不僅能夠挖掘出相似用戶之間的共有特征,同時也考慮了目標(biāo)用戶對于電影本身的認(rèn)可度,隨著相似用戶數(shù)的增加,相似用戶之間的共有特征提取得就更準(zhǔn)確,推薦電影的認(rèn)可度也就相應(yīng)提高了。從圖12、13中可以看到,當(dāng)相似用戶數(shù)量到達(dá)400之后這種線性增長更為明顯。值得關(guān)注的是,當(dāng)用戶數(shù)量超過1 000后,由于相似用戶群中的用戶評價行為趨于相似,推薦系統(tǒng)平均認(rèn)可度提升也趨于平緩。SAA 方式在用戶數(shù)為5 000時,平均認(rèn)可度最高達(dá)到了76.7%。
圖14、15展示了1 000個相似用戶在不同推薦系統(tǒng)下,對于推薦電影的實際評分分布,橫軸表示不同的推薦電影數(shù)量。由上面兩圖可看出,基于SAA 算法(右側(cè))的推薦電影實際評分最高達(dá)到了3.41 分(滿分為5分),而傳統(tǒng)的User-CF 推薦系統(tǒng)(左側(cè))的最高評分為3.09分。由此可知,使用SAA改進(jìn)算法的推薦系統(tǒng)可以獲得更高的用戶評分,從另一個方面印證了本算法對于推薦精確率性能的提升。
圖14 SAA與傳統(tǒng)推薦系統(tǒng)用戶評分對比-1M(Model=MovieLens-1M)
圖15 SAA與傳統(tǒng)推薦系統(tǒng)用戶評分對比-10M(Model=MovieLens-10M)
MAE 是計算預(yù)測評分與用戶實際評分的差值,從而衡量推薦系統(tǒng)的準(zhǔn)確度,是目前較為廣泛的評價推薦系統(tǒng)的性能指標(biāo)之一。MAE與推薦系統(tǒng)的推薦精度呈負(fù)相關(guān),推薦精度越高則MAE 值越小。本文采用步長為20,迭代20 次的方式評價了SAA 方式與文獻(xiàn)[32]中的MAE 指標(biāo)。T-ICF 表示傳統(tǒng)協(xié)同過濾算法,P-ICF 為文獻(xiàn)[32]中改進(jìn)的協(xié)同過濾算法。由圖16 的仿真結(jié)果可以看出,電影最近鄰數(shù)目在50~70 之間Ada-Boosting方式呈現(xiàn)逐漸減少的趨勢,而在超過70后MAE值呈現(xiàn)出不變甚至緩慢上升的趨勢,與改進(jìn)的P-ICF呈現(xiàn)的變化趨勢一致,但較之提升了1.2%~1.5%,從而帶來更高的推薦準(zhǔn)確度。由于電影鄰居數(shù)目較大時會引入噪聲數(shù)據(jù)造成原本相似度較小的電影被誤判成電影鄰居,這一現(xiàn)象表明應(yīng)合理設(shè)置鄰居數(shù)目以獲取較高的推薦準(zhǔn)確度。圖17中在10M數(shù)據(jù)集下表現(xiàn)出了相似的變化規(guī)律,在近鄰數(shù)量大于70 之后,其變化趨勢與P-ICF 更接近。
圖16 MAE指標(biāo)對比-1M(Data set∶Test set=4∶1,Number of iteration=20,Model=MovieLens-1M)
圖17 MAE指標(biāo)對比-10M(Data set∶Test set=4∶1,Number of iteration=20,Model=MovieLens-10M)
本文在傳統(tǒng)UserCF 算法的基礎(chǔ)上,提出了注意力模型與神經(jīng)網(wǎng)絡(luò)相結(jié)合的方式,通過神經(jīng)網(wǎng)絡(luò)提取高階特征,針對特定推薦商品的屬性進(jìn)行加權(quán)分配,增大相似商品的權(quán)重,減少非相似商品的權(quán)重,得到目標(biāo)用戶對推薦商品的認(rèn)可度評分。再通過自適應(yīng)增強(qiáng)學(xué)習(xí)模型對推薦結(jié)果進(jìn)行優(yōu)選,提高了推薦結(jié)果的準(zhǔn)確性。同時,本文首次引入了相似用戶平均認(rèn)可度的概念,用來評價推薦物品在相似用戶集中的平均認(rèn)可程度。最后通過系統(tǒng)仿真驗證了本算法的正確性和可行性,并給出了改進(jìn)算法與當(dāng)前主流的協(xié)同過濾推薦算法的性能對比及分析。