楊 輝,王月海,豆震澤
(北方工業(yè)大學(xué)信息學(xué)院,北京 100144)
隨著云時(shí)代的到來(lái),電子商務(wù)、在線新聞和社交媒體數(shù)據(jù)呈現(xiàn)爆炸式增長(zhǎng),據(jù)IDC預(yù)測(cè),到2020年全球?qū)碛?5 ZB的數(shù)據(jù)量[1]。這些海量的數(shù)據(jù)給人類(lèi)社會(huì)帶來(lái)了變革性的發(fā)展,但同時(shí)帶來(lái)了“信息過(guò)載”和“長(zhǎng)尾效應(yīng)”問(wèn)題,如何從這些紛繁復(fù)雜的數(shù)據(jù)中獲取有價(jià)值的信息,成為當(dāng)今大數(shù)據(jù)處理的難題。推薦系統(tǒng)作為解決這些問(wèn)題的方法之一發(fā)揮著關(guān)鍵的作用,但同時(shí)也面臨一些問(wèn)題,比如用戶(hù)對(duì)物品評(píng)級(jí)稀疏性的不斷增加,以及如何去處理這些海量數(shù)據(jù),這些都是影響推薦系統(tǒng)質(zhì)量的主要因素。
協(xié)同過(guò)濾是推薦算法中最成功的算法之一,特別是基于模型的協(xié)同過(guò)濾算法因?yàn)槠淇蓴U(kuò)展性強(qiáng)、精確、可以比較好地處理稀疏問(wèn)題而得到大量的研究[2]。
傳統(tǒng)的矩陣模型是協(xié)同過(guò)濾算法中的一種比較常見(jiàn)的建模方法。它是將原來(lái)的評(píng)分矩陣,近似地分解成2個(gè)小矩陣的乘積,將用戶(hù)和物品的特征分別映射到各自的潛在空間中。在實(shí)際推薦中不再使用原來(lái)的大矩陣分析,而是用這2個(gè)帶有用戶(hù)特征和物品特征的小矩陣進(jìn)行推薦。因?yàn)榫仃嚪纸饽P偷暮?jiǎn)單和可拓展性,其得到了廣泛的研究。隨之涌現(xiàn)出了大量相關(guān)的算法,如比較經(jīng)典的LFM算法,因?yàn)樗灰笞兂?個(gè)矩陣,從而避開(kāi)了需要填充稀疏性矩陣的問(wèn)題。雖然此方法比較簡(jiǎn)潔,但效果一般,原因是考慮的信息太少,無(wú)法學(xué)習(xí)到用戶(hù)與項(xiàng)目間的深層次特征。之后Koren等人考慮到用戶(hù)評(píng)分偏好問(wèn)題,比如一些用戶(hù)習(xí)慣性打低分,這些錯(cuò)誤的偏好會(huì)對(duì)推薦的準(zhǔn)確度有很大影響?;诖?,Koren等人[3-4]在原來(lái)的矩陣上增加了用戶(hù)和用戶(hù)的偏置項(xiàng),即BiasSVD。但針對(duì)LFM算法出現(xiàn)的問(wèn)題仍沒(méi)有得到有效的解決,數(shù)據(jù)的高稀疏性和海量數(shù)據(jù)處理仍是推薦系統(tǒng)需迫切解決的難題。
近年來(lái),神經(jīng)網(wǎng)絡(luò)被大量運(yùn)用于自然語(yǔ)言處理[5-6]、圖像處理[7]、語(yǔ)音識(shí)別[8]中,并取得了卓著的效果。深度學(xué)習(xí)不僅具有自學(xué)習(xí)的能力,而且具有強(qiáng)大的特征提取和組合能力,因而可以解決傳統(tǒng)矩陣分解的一些問(wèn)題,比如稀疏性、維度風(fēng)險(xiǎn)、計(jì)算量、不能有效提取特征信息、可解釋性等。基于此,深度學(xué)習(xí)被廣泛運(yùn)用到推薦系統(tǒng)中,成為近些年研究的熱點(diǎn)。
為了解決數(shù)據(jù)高稀疏問(wèn)題,一些推薦算法考慮加入輔助信息來(lái)提高評(píng)級(jí)精確度。例如文獻(xiàn)[9]提出一種神經(jīng)協(xié)同過(guò)濾模型(NCF),加入用戶(hù)和物品ID信息。文獻(xiàn)[10]提出一種深度協(xié)同推薦,把項(xiàng)目?jī)?nèi)容和用戶(hù)行為信息結(jié)合起來(lái),通過(guò)使用深度學(xué)習(xí)技術(shù)深層次表達(dá)用戶(hù)特征,以此解決文本稀疏的問(wèn)題。文獻(xiàn)[11]提出卷積矩陣分解推薦模型,利用卷積網(wǎng)絡(luò)來(lái)提取文本中的信息。文獻(xiàn)[12]將循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)應(yīng)用到推薦系統(tǒng)中,文獻(xiàn)[13]用長(zhǎng)短期記憶網(wǎng)絡(luò)來(lái)記憶以前特征,達(dá)到精準(zhǔn)推薦。
卷積神經(jīng)網(wǎng)絡(luò)廣泛應(yīng)用于圖像分類(lèi)、目標(biāo)識(shí)別、語(yǔ)音識(shí)別等領(lǐng)域[14],并取得了很好的效果。同樣地,在推薦領(lǐng)域,也需要一種復(fù)雜度不高、能夠高效地處理海量數(shù)據(jù)的網(wǎng)絡(luò),所以本文采用文本卷積神經(jīng)網(wǎng)絡(luò)來(lái)改進(jìn)Netflix推薦大賽冠軍Koren等人[3-4]的BiasSVD模型。本文將針對(duì)此算法做出改進(jìn),結(jié)合深度學(xué)習(xí)具有強(qiáng)大的從樣本中學(xué)習(xí)數(shù)據(jù)集本質(zhì)特征的能力,以及能夠從多源異構(gòu)數(shù)據(jù)中進(jìn)行自動(dòng)學(xué)習(xí)的能力,采用詞嵌入結(jié)合前饋神經(jīng)網(wǎng)絡(luò)的方法和文本卷積神經(jīng)網(wǎng)絡(luò)組合來(lái)提取用戶(hù)和物品特征,最后采用神經(jīng)網(wǎng)絡(luò)并聯(lián)方式輸出預(yù)測(cè)評(píng)分項(xiàng)。本文算法經(jīng)實(shí)驗(yàn)表明在面臨極其稀疏的數(shù)據(jù)集,表現(xiàn)也比其它協(xié)同過(guò)濾算法要好,而且由于利用了用戶(hù)對(duì)物品的交互信息,從而有了可解釋性。本文算法在MovieLens-1M和MovieLens-10M數(shù)據(jù)集上進(jìn)行的廣泛對(duì)比評(píng)估表明,在RMSE和MAE指標(biāo)上有了很大的提升。
本文工作主要如下:
1)提出詞嵌入結(jié)合前饋神經(jīng)網(wǎng)絡(luò)方式和文本卷積神經(jīng)網(wǎng)絡(luò)組合來(lái)提取用戶(hù)和物品的描述信息和交互信息,可提高提取特征的能力。
2)對(duì)BiasSVD算法進(jìn)行改進(jìn),成功地將該算法對(duì)用戶(hù)評(píng)分偏好的處理方式和本文算法結(jié)合起來(lái),可提高評(píng)級(jí)預(yù)測(cè)的精度。
3)在MovieLens-1M和MovieLens-10M這2個(gè)真實(shí)的公開(kāi)數(shù)據(jù)集上做算法對(duì)比實(shí)驗(yàn),驗(yàn)證算法的可靠性。
矩陣分解是通過(guò)物品評(píng)分矩陣來(lái)推斷表征用戶(hù)和物品特征的,因?yàn)橛脩?hù)和物品特征之間具有高度一致性,所以能夠進(jìn)行推薦。這些矩陣分解的方法能夠迅速流行起來(lái)源于它們有良好的可擴(kuò)展性和比較精確的特性,而且也為很多建模的實(shí)際情況提供了很大的靈活性。矩陣分解模型將用戶(hù)和項(xiàng)目特征映射到維度為ω的聯(lián)合潛在因子模型,設(shè)對(duì)每個(gè)項(xiàng)目i相關(guān)聯(lián)的向量qi∈Rω,每個(gè)用戶(hù)u相關(guān)聯(lián)的向量pu∈Rf,qi表示項(xiàng)目擁有的特性,消極的或積極的,而pu表示用戶(hù)對(duì)這些項(xiàng)目的感興趣程度,rui表示用戶(hù)對(duì)項(xiàng)目的評(píng)分,則其預(yù)測(cè)值為:
(1)
這個(gè)模型源于SVD,當(dāng)在處理稀疏的評(píng)分矩陣時(shí),傳統(tǒng)矩陣分解帶來(lái)不確定性,即會(huì)出現(xiàn)很大偏差,所以在計(jì)算時(shí)往往需要對(duì)評(píng)分矩陣進(jìn)行填充。然而遇到大量數(shù)據(jù)時(shí)這種方法既費(fèi)時(shí)又不容易實(shí)現(xiàn),而且處理較少項(xiàng)目時(shí)還容易過(guò)擬合,所以出現(xiàn)了改進(jìn)版本:
(2)
其中,l表示數(shù)據(jù)集,λ為控制正則化程度的參數(shù),采用隨機(jī)梯度下降優(yōu)化參數(shù):
誤差項(xiàng):
(3)
按梯度下降對(duì)qi和pu進(jìn)行優(yōu)化:
qi←qi+γ(euipu-λqi)
(4)
pu←pu+γ(euiqi-λpu)
(5)
其中,γ為學(xué)習(xí)速率。因?yàn)榇嬖谟脩?hù)偏好問(wèn)題,這些因素的存在都嚴(yán)重影響了最后結(jié)果的精確性。例如,假設(shè)所有電影的平均評(píng)分為3.2分,即式(6)中的μ,小明是個(gè)挑剔的人,他傾向于對(duì)電影的評(píng)分要比電影平均評(píng)分低0.5分,即式(6)中的bu,而《泰坦尼克號(hào)》是一部很好的電影,它的評(píng)分要比平均評(píng)分高1.3分,那么bui=3.2-0.5+1.3=4,因此估計(jì)小明對(duì)《泰坦尼克號(hào)》的評(píng)分為4分。所以就有了顯式隔離項(xiàng):
bui=μ+bi+bu
(6)
其中,μ表示全局偏移量或平均評(píng)分,bi表示與項(xiàng)目有關(guān)的偏移項(xiàng),bu表示與用戶(hù)有關(guān)的偏移項(xiàng)。所以式(2)可以改寫(xiě)為:
(7)
由于偏差往往能捕捉到大部分觀測(cè)到的信號(hào),因此它們的精確建模至關(guān)重要。因此,其他研究提供了更精細(xì)的偏見(jiàn)模型[3-4]。
圖1 本文算法模型流程圖
(8)
最后經(jīng)過(guò)Adam算法優(yōu)化:
(9)
得到電影特征矩陣和用戶(hù)特征矩陣后用Top-N[16]推薦。
本文實(shí)驗(yàn)采用MovieLens數(shù)據(jù)集,MovieLens數(shù)據(jù)集包含多個(gè)用戶(hù)對(duì)多部電影的評(píng)級(jí)數(shù)據(jù),也包括電影元數(shù)據(jù)信息和用戶(hù)屬性信息。這個(gè)數(shù)據(jù)集經(jīng)常用來(lái)做推薦系統(tǒng),機(jī)器學(xué)習(xí)算法的測(cè)試數(shù)據(jù)集,尤其在推薦系統(tǒng)領(lǐng)域,很多推薦算法文獻(xiàn)都是基于這個(gè)數(shù)據(jù)集的[2-4,17-20]。
表1與表2分別給出了MovieLens數(shù)據(jù)集MovieLens-1M和MovieLens-10M的數(shù)據(jù)分布。
表2 MovieLens-10M數(shù)據(jù)集情況
如圖2所示,在對(duì)MovieLens整個(gè)數(shù)據(jù)集進(jìn)行統(tǒng)計(jì)分析時(shí),發(fā)現(xiàn)用戶(hù)評(píng)分隨著年齡的增長(zhǎng)呈現(xiàn)遞增趨勢(shì),這表明在此數(shù)據(jù)集上年齡越大對(duì)電影的評(píng)分標(biāo)準(zhǔn)越低。為了使算法對(duì)用戶(hù)的情感分析更加精準(zhǔn),所以在提取特征時(shí)加上了年齡因素這個(gè)隱性特征。
圖2 用戶(hù)年齡—評(píng)分情況
如圖3所示,在對(duì)電影年代和用戶(hù)評(píng)分之間進(jìn)行統(tǒng)計(jì)分析時(shí),發(fā)現(xiàn)用戶(hù)評(píng)分隨著電影年代的遞增呈現(xiàn)遞減趨勢(shì),這表明在MovieLens整個(gè)數(shù)據(jù)集上大量用戶(hù)可能更青睞于年代久一點(diǎn)的電影。這些都是影響用戶(hù)評(píng)分的因素,所以在對(duì)算法進(jìn)行評(píng)估時(shí)也加上了這一隱性特征。
圖3 電影年代—評(píng)分情況
本節(jié)給出評(píng)價(jià)指標(biāo):均方根誤差(RMSE)和平均絕對(duì)誤差(MAE)經(jīng)常被各種推薦系統(tǒng)用來(lái)評(píng)價(jià)系統(tǒng)優(yōu)良的指標(biāo)[2-3,11,17-19,21-23],百度、Netflix、阿里巴巴等公司舉辦的推薦系統(tǒng)大賽也用此指標(biāo)。
(10)
MAE測(cè)量的是預(yù)測(cè)值和實(shí)際值之間的差值的絕對(duì)值。
(11)
將本文算法與7種常用的算法進(jìn)行比較,這7種算法分別是:
2)SVD++。Koren[3]在2010年將顯式反饋和隱式反饋集成到一個(gè)模型中,在當(dāng)時(shí)實(shí)現(xiàn)了最先進(jìn)的性能。
3)CDL (Collaborative Deep Learning)。Wang等人[10]在2015年發(fā)現(xiàn)利用輔助信息可解決用戶(hù)對(duì)評(píng)分矩陣的稀疏問(wèn)題,而協(xié)作主題回歸表現(xiàn)得更好。
4)MLP (Multi-layered Perceptron)。He等人[9]在2017年將基于多層感知機(jī)網(wǎng)絡(luò)加上ReLU激活函數(shù),用于推薦。
5)ConvMF (Convolutional MF)。Kim等人[11]在2016年將卷積神經(jīng)網(wǎng)絡(luò)(CNN)集成到概率矩陣分解的算法。
6)NeuMF (Neural Matrix Factorization)。He等人[9]在2017年結(jié)合多層感知機(jī)MLP和廣義矩陣分解GMF得到的算法。
7)LSTM模型。Yu等人[2]在2019年利用LSTM(長(zhǎng)短期記憶神經(jīng)網(wǎng)絡(luò))增強(qiáng)系統(tǒng)的可靠性。
由表3可以得到,在MovieLens-1M數(shù)據(jù)集上本文算法的RMSE較最先進(jìn)的LSTM算法提升約19.75%以上,MAE約提升17.82%以上。表中提升比例的計(jì)算方法為:(LSTM算法值-本文算法值)/LSTM算法值。
表3 MovieLens-1M數(shù)據(jù)集上各算法的RMSE與MAE
在表4中本文對(duì)用戶(hù)與物品的交互信息tags做了處理,結(jié)果本文算法較LSTM算法的RMSE約提升35.6%以上,MAE約提升47.4%以上,可以得出用戶(hù)與物品的交互信息在給用戶(hù)推薦時(shí)起到非常重要的作用。
表4 MovieLens-10M數(shù)據(jù)集上各算法的RMSE和MAE
由表3與表4可以看出ConvMF算法表現(xiàn)較好,且與本文算法較為類(lèi)似,也比較易于實(shí)現(xiàn),故在圖4中將本文的改進(jìn)算法與ConvMF算法在MovieLens-1M數(shù)據(jù)集上進(jìn)行了對(duì)比實(shí)驗(yàn)。其中Epochs在深度學(xué)習(xí)中表示全數(shù)據(jù)集迭代次數(shù)。
圖4 本文算法與ConvMF算法在MovieLens-1M數(shù)據(jù)集上
由圖4可以明顯地看出,在預(yù)測(cè)觀眾喜好的準(zhǔn)確性上,本文對(duì)BiasSVD算法改進(jìn)的算法要明顯優(yōu)于ConvMF算法。
為了使實(shí)驗(yàn)結(jié)果更具說(shuō)服力,本文分別對(duì)神經(jīng)網(wǎng)絡(luò)的迭代次數(shù)與學(xué)習(xí)速率進(jìn)行了實(shí)驗(yàn),如圖5與圖6所示。
圖5 本文算法在不同數(shù)據(jù)集上不同迭代次數(shù)時(shí)
圖6 本文算法在不同數(shù)據(jù)集上不同學(xué)習(xí)速率時(shí)
在圖5與圖6中可以看到學(xué)習(xí)速率對(duì)算法的影響明顯,MovieLens-1M和MovieLens-10M數(shù)據(jù)集分別在學(xué)習(xí)速率為0.00001和0.001時(shí)達(dá)到最佳。
通過(guò)大量實(shí)驗(yàn)驗(yàn)證,可以看到本文的算法在MovieLens-1M數(shù)據(jù)集上相較效果最好的LSTM算法的RMSE提升約19.75%以上,MAE提升約17.82%以上,在MovieLens-10M數(shù)據(jù)集上RMSE提升約35.6%以上,MAE提升約47.4%以上。綜上,可以得到,本文的算法在對(duì)用戶(hù)情感、喜好的理解程度比效果最好的ConvMF算法與LSTM算法要深,更能滿足用戶(hù)的需求。
傳統(tǒng)的矩陣分解算法因?yàn)橹皇呛?jiǎn)單地將物品與用戶(hù)矩陣作內(nèi)積,不能有效地提取用戶(hù)與物品特征,卷積矩陣分解ConvMF與長(zhǎng)短期記憶神經(jīng)網(wǎng)絡(luò)LSTM先后對(duì)其改進(jìn),但對(duì)用戶(hù)與物品文檔上下文理解不夠,導(dǎo)致評(píng)級(jí)預(yù)測(cè)精度較差,本文提出用詞嵌入結(jié)合前饋神經(jīng)網(wǎng)絡(luò)和文本卷積神經(jīng)網(wǎng)絡(luò)組合來(lái)提取特征的方法對(duì)BiasSVD算法進(jìn)行改進(jìn)。在MovieLens的2個(gè)真實(shí)數(shù)據(jù)集上進(jìn)行廣泛的實(shí)驗(yàn)對(duì)比,發(fā)現(xiàn)本文算法評(píng)級(jí)預(yù)測(cè)更加準(zhǔn)確,驗(yàn)證了用戶(hù)對(duì)物品的交互信息更加能反映用戶(hù)的喜好,所以基于深度學(xué)習(xí)的用戶(hù)和物品信息的提取仍然值得深入研究。