梁順攀,劉澤謙,張國政
(燕山大學 信息科學與工程學院,河北 秦皇島 066000)
評分預測作為推薦系統研究領域的基本問題,其分析的數據大都來自用戶和項目的評論信息。目前基于評論的研究大多只涉及到挖掘評論特征間的二階交互特征,并沒有對特征進行更深層次的交互研究,比如雙重注意力交互學習模型(Dual attention mutual learning,DAML[1])利用神經因子分解機(Neural factorization machine,NFM[2])做特征間交互并進行評分預測。因此,本文對基于特征交互的工作進行了分析。在基于特征交互的領域中,對特征交互的研究有兩個方面:傳統的淺層方式和目前的深層方式。淺層方式通過簡單的特征叉積方式構造特征組合來表述特征間的關系,比如線性回歸模型[3],但其高度依賴人工特征提取,導致模型的預測能力受限。因此因子分解機(Factorization machine,FM)[4]應運而生,其主要通過隱向量內積的方式自動地建模交互特征。近幾年的深層特征交互研究都是基于FM做進一步優化,進而探索更深層的交互特征。寬度&深度學習模型(Wide & deep)[5]從記憶和泛化兩個角度構建了一個聯合模型去學習高階特征。而深度交叉網絡[6]是對Wide & Deep模型的拓展,實現了自動學習顯式高階交互特征。極深因子分解機[7]是對DCN的擴展,將顯式和隱式交互結合充分表征交叉特征,可以看作是真正的深度因子分解機。基于深度神經網絡(Deep neural network,DNN)的因子分解模型將FM與多層感知器相結合,只能隱含地揭示特征間隱式的關系。其僅使用嵌入的一部分來生成交互特征,只能建模相鄰特征之間的交互,無法全面表達特征的語義。對此,文獻[8]研究了自然語言中屬性特征,通過數據挖掘情態動詞詞義與語境特征的互動關系,文獻[9]通過提取用戶評論語句的關鍵詞對用戶情感傾向進行了研究。文獻[10-12]為了充分表達上下文感知特征語義學習了不同語義空間的情感信息。以上工作都實現了對特征的深層交互并且取得了更加精確的推薦,然而大量的特征組合會讓特征冗余,導致模型訓練的速度減慢并且預測效果下降。
本文針對以上問題展開研究,探索評論特征間的深層關系,通過建模評論特征間的高階特征來提高評分預測模型的預測準確率和效率。為此,本文提出基于深度因子分解機的評分預測模型(Rating Prediction Model based Depth Factorization Machine,RPDFM)。模型從廣度和深度兩個層面提取特征間的深層關系。在廣度方面,RPDFM同時學習特征間的高階交互特征和低階交互特征,二者結合得到更全面的交互特征;從深度方面,為了挖掘到評論特征間不同語義情感空間的信息并有效建模高階特征,RPDFM將原始特征劃分為多個切片,利用多個隱含網絡層進行顯式交叉;針對特征冗余問題,在每層交叉中加入自注意力甄別特征的重要性并去除無用的特征組合;最后聯合隱式高階交叉特征作為最終的高階特征。本文在亞馬遜關于評論的真實數據集上進行實驗,結果表明RPDFM可以有效提高評分預測的效果。
RPDFM由四部分組成:嵌入層、特征提取層、特征交互層以及特征融合與預測層。嵌入層利用詞嵌入技術將評論文本向量化。特征提取層利用卷積神經網絡提取評論文本的特征,然后將用戶特征和項目特征融合并輸入到特征交互層進行交叉運算。特征交互層分為3個模塊:顯式高階交互、隱式高階交互和線性低階交互,3個模塊采用并行的方式共享特征提取層的輸出,同時學習特征提取層的評論文本特征。顯式高階交互從向量對的角度對特征進行高階交互,同時加入自注意力獲取每一個詞在評論上下文中的重要性;隱式高階交互利用普通的DNN對特征進行隱式學習,探索隱含的高階非線性特征;線性低階交互是為了彌補模型沒有低階交互的缺點而引入的,其對特征進行了線性處理,生成特征的低階交互信息。三者之間互相補充以捕獲到更深入且全面的評論特征,從而提高評分預測的準確率。模型的整體框架如圖1所示。
首先,收集有關用戶U和項目I的所有評論分別生成用戶評論文檔和項目文檔,在這個過程中要保證每個詞在評論中出現的順序不變;然后將兩個文檔作為輸入序列,同時為了豐富評論文本的語義表達,利用詞向量嵌入模型Word2vec[13]把文檔中的每個詞映射為對應的k維向量。最終得到用戶和項目的評論文檔嵌入矩陣表示,分別為Du=[wU1,wU2,…,wUl]和Di=[wI1,wI2,…,wIl],D∈Rk×l,其中w表示每個單詞的嵌入向量,k是每個單詞的嵌入維數,l是單詞的個數。

圖1 基于深度因子分解機的評分預測模型框架Fig.1 A rating prediction model framework based on depth factorization machine
將嵌入層得到的向量矩陣Du和Di輸入到特征提取層,通過卷積神經網絡進行特征提取。
首先,利用卷積核對用戶和項目的評論嵌入矩陣做卷積運算,然后通過激活函數σ將卷積結果映射到非線性特征空間:

(1)

其次,將得到的用戶和項目的局部上下文特征通過平均池化操作g壓縮數據后得到用戶特征Hu和項目特征Hi:

(2)
式中,H表示經過池化層得到的用戶或項目特征。
然后,通過一個全連接層重新擬合特征以減少特征信息的丟失,得到用戶和項目最終的特征表示Cu=[c1,c2,…,clu]和Ci=[c1,c2,…,cli]:
C=σ(WH+b),
(3)
式中,C表示經過全連接層得到的用戶或項目的最終嵌入特征,W表示權重矩陣,b表示偏置參數。
最后,將得到的用戶特征Cu和項目特征Ci進行融合得到他們的整體特征M,其融合過程如下:
M=Cu?Ci⊕Cu⊕Ci。
(4)
式中,?指哈達瑪積,⊕指拼接運算,融合后的M=[e1,e2,…,en],M∈Rn×z,其中en表示融合后的每個特征向量,n為特征的個數,z為特征向量的嵌入維度。采用這種交互方式的目的是為了得到更豐富的特征,這些特征既包含了用戶和項目獨立的個性化特征,又涵蓋了用戶和項目二階交互的特征。M將做為特征交互層的輸入特征。
1.3.1顯式高階注意交互
高階特征交互主要是從大量的用戶和項目的評論信息中,提取它們沒有出現過的或者很少出現且可能出現的組合特征,從而更深入地挖掘隱含特征,使模型具備更強的泛化能力。特征提取層的輸出M作為一個長序列包含了眾多特征,相鄰特征間的交互顯然不能捕獲到豐富的組合特征。
因此,本層將輸入的特征M分割成多個特征切片矩陣,通過將切分后的特征與M中對應的原始特征進行充分地交叉運算來體現不同特征語義間的情感關系。具體的,首先對M進行分割,以M中一個特征向量e為例,先將e嵌入到維度為m×d的向量空間中,再將其切分為m個d維的行向量,最后將切分得到的行向量轉化成列向量以便于后面的計算。這樣對每個特征進行切分后,可以得到切片向量Mi∈Rd×1,i=1,2,…,n×m。其中n為特征的個數,m指一個特征劃分出的切片數量,d指每個切片的嵌入維度。
然后,將輸入的原始特征M與特征切片Mi進行高階交互,具體如圖2所示。在k層交互網絡中,首先規定第一層的切片的數量為x,之后每一層切片的數量m為第k層的深度網絡的尺寸的1/2。然后將每一個切分的向量與原始特征從基于向量對的角度在網絡中進行交互學習。這樣不僅可以使模型的計算速度提高,而且使模型更容易學習特征間的關系,具體的計算公式如下:

(5)


圖2 高階特征交互圖Fig.2 High-order feature interaction figure
每一層的切分特征Mi和原始輸入特征M進行交互后,其輸出特征將作為下一層的輸入特征,多次交互學習后就實現對特征的深度學習,獲得更廣泛的特征組合。但對于第k層的交叉運算,假設其輸出Pk個組合,則第k+1層將得到Pk×Pk+1×m個組合,因為不是每一對組合都是有用的,冗余的組合或者重要性幾乎為0的組合必然會影響模型的效率以及準確率。因此,本文在每一層中對交互得到的特征矩陣加入了一層自注意力計算。


(6)
式中,Wk,m表示第m個切片在第k層的卷積核。
其次,把卷積后的輸出序列Ek,m分為三等份,分別作為查詢向量序列Q、鍵向量序列K和值向量序列V。然后計算每個特征在上下文的重要性權重A=[a1,a2,…,an],計算公式如下:

(7)



(8)
式中,W′∈Rm×1,b是偏置向量。最終顯式高階注意交互特征即為P=[P1,P2,…,Pn]。
1.3.2隱式高階深層交互
將特征向量輸入到深層網絡中進行隱式高階交互是對顯式高階交互的一種補充。本模塊與顯式高階交互模塊聯合共同捕獲評論高階交互特征。具體實現如圖3,在輸入特征提取層的輸出M=[e1,e2,…,en]后,設置k層網絡對M中的特征e進行交互學習。在每層網絡中,對特征向量e做內積運算進行交叉學習,其中第一層的特征就是M,Mk+1是第k層的交叉特征結果,同時Mk+1也是下一層網絡的輸入特征,計算過程如下:
Mk+1=WkMk+bk。
(9)
式中,Wk∈Rsk×l,Sk表示第k層的網絡尺寸大小,l指初始特征映射維度,bk指第k層的偏置。
進行k層學習后,將最后一層的交叉結果Mk+1作為隱式高階交互的輸出,即得到最終的特征F。

圖3 隱式高階深層交互Fig.3 Implicit high-order deep interaction
1.3.3低階交互
低階特征交互可以從大量的用戶和項目的評論特征中,挖掘它們們之間存在的直接相關性特征,進而更加準確地表示它們之間的關系。本文在低階交互過程中輸入在特征提取層得到的特征向量M=[e1,e2,…,en],利用FM提取低階交互特征L:

(10)



(11)

模型的訓練過程可分為向前和向后反饋兩個階段。在向前反饋階段,隱含層中經過卷積計算后使用了ReLU激活函數。因此文中采用He的方法[14]對權重進行初始化。在向后反饋階段,利用平方損失函數作為目標函數對模型進行訓練:

(12)
式中,θ是模型中所有需要學習的參數。
訓練過程中采用Adam方法進行參數的更新,通過前后反饋、交叉迭代,完成模型的訓練。此外,為防止過擬合,文中采用了Dropout策略,按照一定的概率將一些神經元暫時從網絡中丟棄,提高模型性能。
本文利用Amazon的5個核心數據集進行實驗,包括Music Instruments、Office Products、Digital Music、Video Games、Tools Improvement。這些評論數據集包含許多噪音,比如特殊符號、介詞、連詞、代詞等。因此本文對數據進行預處理以保證每個用戶和每個項目都至少有一條評論,并根據Chen等人[15]的研究調整了評論的長度。表1統計了預處理后的每個數據集的詳細信息。為了使模型的推薦準確率更高,泛化能力更強,本文將數據集劃分為3個部分進行訓練,其中訓練集占80%,驗證集占10%,測試集占10%。為了評估模型的性能,本論文采用了評分預測領域中常用的均方誤差(Mean Squared Error,MSE)作為評價指標,其計算方法如下:

(13)


表1 數據集的統計數據Tab.1 Dataset statistics
為了驗證模型的有效性,實驗選取了幾個基準的模型Probabilistic Matrix Factorization(PMF)[16]、Convolutional Matrix Factorization(CMF)[17]、Context-Aware user-item Represention Learning(CARL)[18]、DAML[1]進行對比。以下是對模型的介紹:
PMF:利用矩陣分解模型對評分數據進行推薦并利用ALS技術優化模型。
ConvMF:將CNN與PMF結合對項目評論文檔做特征分析進行推薦,并采用隱因子模型(LMF)做評分預測。
CARL:考慮用戶項目對之間的交互關系,通過兩條平行的CNN網絡和注意力機制建模并利用FM做最終的預測。
DAML:利用卷積神經網絡和互注意力共同學習用戶和項目評論的特征,然后結合評分特征,利用神經因子分解機(NFM)進行高階非線性交互,完成預測。
本實驗主要分析網絡層深度以及顯式網絡層和隱式網絡層中神經元個數對實驗結果的影響,并以此選擇最優的數值訓練模型。
網絡層深度:RPDFM模型中設置了兩個網絡結構自動捕獲高階特征,分別為顯式高階網絡和隱式高階網絡。網絡層的深度(隱含層的個數)決定模型是否可以獲得更復雜的特征,影響著特征交互的效果和模型的性能。本實驗分別探索了顯式高階網絡層的最佳網絡層數和隱式高階層的最佳網絡層數。圖4是RPDFM在5個數據集上MSE值隨顯式高階網絡層數的變化情況,圖5是RPDFM在5個數據集上MSE值隨隱式網絡層數的變化情況??梢钥吹綗o論是在顯式交叉還是隱式交叉中,兩個稀疏度高的數據集上最優網絡層數比稀疏度低的數據集的值大,這表明龐大且稀疏的數據集需要更多的網絡層才能挖掘到特征間最準確的關系。通過結果也可以發現,當網絡層數達到一定值后,MSE的結果會降低,這是因為模型的特征組合個數會隨著隱含層的層數增大而呈線性增長,組合越多,特征冗余現象越嚴重,模型的推薦結果也就會變差。根據實驗中的結果設置各個數據集的最佳網絡層數如表2。

圖4 MSE隨顯式網絡層數的變化趨勢Fig.4 The trend of MSE with the number of explicit network layers

圖5 MSE隨隱式網絡層數的變化趨勢Fig.5 The trend of MSE with the number of implicit network layers

表2 顯式和隱式網絡層中最佳網絡層個數Tab.2 The number of optimal network layers in explicit and implicit network layers
神經元個數:隱含層中神經元的數量決定了是否可以創建更豐富的特征,影響著模型推薦的準確率。因此文中通過實驗分析了神經元的個數對實驗結果的影響,實驗結果圖6所示。由圖看到,隨著神經元個數增加,MSE的值呈小幅度下降,到了一定值后呈平緩趨勢,此時增加神經元的數量將不再改善網絡的性能。由于不同數據集數據稀疏程度和數據集大小不同,最佳神經元個數也因數據集的這種差異而不同。比如,結合實驗結果,在Tools Improvement和Video Games數據集上的訓練中,將神經元的數量調整為200,模型的推薦效果最好;而在其它實驗的數據集中,神經元個數據設置為100時模型效果最好。

圖6 MSE隨網絡中神經元個數的變化趨勢Fig.6 The trend of MSE with the number of neurons in the network
本模型的主要目的是對評分特征做高階非線性交互,挖掘特征間更多的隱含特征,從而提升推薦準確率。經過多次實驗驗證,得到表3的實驗結果,可以看到本文提出的RPDFM模型準確率更好,證明RPDFM可以有效提升預測準確率。
由實驗結果可以看到ConvMF的結果明顯好于PMF。ConvMF本質上是基于矩陣分解的思想,但是引入了偏置項,使結果表現得更加優異,這表明ConvMF相比純粹的矩陣分解可以提取到更多潛在特征。CARL的實驗結果表明其比基于矩陣分解的模型表現更好,這是因為CARL利用FM對特征進行二階交互,可以挖掘特征間深層次的關系。DAML是在CARL的基礎上,把神經網絡引入到因子分解機中,將一階線性交互特征和二階顯式高階特征相結合,探索更深層的潛在關系,實驗結果也證明,它比FM能得到更精確的推薦結果。
而本文提出的RPDFM模型,嘗試探索更高階的交叉特征,從實驗結果可以看出RPDFM優于其他四個模型,相比于目前預測性能最好的DAML模型RPDFM的準確率提升了1.30%、3.20%、2.31%、1.90%和2.28%。而且模型在Video Games和Tools Improvement兩個稀疏數據集上的準確率也有所提升,表明高階交互可以緩解數據稀疏問題。通過大規模的交互行為,挖掘出更多的潛在組合,將與當前項目相似且和用戶有交互行為的物品用于推薦,可以在一定程度上解決冷啟動的問題。RPDFM模型在Office Products數據集上的提升相對較大,因為該數據集中的每個用戶的評論條數最多,通過高階交互,可以獲取更豐富的特征信息進行評分預測。但是在該數據集上進行高階交互后對預測的提升并不明顯,這表明在數據量豐富的情況下高階交互中會引入一些噪音,注意力模塊不能完全剔除無用的特征組合,導致推薦效果不理想。

表3 各模型在5個數據集上的性能對比Tab.3 Performance comparison of each model on five datasets
RPDFM將評論的融合特征輸入到3個交互模塊中進行學習,提取隱含特征。并且3個模塊共享特征提取層輸出特征,同時進行訓練。因此在這一節中分別對這3個模塊進行了實驗,驗證各個部分及各模塊間的組合對實驗的影響。實驗結果如圖7所示,圖中IH指基于顯式的高階交互模塊,IEH指顯式和隱式結合的高階交互模塊,IEH-FM指顯式、隱式以及低階結合的模塊。OP、DM、MI、TI、VG分別指Office Products、Digital Music、Music Instruments、Tools Improvement、Video Games 5個數據集。從圖7可以看出5個數據集整體呈現一致規律,即當顯式高階、隱式高階、低階交互三者融合后,它們的MSE值都是最低的,證明三者結合可以有效提升推薦準確率。當只有顯式高階部分的時候比只有隱式高階部分以及只有低階交互部分呈現更好的效果,這是因為顯式高階交互從基于向量的角度出發,將特征向量切分為了n個部分,然后對每個部分都進行充分的交叉,可以獲取到更充足的組合特征,為用戶推薦出與當前項目特征相似的物品。這一優勢可以緩解推薦系統中存在的冷啟動問題,并提高推薦準確率。
隱式高階交互部分是將特征向量輸入到網絡層中進行交叉學習,只加強了現有組合特征的表現力,沒有挖掘到更多的潛在因素。因此實驗中將其與顯式部分結合,二者相輔相成,有效地提高了推薦的準確率。低階交互部分實質上利用FM對融合特征進行交互,將線性特征與二階交叉特征相結合作為低階特征,彌補模型只有高階特征的不足。因此三者的結合提高了預測準確率。
在高階交互部分,由于多層隱含網絡的引入,導致出現特征冗余的現象,因此引入了自注意力模塊進行緩解,為了驗證注意力對實驗的作用,文中進行了對比實驗,結果如表4所示,其中N-RPDFM指沒有加入注意力機制的模型。可以看到引入自注意力機制后,相比于N-RPDFM,RPDFM在五個數據集上的預測效果都實現了有效提升,分別提升了2.09%、3.14%、2.03%、1.42%以及1.08%。同時,實驗結果表明自注意力機制加強了每個詞的語義特征,可以有效甄別相同的詞在不同語境中的含義,從而實現更準確的特征匹配,為用戶推薦他們喜歡的物品。這可以在一定程度上緩解特征冗余的問題。

圖7 不同交互模塊對模型性能的影響Fig.7 The impact of different interaction modules on model performance
此外,在對比實驗中,發現RPDFM還能夠提高推薦的效率。對比表現最好的DAML和RPDFM在不同稀疏性的數據集上模型迭代10次的運行時間,實驗結果如圖8、9,可以看出本文的模型提高了推薦的效率。通過分析,DAML在獲得用戶和項目項目的評論特征后,在接下來的特征融合過程中會導致特征冗余,進而使得推薦的效率降低。而RPDFM中使用的自注意力機制減少了對外部信息的依賴,在捕捉數據或特征的內部相關性上速度更快,使得推薦效率有了一定的提升。

圖8 Musical Instrument數據集上的迭代次數對比Fig.8 Comparison of iteration times on the Music Instrument dataset

表4 各模型在5個數據集上的性能對比Tab.4 Performance comparison of each model on five datasets

圖9 Tools Improvement數據集上的迭代次數對比Fig.9 Comparison of iteration times on the Tools Improvement dataset
針對目前基于評論的工作中用戶和項目特征之間的關系挖掘不充分以及缺少對高階特征研究的問題,本文提出基于深度因子分解機的評分預測模型(RPDFM)。模型從廣度和深度分別探究了評論特征間的深層關系。從廣度角度:一方面學習特征間的高階非線性特征,另一方面學習低階線性特征,二者聯合充分表征特征間深層的關系。從深度角度:一方面立足于因子分解機的初衷,從基于向量對的角度學習用戶和項目之間的高階顯式交互特征,不僅捕獲到每個詞在不同語義空間的情感信息,還可以得到有限的組合結果,此外加入自注意力機制,緩解了特征冗余的問題;另一方面利用DNN對特征進行高階隱式交互,學習特征間更深層的隱含表示,將二者結合作為最終的高階特征。本文在亞馬遜數據集上進行實驗驗證模型的可行性和有效性,結果表明RPDFM可以提高評分預測的準確率和效率。
本文提出的模型雖然可以提升預測準確率,但是由于加入了多個隱含網絡,使模型的復雜度增加。此外,本文缺少對可解釋性的研究,以后可以在如何優化網絡結構以及可解釋性方面進行深入研究。