張玉瑤,程學(xué)林,尹天鶴
(浙江大學(xué) 軟件學(xué)院,浙江 杭州 310058)
隨著大數(shù)據(jù)時(shí)代的到來(lái),每時(shí)每刻都有海量數(shù)據(jù)被制造和發(fā)布到網(wǎng)絡(luò)上。為了應(yīng)對(duì)數(shù)據(jù)量的激增導(dǎo)致的“信息過(guò)載”問(wèn)題,推薦系統(tǒng)應(yīng)運(yùn)而生。在電影推薦領(lǐng)域,用戶可以方便地通過(guò)移動(dòng)終端接觸各式各樣的電影,對(duì)電影的選擇越來(lái)越依賴于電影評(píng)分和智能化電影推薦[1]。推薦系統(tǒng)的核心在于推薦算法,推薦算法的準(zhǔn)確度直接決定著推薦系統(tǒng)的效果。
協(xié)同過(guò)濾推薦算法能夠充分利用用戶行為數(shù)據(jù),不受物品內(nèi)容的限制,成為應(yīng)用最普遍的推薦算法之一[2]。矩陣分解(matrix factorization,MF)是一種基于模型的協(xié)同過(guò)濾算法,模型簡(jiǎn)單且擅長(zhǎng)評(píng)分預(yù)測(cè),在電影推薦等領(lǐng)域得到了廣泛的應(yīng)用。文獻(xiàn)[3]提出的隱語(yǔ)義模型(latent factor model,LFM)是一種典型的矩陣分解,引入用戶和物品評(píng)分隱因子,之后該算法又被進(jìn)一步優(yōu)化。文獻(xiàn)[4]將用戶隱式反饋信息及用戶和項(xiàng)目偏好隨時(shí)間的變化納入考慮,提出TimeSVD++算法,使得推薦準(zhǔn)確性進(jìn)一步提升。然而,矩陣分解過(guò)度依賴于用戶對(duì)物品的行為數(shù)據(jù),導(dǎo)致了數(shù)據(jù)稀疏性、冷啟動(dòng)以及特征提取不充分等問(wèn)題[5],對(duì)推薦準(zhǔn)確度造成了嚴(yán)重影響。
隨著人工智能浪潮的興起,一些學(xué)者開(kāi)始將深度學(xué)習(xí)方法運(yùn)用到推薦算法研究中,文獻(xiàn)[6]對(duì)深度學(xué)習(xí)在推薦算法中的應(yīng)用進(jìn)行了綜述。文獻(xiàn)[7]提出了深廣學(xué)習(xí)模型(wide & deep learning),能夠?qū)Π?xiàng)目特征、情景特征在內(nèi)的多源異構(gòu)數(shù)據(jù)加以綜合利用,使得訓(xùn)練得到的模型同時(shí)獲得記憶和泛化能力。文獻(xiàn)[8]提出一種基于長(zhǎng)短期記憶網(wǎng)絡(luò)LSTM的上下文感知模型,該模型能夠捕捉用戶的長(zhǎng)短期興趣偏好,使得個(gè)性化上下文感知引用推薦成為可能。也有一些研究將深度學(xué)習(xí)算法和協(xié)同過(guò)濾融合起來(lái),構(gòu)建混合推薦模型。將深度學(xué)習(xí)算法提取到的特征作為輔助信息,有利于緩解數(shù)據(jù)稀疏問(wèn)題,提高推薦準(zhǔn)確度。文獻(xiàn)[9]提出CNN-LFM模型,利用隱語(yǔ)義模型LFM挖掘評(píng)分?jǐn)?shù)據(jù),獲得用戶和項(xiàng)目的潛在特征,其中項(xiàng)目的潛在特征會(huì)在卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural networks,CNN)提取的圖像特征的約束下不斷完善,很好地提高了推薦的性能。文獻(xiàn)[10]提出了ConvMF卷積矩陣分解模型,將CNN集成到概率矩陣分解(probabilistic matrix factorization,PMF)中,通過(guò)融入項(xiàng)目文本特征提升推薦準(zhǔn)確度。然而,現(xiàn)有的混合算法在特征提取上比較單一,往往忽視了用戶特征,對(duì)項(xiàng)目特征的挖掘則集中于文本、圖像等某一方面,并不能充分體現(xiàn)項(xiàng)目特征。
該文將電影推薦作為研究對(duì)象,提出融合深度學(xué)習(xí)和矩陣分解的LM-SVD推薦算法。利用深度學(xué)習(xí)長(zhǎng)于特征提取和矩陣分解善于預(yù)測(cè)評(píng)分的優(yōu)點(diǎn),提高電影評(píng)分預(yù)測(cè)準(zhǔn)確度。首先以多層感知機(jī)(multilayer perceptron,MLP)和長(zhǎng)短期記憶網(wǎng)絡(luò)(long short-term memory,LSTM)的組合模型學(xué)習(xí)用戶、電影屬性數(shù)據(jù)及文本數(shù)據(jù),以獲取用戶和電影的深層特征表示。接著以BiasSVD矩陣分解模型學(xué)習(xí)用戶電影評(píng)分?jǐn)?shù)據(jù),獲取用戶、電影的潛在隱向量,并與深度學(xué)習(xí)階段獲得的深層向量相融合。最后結(jié)合評(píng)分偏置信息進(jìn)行電影評(píng)分預(yù)測(cè),改進(jìn)SVD的預(yù)測(cè)評(píng)分和損失函數(shù)計(jì)算方式,緩解評(píng)分矩陣的數(shù)據(jù)稀疏性,使得特征提取更加充分。
該算法的特點(diǎn)在于:(1)改進(jìn)了矩陣分解推薦算法的評(píng)分預(yù)測(cè)方式與損失函數(shù)。通過(guò)深度學(xué)習(xí)挖掘用戶和電影的深層次特征,融入矩陣分解模型中,提升電影評(píng)分預(yù)測(cè)準(zhǔn)確度。(2)通過(guò)MLP學(xué)習(xí)用戶、電影屬性特征,LSTM學(xué)習(xí)電影文本特征,BiasSVD矩陣分解學(xué)習(xí)用戶電影潛在特征,對(duì)用戶特征和電影特征進(jìn)行了深入挖掘,充分利用了輔助信息。即使當(dāng)用戶電影評(píng)分?jǐn)?shù)據(jù)較為稀疏時(shí),LM-SVD依然可以準(zhǔn)確地進(jìn)行預(yù)測(cè)。
多層感知機(jī)包含輸入層、隱藏層和輸出層,又稱人工神經(jīng)網(wǎng)絡(luò)。除了輸入輸出層,中間隱藏層的數(shù)量可以根據(jù)需求任意添加。MLP不同層之間是全連接的,即上一層的任意一個(gè)神經(jīng)元與下一層的所有神經(jīng)元之間都存在連接。
長(zhǎng)短期記憶網(wǎng)絡(luò)[11]是循環(huán)神經(jīng)網(wǎng)絡(luò)(recurrent neural network,RNN)[12]的一個(gè)重要變種。RNN很擅長(zhǎng)進(jìn)行序列化建模,而LSTM對(duì)RNN單元的結(jié)構(gòu)進(jìn)行了修改,通過(guò)設(shè)計(jì)門結(jié)構(gòu)和記憶單元來(lái)解決梯度爆炸或梯度消失問(wèn)題,能夠?qū)斎腴L(zhǎng)度較長(zhǎng)的時(shí)間序列問(wèn)題進(jìn)行建模。每一個(gè)時(shí)刻t的LSTM單元由輸入門it、遺忘門ft、輸出門ot、細(xì)胞記憶單元ct和隱層狀態(tài)ht組成。
遺忘門ft用來(lái)控制從細(xì)胞記憶單元中丟棄信息,決定上一時(shí)刻歷史信息的流入量,見(jiàn)式(1)。
ft=sigmoid(WifXt+bif+Whfht-1+bhf)
(1)
其中,ht-1表示上一個(gè)時(shí)刻的輸出,Xt表示當(dāng)前時(shí)刻的輸入。
輸入門it用于控制當(dāng)前時(shí)刻信息的流入。首先,以一個(gè)sigmoid層決定哪些信息需要更新,見(jiàn)式(2)。接著,以一個(gè)tanh層生成當(dāng)前時(shí)刻信息的備選更新值gt,由當(dāng)前時(shí)刻的輸入值Xt和上一時(shí)刻的輸出值ht-1所決定,見(jiàn)式(3)。最后,將這兩部分結(jié)合起來(lái),實(shí)現(xiàn)對(duì)細(xì)胞記憶單元的更新,將ct-1更新為ct,見(jiàn)式(4)。
it=sigmoid(WiiXt+bii+Whiht-1+bi)
(2)
gt=tanh(WigXt+big+Whght-1+bhg)
(3)
ct=ft×ct-1+it×gt
(4)
輸出門ot主要用于控制當(dāng)前時(shí)刻信息的流出,以決定最終輸出的值。如式(5)所示,先通過(guò)sigmoid層來(lái)決定輸出細(xì)胞記憶單元的哪些部分。
ot=sigmoid(WioXt+bio+Whoht-1+bho)
(5)
接著,把細(xì)胞記憶單元ct通過(guò)tanh進(jìn)行處理,并將它和ot相乘篩選出最終的輸出結(jié)果,見(jiàn)式(6)。
ht=ot×tanh(ct)
(6)
以上公式解釋了信息在LSTM隱藏層的處理過(guò)程。LSTM通過(guò)設(shè)置三道控制門實(shí)現(xiàn)了信息選擇,可以很好地對(duì)長(zhǎng)期時(shí)間序列進(jìn)行建模。
矩陣分解是一種基于模型的協(xié)同過(guò)濾算法[13],在推薦領(lǐng)域應(yīng)用廣泛。該文采用的矩陣分解算法是求解用戶、物品潛在特征隱向量,考慮評(píng)分偏置的BiasSVD算法[3]。
設(shè)R代表評(píng)分矩陣,現(xiàn)有m個(gè)用戶,n個(gè)物品。在矩陣分解階段,尋找用戶特征矩陣P和物品特征矩陣Q,使得兩矩陣的乘積近似等于R。k表示用戶隱向量和物品隱向量的維度:
(7)
(8)
在實(shí)際應(yīng)用中,用戶對(duì)物品的評(píng)分可能存在偏見(jiàn),因此在預(yù)測(cè)評(píng)分中加入評(píng)分偏置項(xiàng),其中μ為整體評(píng)分偏差,是所有評(píng)分的全局平均值;bu為用戶評(píng)分偏置,bi為物品評(píng)分偏置。
‖qi‖2+‖bu‖2+‖bi‖2)
(9)
矩陣分解具有易于建模、擅長(zhǎng)評(píng)分預(yù)測(cè)的特點(diǎn),是目前應(yīng)用最為廣泛的電影推薦算法之一。然而,矩陣分解電影推薦算法存在著以下問(wèn)題:
(1)數(shù)據(jù)稀疏性問(wèn)題是指用戶電影評(píng)分矩陣是極為稀疏的。用戶只對(duì)極少部分的電影做出過(guò)評(píng)分等行為,稀疏的評(píng)分矩陣使得矩陣分解的效果不佳。
(2)冷啟動(dòng)問(wèn)題是一種極端情況下的數(shù)據(jù)稀疏性問(wèn)題。當(dāng)一個(gè)新用戶或者一部新電影剛剛進(jìn)入系統(tǒng)時(shí),由于還沒(méi)有產(chǎn)生用戶行為數(shù)據(jù),也就無(wú)法做出推薦。
(3)特征提取不充分問(wèn)題是指矩陣分解只利用了用戶行為數(shù)據(jù),而沒(méi)有將用戶屬性數(shù)據(jù)和電影屬性數(shù)據(jù)考慮在內(nèi)。這些輔助信息中很可能蘊(yùn)含著用戶和電影的重要特征。
為應(yīng)對(duì)上述問(wèn)題,該文將深度學(xué)習(xí)和矩陣分解算法融合設(shè)計(jì)混合推薦算法LM-SVD,使得電影評(píng)分預(yù)測(cè)準(zhǔn)確度提高,從而提升推薦質(zhì)量。首先利用多層感知機(jī)(MLP)學(xué)習(xí)用戶、電影屬性特征,利用長(zhǎng)短期記憶網(wǎng)絡(luò)(LSTM)學(xué)習(xí)電影文本特征,獲取用戶和電影的深層次特征向量。之后將習(xí)得的深層特征向量融入BiasSVD矩陣分解模型中,改進(jìn)BiasSVD的評(píng)分預(yù)測(cè)方式和損失函數(shù),分解用戶電影評(píng)分矩陣從而預(yù)測(cè)評(píng)分。將深度學(xué)習(xí)提取到的特征作為輔助信息,可以有效地緩解用戶電影評(píng)分矩陣的數(shù)據(jù)稀疏性和冷啟動(dòng)問(wèn)題。
該文提出融合深度學(xué)習(xí)算法和BiasSVD矩陣分解模型的LM-SVD推薦算法。算法整體架構(gòu)如圖1所示。
圖1 LM-SVD算法模型
算法整體分為數(shù)據(jù)處理層、算法模型層和評(píng)分預(yù)測(cè)層。數(shù)據(jù)處理層進(jìn)行數(shù)據(jù)預(yù)處理和特征工程。其中用戶屬性、電影屬性及電影文本數(shù)據(jù)作為輔助信息,用于深度學(xué)習(xí)模型訓(xùn)練;用戶電影評(píng)分行為數(shù)據(jù)用于矩陣分解模型訓(xùn)練。
算法模型層包含深度學(xué)習(xí)模塊和矩陣分解模塊。深度學(xué)習(xí)模塊包含兩個(gè)并行的網(wǎng)絡(luò)Netu和Neti。Netu負(fù)責(zé)通過(guò)MLP學(xué)習(xí)用戶屬性數(shù)據(jù),輸出用戶深層特征向量Pu;Neti首先以MLP學(xué)習(xí)電影屬性數(shù)據(jù),并通過(guò)LSTM從電影標(biāo)題數(shù)據(jù)中學(xué)習(xí)電影文本特征,之后輸出電影深層特征向量Qi。BiasSVD矩陣分解模塊負(fù)責(zé)從用戶電影評(píng)分矩陣中分解出用戶潛在隱向量pu和電影潛在隱向量qi,這屬于潛在特征向量。將深度學(xué)習(xí)得到的深層特征向量Pu和Qi與矩陣分解得到的潛在特征向量pu和qi進(jìn)行融合,并結(jié)合用戶評(píng)分偏置,對(duì)SVD算法的損失函數(shù)進(jìn)行改進(jìn)。
評(píng)分預(yù)測(cè)層通過(guò)最小化損失函數(shù)訓(xùn)練模型??衫糜?xùn)練好的模型進(jìn)行評(píng)分預(yù)測(cè),從而為每個(gè)用戶形成其電影推薦列表。
(1)學(xué)習(xí)用戶深層特征向量。
(10)
(11)
式(10)、(11)中,w1和w2表示全連接層權(quán)重,b1和b2表示偏置。
(2)學(xué)習(xí)電影深層特征向量
將電影屬性和電影文本數(shù)據(jù)輸入到模型中以獲取電影深層特征向量。首先將電影屬性輸入到嵌入層,從而將各特征轉(zhuǎn)化為稠密向量。經(jīng)過(guò)嵌入層后,電影ID、電影類別、上映年份、電影演員特征向量的維度均為8。由于每部電影有多名演員,需要對(duì)每部電影對(duì)應(yīng)的多個(gè)演員向量做加和,以代表該部電影的演員向量,類別特征同理。
將電影標(biāo)題文本數(shù)據(jù)輸入到LSTM模型中。這部分模型包括嵌入層、LSTM層和dropout層。嵌入層將電影標(biāo)題文檔轉(zhuǎn)換為詞向量矩陣。在數(shù)據(jù)預(yù)處理階段,所有電影標(biāo)題句都被映射為長(zhǎng)度為15的等長(zhǎng)數(shù)字列表,對(duì)應(yīng)15個(gè)單詞,標(biāo)題長(zhǎng)度不足15的用填充符所對(duì)應(yīng)的數(shù)字補(bǔ)齊。則每個(gè)電影標(biāo)題通過(guò)嵌入層后,都會(huì)被編碼為形如D={a1,a2,…,a15}的詞向量矩陣,ai是第i個(gè)單詞的詞向量,維數(shù)為8。之后通過(guò)一層LSTM層處理詞向量矩陣。隱藏層神經(jīng)元的個(gè)數(shù)為8,激活函數(shù)采用tanh。dropout層以預(yù)先設(shè)置的概率停止神經(jīng)元的輸出,意味著每次的網(wǎng)絡(luò)訓(xùn)練只有一部分?jǐn)?shù)據(jù)特征在參與,從而達(dá)到防止神經(jīng)網(wǎng)絡(luò)過(guò)擬合的目的。這里dropout設(shè)置為0.5。
經(jīng)過(guò)上述處理,LSTM將電影標(biāo)題的行文檔作為輸入,輸出每一行標(biāo)題文本的特征向量Qi1:
Qi1=LSTM(W,yi)
(12)
其中,W代表所有的權(quán)重和偏置,對(duì)于每個(gè)初始電影標(biāo)題行文檔yi,得到一個(gè)維數(shù)為8的文本特征向量Qi1。
將嵌入層輸出的各電影屬性特征向量輸入到MLP,包含一層全連接層,共32個(gè)神經(jīng)元,激活函數(shù)為relu。設(shè)第一個(gè)MLP輸出的電影屬性特征向量為Qi2,將Qi2和LSTM輸出的電影文本特征向量Qi1輸入到第二個(gè)MLP中。如式(13)所示,最終輸出電影深層特征向量Qi。Qi的維度為k,是待確定的參數(shù)。concatenate(·)函數(shù)用于將Qi1,Qi2兩個(gè)特征向量進(jìn)行串聯(lián),w為全連接層權(quán)重,b為偏置。該MLP包含一層全連接層,共k個(gè)神經(jīng)元,激活函數(shù)為tanh。
Qi=tanh(w·concatenate(Qi1,Qi2)+b)
(13)
在1.3節(jié)中,闡述了加入評(píng)分偏置項(xiàng)的BiasSVD矩陣分解算法原理和主要計(jì)算公式。如圖1所示,LM-SVD算法將深度學(xué)習(xí)模型訓(xùn)練得出的用戶深層特征向量Pu和電影深層特征向量Qi融合到矩陣分解模型中,與矩陣分解獲得的用戶潛在隱特征向量pu和電影潛在隱特征向量qi進(jìn)行合并,對(duì)BiasSVD的損失函數(shù)進(jìn)行修改。
(14)
其中,pu、Pu、qi、Qi均為k維向量;μ為整體評(píng)分偏差,是所有評(píng)分的全局平均值;bu為用戶評(píng)分偏置,bi為電影評(píng)分偏置。
LM-SVD模型的損失函數(shù)在式(9)的基礎(chǔ)上進(jìn)行改進(jìn),最終如式(15)所示:
‖Qi‖2+‖pu‖2+‖qi‖2+
‖bu‖2+‖bi‖2)
(15)
LM-SVD算法訓(xùn)練和參數(shù)優(yōu)化的過(guò)程總結(jié)如下,通過(guò)最小化損失函數(shù)訓(xùn)練模型。
算法:LM-SVD推薦算法。
輸入:用戶電影評(píng)分矩陣R,用戶特征數(shù)據(jù)M,電影特征數(shù)據(jù)N,用戶和電影特征向量維度為k。
步驟1:劃分?jǐn)?shù)據(jù)集為訓(xùn)練集、驗(yàn)證集及測(cè)試集。
步驟2:訓(xùn)練提取用戶深層特征向量Pu。
(1)用戶特征數(shù)據(jù)預(yù)處理,并通過(guò)嵌入層轉(zhuǎn)化為稠密向量。
(2)嵌入層后輸入MLP中,需要確定的參數(shù)有激活函數(shù)、隱藏層層數(shù)、隱藏層神經(jīng)元數(shù)等。訓(xùn)練得Pu。
步驟3:訓(xùn)練提取電影深層特征向量Qi。
(1)電影特征數(shù)據(jù)預(yù)處理,并通過(guò)嵌入層轉(zhuǎn)化為稠密向量。
(2)嵌入層后輸入MLP中,需要確定的參數(shù)有激活函數(shù)、隱藏層層數(shù)、隱藏層神經(jīng)元數(shù)等。訓(xùn)練得電影屬性特征向量。
(3)將電影標(biāo)題文本數(shù)據(jù)輸入LSTM中,需要確定的參數(shù)有LSTM層數(shù)、隱藏層神經(jīng)元數(shù)等。訓(xùn)練得電影文本特征向量。
(4)拼接屬性特征和文本特征,再通過(guò)一層全連接層,得電影深層特征向量Qi。
步驟4:將Pu,Qi融入BiasSVD模型,計(jì)算預(yù)測(cè)評(píng)分,最小化損失函數(shù)。需要調(diào)整的參數(shù)有正則化系數(shù)λ、學(xué)習(xí)率α等。
(2)根據(jù)式(15)計(jì)算損失函數(shù)Loss。
(3)根據(jù)式(16)計(jì)算均方根誤差RMSE。
(4)迭代訓(xùn)練模型直到達(dá)到最大迭代次數(shù)或者RMSE值小于閾值。
(1)實(shí)驗(yàn)數(shù)據(jù)集。
該文采用的實(shí)驗(yàn)數(shù)據(jù)集是電影推薦研究領(lǐng)域常用的公開(kāi)數(shù)據(jù)集MovieLens-1M和MovieLens-100K,來(lái)源于(https://grouplens.org/datasets/movielens)。另通過(guò)爬蟲從IMDB(https://www.imdb.com/)獲取電影上映年份、電影演員等信息對(duì)數(shù)據(jù)集進(jìn)行補(bǔ)充。補(bǔ)充之后兩個(gè)數(shù)據(jù)集中都包含了用戶電影評(píng)分?jǐn)?shù)據(jù)、電影信息數(shù)據(jù)以及用戶信息數(shù)據(jù)。兩數(shù)據(jù)集的基本信息如表1所示。
表1 兩實(shí)驗(yàn)數(shù)據(jù)集基本信息
需對(duì)原始數(shù)據(jù)集進(jìn)行數(shù)據(jù)預(yù)處理,從三個(gè)數(shù)據(jù)集中獲取需要的字段,并將各非數(shù)值特征字段轉(zhuǎn)換為數(shù)字。具體處理方式如下:
電影信息數(shù)據(jù)需要用到電影ID、電影類別、上映年份、電影演員、電影標(biāo)題五個(gè)字段。上映年份字段需把各年份區(qū)間映射為0到7的數(shù)字。電影類別字段需要將全部的電影類別組成一個(gè)字符串到數(shù)字的映射字典,之后再把每部電影的類別字段轉(zhuǎn)換成等長(zhǎng)的數(shù)字列表。電影標(biāo)題字段首先創(chuàng)建標(biāo)題中詞匯文本到數(shù)字的映射字典,然后將標(biāo)題句子轉(zhuǎn)換成詞匯對(duì)應(yīng)的等長(zhǎng)數(shù)字列表。電影演員字段的處理方式同電影類別。用戶信息數(shù)據(jù)需要用到用戶ID,性別,年齡,職業(yè)四個(gè)字段。性別字段需把兩種性別字符映射為0和1,年齡字段則要把各年齡區(qū)間映射為0到6的數(shù)字。用戶電影評(píng)分?jǐn)?shù)據(jù)需要用到用戶ID,電影ID,評(píng)分三個(gè)字段,這三個(gè)字段無(wú)需特殊的處理。
(2)實(shí)驗(yàn)評(píng)價(jià)指標(biāo)。
推薦算法的質(zhì)量主要體現(xiàn)在其推薦準(zhǔn)確性。該文主要度量推薦算法預(yù)測(cè)評(píng)分的準(zhǔn)確度,以均方根誤差(root mean squared error,RMSE)為評(píng)估指標(biāo)。RMSE衡量的是預(yù)測(cè)評(píng)分值與實(shí)際評(píng)分值之間的偏差。其值越小,則評(píng)分預(yù)測(cè)準(zhǔn)確度越高,推薦算法質(zhì)量越好。RMSE的計(jì)算公式如式(16)所示:
(16)
3.2.1 參數(shù)實(shí)驗(yàn)
將數(shù)據(jù)集隨機(jī)分為3個(gè)部分,分別為訓(xùn)練集(80%)、驗(yàn)證集(10%)和測(cè)試集(10%)。采用五折交叉驗(yàn)證法進(jìn)行參數(shù)選擇。由于模型涉及的參數(shù)較多,這里只展示一些主要參數(shù)的調(diào)優(yōu)實(shí)驗(yàn)結(jié)果。實(shí)驗(yàn)關(guān)注的參數(shù)主要有:用戶、電影特征向量維度k;正則化項(xiàng)系數(shù)λ。
經(jīng)過(guò)反復(fù)實(shí)驗(yàn),其余參數(shù)設(shè)置如下:迭代次數(shù)epoch=10,學(xué)習(xí)率α=0.001,訓(xùn)練迭代的批次樣本數(shù)量Batch_Size=256。其他深度學(xué)習(xí)階段參數(shù)設(shè)置在2.3節(jié)中闡述。
(1)用戶、電影特征向量維度k。
如式(14),深度學(xué)習(xí)階段獲得的用戶、電影深層特征向量Pu、Qi,以及矩陣分解階段獲得的用戶、電影潛在特征向量pu、qi,維度均為k。當(dāng)其他參數(shù)固定時(shí),調(diào)整特征向量維度k,取值范圍為[40,50,60,70,80]。由表2可知,隨著k的增加,LM-SVD算法的RMSE值在兩數(shù)據(jù)集上均呈現(xiàn)先減小后增大的趨勢(shì)。當(dāng)k增加時(shí),模型學(xué)習(xí)到了更多用戶和電影的隱藏特征,使得預(yù)測(cè)準(zhǔn)確度提高。但當(dāng)k超過(guò)一定范圍時(shí),模型的泛化能力有所下降,使得RMSE值增加。在MovieLens-1M數(shù)據(jù)集上,當(dāng)k為50時(shí),算法的RMSE值最小,為0.847 9。在MovieLens-100K數(shù)據(jù)集上,當(dāng)k為60時(shí),取得最小RMSE值,為0.907 2。
表2 特征向量維度k對(duì)算法RMSE值的影響
(2)正則化項(xiàng)系數(shù)λ。
正則化項(xiàng)系數(shù)λ的取值范圍為[0.02,0.04,0.06,0.08,0.10]。由表3可知,隨著正則化項(xiàng)系數(shù)λ的增加,LM-SVD算法的RMSE值在兩數(shù)據(jù)集上呈現(xiàn)先減小后增大的趨勢(shì)。當(dāng)λ為0.04時(shí),算法在兩數(shù)據(jù)集上的RMSE值均達(dá)到最小。MovieLens-1M的RMSE為0.847 8,MovieLens-100K的RMSE為0.907。
表3 正則化項(xiàng)系數(shù)λ對(duì)算法RMSE值的影響
根據(jù)上述參數(shù)實(shí)驗(yàn)結(jié)果,在MovieLens-1M數(shù)據(jù)集上,LM-SVD算法的最優(yōu)參數(shù)組合為:k=50,λ=0.04;在MovieLens-100K數(shù)據(jù)集上,LM-SVD算法的最優(yōu)參數(shù)組合為:k=60,λ=0.04。
3.2.2 對(duì)比實(shí)驗(yàn)
為了客觀驗(yàn)證文中算法的推薦效果,將保持最優(yōu)參數(shù)組合條件下的LM-SVD算法與表4中的3個(gè)算法進(jìn)行對(duì)比。
表4 對(duì)比算法
接著,在MovieLens-1M,MovieLens-100K數(shù)據(jù)集上對(duì)四種算法的評(píng)分預(yù)測(cè)準(zhǔn)確度進(jìn)行測(cè)試。以RMSE作為評(píng)測(cè)指標(biāo),對(duì)比結(jié)果如表5所示。
表5 對(duì)比實(shí)驗(yàn)結(jié)果
如表5所示,文中提出的LM-SVD算法在兩個(gè)數(shù)據(jù)集上表現(xiàn)出的電影評(píng)分預(yù)測(cè)準(zhǔn)確度均優(yōu)于三種對(duì)比算法。在MovieLens-1M數(shù)據(jù)集上,LM-SVD算法的RMSE值比DN-CBR、BiasSVD、ConvMF分別下降2.68%,1.73%,0.64%。在MovieLens-100K數(shù)據(jù)集上,LM-SVD算法的RMSE值比DN-CBR、BiasSVD、ConvMF分別下降3.13%,1.29%,0.70%。由上述實(shí)驗(yàn)結(jié)果可得出以下結(jié)論:
LM-SVD算法的表現(xiàn)優(yōu)于BiasSVD矩陣分解、DN-CBR深度神經(jīng)網(wǎng)絡(luò)和ConvMF深度矩陣分解,證明將深度學(xué)習(xí)和矩陣分解進(jìn)行融合,可以通過(guò)融入用戶、電影屬性特征等輔助信息來(lái)緩解原有評(píng)分矩陣的數(shù)據(jù)稀疏性問(wèn)題,從而提升電影評(píng)分預(yù)測(cè)準(zhǔn)確度。且效果好于單純的深度學(xué)習(xí)評(píng)分預(yù)測(cè)模型。相對(duì)于僅僅利用電影描述等文本信息作為輔助信息的ConvMF算法,文中提出的算法在用戶和電影特征提取方面更加充分,優(yōu)化了評(píng)分預(yù)測(cè)效果。
文中將電影推薦作為研究對(duì)象,針對(duì)矩陣分解推薦算法存在的數(shù)據(jù)稀疏性、冷啟動(dòng)和特征提取不充分等問(wèn)題,將深度學(xué)習(xí)和矩陣分解相融合,提出LM-SVD推薦算法。首先利用MLP和LSTM的組合模型學(xué)習(xí)用戶和電影的深層特征表示。之后將深層特征融入到BiasSVD矩陣分解算法中,改進(jìn)SVD的損失函數(shù)計(jì)算方式,緩解了評(píng)分矩陣的數(shù)據(jù)稀疏性,使得特征提取更加充分。在MovieLens的兩個(gè)數(shù)據(jù)集上進(jìn)行的算法對(duì)比實(shí)驗(yàn)表明,該算法在電影評(píng)分預(yù)測(cè)方面的表現(xiàn)優(yōu)于三種對(duì)比算法,表現(xiàn)出較好的推薦性能。模型充分利用了用戶和電影的屬性信息、文本信息以及用戶電影評(píng)分信息,有效地緩解了傳統(tǒng)矩陣分解中存在的數(shù)據(jù)稀疏性和冷啟動(dòng)問(wèn)題。但該模型沒(méi)有考慮用戶興趣偏好隨時(shí)間的變化,下一步的研究可以考慮加入時(shí)間因子。