陸悅聰,王瑞琴,2,金 楠
1.湖州師范學(xué)院 信息工程學(xué)院,浙江 湖州 313000
2.浙江省現(xiàn)代農(nóng)業(yè)資源智慧管理與應(yīng)用研究重點實驗室,浙江 湖州 313000
大數(shù)據(jù)時代在產(chǎn)生海量數(shù)據(jù)的同時帶來了信息過載問題。相較于搜索引擎,推薦系統(tǒng)(recommender system,RS)[1]的出現(xiàn)使得用戶無需從海量數(shù)據(jù)中提取需要的信息。推薦系統(tǒng)根據(jù)不同的業(yè)務(wù)需求選擇不同的推薦算法。推薦算法目前可以分為傳統(tǒng)的推薦算法[2]和基于深度學(xué)習(xí)的推薦算法[3],其中傳統(tǒng)的推薦算法存在數(shù)據(jù)稀疏[4],對用戶和物品的信息處理過于簡單,無法捕獲特征間的非線性關(guān)系等弊端,導(dǎo)致推薦的準(zhǔn)確性不高。隨著深度學(xué)習(xí)的不斷發(fā)展,神經(jīng)網(wǎng)絡(luò)可以自動獲取特征間的高階交互[5],大大提高了推薦的準(zhǔn)確性。
神經(jīng)網(wǎng)絡(luò)根據(jù)輸入特征建模用戶與物品的交互關(guān)系,不同的特征以及交互方式對于最終的推薦精度有著明顯的影響。一些學(xué)者將用戶與物品的顯式交互作為神經(jīng)網(wǎng)絡(luò)的輸入,認為顯式交互數(shù)據(jù)對于學(xué)習(xí)用戶物品特征具有積極作用,并利用輔助信息豐富用戶物品特征[6];也有學(xué)者通過改變特征交互方式,采用不同的網(wǎng)絡(luò)結(jié)構(gòu)等方式不斷提升顯式反饋數(shù)據(jù)的表達能力[7]。目前應(yīng)用顯式數(shù)據(jù)于推薦算法中已經(jīng)非常成熟,而隱式數(shù)據(jù)通常作為約束條件使用[8]。因此,將隱式數(shù)據(jù)作為主要特征,通過神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)交叉特征間的高階交互,是一個可研究的方向。
本文提出的基于多維特征交叉的深度協(xié)同過濾算法(deep collaborative filtering algorithm based on multidimensional feature crossover,DCF),使用隱式反饋數(shù)據(jù)的同時增加ID信息以豐富特征并且緩解冷啟動問題,通過單層神經(jīng)網(wǎng)絡(luò)訓(xùn)練得到用戶物品低維嵌入向量,然后將用戶物品特征向量逐元素相乘得到交互向量,最后將用戶與物品的交互作為網(wǎng)絡(luò)層的輸入,使神經(jīng)網(wǎng)絡(luò)能學(xué)習(xí)到更有用的信息。
在推薦系統(tǒng)中,協(xié)同過濾(collaborative filtering,CF)[9]是應(yīng)用最廣泛的算法,主要分為基于內(nèi)存的CF算法和基于模型的CF算法[10]。基于內(nèi)存的CF算法通過對用戶歷史行為數(shù)據(jù)進行挖掘,為用戶推薦與其歷史交互物品中相似度最高的物品;基于模型的CF算法利用歷史數(shù)據(jù)訓(xùn)練模型,然后利用該模型進行推薦?;谀P偷腃F算法相比基于內(nèi)存的CF算法大大提高了推薦的效率。在基于模型的CF算法中,根據(jù)是否使用深度學(xué)習(xí)技術(shù),將其分為使用常規(guī)算法的協(xié)同過濾和使用深度學(xué)習(xí)的協(xié)同過濾。其中具有代表性的模型是傳統(tǒng)的矩陣分解模型[11]和基于神經(jīng)網(wǎng)絡(luò)的矩陣分解模型。
傳統(tǒng)的矩陣分解模型通過分解用戶對物品的評分矩陣,得到用戶和物品的隱向量,通過最小化預(yù)測值與實際值之差的方式對模型進行優(yōu)化,最終得到稠密的評分矩陣。但是由于用戶評分標(biāo)準(zhǔn)不統(tǒng)一及存在隨意評分的現(xiàn)象,導(dǎo)致評分矩陣中摻雜了噪聲,從而影響最終推薦效果。在基于神經(jīng)網(wǎng)絡(luò)的矩陣分解模型中,He等[12]提出的神經(jīng)矩陣分解(neural matrix factorization,NeuMF)模型將用戶和物品的ID作為輸入,消除了評分矩陣中的噪聲對模型的影響。采取不同的建模方式模擬用戶與物品間的交互,例如通過廣義矩陣分解(generalized matrix factorization,GMF)得到用戶與物品的低階交互,使用多層感知機(multi-layer perceptron,MLP)捕獲用戶與物品的高階交互,并將二者傳入網(wǎng)絡(luò)層,用神經(jīng)網(wǎng)絡(luò)代替?zhèn)鹘y(tǒng)的內(nèi)積,可以學(xué)習(xí)到特征間的任意函數(shù)關(guān)系。
雖然NeuMF同時考慮了低階特征和高階特征的學(xué)習(xí),但僅通過ID數(shù)據(jù)來建模用戶與物品之間的交互,存在一定的局限性。學(xué)者們對NeuMF進行改進,有效提高了模型的性能。Wang等[13]在NeuMF的基礎(chǔ)上,實現(xiàn)了在預(yù)測評分的同時考慮用戶之間的信任關(guān)系,使得預(yù)測評分目標(biāo)與預(yù)測用戶信任關(guān)系目標(biāo)相互促進;Nassar等[14]采用NeuMF的結(jié)構(gòu),提出多標(biāo)準(zhǔn)協(xié)同過濾算法,將NeuMF計算出的評分數(shù)據(jù)歸一化后再次輸入到MLP中,該方法突破了以往只使用一種評分標(biāo)準(zhǔn)的限制;He等[15]將嵌入層向量作外積,突破了NeuMF中用戶的嵌入向量與物品的嵌入向量幾乎沒有關(guān)聯(lián)的限制。
隱式反饋包括但不限于瀏覽、點擊及購買等行為,在現(xiàn)實生活中隱式反饋的數(shù)量遠超過顯式反饋的數(shù)量,因此對于隱式反饋數(shù)據(jù)的應(yīng)用有非常廣闊的前景。由于隱式反饋[16]只表明用戶是否與物品進行過交互,而不考慮具體的評分情況,在一定程度上緩解了用戶隨意評分的問題,將隱式反饋作為輸入相比評分數(shù)據(jù)更具有現(xiàn)實意義。在傳統(tǒng)的推薦中,Koren[17]從Netflix數(shù)據(jù)集中獲得靈感,認為評分矩陣不僅明確地表明了用戶對物品的喜好程度,在一定程度上也反映出用戶的偏好。通過對奇異值分解(singular value decomposition,SVD)模型進行改進,引入用戶或物品的隱式反饋數(shù)據(jù),大幅提高了預(yù)測精度。陳碧毅等[18]融合顯式反饋與隱式反饋,首先通過矩陣分解算法分解隱式反饋矩陣,得到用戶物品的隱式向量,再分解顯式反饋矩陣,得到用戶物品的顯式向量,最終將隱式向量作為顯式向量的補充,將用戶特征向量與物品特征向量進行點積操作完成評分預(yù)測任務(wù)。
目前,將隱式反饋應(yīng)用于基于神經(jīng)網(wǎng)絡(luò)的推薦中已是一個非常普遍的現(xiàn)象,其中大部分研究將隱式反饋作為補充特征。Zhu等[19]認為直接從隱式反饋中學(xué)習(xí)模型會有偏差,提出組合聯(lián)合學(xué)習(xí)框架,旨在同時學(xué)習(xí)無偏的用戶物品相關(guān)性和無偏的傾向性;Lian等[20]融合隱式反饋和顯式反饋,通過深度交叉網(wǎng)絡(luò)學(xué)習(xí)特征間的高低階交互;薛峰等[21]將隱式反饋、ID作為神經(jīng)網(wǎng)絡(luò)的輸入,采用注意力網(wǎng)絡(luò)區(qū)分不同歷史反饋對用戶的重要性,得到用戶的加權(quán)隱反饋信息,并將其融入用戶潛在特征中,提高了用戶特征的表達能力。
學(xué)者們通過增加特征、從原數(shù)據(jù)提取特征等方法擴展了特征的維度,通過特征交叉提高了特征的表達能力,進一步提升了模型的性能。Wang等[22]對內(nèi)容信息進行深度表示學(xué)習(xí),同時對評分矩陣進行協(xié)同過濾,并將二者進行雙向交叉,得到更精準(zhǔn)的推薦;Mongia等[23]將用戶潛在向量視為評分與物品潛在向量的映射關(guān)系,先通過深度神經(jīng)網(wǎng)絡(luò)得到物品潛在向量,然后將用戶與物品的潛在向量作內(nèi)積以完成點擊預(yù)測任務(wù);Wu等[24]提出的協(xié)同去噪自動編碼器(collaborative denoising auto-encoder,CDAE)利用去噪自動編碼器形成用戶物品反饋數(shù)據(jù),學(xué)習(xí)用戶和物品的分布式表示;Dureddy等[25]使用強化學(xué)習(xí)預(yù)測用戶與物品的嵌入向量以解決冷啟動問題;Qu等[26]在網(wǎng)絡(luò)層前加入乘積層,豐富了特征的表示;Deng等[27]提出的深度協(xié)同過濾(deep collaborative filtering,DeepCF)框架將隱式反饋直接作為輸入,通過多層神經(jīng)網(wǎng)絡(luò)分別得到用戶物品對的低階交互和高階交互,最終將兩者融合。受DeepCF框架啟發(fā),本文融合隱式反饋數(shù)據(jù)與ID信息,把特征交叉得到的低階交互作為網(wǎng)絡(luò)層的輸入,再通過網(wǎng)絡(luò)層獲得高階交互,最終完成評分預(yù)測任務(wù)。
本文算法與DeepCF的主要區(qū)別如下:(1)本文算法在DeepCF的基礎(chǔ)上考慮了ID特征對模型的影響,在增加特征的同時緩解了冷啟動問題;(2)對原始輸入數(shù)據(jù)降維的方式不同,本文算法模型僅采用單層神經(jīng)網(wǎng)絡(luò)作為嵌入層,與DeepCF將多層神經(jīng)網(wǎng)絡(luò)作為嵌入層的方法相比大大減少了參數(shù)數(shù)量;(3)相較于DeepCF分別得到低階交互與高階交互的方式,本文算法模型首先通過特征交叉獲取用戶與物品的低階交互,再通過神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)高階交互,減少了模型的復(fù)雜度。
為了發(fā)揮隱式反饋表示用戶與物品特征的能力,本文首先通過單層神經(jīng)網(wǎng)絡(luò)得到低維稠密的用戶物品特征向量,同時結(jié)合ID信息豐富特征并緩解冷啟動問題,然后通過逐項相乘得到用戶物品對的交互向量,最終通過網(wǎng)絡(luò)層得到預(yù)測評分。
DCF的基本框架如圖1所示,主要分為輸入層、嵌入層、特征交互層以及網(wǎng)絡(luò)層。其中輸入層分為隱式反饋和ID兩部分,網(wǎng)絡(luò)層的輸入由隱式反饋和ID信息分別經(jīng)過降維和交叉處理后拼接而成。
DeepCF框架僅使用隱式反饋作為輸入,同時其隱式反饋代指所有點擊、查看、購買等用戶行為。而本文中的隱式反饋則由用戶是否對物品評過分得到,認為用戶對物品評過分即表示用戶對物品感興趣,即用戶對物品評分是因為該物品本身攜帶有某種用戶感興趣的特征,正是這些特征導(dǎo)致用戶觀看該物品然后評分,評分低只能說明物品與用戶的預(yù)期不符,并不是用戶對物品不感興趣。本文的隱式反饋具體如式(1)所示。
其中,u表示用戶,i表示物品,ru,i表示u對i的評分。yui為1時表示u對i感興趣;為0時表示u對i不感興趣。u和i的隱式反饋yu、yi如圖2所示,其中u的每一列即為該用戶的隱式反饋,i的每一行即為該物品的隱式反饋。
雖然隱式反饋無法直觀地表明用戶喜歡該物品或是討厭該物品,但隱式反饋能在一定程度上表明用戶喜歡的物品類別,相比于顯式評分能學(xué)習(xí)到更多的信息。本文算法首先將用戶和物品的隱式反饋數(shù)據(jù)yu、yi通過單層神經(jīng)網(wǎng)絡(luò)降維,計算公式如式(2)所示。
其中,pu、qi代表用戶u、物品i的潛在向量,Wu/i、bu/i分別表示用戶u/物品i嵌入層神經(jīng)網(wǎng)絡(luò)的權(quán)重矩陣和偏執(zhí)項。將降維后的用戶物品潛在向量通過式(3)得到用戶物品交互向量。
其中,表示由隱式反饋數(shù)據(jù)得到的用戶與物品的潛在向量,pIDu、qIDi表示由ID數(shù)據(jù)得到的用戶與物品的潛在向量,⊙代表逐項相乘,fImp、fID分別代表由隱式反饋數(shù)據(jù)和ID數(shù)據(jù)得到的用戶物品交互特征向量。最終拼接兩種用戶物品交互向量,作為神經(jīng)網(wǎng)絡(luò)的輸入x,如式(4)所示。
DeepCF通過多層神經(jīng)網(wǎng)絡(luò)得到用戶與物品的潛在向量表示,與本文研究目標(biāo)不同的是,DeepCF致力于預(yù)測用戶對物品的點擊可能性,其將用戶物品潛在向量分別通過逐元素相乘和神經(jīng)網(wǎng)絡(luò)得到低維和高維兩種預(yù)測向量,最后將這兩種預(yù)測向量拼接后通過Sigmoid函數(shù)得到最終用戶對該物品的點擊可能性。本文的研究目標(biāo)是預(yù)測評分,通過將兩種用戶物品交互潛在向量輸入神經(jīng)網(wǎng)絡(luò)的做法,使用神經(jīng)網(wǎng)絡(luò)自動學(xué)習(xí)用戶與物品之間的高階交互。通過神經(jīng)網(wǎng)絡(luò)捕獲高階交互關(guān)系可以形式化為式(5)。
其中,Wn、bn分別代表第n層神經(jīng)網(wǎng)絡(luò)的權(quán)重矩陣和偏執(zhí)項,L代表神經(jīng)網(wǎng)絡(luò)的層數(shù),x代表用戶物品交互向量,σ表示激活函數(shù),本文采用ReLU激活函數(shù)。
網(wǎng)絡(luò)的輸出層只有1個神經(jīng)元,即為預(yù)測評分。預(yù)測評分公式如式(6)所示。
其中,r^為預(yù)測評分,Wout、bout分別代表輸出層神經(jīng)網(wǎng)絡(luò)的權(quán)重矩陣和偏執(zhí)項。
推薦系統(tǒng)中有兩種常見的損失函數(shù),分別是對數(shù)損失函數(shù)和均方差損失函數(shù)。對數(shù)損失函數(shù)通常用于預(yù)測點擊率,均方差損失函數(shù)則用于回歸問題。因為本模型的目標(biāo)為預(yù)測評分,所以采用均方差損失函數(shù),損失函數(shù)如式(7)所示。
其中,I是訓(xùn)練集中用戶與物品的集合,u代表用戶,v表示物品,ruv是u對v的實際評分,r^uv是u對v的預(yù)測評分,N為訓(xùn)練集中的評分數(shù)量。本文采用的優(yōu)化算法為Adam(adaptive moment estimation)。在實驗中采用小批量梯度下降,每次訓(xùn)練抓取的樣本數(shù)量為256。模型的具體計算過程如算法1所示。
算法1基于多維特征交叉的深度協(xié)同過濾算法
輸入:用戶物品隱式反饋,用戶U,物品V。
輸出:預(yù)測評分。
Begin
For eachuinUdo
利用式(2)獲得嵌入向量
End for
For eachvinVdo
利用式(2)獲得嵌入向量
End for
利用式(3)、式(4)獲得交互向量
For eachuinUdo For eachvinVdo
利用式(5)、式(6)得到預(yù)測評分
End for
End for
利用式(7)優(yōu)化模型
End
相比傳統(tǒng)的MLP模型,本文模型在將特征輸入到網(wǎng)絡(luò)層之前對用戶與物品特征進行交叉,相比傳統(tǒng)的特征拼接包含更多的信息。相比DeepCF模型,本文模型在嵌入層中采用單層神經(jīng)網(wǎng)絡(luò),減少模型參數(shù)的同時提升了訓(xùn)練效率,并且未采用傳統(tǒng)的“雙塔”結(jié)構(gòu),將低階交互直接作為網(wǎng)絡(luò)層的輸入,降低了模型的復(fù)雜度。與其他采用隱式反饋與ID信息作為特征的深度協(xié)同過濾模型相比,本文將隱式反饋作為用戶和物品的特征,而其他模型僅僅將隱式反饋作為用戶或者物品的特征甚至是特征的補充,未完全利用隱式反饋數(shù)據(jù),采用單層神經(jīng)網(wǎng)絡(luò)作為嵌入層相比查表得到嵌入向量,能在一定程度上緩解嵌入矩陣初始化對嵌入向量的影響。同時將用戶與物品的隱式反饋嵌入向量、ID嵌入向量分別交叉,然后將兩種交叉特征向量拼接后傳入神經(jīng)網(wǎng)絡(luò),相比未經(jīng)處理直接拼接的方法,本文方法得到的特征向量更具表達能力。
本文選用經(jīng)典數(shù)據(jù)集MovieLens100K(ML-100K)、MovieLens1M(ML-1M)、MovieLens-Latest-Small(ML-LS)和FilmTrust驗證本文方法在RS中的性能。MovieLens100K數(shù)據(jù)集由943位用戶、1 682部電影和100 007個評分組成;MovieLens1M數(shù)據(jù)集由6 040位用戶、3 900部電影和1 000 209個評分組成。兩個數(shù)據(jù)集評分的取值范圍是1~5。MovieLens-Latest-Small數(shù)據(jù)集由610位用戶、9 742部電影和100 836個評分組成,評分的取值范圍是0.5~5;FilmTrust數(shù)據(jù)集由1 508位用戶、2 071部電影和35 497個評分組成,評分的取值范圍是0.5~4。實驗中隨機選取全部評分數(shù)據(jù)的80%作為訓(xùn)練集,20%作為測試集。4個數(shù)據(jù)集信息如表1所示。
表1 數(shù)據(jù)集統(tǒng)計信息Table 1 Statistics of two data sets
為了驗證本文方法在預(yù)測結(jié)果上的表現(xiàn),采用平均絕對誤差(mean absolute error,MAE)和均方根誤差(root mean square error,RMSE)作為評價算法預(yù)測評分精度的標(biāo)準(zhǔn);采用平均絕對百分比誤差(mean absolute percentage error,MAPE)和對稱平均絕對百分比誤差(symmetric mean absolute percentage error,sMAPE)衡量模型對預(yù)測評分的偏好。上述四種指標(biāo)都表示預(yù)測值與實際值的偏差,MAE通過計算目標(biāo)物品的預(yù)測評分與其實際評分絕對差值的平均值來衡量算法的準(zhǔn)確性;RMSE是預(yù)測評分與實際評分平方差均值的平方根,受異常值的影響更大;MAPE和sMAPE通過計算實際評分與預(yù)測評分的差值相比實際評分以及實際評分與預(yù)測評分的均值的偏差,可以更好地衡量模型的預(yù)測能力。指標(biāo)值越小,說明推薦的精度越高。MAE、RMSE、MAPE和sMAPE的計算公式如式(8)~(11)所示:
其中,n表示評分個數(shù),yi代表實際評分,y^i代表預(yù)測評分。
為了驗證本文算法的性能,選取如下算法作為對比算法:
(1)Item-CF:基于物品的協(xié)同過濾通過計算物品之間的相似度,向用戶推薦與其歷史喜歡物品相似度高的物品。
(2)SVD++:在SVD模型中引入隱式反饋,同時使用內(nèi)積計算評分。
(3)MLP:采用ID作為輸入,使用感知機代替矩陣分解中的內(nèi)積操作,利用神經(jīng)網(wǎng)絡(luò)建模用戶物品特征之間的高階交互。
(4)DeepCF:采用隱式反饋作為輸入,同樣考慮了低階交互與高階交互,其用戶和物品的低維潛在向量是通過神經(jīng)網(wǎng)絡(luò)得到的。
(1)不同算法之間的性能比較
不同算法在數(shù)據(jù)集上的推薦精度如表2所示,其中64、128為嵌入層維度,對Item-CF算法而言,是與物品最相似的物品個數(shù)。從表2可以看出,Item-CF由于根據(jù)用戶交互歷史計算出與其交互物品最相似的物品,計算量大,相似度計算公式簡單,且無法推薦新物品,在各個數(shù)據(jù)集上的效果都最差。在稠密數(shù)據(jù)集中SVD++的推薦精度比單純的MLP高,這是由于SVD++加入了隱式反饋,能對用戶和物品的隱向量進行補充,而MLP僅使用ID特征,無法很好地建模用戶與物品之間的高階交互。而在稀疏數(shù)據(jù)集中,數(shù)據(jù)的稀疏導(dǎo)致隱式反饋變少,從而阻礙模型學(xué)習(xí)特征間的交互,這時MLP采用ID作為特征則有利于學(xué)習(xí)特征間的交互,使得推薦精度比SVD++更高,如表2中SVD++和MLP在FilmTrust數(shù)據(jù)集上的表現(xiàn),而在同樣稀疏的MovieLens-LS數(shù)據(jù)集中,由于物品數(shù)量遠超用戶數(shù)量,SVD++仍然可以獲取足夠的隱式反饋,推薦精度仍會比單純的MLP高。DeepCF使用隱式反饋作為模型的輸入同樣受數(shù)據(jù)稀疏的影響,但是其通過使用類似NeuMF的結(jié)構(gòu),分別從低階和高階兩方面獲得用戶與物品的特征向量,能緩解因數(shù)據(jù)稀疏造成的隱式反饋不充足的弊端。而SVD++由于采用內(nèi)積的方式預(yù)測評分,只能獲取用戶與物品的低階交互,并且不能緩解數(shù)據(jù)稀疏問題,使得推薦精度不如DeepCF。本文模型通過融合隱式反饋數(shù)據(jù)與ID信息,并對其進行特征交叉,利用隱式反饋降低了用戶主觀性對特征的影響,同時利用ID信息緩解了數(shù)據(jù)稀疏對模型的影響,在小數(shù)據(jù)集上相比DeepCF模型提升較大,說明本文方法能有效利用特征并提升特征的表達能力。在大數(shù)據(jù)集上則提升較小,且推薦精度在神經(jīng)元個數(shù)少時比神經(jīng)元個數(shù)多時提升大,說明本文模型的推薦效果隨著數(shù)據(jù)量的增大和模型的復(fù)雜而降低。這表明本文簡單將特征向量逐元素相乘不能有效地體現(xiàn)用戶與物品的交互,導(dǎo)致神經(jīng)元個數(shù)上升時無法很好地捕捉特征間的高階交互。
表2 不同算法在數(shù)據(jù)集上的性能對比Table 2 Comparison of performance of various algorithms on data sets
(2)隱式反饋的有效性
為了驗證隱式反饋對于學(xué)習(xí)用戶物品交互的有效性,分別將ID信息、隱式反饋數(shù)據(jù)和兩者組合數(shù)據(jù)作為輸入進行實驗,結(jié)果如表3所示。從表中可以看出,基于隱式反饋數(shù)據(jù)的深度協(xié)同過濾算法相比基于ID信息的深度協(xié)同過濾算法推薦精度更高,說明在本文特征處理方法上隱式反饋數(shù)據(jù)比ID信息更能反映用戶和物品的特征,并且隱式反饋數(shù)據(jù)與ID信息結(jié)合可以更充分地表達用戶與物品的特征,使神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)到更多的信息,提升推薦性能。但是將隱式反饋數(shù)據(jù)與ID信息結(jié)合在大數(shù)據(jù)集中的提升不明顯,這是由于大數(shù)據(jù)集中隱式反饋的數(shù)量遠遠超過ID特征,使得神經(jīng)網(wǎng)絡(luò)將大部分的注意力放在隱式反饋上,降低了ID特征的作用。
表3 不同輸入對本文模型的影響對比Table 3 Comparison of influence of different inputs on this model
在同等實驗情況下,參考DeepMF,將用戶物品評分矩陣作為輸入,在本文模型中的實驗結(jié)果如表4所示。從表中可以看出,使用評分矩陣作為本文模型的輸入相比傳統(tǒng)的ID作為輸入推薦精度更高,但是與使用隱式反饋數(shù)據(jù)作為輸入相比仍有差距。評分矩陣中存在用戶隨意評分、熱門物品總體評分偏高等現(xiàn)象,使得數(shù)據(jù)中存在對預(yù)測評分有影響的噪聲,導(dǎo)致推薦精度不及單純的隱式反饋。同時也發(fā)現(xiàn)評分能明顯表明用戶的興趣,因此如何使用隱式反饋數(shù)據(jù)和注意力機制判斷用戶對不同物品的喜好程度也是下一步工作的主要內(nèi)容。
表4 顯式反饋數(shù)據(jù)與隱式反饋數(shù)據(jù)對本文模型的影響對比Table 4 Comparison of influence of explicit feedback data and implicit feedback data on this model
(3)稀疏性測試
為了進一步驗證本文算法在稀疏數(shù)據(jù)上的穩(wěn)定性,將數(shù)據(jù)集按照不同的比例(30%,50%,60%,80%)劃分,進行對比實驗,結(jié)果如表5所示。從表中可以看出,各算法在稀疏數(shù)據(jù)上的RMSE均比在密集數(shù)據(jù)上有一定上升。本文算法在應(yīng)對稀疏問題時有較好的表現(xiàn),相比于僅使用ID信息的MLP與僅使用隱式反饋數(shù)據(jù)的DeepCF算法,本文算法在面對數(shù)據(jù)稀疏問題時能有效利用ID信息,防止因數(shù)據(jù)稀疏導(dǎo)致的隱式反饋特征減少的困境。兩種特征相輔相成,能在提高推薦精度的同時緩解數(shù)據(jù)稀疏問題。
表5 在ML-100K數(shù)據(jù)集上不同數(shù)據(jù)劃分對算法的影響Table 5 Influence of different data partitions on algorithms on ML-100K data set
(4)參數(shù)敏感性測試
本文通過在隱藏層后添加dropout層,防止模型過擬合。為了驗證dropout值對推薦精度的影響,本文將dropout值分為0.2、0.4、0.6、0.8和1.0來驗證dropout層對模型過擬合的限制,其中dropout值為1.0時即為不使用dropout層。實驗結(jié)果如圖3所示,從圖中可以看出,dropout值為0.8時本文模型的推薦精度最高。分析原因是當(dāng)dropout值為0.8時,有20%的神經(jīng)元停止工作,此時對于模型來說能最大化地學(xué)習(xí)用戶與物品的特征,從而最終提高推薦精度。
本文提出的基于多維特征交叉的深度協(xié)同過濾算法,將隱式反饋數(shù)據(jù)視為用戶物品的特征,在真實數(shù)據(jù)集上驗證了與傳統(tǒng)的ID相比,神經(jīng)網(wǎng)絡(luò)可以從隱式反饋中學(xué)習(xí)到更多的信息;將用戶物品潛在向量逐項相乘,相比傳統(tǒng)的拼接也更具表達能力。在使用隱式反饋數(shù)據(jù)的基礎(chǔ)上,結(jié)合ID信息,通過隱式反饋和ID信息得到兩類不同的用戶物品交互潛在向量,進一步提高了推薦精度,并緩解了數(shù)據(jù)稀疏問題。
在實驗過程中,本文模型未對各個物品賦予不同的權(quán)重,在今后的工作中,將利用注意力機制區(qū)分不同物品對用戶的影響,進一步提高推薦精度。