王素格, 劉宇飛, 李 旸, 符玉杰, 鄭建興
(1.山西大學(xué) 計(jì)算機(jī)與信息技術(shù)學(xué)院 山西 太原 030006;2.山西大學(xué) 計(jì)算智能與中文信息處理教育部重點(diǎn)實(shí)驗(yàn)室 山西 太原 030006;3.山西財(cái)經(jīng)大學(xué) 金融學(xué)院 山西 太原 030006)
推薦系統(tǒng)是電子商務(wù)和服務(wù)型移動(dòng)終端應(yīng)用發(fā)展的必然產(chǎn)物,給人們的生活提供了便利。目前,在許多電子商務(wù)網(wǎng)站或論壇中存在著大量的用戶評(píng)論,這些評(píng)論可以作為推薦系統(tǒng)中重要的信息補(bǔ)充。用戶在文本評(píng)論中經(jīng)常針對(duì)產(chǎn)品的某些方面發(fā)表自己的使用感受,例如,在汽車領(lǐng)域有外觀、動(dòng)力、操控、舒適性等方面。用戶評(píng)論在一定程度上蘊(yùn)含著用戶的個(gè)人偏好以及用戶對(duì)項(xiàng)目性能的體驗(yàn),可以作為用戶對(duì)項(xiàng)目某些方面進(jìn)行評(píng)分的依據(jù)。
近年來(lái),在推薦系統(tǒng)領(lǐng)域涌現(xiàn)出利用深度學(xué)習(xí)處理文本信息的一些方法,主要有卷積神經(jīng)網(wǎng)絡(luò)[1-2]、循環(huán)神經(jīng)網(wǎng)絡(luò)[3]以及去噪自動(dòng)編碼器[4]?,F(xiàn)有的方法只簡(jiǎn)單地為每一個(gè)用戶和項(xiàng)目計(jì)算一個(gè)低維的向量,并進(jìn)行最后的評(píng)分預(yù)測(cè),這樣的做法忽略了用戶和項(xiàng)目之間的細(xì)粒度交互過(guò)程[5]。在用戶/項(xiàng)目方面級(jí)別細(xì)粒度交互的ANR方法[6]中,僅僅將方面作為一個(gè)隨機(jī)初始化的矩陣,使得方面表示的準(zhǔn)確性無(wú)法得到保證。以往推薦系統(tǒng)的研究大都關(guān)注于如何提高推薦的準(zhǔn)確性,較少考慮與用戶的交互。若推薦系統(tǒng)給出適當(dāng)?shù)睦优c用戶交互,不僅能夠提升系統(tǒng)的透明度,還可以提高用戶選擇推薦產(chǎn)品的概率以及用戶的滿意度。文獻(xiàn)[7]使用情感詞庫(kù)提取用戶/項(xiàng)目評(píng)論集中的顯式特征,從而給出特征級(jí)別的解釋。文獻(xiàn)[8]針對(duì)序列推薦任務(wù),利用注意力機(jī)制獲得目標(biāo)用戶的歷史交互項(xiàng)目的重要性,從而給出項(xiàng)目級(jí)別的解釋。文獻(xiàn)[9]通過(guò)使用知識(shí)圖譜中用戶與項(xiàng)目之間的連接路徑學(xué)習(xí)組合關(guān)系表示,并通過(guò)具體路徑給出推薦解釋。本文改進(jìn)了ANR模型的方面表示,提出一個(gè)基于產(chǎn)品方面的神經(jīng)網(wǎng)絡(luò)推薦(product aspect-based neural network recommendation,PANNR)模型。該模型將用戶/項(xiàng)目評(píng)論中的具體方面融入模型的輸入,并使用注意力機(jī)制突出評(píng)論中重要的部分,得到用戶和項(xiàng)目的方面級(jí)別的表示。在此基礎(chǔ)上,通過(guò)注意力機(jī)制建模用戶和項(xiàng)目間的細(xì)粒度交互過(guò)程,以提高推薦結(jié)果的可解釋性。此外,在中文汽車領(lǐng)域數(shù)據(jù)集和英文Yelp公開(kāi)數(shù)據(jù)集上與NARRE[2]和ANR[6]方法進(jìn)行了對(duì)比實(shí)驗(yàn),驗(yàn)證了所提方法的有效性。
圖1 結(jié)合產(chǎn)品方面的推薦模型框架
PANNR模型框架中一些模塊的具體性能如下。
1) 嵌入層。用戶評(píng)論集Tu中包含了與用戶u有交互歷史的若干項(xiàng)目的評(píng)論,同樣地,項(xiàng)目評(píng)論集Ti中包含了與項(xiàng)目i有交互歷史的若干用戶的評(píng)論。對(duì)Tu和Ti采用兩種詞嵌入方式:一是采用word2vec或Glove[10]詞向量,獲得PANNR+W推薦模型;二是采用BERT[11]的變體模型BERT-wwm產(chǎn)生預(yù)訓(xùn)練向量,獲得PANNR+B推薦模型。在PANNR+W模型中,使用word2vec或Glove預(yù)訓(xùn)練詞向量,將用戶評(píng)論集Tu轉(zhuǎn)化為詞向量矩陣Mu∈Rn×d,其中n是用戶評(píng)論集Tu中的詞數(shù),d是每個(gè)詞向量的維度。在PANNR+B模型中,使用哈工大訊飛聯(lián)合實(shí)驗(yàn)室發(fā)布的基于全詞覆蓋的中文BERT預(yù)訓(xùn)練模型BERT-wwm,將其應(yīng)用到用戶/項(xiàng)目評(píng)論集和用戶/項(xiàng)目方面集的表示中。在利用BERT海量語(yǔ)料基礎(chǔ)上,通過(guò)自監(jiān)督學(xué)習(xí)方法為每個(gè)字學(xué)習(xí)一個(gè)特征表示,再根據(jù)推薦任務(wù)通過(guò)BERT進(jìn)行微調(diào),獲取與用戶/項(xiàng)目整體評(píng)分預(yù)測(cè)任務(wù)相關(guān)的特征,從而將用戶評(píng)論集Tu轉(zhuǎn)化為字向量矩陣Mu∈Rn×d,其中n是用戶評(píng)論集Tu中的字?jǐn)?shù),d是每個(gè)字向量的維度。最終得到方面級(jí)別的用戶表示Pu={pu,a|a∈Au},Au為用戶方面集且|Au|=K。
2) 全連接層。該層使用參數(shù)矩陣Wk∈Rd×h1,其中k∈{0, …,K}。將用戶評(píng)論集初始化表示Mu∈Rn×d進(jìn)一步重新表示為Mu,k∈Rn×h1。為得到多方面的用戶表示pu,a,在全連接層使用K個(gè)不同的映射矩陣Wk對(duì)用戶評(píng)論集進(jìn)行重新表示,每一個(gè)映射矩陣Wk在全連接層的用戶評(píng)論集表示為
Mu,k=MuWk。
(1)
zu,k[j]=(Mu,k[j-(c-1)/2]:…:
Mu,k[j]:…:Mu,k[j+(c-1)/2]),
(2)
其中:“:”是拼接操作,將窗口內(nèi)的字表示進(jìn)行拼接;Mu,k[j]為用戶u的評(píng)論集的第j個(gè)字表示;c為窗口大小,它由詞向量的維度d和h1得出,即
c=d/h1。
(3)
利用(2)式的zu,k[j]與用戶方面a的表示vu,a,通過(guò)內(nèi)積計(jì)算第j個(gè)字對(duì)方面a的注意力得分。將用戶評(píng)論集中所有字的注意力得分進(jìn)行Softmax歸一化,得到注意力權(quán)重向量,可以表示為
attnu,a[j]=Softmax(vu,a(zu,k[j])T),
(4)
(5)
其中:attnu,a[j]為用戶評(píng)論集第j個(gè)字相對(duì)于用戶方面a的注意力權(quán)重向量。第j個(gè)字的重要性取決于第j個(gè)字和其周圍窗口大小c之內(nèi)的字。利用注意力權(quán)重向量attnu,a與用戶u的評(píng)論集表示Mu,k,通過(guò)加權(quán)和得到特定方面a的用戶表示pu,a,即
(6)
同理,通過(guò)上述過(guò)程可以得到項(xiàng)目i特定方面a的表示qi,a。在用戶和項(xiàng)目之間共享每一個(gè)映射矩陣Wk,而用戶方面集Au是從用戶評(píng)論集提取而來(lái),因此每個(gè)用戶的方面集各不相同。同樣地,項(xiàng)目方面集Ai是從項(xiàng)目評(píng)論集提取而來(lái),因此每個(gè)項(xiàng)目的方面集也各不相同。
4) 方面重要性學(xué)習(xí)層。不同用戶對(duì)項(xiàng)目的某些方面有著各自不同的偏好,例如,用戶A可能喜歡某款車的外觀,而用戶B可能喜歡同款車的大空間和舒適性。另外,在用戶進(jìn)行總體滿意度的評(píng)分時(shí),各個(gè)方面往往并不相互獨(dú)立。因此,本文動(dòng)態(tài)估計(jì)每個(gè)用戶/項(xiàng)目對(duì)的用戶方面重要性和項(xiàng)目方面重要性,使用一個(gè)動(dòng)態(tài)估計(jì)方面重要性學(xué)習(xí)模塊,在方面級(jí)別上建模用戶和項(xiàng)目之間的細(xì)粒度交互過(guò)程,其目的是得到用戶方面重要性權(quán)重向量βu∈RK和項(xiàng)目方面重要性權(quán)重向量βi∈RK。
為了在計(jì)算用戶方面重要性時(shí)融入方面級(jí)別項(xiàng)目表示,以及在計(jì)算項(xiàng)目方面重要性時(shí)融入方面級(jí)別用戶表示,假設(shè)方面級(jí)用戶表示和項(xiàng)目表示分別為Pu∈RK×h1和Qi∈RK×h1,構(gòu)建方面級(jí)交互矩陣S,可以表示為
AURK屬于絲氨酸-蘇氨酸激酶,在調(diào)控細(xì)胞周期方面起重要作用[34]。本實(shí)驗(yàn)結(jié)果表明,Danu是通過(guò)抑制AURK和p53-p21信號(hào)軸來(lái)影響HepG2細(xì)胞周期分布的。AURK活性受到抑制后,中心體成熟受限,紡錘體非正確組裝并延遲分裂退出,最終導(dǎo)致HepG2細(xì)胞阻滯于G2/M期。此外,胞質(zhì)分裂被阻止,導(dǎo)致異倍體的出現(xiàn)。Danu上調(diào)了p53和p21的表達(dá),進(jìn)而抑制Cyclin B1-CDC2復(fù)合體的活性,最終導(dǎo)致HepG2細(xì)胞阻滯于G2/M期。
(7)
其中:Ws∈Rh1×h1是一個(gè)可學(xué)習(xí)的參數(shù)矩陣;ReLU(x)=max(0,x)為激活函數(shù)。利用方面級(jí)交互矩陣S,并參考文獻(xiàn)[12]將其作為特征,可以得到在特定用戶/項(xiàng)目對(duì)場(chǎng)景下的用戶潛在表示Hu和用戶u的方面重要性權(quán)重向量βu,分別表示為
Hu=ReLU(PuWx+ST(QiWy)),
(8)
βu=Softmax(Huvx),
(9)
其中:Wx∈Rh1×h2、Wy∈Rh1×h2和vx∈Rh2是可學(xué)習(xí)的參數(shù)矩陣。同理,可得項(xiàng)目潛在表示Hi,
Hi=ReLU(QiWy+S(PuWx))。
(10)
通過(guò)項(xiàng)目潛在表示Hi可得項(xiàng)目i的方面重要性權(quán)重向量βi,
βi=Softmax(Hivy),
(11)
其中:vy∈Rh2是可學(xué)習(xí)的參數(shù)矩陣。在式(8)和式(10)分別計(jì)算Hu和Hi時(shí),均利用了方面級(jí)用戶表示Pu和方面級(jí)項(xiàng)目表示Qi。這樣,可以利用方面重要性學(xué)習(xí)層獲得用戶方面重要性權(quán)重向量βu和項(xiàng)目方面重要性權(quán)重向量βi,且它們均與具體用戶和具體項(xiàng)目相關(guān)。
5)預(yù)測(cè)層。結(jié)合方面級(jí)用戶表示Pu、方面級(jí)項(xiàng)目表示Qi、用戶方面重要性權(quán)重向量βu和項(xiàng)目方面重要性權(quán)重向量βi,建立預(yù)測(cè)用戶u對(duì)項(xiàng)目i的總體評(píng)分模型,可以表示為
(12)
其中:bu、bi、bo分別為用戶偏置、項(xiàng)目偏置和全局偏置。
在中文汽車領(lǐng)域數(shù)據(jù)集以及英文Yelp公開(kāi)數(shù)據(jù)集上進(jìn)行實(shí)驗(yàn),用于評(píng)估本文模型PANNR+W和PANNR+B的性能。
中文汽車領(lǐng)域數(shù)據(jù)集來(lái)自第七屆中文傾向性分析評(píng)測(cè)(COAE2015)的細(xì)粒度標(biāo)注數(shù)據(jù),與標(biāo)準(zhǔn)推薦數(shù)據(jù)集的不同之處在于該數(shù)據(jù)集是帶有方面標(biāo)簽的交互數(shù)據(jù)。采用8∶1∶1的比例將數(shù)據(jù)集劃分為訓(xùn)練集、驗(yàn)證集和測(cè)試集,并保證驗(yàn)證集和測(cè)試集中交互數(shù)據(jù)對(duì)應(yīng)的用戶和項(xiàng)目都包含在訓(xùn)練集中。
英文Yelp公開(kāi)數(shù)據(jù)集是從Yelp餐廳領(lǐng)域數(shù)據(jù)集中篩選出交互數(shù)量大于10的用戶和項(xiàng)目,并且在每條交互數(shù)據(jù)的基礎(chǔ)上,使用外部模型BERT-E2E-ABSA[13]提取文本評(píng)論中的方面信息作為方面標(biāo)簽。同樣地,去除驗(yàn)證集和測(cè)試集中未在訓(xùn)練集中出現(xiàn)過(guò)的用戶和項(xiàng)目,使用8∶1∶1的比例將數(shù)據(jù)集劃分為訓(xùn)練集、驗(yàn)證集和測(cè)試集。兩種數(shù)據(jù)集的統(tǒng)計(jì)情況如表1所示。
表1 兩種數(shù)據(jù)集的統(tǒng)計(jì)情況
使用均方誤差(MSE)作為模型的損失函數(shù),并利用反向傳播學(xué)習(xí)模型獲得各個(gè)層的參數(shù)。為了評(píng)價(jià)參數(shù)h2對(duì)模型性能的影響,通過(guò)調(diào)整參數(shù)的范圍,將參數(shù)h2在區(qū)間[50, 220]做步長(zhǎng)為10的增長(zhǎng),在Yelp公開(kāi)數(shù)據(jù)集上進(jìn)行實(shí)驗(yàn),h2對(duì)模型性能的影響如圖2所示??梢钥闯?,模型的性能在整體上會(huì)隨著參數(shù)h2的增長(zhǎng)而產(chǎn)生波動(dòng),當(dāng)h2設(shè)置為60時(shí),模型達(dá)到最佳性能。
圖2 h2對(duì)模型性能的影響
經(jīng)過(guò)調(diào)整超參數(shù),對(duì)中文汽車領(lǐng)域數(shù)據(jù)集與Yelp公開(kāi)數(shù)據(jù)集采取了不同的實(shí)驗(yàn)設(shè)置。對(duì)于中文汽車領(lǐng)域數(shù)據(jù)集,在數(shù)據(jù)預(yù)處理中使用jieba對(duì)用戶評(píng)論集和項(xiàng)目評(píng)論集的文本評(píng)論進(jìn)行分詞,將輸入的用戶評(píng)論集Tu和項(xiàng)目評(píng)論集Ti的長(zhǎng)度設(shè)置為500,輸入的用戶方面集Au和項(xiàng)目方面集Ai的大小設(shè)置為5;模型中局部注意力窗口大小設(shè)置為3,h1設(shè)置為100,h2設(shè)置為50,學(xué)習(xí)率設(shè)置為0.002。對(duì)于Yelp公開(kāi)數(shù)據(jù)集,將Au和Ai的大小設(shè)置為10;模型中局部注意力窗口大小設(shè)置為1,h1設(shè)置為300,h2設(shè)置為60,學(xué)習(xí)率設(shè)置為0.000 6。兩種數(shù)據(jù)集均使用Adam算法進(jìn)行優(yōu)化,所有的實(shí)驗(yàn)采用五次不同的隨機(jī)初始化,將得到的MSE值取平均數(shù),作為性能的評(píng)估標(biāo)準(zhǔn)。
為了驗(yàn)證PANNR+W方法的有效性,選取NARRE和ANR兩種方法在相同預(yù)訓(xùn)練情況下進(jìn)行模型性能比較。在中文汽車領(lǐng)域數(shù)據(jù)集上使用word2vec預(yù)訓(xùn)練詞向量,在Yelp數(shù)據(jù)集上使用Glove預(yù)訓(xùn)練詞向量,不同方法在兩種數(shù)據(jù)集上的MSE結(jié)果如表2所示??梢钥闯?,PANNR+W模型在中文汽車領(lǐng)域數(shù)據(jù)集和Yelp公開(kāi)數(shù)據(jù)集上的MSE均優(yōu)于NARRE和ANR模型。另外,中文汽車領(lǐng)域數(shù)據(jù)集的MSE顯著低于Yelp公開(kāi)數(shù)據(jù)集,這是由于在中文汽車領(lǐng)域數(shù)據(jù)集中用戶/項(xiàng)目交互的整體評(píng)分標(biāo)簽為“1”“2”“3”,而非Yelp公開(kāi)數(shù)據(jù)集的“1”“2”“3”“4”“5”。
表2 不同方法在兩種數(shù)據(jù)集上的MSE結(jié)果
此外,為了獲得更加全面的對(duì)比,將PANNR和ANR均采用BERT-wwm預(yù)訓(xùn)練模型,即為PANNR+B和ANR+B模型,這兩種模型在中文汽車領(lǐng)域數(shù)據(jù)集的MSE結(jié)果分別為0.427 65 和0.438 17,表明無(wú)論采用哪一種預(yù)訓(xùn)練,本文方法都是比較好的。
為了分析模型中各個(gè)部分對(duì)預(yù)測(cè)結(jié)果的有效性,使用四種簡(jiǎn)化模型與PANNR+B模型進(jìn)行比較實(shí)驗(yàn),模型超參數(shù)設(shè)置與2.2節(jié)一致,四種簡(jiǎn)化模型如下。
1) PANNR+B-全連接模型。利用式(1)將用戶評(píng)論集、項(xiàng)目評(píng)論集的表示輸入全連接層得到新表示時(shí),使用一個(gè)整體共享的參數(shù)矩陣W,而不是K個(gè)參數(shù)矩陣Wk。
2) PANNR+B-方面重要性學(xué)習(xí)模型。直接使用方面級(jí)用戶表示和方面級(jí)項(xiàng)目表示作為預(yù)測(cè)層的輸入,計(jì)算K個(gè)方面上的算術(shù)平均,省略方面重要性學(xué)習(xí)層中建模用戶和項(xiàng)目的細(xì)粒度交互過(guò)程得到的方面重要性。
3) PANNR+B-顯式方面模型。該模型等同于ANR+B模型,使用隨機(jī)初始化的向量來(lái)代替顯式的方面信息,而不使用用戶方面集和項(xiàng)目方面集。
4) PANNR+W模型。在進(jìn)行模型輸入時(shí),選用word2vec直接獲得用戶評(píng)論集、項(xiàng)目評(píng)論集、用戶方面集以及項(xiàng)目方面集的詞表示,而不使用BERT-wwm。
在中文汽車領(lǐng)域數(shù)據(jù)集上,不同模型消融實(shí)驗(yàn)的MSE結(jié)果如表3所示??梢钥闯觯?在全連接層使用單個(gè)共享參數(shù)矩陣的變體模型PANNR+B-全連接,其性能大幅下降,因此在全連接層使用K個(gè)參數(shù)矩陣是有必要的。② PANNR+B-方面重要性學(xué)習(xí)模型在計(jì)算評(píng)分時(shí),由于忽略了方面重要性權(quán)重向量而使模型的推薦效果不佳,因此使用方面重要性學(xué)習(xí)層動(dòng)態(tài)捕捉用戶偏好和項(xiàng)目特性,對(duì)模型性能的提升是不可或缺的。③ 在基于產(chǎn)品方面的注意力層中未使用方面標(biāo)簽信息的變體模型PANNR+B-顯式方面,系統(tǒng)的推薦性能明顯下降,說(shuō)明方面標(biāo)簽信息對(duì)于建模用戶偏好和項(xiàng)目特性起到了至關(guān)重要的作用。④ 使用word2vec進(jìn)行詞表示的模型PANNR+W,其性能劣于PANNR+B,說(shuō)明使用BERT獲得模型輸入的表示對(duì)模型性能有提升作用。
表3 消融實(shí)驗(yàn)的MSE結(jié)果
在中文汽車領(lǐng)域數(shù)據(jù)集中隨機(jī)地選取一條用戶評(píng)論數(shù)據(jù)作為示例,以展示基于方面的注意力層的計(jì)算結(jié)果。用戶評(píng)論注意力熱度圖如圖3所示,注意力分?jǐn)?shù)越高的詞匯對(duì)應(yīng)的色塊顏色越深。
圖3 用戶評(píng)論注意力熱度圖
在圖3中,w1, w2,…, w14分別為[‘速騰’, ‘不錯(cuò)’, ‘,’, ‘但’, ‘不’, ‘便宜’,‘;’, ‘甲殼蟲(chóng)’,‘拉風(fēng)’,‘,’,‘太’,‘不’, ‘實(shí)用’,‘;’],是由文本評(píng)論使用jieba分詞得到的。方面1,方面2,…,方面5分別為[‘性價(jià)比’, ‘外觀’, ‘實(shí)用性’, ‘〈pad〉’, ‘〈pad〉’],是本條評(píng)論的方面標(biāo)簽。在方面?zhèn)€數(shù)設(shè)為5時(shí),為了使方面?zhèn)€數(shù)保持一致,第4個(gè)標(biāo)簽和第5個(gè)標(biāo)簽的表示向量采用隨機(jī)初始化的形式賦值??梢钥闯?,注意力層對(duì)于與顯式方面標(biāo)簽相關(guān)的詞匯及其評(píng)價(jià)詞分配了較高的注意力權(quán)重。因此,利用顯式方面標(biāo)簽,可以將推薦結(jié)果形成模板的推薦解釋。例如,在選購(gòu)商品時(shí),可能關(guān)注此款商品在性價(jià)比、外觀、實(shí)用性等方面的表現(xiàn),若它在這些方面有比較好的表現(xiàn),便可以推薦此款商品。同樣地,對(duì)于得到較低預(yù)測(cè)評(píng)分的用戶/項(xiàng)目對(duì),可以通過(guò)類似的解釋來(lái)說(shuō)明此款商品不適合特定用戶的原因。
本文提出一個(gè)基于產(chǎn)品方面的神經(jīng)網(wǎng)絡(luò)推薦(PANNR)模型,由于PANNR模型包含基于產(chǎn)品方面的注意力模塊和方面重要性學(xué)習(xí)模塊,使模型利用顯式方面標(biāo)簽作為重要的輸入信息與文本評(píng)論組成了模型的輸入部分,得到用戶和項(xiàng)目的方面級(jí)別的表示,通過(guò)方面重要性學(xué)習(xí)模塊建模特定用戶/項(xiàng)目對(duì)的細(xì)粒度交互過(guò)程,使用戶評(píng)論信息得到更有效的利用。通過(guò)一系列的實(shí)驗(yàn)驗(yàn)證了推薦模型的有效性,而且通過(guò)可視化展示說(shuō)明了模型具有可解釋性。在以后的工作中,將進(jìn)一步挖掘用戶對(duì)項(xiàng)目具體方面的情感信息,以提高模型預(yù)測(cè)評(píng)分的性能,并進(jìn)一步利用注意力機(jī)制得出更具可解釋性的推薦結(jié)果。