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