張尚田,陳 光,邱 天
(南昌航空大學(xué)信息工程學(xué)院,江西 南昌 330063)
評分預(yù)測問題是當(dāng)前推薦系統(tǒng)的一個熱點研究問題。目前研究較為廣泛的評分預(yù)測算法包括協(xié)同過濾算法(Collaborative Filtering, CF)[1-4]和隱語義模型[5](Latent Factor Model, LFM)等。其中,隱語義模型通過矩陣分解建立用戶和對象的交互關(guān)系來預(yù)測用戶對于對象的喜好程度。
許多學(xué)者對隱語義模型進行了深入研究。文獻[6]提出了貝葉斯分層核概率矩陣分解模型,對數(shù)據(jù)矩陣的單行進行高斯先驗綜合,在矩陣的多行上用高斯過程先驗。文獻[7]提出了因子分解機模型,能夠處理大規(guī)模數(shù)據(jù),同時具有較好的泛化性。文獻[8]提出了一種基于概率的隱語義模型,從而預(yù)測用戶對物品的評分。李曉菊等人[9]提出了一種變分循環(huán)自動編碼器的協(xié)同過濾方法,將商品文本信息變成特征向量,加入到概率矩陣分解模型中。燕彩蓉等人[10]提出了廣義高斯分布的貝葉斯概率矩陣分解方法,用高斯分布作為先驗分布,可準(zhǔn)確獲取數(shù)據(jù)中的信息,但增加了計算復(fù)雜度。Liu等人[11]基于LFM,用特征名詞代替LFM,增強了可解釋性。為解決冷啟動問題,Lin等人[12]提出了一種基于用戶和物品屬性可動態(tài)調(diào)整參數(shù)的LFM模型。傳統(tǒng)的CF僅考慮用戶評分,未考慮用戶偏好和屬性,文獻[13]在LFM的基礎(chǔ)上,通過聚類算法對用戶矩陣聚類得到用戶潛在屬性,再根據(jù)用戶歷史評分計算對象相似度,最后與用戶相似度融合得到最終相似度。
伴隨社交網(wǎng)絡(luò)的興起,許多學(xué)者將社交特征數(shù)據(jù)加入到隱語義模型中,緩解數(shù)據(jù)稀疏和冷啟動問題。王智強等人[14]提出了一種融合信息的概率矩陣分解模型,最終實現(xiàn)社交網(wǎng)絡(luò)的鏈路預(yù)測。考慮到社交網(wǎng)絡(luò)中用戶間的信任與不信任因素,文獻[15-16]將信任機制加入到概率矩陣分解(Probabilistic Matrix Factorization, PMF)中,構(gòu)建用戶-信任評分矩陣,再用概率矩陣分解提取特征,相比之前PMF可以更加真實地為用戶推薦,推薦精度得到較大提高。隨著深度學(xué)習(xí)的火熱發(fā)展,很多學(xué)者將深度學(xué)習(xí)應(yīng)用于推薦系統(tǒng)的研究[17-18]。文獻[19]將寬線性模型和深度神經(jīng)網(wǎng)絡(luò)相結(jié)合,提出了Wide&Deep learning模型。楊蘇雁[20]將外積深度神經(jīng)網(wǎng)絡(luò)框架與概率矩陣分解相結(jié)合,有效解決了網(wǎng)絡(luò)結(jié)構(gòu)復(fù)雜帶來的問題。
隱語義模型(LFM)是一種提取用戶和對象特征的行之有效的方法。本文結(jié)合深度學(xué)習(xí),運用LFM所提取的有效特征,并考慮用戶和對象的其他一些標(biāo)簽特征信息,提出一種基于融合特征的LSTM評分預(yù)測模型(F-LFM-LSTM),該模型能夠較好地提高預(yù)測準(zhǔn)確度。
LFM是通過構(gòu)造2個低秩矩陣來近似目標(biāo)矩陣R,以評分預(yù)測問題為例,P∈R|U|×f表示用戶特征矩陣,其中f表示特征空間的長度,Pu對應(yīng)于特定用戶u,Q∈R|I|×f表示對象特征矩陣,其中qi對應(yīng)于特定對象i,通常fmin (|U|,|I|)。將用戶u對于對象i的評分轉(zhuǎn)換為相應(yīng)特征向量的點積,如公式(1)所示:
(1)
(2)
其中,‖‖F(xiàn)為Frobenius范數(shù);1(u,i)是指標(biāo)函數(shù),如果用戶u對于對象i進行了評分,則1(u,i)=1,否則1(u,i)=0;λ是正則項的權(quán)重參數(shù);(P,Q)是具有局部最小值的二次函數(shù)。根據(jù)隨機梯度下降,求解特征矩陣的參數(shù)。首先,用隨機正態(tài)分布對P和Q進行初始化;其次,通過迭代,每次迭代計算和真實評分rui的誤差,如公式(3)所示:
(3)
然后,利用公式(4)更新相應(yīng)的特征向量:
(4)
其中,γ表示學(xué)習(xí)率。經(jīng)過多次迭代,提取到用戶特征矩陣P和對象特征矩陣Q。
由于循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Networks, RNN)在訓(xùn)練時會產(chǎn)生梯度消失或梯度爆炸問題[21],1997年Hochreiter等人[22]提出了長短期記憶網(wǎng)絡(luò)(Long Short-Term Memory, LSTM),有效解決了此問題。在介紹LSTM網(wǎng)絡(luò)之前,先介紹循環(huán)神經(jīng)網(wǎng)絡(luò)RNN,其結(jié)構(gòu)圖如圖1所示。
圖1 單層單向循環(huán)結(jié)構(gòu)
圖1單層單向循環(huán)結(jié)構(gòu)是循環(huán)神經(jīng)網(wǎng)絡(luò)中的一種基本結(jié)構(gòu),可以理解成對一個運算單元單向多次使用。其中,等號左邊為RNN的整體結(jié)構(gòu),等號右邊為RNN整體結(jié)構(gòu)展開圖;A表示運算單元,每一次運算單元使用的權(quán)重和運算規(guī)則相同,即A的參數(shù)是共享的。
LSTM與RNN的區(qū)別在于LSTM在算法中加入了一個用來判斷信息有用與否的處理器,此處理器被稱為cell。cell由遺忘門、輸入門和輸出門組成。當(dāng)信息進入LSTM網(wǎng)絡(luò)中,根據(jù)規(guī)則判斷信息是否有用,若信息有用則留下,否則被遺忘。具體的LSTM神經(jīng)網(wǎng)絡(luò)基本結(jié)構(gòu)如圖2所示。
圖2中,Ct-1和Ct是LSTM的單元狀態(tài)又稱為長期記憶,ht-1和ht為短期記憶。符號σ代表Sigmoid層,由sigmoid函數(shù)實現(xiàn);從左到右,依次為遺忘門、輸入門和輸出門。LSTM的工作流程可分成4個步驟:
ft=σ(Wf·[ht-1,xt]+bf)
(5)
it=σ(Wi·[ht-1,xt]+bi)
(6)
(7)
(8)
ot=σ(Wo×[ht-1,xt]+bo)
(9)
yt=ht=ot×tanh (Ct)
(10)
上述公式(5)~公式(10)中,Wf、Wi、WC和Wo分別表示相關(guān)的權(quán)重向量;bf、bi、bC和bo分別表示相關(guān)的偏差向量。
本文提出一種基于融合特征的LSTM評分預(yù)測模型(F-LFM-LSTM)。首先,運用LFM模型,提取用戶和對象的有效特征;然后,融合用戶的職業(yè)、年齡、性別標(biāo)簽和對象類別標(biāo)簽等輔助信息;最后,訓(xùn)練LSTM得出預(yù)測評分。模型的結(jié)構(gòu)如圖3所示,具體分為5步實現(xiàn):收集數(shù)據(jù)、用戶和對象的有效特征提取、建立訓(xùn)練樣本集、訓(xùn)練LSTM模型并產(chǎn)生預(yù)測結(jié)果、評估模型優(yōu)劣。
圖3 F-LFM-LSTM網(wǎng)絡(luò)模型結(jié)構(gòu)
1)收集數(shù)據(jù)。本文采用MovieLens100k數(shù)據(jù)集來驗證F-LFM-LSTM模型的實驗結(jié)果。
2)用戶和對象的有效特征提取。首先,初始化用戶和對象的隨機特征,使其服從正態(tài)分布(0,0.02);然后,通過LFM對用戶和對象的初始隨機特征進行多次迭代,得到用戶和對象的有效特征。
3)建立訓(xùn)練樣本集。利用第2步得到的用戶和對象的有效特征,對其進行合并得到LSTM的樣本數(shù)據(jù)X,如圖4所示。
圖4 樣本數(shù)據(jù)建立過程圖
4)訓(xùn)練LSTM模型,并產(chǎn)生預(yù)測結(jié)果。首先,對樣本數(shù)據(jù)X進行零均值標(biāo)準(zhǔn)化處理,可加快網(wǎng)絡(luò)的收斂速度,如公式(11)所示;然后,用處理后的樣本數(shù)據(jù)X*訓(xùn)練LSTM,得到最優(yōu)的LSTM網(wǎng)絡(luò)參數(shù)。最后,將測試集中的數(shù)據(jù)用LSTM網(wǎng)絡(luò)進行預(yù)測。
(11)
其中,μ和δ是原始數(shù)據(jù)集中的均值和標(biāo)準(zhǔn)差;X為原始數(shù)據(jù),X*為零均值標(biāo)準(zhǔn)化后的數(shù)據(jù)。
5)評估模型優(yōu)劣。將測試集中真實數(shù)據(jù)和預(yù)測數(shù)據(jù)進行比較,采用均方根誤差和平均絕對誤差2個評估指標(biāo)來評價模型的預(yù)測效果。
圖3所示的是F-LFM-LSTM評分預(yù)測模型框架。首先對每個用戶和對象的有效特征進行初始化,通過LFM得到每個用戶和對象的有效特征;然后通過圖4的方式建立輸入LSTM的樣本數(shù)據(jù),從而確定LSTM輸入層大??;最后訓(xùn)練LSTM,得出本次實驗數(shù)據(jù)的最佳網(wǎng)絡(luò)參數(shù)。
從圖4可知,輸入到LSTM網(wǎng)絡(luò)的樣本數(shù)據(jù)是由用戶和對象的有效特征合并所得。
由于LFM模型只考慮用戶-對象評分信息,并沒有考慮用戶和對象的標(biāo)簽信息,因此,本文又融合了用戶和對象標(biāo)簽信息到F-LFM-LSTM模型擴展區(qū)中。用戶的標(biāo)簽信息考慮年齡、職業(yè)和性別;對象的標(biāo)簽信息考慮電影的類別,如愛情片、動作片、科幻片等。將標(biāo)簽信息與有效特征相結(jié)合得到新的樣本數(shù)據(jù),再用LSTM進行訓(xùn)練,最后預(yù)測評分。
在實驗過程中,對于其中的參數(shù)設(shè)置,特征向量的初始值服從正態(tài)分布(0,0.02),通常參數(shù)值λ太小或太大會導(dǎo)致測試數(shù)據(jù)集的性能降低,因此本文將LFM的正則化參數(shù)λ設(shè)置為0.01,同時將學(xué)習(xí)率γ也設(shè)為0.01。LSTM網(wǎng)絡(luò)的優(yōu)化器選擇Adam,損失函數(shù)選擇MSELoss,網(wǎng)絡(luò)的學(xué)習(xí)率LR=0.0001,每批次訓(xùn)練樣本大小batch_size=10。實驗采取五折交叉驗證法,最終結(jié)果為5次實驗結(jié)果的平均值。
MovieLens100k(ML100k)數(shù)據(jù)集(https://grouplens.org/datasets/movielens/)包含943個用戶對1682個對象進行100000個評分,ML100k中評分矩陣的稀疏度為6.30%。評分范圍為1~5分。MovieLens look數(shù)據(jù)集細節(jié)如表1所示。
表1 MovieLens100k數(shù)據(jù)集細節(jié)
數(shù)據(jù)名稱數(shù)值評分數(shù)量100,000用戶數(shù)量943對象數(shù)量1682評分矩陣的稀疏度/%6.3
本文采用均方根誤差(Root Mean Square Error, RMSE)和平均絕對誤差(Mean Absolute Error, MAE)作為評估指標(biāo),來衡量F-LFM-LSTM模型的優(yōu)劣。指標(biāo)值越小,則預(yù)測精度越高。
(12)
(13)
為檢驗F-LFM-LSTM模型的預(yù)測效果,本文研究了LSTM隱藏層特征數(shù)量(hidden size)對RMSE和MAE的影響。圖5和圖6為LFM特征長度為100時,LSTM隱藏層特征數(shù)量對RMSE和MAE的影響。從圖5和圖6可知,LSTM的隱藏層特征數(shù)量為256時,RMSE和MAE值較小,模型有著較高的預(yù)測準(zhǔn)確度。
為進一步研究LFM模型所提取特征的特征長度對F-LFM-LSTM模型預(yù)測的影響,本文研究了在LFM的不同特征長度f的情形下,F(xiàn)-LFM-LSTM模型的預(yù)測結(jié)果,如圖7和圖8所示。相比于單一的LFM模型,F(xiàn)-LFM-LSTM模型在不同特征長度f下都較為顯著地提高了預(yù)測準(zhǔn)確度。
圖5 LSTM隱藏層特征數(shù)量對RMSE的影響
圖6 LSTM隱藏層特征數(shù)量對MAE的影響
圖7 特征長度f對RMSE的影響
圖8 特征長度f對MAE的影響
此外,F(xiàn)-LFM-LSTM模型有較好的可擴展性,在模型的擴展區(qū)可通過添加用戶和對象不同的標(biāo)簽信息,進一步研究哪些標(biāo)簽信息有助于改善模型的預(yù)測效果。本文研究了用戶的職業(yè)、性別、年齡和對象類別等標(biāo)簽信息以及這些標(biāo)簽信息的不同組合對模型預(yù)測結(jié)果的影響,實驗結(jié)果如表2所示。
表2 標(biāo)簽信息對實驗結(jié)果影響
融合輔助信息的F-LFM-LSTM模型評估指標(biāo)RMSEMAE無輔助標(biāo)簽信息0.91990.7238職業(yè)0.92230.7237年齡0.92240.7238性別0.91890.7219對象類別0.91870.7243職業(yè)-對象類別0.91650.7174年齡-對象類別0.92020.7256性別-對象類別0.92280.7276職業(yè)-年齡-對象類別0.91730.7200職業(yè)-性別-對象類別0.91760.7220年齡-性別-對象類別0.91650.7213職業(yè)-年齡-性別-對象類別0.91660.7198
從表2可知,在F-LFM-LSTM模型擴展區(qū)中添加用戶和對象的標(biāo)簽信息可以提高預(yù)測效果,但是部分標(biāo)簽信息并沒有提高預(yù)測精度,如只考慮用戶年齡信息,其預(yù)測效果反而變差。同時,實驗表明,并不是添加的標(biāo)簽信息越多,預(yù)測效果就越好,如考慮職業(yè)-性別-對象類別這3種標(biāo)簽信息的預(yù)測效果反而沒有只考慮職業(yè)-對象類別這2種標(biāo)簽信息的預(yù)測效果好。
最后,將F-LFM-LSTM模型與單一的隱語義模型LFM、均方差(Mean Square Difference, MSD)算法[23]和加權(quán)斜率(Weight Slope One, WSOA)算法[24]進行比較,實驗結(jié)果如表3所示。
表3 基于MovieLens100k的5種算法比較
算法評估指標(biāo)RMSEMAELFM0.99790.7813MSD0.94700.7453WSOA0.94430.7419F-LFM-LSTM(無輔助標(biāo)簽信息)0.91990.7238F-LFM-LSTM(職業(yè)-對象類別)0.91650.7174
從表3可知,相比于LFM、MSD和WSOA算法,本文所提出的F-LFM-LSTM模型能夠取得更好的預(yù)測效果,其中,融合了職業(yè)-對象類別標(biāo)簽信息的F-LFM-LSTM相較于無輔助標(biāo)簽信息的F-LFM-LSTM模型預(yù)測效果更優(yōu)。
隨著深度學(xué)習(xí)不斷發(fā)展,將深度學(xué)習(xí)與推薦系統(tǒng)相結(jié)合的研究越來越廣泛。本文提出了一種基于融合特征的LSTM評分預(yù)測模型,融合了LFM模型能夠提取用戶和對象的有效特征的優(yōu)勢,并考慮了用戶與對象標(biāo)簽等輔助信息的影響。實驗結(jié)果表明,相較于幾種較為廣泛研究的算法,本文所提出的F-LFM-LSTM模型能夠取得更好的評分預(yù)測準(zhǔn)確度。在所融合的標(biāo)簽輔助信息中,融合職業(yè)-對象類別標(biāo)簽信息的表現(xiàn)更優(yōu)。