何昌隆 文 斌
(成都信息工程大學(xué)通信工程學(xué)院 成都 610225)
在計(jì)算機(jī)和網(wǎng)絡(luò)技術(shù)快速發(fā)展的今天,推薦系統(tǒng)作為解決信息過載的有效手段而愈來愈受到商業(yè)界和研究者的重視。
推薦系統(tǒng)的主要思想在于通過分析用戶的行為信息,構(gòu)建用戶的興趣偏好模型,并以此向用戶推送潛在需求信息。但由于主流單一的推薦算法有其各自的不足,如數(shù)據(jù)稀疏[1]、推薦準(zhǔn)確度不高等問題,于是通過將兩種或兩種以上的推薦技術(shù)進(jìn)行融合以期待獲得更好推薦效果的混合推薦系統(tǒng)[2]應(yīng)運(yùn)而生,比如Marcos提出了一種結(jié)合用戶行為信息與內(nèi)容推薦的混合推薦系統(tǒng),并應(yīng)用在音樂推薦領(lǐng)域[3]。湖南大學(xué)的謝曉赟提出了基于內(nèi)容和協(xié)同過濾的混合推薦模型,并用卡爾曼濾波來反饋調(diào)節(jié)權(quán)值[4]。Suriati把基于內(nèi)容與基于物品的協(xié)同過濾兩種算法進(jìn)行加權(quán)混合推薦并應(yīng)用在電影領(lǐng)域[5]。但其中大部分加權(quán)混合推薦系統(tǒng)的權(quán)值分配都存在推薦系統(tǒng)冷啟動效果不佳及難以收斂到全局最佳的問題。
蝙蝠算法是一種高效的生物啟發(fā)式算法,由YANG XinShe教授在2010年提出[6],并廣泛應(yīng)用于科研與工程問題中。肖輝輝等提出將差分進(jìn)化算法嵌入到蝙蝠算法中,對蝙蝠算法的易于陷入局部極小點(diǎn)等問題做出了改善(DEBA)[7]。
本文針對單一推薦算法有其各自的不足,而在以往的研究中,加權(quán)混合推薦模型通常使用算術(shù)平均加權(quán)法、幾何平均加權(quán)法或者線性回歸等方法來進(jìn)行模型權(quán)值的分配,冷啟動效果不佳以及難以收斂到全局的最佳權(quán)值的問題,提出一種基于DE 蝙蝠算法的加權(quán)混合推薦模型,將多種經(jīng)典的推薦算法使用DE蝙蝠算法進(jìn)行線性融合從而得到更好的推薦效果。
基于內(nèi)容的推薦算法(CB)[8]思想是找出與用戶點(diǎn)擊、購買或好評的物品類似的物品進(jìn)行推薦,算法流程如下。
Step1:抽取所有物品的特征標(biāo)簽來建立物品的屬性模型,通常由向量來表示,向量中每一個(gè)元素都由物品的特征進(jìn)行填充。
Step2:利用用戶喜歡或者購買的物品數(shù)據(jù)來構(gòu)建用戶的興趣特征。
Step3:通過生成用戶興趣特征和物品的特征矩陣的相似度進(jìn)行推薦,或者依據(jù)相似度預(yù)測評分,相似度的計(jì)量方式有許多種,如:歐幾里得距離,皮爾遜相關(guān)距離,余弦相似度[9]等。這里選擇使用余弦相似度,見式(1):
協(xié)同過濾推薦算法(CF)[10]思想是對與以前感興趣的物品類似的物品進(jìn)行推薦。與2.1小節(jié)所訴算法不同之處在于,基于物品的協(xié)同過濾推薦算法是通過用戶的行為數(shù)據(jù)來對物品中的相似程度進(jìn)行定義,其相似度的計(jì)量方式與基于內(nèi)容的推薦算法相同,算法的基礎(chǔ)流程也是分為三步。
Step1:對用戶和物品等相關(guān)歷史數(shù)據(jù)進(jìn)行整理并建立用戶-物品矩陣。
Step2:根據(jù)用戶的以往的點(diǎn)擊評分或者購買行為,對物品之間的相似程度進(jìn)行計(jì)量,構(gòu)建物品-物品相似度矩陣。
Step3:根據(jù)物品之間的相似度矩陣和用戶的歷史記錄計(jì)算用戶對各個(gè)物品的興趣度或者評分預(yù)測,最后根據(jù)用戶對物品興趣度或者預(yù)測評分的大小進(jìn)行推薦。
在矩陣分解模型(MF)[11]中,歷史的用戶-物品評分矩陣R 可以分解為用戶興趣矩陣U 與物品特征矩陣V兩個(gè)低維矩陣,見式(2):
使用已有的評分?jǐn)?shù)據(jù)進(jìn)行訓(xùn)練,忽略缺少的評分,并將訓(xùn)練后的兩低維矩陣(U,V)相乘,得到新的評分預(yù)測矩陣,進(jìn)而根據(jù)預(yù)測評分推薦用戶。具體評分預(yù)測見式(3):
DE 蝙蝠算法混合推薦模型是通過多個(gè)推薦算法加權(quán)混合得到的,其中使用DE 蝙蝠算法迭代尋優(yōu)分配全局最佳權(quán)值是整個(gè)混合推薦模型的核心部分。
蝙蝠算法(Bat Algorithm)是一種高效的生物啟發(fā)式算法,由2010 年楊教授(YANG XinShe)所提出,能有效地搜索到全局最優(yōu)解并具有并行性,分布式,收斂速度快等優(yōu)點(diǎn)。它通過生成一組隨機(jī)解模擬自然界中的蝙蝠,并設(shè)計(jì)適應(yīng)度尋找到當(dāng)前種群的最佳值,然后模擬蝙蝠的回聲定位加強(qiáng)迭代中的局部搜索能力,在值域內(nèi)進(jìn)行飛行迭代不斷更新當(dāng)前種群的最優(yōu)解直至收斂得到最終全局的最優(yōu)解,最后輸出作為各個(gè)推薦模型的權(quán)值進(jìn)行分配。設(shè)計(jì)適應(yīng)度函數(shù)f(xn)來對種群中蝙蝠的每一次更迭做出評估,見式(4),所述模型權(quán)值變量為X=(x1,x2,…,xd)T,定義虛擬蝙蝠位置xi速度vi值更新的公式(5)~(6):
式中β屬于在一個(gè)均勻分布的[0,1]的隨機(jī)采樣值;fi是蝙蝠i 的搜索頻率,fmax,fmin是搜索頻率范圍;、各自表示單個(gè)蝙蝠i 處于t 和t-1 時(shí)間的速度;、各自表示單個(gè)蝙蝠i 在t 和t-1時(shí)刻的位置;x*代表當(dāng)前所搜索到的最優(yōu)解。
當(dāng)尋找到新獵物(新解)時(shí),其蝙蝠的響度Ai與脈沖發(fā)射率ri也會產(chǎn)生變化,見式(7)~(8):
式中:α為子蝙蝠的響度衰減系數(shù);γ為子蝙蝠的頻率增強(qiáng)系數(shù);R0為最大脈沖率。
而DE蝙蝠算法則是為了提高蝙蝠算法的收斂精度,收斂速度,以及魯棒性,將差分進(jìn)化算法(DE)[12]融入基本的蝙蝠算法,在更迭蝙蝠位置時(shí)進(jìn)行差異化的演化。差分進(jìn)化算法(DE)的基本步驟如下。
Step1:變異
式中:xa,xb,xc是在蝙蝠中隨機(jī)選擇的個(gè)體,且互不相等,F(xiàn)為變異因子。
Step2:交叉
式中:CR 代表交叉概率,范圍在[0,1]之間;該式確保uij(t+1) 中至少有一個(gè)分量由vi(t)提供。
Step3:選擇
本文所提出的新型加權(quán)混合推薦模型,即DE蝙蝠算法混合推薦模型是將蝙蝠算法中的迭代尋優(yōu)與推薦模型相結(jié)合的一種加權(quán)混合推薦模型。它使用蝙蝠算法優(yōu)秀的全局尋優(yōu)能力分配一個(gè)適當(dāng)?shù)臋?quán)值,來對多種主流的推薦模型(CB.CF,MF)進(jìn)行加權(quán)融合,生成最終的用戶評分預(yù)測矩陣進(jìn)行物品推薦,提高推薦準(zhǔn)確率。其中對于多個(gè)推薦模型融合配比權(quán)重的思路:將(X1,X2,…,Xm)T作為m個(gè)推薦算法的模型權(quán)值目標(biāo)變量,X1,X2,…,Xm代表著各個(gè)模型的權(quán)重,通過蝙蝠算法更迭尋優(yōu)為所有模型分配全局最佳權(quán)重X,實(shí)現(xiàn)共贏,定義各模型加權(quán)算法見式(12):
式中,表示在第n 個(gè)模型里,用戶u 對物品i 評分估計(jì),αn表示模型n 的個(gè)性化系數(shù),分配初始權(quán)值時(shí)設(shè)為1。模型n的權(quán)重為該模型經(jīng)過蝙蝠算法更迭尋優(yōu)的最佳權(quán)重Xn與個(gè)性化系數(shù)αn之積在所有模型的全局最佳權(quán)重之和中所占的比例。
在DE 蝙蝠算法混合推薦模型的實(shí)現(xiàn)上,選取在第2 節(jié)所介紹的基于內(nèi)容(CB),協(xié)同過濾(CF),矩陣分解(MF)這三種主流的推薦算法進(jìn)行加權(quán)混合推薦,并使用差分進(jìn)化蝙蝠算法迭代尋優(yōu)分配權(quán)值,得到最終結(jié)果。其具體流程如下:
Step1:計(jì)算基于內(nèi)容的推薦算法的預(yù)測評分Pcb(u,i)。
Step2:計(jì)算基于物品的協(xié)同過濾推薦算法預(yù)測評分Pcf(u,i)。
Step3:計(jì)算基于矩陣分解的推薦算法預(yù)測評分Pmf(u,i)。
Step4:使用蝙蝠算法更迭尋優(yōu)擬合數(shù)據(jù)集分配權(quán)值,具體步驟如下:
1)首先將三個(gè)模型的權(quán)值,看作在三維空間隨機(jī)分布‘蝙蝠’的位置Xi=(xcb,xcf,xmf)T,蝙蝠種群數(shù)量自己決定。
2)定義適應(yīng)度公式f(Xi),見式(13),評價(jià)每‘蝙蝠’的適應(yīng)度,適應(yīng)度最高的‘蝙蝠’位置即是當(dāng)前全局最優(yōu)。
3)根據(jù)3.1 小節(jié)所訴的迭代尋優(yōu)方法,‘蝙蝠’往當(dāng)前最佳位置不斷飛行,模擬真實(shí)蝙蝠的回聲搜索獵物,多次更迭得到最終的全局最優(yōu)解Xcb,Xcf,Xmf,作為最終權(quán)值輸出。
Step5:據(jù)式(12),加權(quán)混合得到最終的預(yù)測矩陣P(u,i),作為最終預(yù)測結(jié)果輸出。
實(shí)驗(yàn)使用MovieLens 公開數(shù)據(jù)集(https://grouplens.org/datasets/movielens/)來對算法的效果進(jìn)行驗(yàn)證。該數(shù)據(jù)集中包含了671 位用戶對9066 部電影的10k 條評價(jià)數(shù)據(jù),其中評分的分?jǐn)?shù)范圍在1~5之間。為了有效地對各個(gè)算法的推薦效果進(jìn)行驗(yàn)證,實(shí)驗(yàn)將數(shù)據(jù)集分為訓(xùn)練集,擬合集以及測試集,其比例分別為80%,10%和10%,三種數(shù)據(jù)集各自獨(dú)立不重復(fù)。其中訓(xùn)練集用于構(gòu)建推薦算法的預(yù)測矩陣,擬合集用于混合推薦模型中的多個(gè)推薦算法權(quán)值的分配,最后測試集則用于實(shí)驗(yàn)算法的效果。
推薦算法的評價(jià)指標(biāo)多種多樣,但其本質(zhì)都是通過其預(yù)測評分矩陣與實(shí)際值之間的偏差進(jìn)行推薦效果的評估。實(shí)驗(yàn)使用常用的評估標(biāo)準(zhǔn)中的經(jīng)典指標(biāo)即均方根誤差(RMSE)[13]以及絕對平均誤差(MAE)[13],其中絕對平均誤差表示計(jì)算評分與真正評分絕對差的均值,而均方根誤差表示計(jì)算評分與真正評分的離散度,公式如下:
上式中的pi代表預(yù)測結(jié)果,ri代表實(shí)際值,E 代表測試集。
首先采用在第2節(jié)中所介紹的基于內(nèi)容(CB),協(xié)同過濾(CF),矩陣分解(MF)這三種傳統(tǒng)的推薦算法。然后選取加權(quán)混合模型中常用的等權(quán)融合法(AW)[14],擬合數(shù)據(jù)集并通過線性回歸來分配最終權(quán)值的線性回歸模型(LR)[15]以及DE 蝙蝠算法混合推薦模型,這三種將CB,CF,MF 三種單一的推薦算法進(jìn)行加權(quán)混合的混合推薦模型。通過以上算法總計(jì)設(shè)計(jì)六組實(shí)驗(yàn)在MovieLens公開數(shù)據(jù)集基礎(chǔ)上進(jìn)行實(shí)現(xiàn),來探究推薦算法的有效性。
實(shí)驗(yàn)流程是在訓(xùn)練集得到三種經(jīng)典算法的預(yù)測矩陣,加權(quán)混合推薦算法使用三種算法的預(yù)測矩陣在權(quán)值擬合集更迭得到最終的權(quán)值分配,組合得到加權(quán)混合推薦算法的預(yù)測矩陣,最后在測試集中計(jì)算評價(jià)指標(biāo)RMSE 與MAE 來反映各個(gè)推薦算法的準(zhǔn)確度,實(shí)驗(yàn)結(jié)果見表1。
表1 實(shí)驗(yàn)結(jié)果
結(jié)果柱狀圖展示見圖1、圖2。
圖1 RMSE指標(biāo)結(jié)果對比圖
圖2 MAE指標(biāo)結(jié)果對比圖
接著將MovieLens公開數(shù)據(jù)集隨機(jī)選擇50%的數(shù)據(jù)來模擬數(shù)據(jù)極其稀疏的情況,同樣使用上面六種推薦模型得到其預(yù)測矩陣,使用評價(jià)指標(biāo)RMSE與MAE 指標(biāo)來反映各個(gè)推薦算法的準(zhǔn)確度,實(shí)驗(yàn)結(jié)果見表2。
表2 50%數(shù)據(jù)量實(shí)驗(yàn)結(jié)果
50%數(shù)據(jù)量結(jié)果柱狀圖展示見圖3、圖4。
圖3 50%數(shù)據(jù)量RMSE指標(biāo)結(jié)果對比圖
圖4 50%數(shù)據(jù)量MAE指標(biāo)結(jié)果對比圖
結(jié)果表明DE蝙蝠算法混合推薦模型在預(yù)測評分矩陣上對比其他推薦模型具有更好的效果,各模型權(quán)值能夠快速收斂到全局最佳,在推薦系統(tǒng)數(shù)據(jù)稀疏的冷啟動場景中的表現(xiàn)對比其他推薦模型也有明顯的提升。
本文針對單一推薦算法數(shù)據(jù)稀疏,推薦精度不高,常用加權(quán)模型研究冷啟動效果不佳以及初始權(quán)值分配難以收斂到全局最優(yōu)解的問題,提出了DE蝙蝠算法混合推薦模型,通過差分進(jìn)化蝙蝠算法優(yōu)秀的全局尋優(yōu)能力來分配一個(gè)適當(dāng)?shù)臋?quán)值,對多種主流的推薦算法(CB.CF,MF)進(jìn)行加權(quán)融合。試驗(yàn)結(jié)果說明,在計(jì)算預(yù)測評分上,與傳統(tǒng)的單一推薦算法相比,該算法模型有效地提高了預(yù)測準(zhǔn)確度,同時(shí)對比常用的加權(quán)混合模型,該模型的融合度最好,預(yù)測誤差最小,能夠有效地分配最佳初始權(quán)值,提高推薦系統(tǒng)性能。但本算法盡管可以自動更迭分配權(quán)值,可實(shí)時(shí)性依舊不足,因此加入反饋調(diào)節(jié)增強(qiáng)混合推薦模型的實(shí)時(shí)性與個(gè)性化將是下一步的研究方向。