羅莘濤, 陳 黎, 伍少梅, 王 昊
(1.四川大學計算機學院, 成都 610065; 2.西澳大學, 珀斯 6009)
根據2016年公布的數據顯示,Amazon 35%的銷售額都來自于推薦系統,良好的推薦系統還能改善用戶的購物體驗.提高推薦系統的精度對商家、電商平臺和用戶具有重要的商業價值和使用價值.
傳統的推薦系統[1]通常利用用戶對商品的評分信息,按照電商平臺數以萬計甚至上百萬計的商品種類和用戶群體來計算,這樣的信息十分稀疏.為此,越來越多的研究人員開始嘗試使用其他信息[2]來彌補數據稀疏問題.而用戶在購買商品時會選擇性地給某些商品進行評論,這些評論體現了用戶購買的商品的某些特征屬性.如“質量很好,價格適中,綜合性價比高,值得購買”這條評論包含了對商品質量、價格、性價比方面的特征描述,并且我們可以推斷出用戶在購物時對商品質量、價格、性價比等方面的偏好.而單一的評論不能完整地體現用戶的整體偏好和商品完整的特征屬性,為此將用戶和商品的所有評論作為額外的信息來彌補數據的稀疏性問題.最近的一些研究也表明了評論文本對解決推薦系統中數據稀疏性[3-9]以及提高推薦的準確率有著積極的作用.
由于深度學習[10-16]的詞嵌入表示模型,能夠簡單有效地將不同的數據通過深度神經網絡表示到同一個向量空間中,可以同時構建用戶和物品的嵌入表示信息,因此當前基于評論的推薦工作大部分采用深度學習的方法.ConvMF[3]只使用卷積神經網絡提取評論特征來對商品進行建模,沒有考慮用戶本身也可以作為對象建模.NARRE[4]在DeepCoNN[5]使用卷積神經網絡模型提取特征和用戶和商品平行建模的基礎上增加了對單個評論的重要性評估.TARMF[6]和NARRE類似,使用基于注意力機制[17]的GRU模型[18]對單個評論進行建模之后平均得到用戶和商品的特征向量,提取了全局特征但是忽略了局部特征.雖然卷積神經網絡通過固定感受野對局部特征的提取有很好的效果,但是對提取文本全局特征卻沒有循環神經網絡有效,導致評論特征提取不充分.此外,固定感受野的卷積神經網絡只能關注單一的局部特征,但是并不是所有的特征都能被一個感受野完全提取出來,因此只使用單一感受野的卷積神經網絡對局部特征的提取也是有限的.
本文提出基于評論特征提取的復合神經網絡模型,使用自適應感受野的卷積神經網絡,根據模型訓練自適應的選擇不同感受野下卷積神經網絡提取的局部特征.結合門控循環單元提取全局特征,解決了局部特征提取單一以及評論特征提取不全面的問題.實驗證明,該模型可以有效利用評論中的特征信息,并在5個Amazon公開的數據集上取得了較好的效果.
本文的主要貢獻有以下兩點:(1) 提出了自適應感受野的卷積神經網絡提取局部特征,解決了局部特征提取單一問題;(2) 提出了將全局和局部特征融合表示的方法對用戶和商品建模,兼顧局部特征和全局特征,豐富特征提取方式.
當前基于評論的推薦系統按照評論使用方式分為兩種:(1) 將用戶的每條評論首尾拼接形成一個大文檔,使用這個包含了用戶所有評論信息的文檔進行建模;(2) 基于單個評論的建模方式,將用戶的評論一條一條的單獨進行建模,最后再將特征融合到一起表示.
基于多個評論拼接在一起統一進行建模中具有代表性的工作是ConvMF、DeepCoNN、D-Attn[7].較早將用戶評論信息引入到推薦系統的工作ConvMF結合卷積神經網絡和概率矩陣分解模型進行用戶的評分預測,但是在建模過程中只使用了用戶對物品的評論進行建模.DeepCoNN設計了經典的雙塔模型,使用卷積神經網絡對用戶和物品分別進行特征提取.分別得到用戶和商品的特征表示之后使用因子分解機進行評分預測.該方法中用戶和商品平行使用深度學習建模的方式是后面許多工作的基礎.D-Attn在DeepCoNN的基礎上引入了詞級別的注意力機制,表示評論中不同的單詞對于用戶和物品建模的重要性是不一樣的.并且引入了局部和全局注意力兩種注意力機制來尋找富含更豐富語義信息的單詞,為這些單詞賦予更高的權重.
基于單個評論建模的工作有NARRE,作者認為用戶寫的每條評論對用戶和商品的特征建模貢獻是不一樣的,有的評論具有豐富的語義信息,有的評論可能只是簡單的復制粘貼.為衡量每條評論對建模的貢獻程度,提出了評論級的注意力機制,使用用戶名和商品名信息嵌入表示來刻畫每條評論的權重.通過softmax得到每條評論的不同權重之后聚合在一起對用戶和商品進行特征建模,并在特征表示層將隱因子模型(LFM)[19]引入到該模型中,共同學習用戶和商品的特征表示之后進行評分預測.類似的工作還有TARMF,TARMF使用雙向GRU來建模單個評論單詞的隱藏單元表示,使用注意力機制來計算單詞的權重信息,得到k個注意力模塊的輸出.將用戶和商品的每個評論使用同樣的平行方式建模得到評論的特征信息,通過優化概率矩陣分解評分矩陣來相互學習用戶和商品的特征表示.但是單一的GRU模型沒有充分挖掘評論中存在的局部特征,并且對提取出來的全局特征也沒有進行任何處理.
本文模型采用單個評論建模的方式.首先在嵌入層通過Embedding的方式將評論文本表示成句向量;再通過特征提取層提取當前評論的局部特征和全局特征,在評論注意力層結合用戶名或商品名信息對用戶評論進行權重計算,歸一化處理之后相加得到用戶的特征表示;最后結合隱因子模型預測用戶評分.具體模型結構如圖1所示.

圖1 本文模型結構Fig.1 Structure of the model
嵌入層的功能主要是將用戶的評論文本通過詞嵌入表示成為可輸入神經網絡訓練的向量.本文采用谷歌公開的glove詞向量模型,將用戶歷史評論逐條進行詞嵌入表示,得到評論向量Ui∈RT×d和Ij∈RT×d,Ui表示用戶的第i條評論,Ij表示商品的第j條評論,其中,T為句子填充之后的長度,d為詞嵌入維度.再將評論向量饋入神經網絡模型進行訓練.
特征提取層的主要功能是提取評論的局部特征和全局特征.其中局部特征提取使用2個不同感受野的卷積神經網絡結合注意力機制自適應選擇特征。全局特征提取使用門控神經單元進行.
3.2.1 局部特征提取 局部特征提取模塊采用a,b兩組不同感受野的卷積核提取局部特征,由于不同感受野提取的局部特征不相同,因此通過注意力機制自適應的選擇更有用的局部特征來進行建模.整體流程如圖2.

圖2 局部特征提取模型
Cj=ReLU(Ui*Kj+bj),1≤j≤k
(1)
式(1)中,*為卷積操作;Kj∈Rw*d為第j個卷積核;w為卷積核的窗口大小;d表示嵌入的向量維度.bj為第j個卷積核的偏置項.采用修正線性單元(ReLU)作為神經網絡的激活函數.Cj表示第j個卷積核提取的局部特征.通過最大池化得到第一組卷積核的局部特征信息Ua.
Ua=max{0,C}
(2)
其中,C=[C1...Cj...Ck],k為模型中每組卷積核的個數.類似的我們可以得到另外一組卷積核的特征Ub.這里,Ua∈Rk,Ub∈Rk,在本文模型中,通過平均池化不同卷積核的融合信息,得到評論文本中局部特征關系.類似人眼在閱讀時,總是會先關注局部的信息,然而不同的局部特征重要性也是不一樣的.因此使用注意力機制來選擇不同重要性的特征.首先,將提取的特征Ua,Ub融合在一起進行平均池化得到評論局部融合特征U,經過全連接層Wa,Wb∈Rk和一層softmax得到各組卷積核提取的特征權重.注意力機制公式如下.
U=avg(Ua⊕Ub)
(3)
a=U?Wa
(4)
b=U?Wb
(5)
local=aUa+bUb
(6)
其中,a∈Rk,b∈Rk,ai=1-bi,i∈[1,k].a,b的分量ai,bi表示a,b兩組卷積核提取的第i個局部特征的權重,通過權重大小自適應的選擇局部特征,最終得到整個評論的局部特征.模型可以通過訓練自適應的選擇不同感受野的卷積核提取的局部特征,不再局限于單一的感受野,具備很強的可擴展性.可采用多個不同大小窗口的卷積核來提取特征,也可以使用不同的卷積方式相互交叉來達到模型增強的效果.
3.2.2 全局特征提取 GRU和長短期記憶網絡(LSTM)是循環神經網絡的一種,通過門控機制解決了長期記憶和反向傳播中的梯度等問題,但是GRU相比LSTM在效果相當的情況下更容易進行訓練,提高了訓練的效率.整個模塊流程如圖3所示.

圖3 GRU模型Fig.3 GRU model
本文通過GRU提取用戶評論的全局特征,rt,zt分別代表重置門和更新門,計算公式如下.
rt=σWr[ht-1,xt],0≤t≤T
(7)
zt=σWz[ht-1,xt],0≤t≤T
(8)

(9)
(10)
*表示矩陣乘法.整個評論文本經過GRU得到的最終狀態信息ht作為整個評論文本的全局特征,與上一個模塊提取的局部特征拼接在一起,作為用戶和商品的評論特征提取表示.
fu=[Ulocal,Uglobal]
(11)
fi=[Ilocal,Iglobal]
(12)
由于每個評論對建模的貢獻是不同的[4],因此使用多層感知機的方式對用戶建模嵌入用戶名信息來衡量用戶評論的重要性,對商品建模采用嵌入商品名信息來衡量.具體公式如下.
(13)
(14)

(15)
(16)

(17)
(18)
其中,fu,fi表示用戶和商品提取的評論文本特征;n,m是用戶和商品的評論數量,最后結合隱因子模型(LFM)學習用戶自身的特征偏好和商品的潛在特征.傳統LFM模型的公式如下.
L(u,i)=puqiT+bu+bi+μ
(19)
其中,pu,qi∈Rt表示LFM模型中用戶的特征偏好和商品的潛在特征屬性,bu,bi,μ分別表示用戶偏置項,商品偏置項以及用戶對商品的全部評分的平均值,將該模型需要學習的pu,qi特征矩陣與上述兩個模塊提取的特征矩陣融合后得到用戶和商品的最終表示Pu,Qi,最后饋入神經網絡進行評分預測.
Pu=Wru[fu⊕pu]
(20)
Qi=Wri[fi⊕qi]
(21)
其中,Wr∈Rt表示權重參數;t是根據實驗設置的潛在特征數量.
評分預測層的工作是將下層模型提取的用戶特征偏好和商品特征屬性進行交互,計算預測評分值.如圖1所示,我們得到融合局部和全局特征的用戶偏好和商品屬性,通過神經網絡計算得到預測評分,公式如下.
(22)
其中,bias表示評分預測計算中用戶和商品的偏置項.模型訓練通過反向傳播最小化損失函數來學習模型參數,本文采用平方損失函數進行訓練,公式如下.
(23)
其中,u,i∈Γ表示訓練集中所有的用戶和商品.
本文采用Amazon電商評論數據集[20]Musical Instruments、Office Products、Grocery and Gourmet Food、Video Games 和Movies,所有數據集都包含用戶、商品及用戶對商品的評論和評分,數據集中的每個用戶都至少在該平臺上發表5條以上的評論.數據集詳細信息如表1. 每個數據集按照8∶1∶1的比例分為訓練集、測試集和驗證集.采用平均絕對誤差(MAE)作為評價指標,公式如下.

表1 數據集
(24)
其中,N是測試集中數據的個數.通過測試集的平均絕對誤差來檢驗模型的效果.誤差越小表示模型效果越好.
為了驗證本文模型的有效性,我們采用了以下5個模型作為基線模型進行對比實驗.
(1) ConvMF(RecSys'16)[3]:該模型將卷積神經網絡(CNNs)提取評論特征,與概率矩陣分解模型(PMF)結合起來進行評分預測;
(2) DeepCoNN(WSDM'17)[5]:該模型完全使用深度學習的方法進行建模,采用兩個平行的卷積神經網絡來分別建模用戶和商品的評論,最后使用因子分解機(FM)進行評分預測;
(3) D-Attn(RecSys'17)[7]:該模型在DeepCoNN模型的基礎上引入了詞級別的注意力機制,表示評論中不同單詞對用戶和商品的建模作用是不一樣的;
(4) NARRE(WWW'18)[4]:該模型認為,用戶寫的每一條評論對用戶和商品建模的貢獻是不一樣的,有的可能更加有用,有的可能幾乎沒有作用,因此提出了評論級別的注意力機制來衡量每條評論的重要性;
(5) CARL(TOIS'19)[8]:這篇文章認為同一個用戶對不同商品的偏好是不同的.因此為每個用戶和商品的評論文檔學習不同的詞權重,用卷積神經網絡和多層感知機抽象表示用戶和商品特征.
在模型實驗中,本文將評論用Glove詞向量[21]對文本中的單詞進行初始化,對沒有在Glove詞向量中的單詞進行隨機初始化,整個模型的迭代次數為40,Batchsize大小設置為64,用戶名和商品名嵌入維度為32,模型神經網絡采用dropout方法對神經網絡的節點進行隨機丟失,丟失概率為0.5.學習率設置為0.001,采用Adam優化算法進行優化.
在局部特征提取模塊中,卷積神經網絡采用的窗口大小分別為3和5,卷積核個數k為50.融合信息后卷積窗口為3,得到融合的提取特征之后采用兩層全連接層的方式對特征先進行縮放然后再還原,以此來增加融合特征之間的交互.在全連接層中,本文使用的神經單元為50個.在全局特征提取模塊中,我們使用的GRU單元為50維,長度為評論文本填充后文本長度.
我們對基線模型使用的用戶和商品信息以及評論的使用方式進行了分析,結果如表2所示.其中,ID嵌入欄表示該模型在訓練時是否使用了用戶名和商品名信息,評論處理方式中聚合屬性表示該模型將用戶和商品下的所有評論信息拼接成一個大文檔進行建模,而單獨屬性表示將評論逐條進行建模.可以看出,本文模型使用了ID嵌入信息,并衡量每條評論對模型建模的貢獻.對比NARRE模型,本文使用了特征選擇注意力機制來選擇貢獻大的特征,并增加了全局特征提取模塊來彌補卷積神經網絡無法兼顧整個評論文本特征的缺陷.

表2 數據使用信息
為了驗證模型的有效性,我們將從以下兩個方面來進行驗證,一是對比基線模型在不同數據集上的對比實驗;二是本文模型改進部分對實驗結果的影響的消融實驗.
(1) 對比實驗.為驗證本文模型的有效性,我們將本文模型與5個基線模型進行對比,對比結果如表3,表中下劃線的結果表示基線模型中最好效果.

表3 對比實驗結果
從表3對比實驗結果可以看出,同時建模用戶和商品特征的DeepCoNN模型比只建模商品特征的ConvMF模型提升較大,提升了3.56%.DeepCoNN模型是第一個完全使用深度學習的方法,開創性的設計了端到端的深度學習模型,為基于評論評分預測推薦系統提供了一個經典的基線模型.在DeepCoNN的基礎上,D-attn, NARRE, CARL使用不同的注意力方式對DeepCoNN進行了改進,其中,D-attn使用基于單詞級別的注意力機制,給每個用戶和商品的評論文檔中的單詞進行權重評估,找到對特征建模更重要的單詞,對比效果提升了1.70%.CARL模型在單詞級別注意力機制的基礎上再使用了一層卷積神經網絡提取更高級的特征,對比DeepCoNN和D-attn效果分別提升了10.7%和8.68%.而NARRE另辟蹊徑,提出了經典的評論有用性機制,引入了基于評論級別的注意力機制來衡量每條評論對用戶建模的貢獻,效果相較于DeepCoNN提升了8.44%,對比NARRE和CARL兩個模型,NARRE使用了一層卷積神經網絡和基于評論級別的注意力機制,CARL使用了兩層卷積神經網絡和基于單詞級別注意力機制,對于特征提取的能力更強.通過對比實驗也可以發現,CARL模型的效果普遍比NARRE模型更好.而我們的模型在基于評論級別的注意力機制上,提出了自適應感受野的卷積神經網絡提取局部特征,并考慮到卷積神經網絡在捕捉長距離依賴關系上的不足之處,補充了門控循環單元對全局特征進行提取,彌補了模型的不足之處,在不同數據集上對比效果最好的基線模型均有提升,其中提升最高為Musical Instruments數據集,效果對比基線模型提升了5.76%,效果提升最低的數據集為Office Products,提升了1.82%.
(2) 消融實驗.為了驗證本文模型中改進的各模塊對實驗的有效性,我們利用消融實驗分別驗證局部特征提取和全局特征提取的效果,具體如下.Local+Att:只采用局部特征提取模塊,使用自適應感受野的卷積神經網絡提取特征;Globa:只采用全局特征提取模塊;我們在5個數據集上將消融實驗與最終實驗結果進行對比,結果如表4.

表4 消融實驗結果
我們可以從表4看出,自適應感受野的卷積神經網絡可以根據模型訓練自適應的選擇特征,對比只使用單一感受野的卷積核NARRE效果分別提升了7.12%,6.14%,1.64%,1.02%,4.13%,對局部特征建模有比較好的提升作用.消融實驗Globa在沒有局部特征提取模塊時,模型效果與本文模型相比下降了2%,1.87%,0.6%,2.8%,1.62%,結合消融實驗和本文實驗結果說明,全局特征提取模塊對本文模型的效果提升是有積極作用的,從而驗證了本文模型的各個模塊對模型效果提升均有積極作用.更直觀的結果如圖4所示.

圖4 消融實驗結果Fig.4 Results of ablation experiment
本文在現有模型的基礎上提出了自適應感受野的卷積神經網絡,結合局部和全局特征提取對評論文本特征進行了深度挖掘,結合現有模型使得模型效果得到進一步提升.在未來的工作中,我們不應該僅僅關注評分和評論信息,還應該關注用戶的社會性和商品的周期性.針對多源數據來進行特征融合建模.此外,由于神經網絡的不可解釋性,對神經網絡提取的特征存在更多疑慮.為了解決這個問題,可以對神經網絡提取的特征進行可視化表達,使對影響每個用戶產生購買行為的偏好特征具有可解釋性.