梁海霞, 張凌東, 賈 蓉
(1.西安郵電大學(xué) 宣傳部, 陜西 西安 710121; 2.火箭軍駐北京地區(qū) 第一軍代室, 北京,100076;3.西安郵電大學(xué) 計算機學(xué)院, 陜西 西安 710121)
隨著互聯(lián)網(wǎng)時代的來臨,越來越多的人已經(jīng)習(xí)慣于在網(wǎng)上消費,人們通過對所購買的商品進行評論來表達(dá)對消費的滿意程度,由此產(chǎn)生的評論數(shù)據(jù)中通常蘊含著消費者的情感傾向信息。這些信息往往可以反映出消費者的態(tài)度和想法,因而蘊含著極高的商業(yè)價值。通過分析這些電商評論數(shù)據(jù),不但可以幫助電商平臺進行精準(zhǔn)廣告推薦,而且可以幫助商家改進產(chǎn)品。因此情感傾向分析作為自然語言處理中一個重要的問題,引起了國內(nèi)外眾多研究人員的廣泛關(guān)注。
當(dāng)前,主流研究方法多以詞袋模型為主。但是,這種模型將文本視為詞匯的無序集合,忽略了文本上下文之間的聯(lián)系,從而導(dǎo)致文本中蘊含的深層語義難以被捕獲。為了解決上述問題,一些研究人員引入其他特征作為補充,例如設(shè)置情感詞典、進行句法結(jié)構(gòu)分析等[1]。雖然采用這些方法可以取得較好的效果,但是這需要建立大規(guī)模的人工標(biāo)注數(shù)據(jù)集,面對當(dāng)前電商評論數(shù)據(jù)的巨大量級顯得費時費力。
循環(huán)神經(jīng)網(wǎng)絡(luò)(recurrent neural network,RNN)已經(jīng)被證明在序列化任務(wù)上具有很好的效果,但由于該方法存在著梯度消失和梯度爆炸[10]的問題,因而處理長范圍文本時該方法效果有限。Hochreiter等[2]提出的長短期記憶模型(long-short term memory,LSTM)的RNN有效解決了上述問題。LSTM模型通過改變普通RNN的隱藏層神經(jīng)元結(jié)構(gòu)來保存記憶狀態(tài)信息,從而減緩信息衰減的速率。Tai等[3]提出的基于樹型的LSTM模型偏重于對文本結(jié)構(gòu)的學(xué)習(xí),但電商評論屬于弱句法類別,難以構(gòu)成完整的句法結(jié)構(gòu)。Huang等[4]提出的層次LSTM模型(Hierarchical LSTM)則是一種將文本按照層級劃分的LSTM模型,但是電商評論長度不固定,不適合按照層級進行劃分。
相較于一般文本,電商評論具有噪聲大、縮寫頻繁、合成詞多和高度口語化等特點,若直接對評論進行分詞,將難以得到正確的切分。這需要從更細(xì)的粒度來提取文本特征,否則將無法準(zhǔn)確表達(dá)文本的語義,甚至?xí)a(chǎn)生歧義。另外,在電商評論中,高度口語化的特點導(dǎo)致文本中較重要的信息在文本中的位置難以固定,如何提高這些信息的權(quán)重,降低冗余噪聲的影響,是關(guān)乎電商評論的一個非常重要的問題。
為了解決上述問題,提出了基于注意力機制(attention model,AM)和雙向長短期記憶網(wǎng)絡(luò)(bidirectional long-short term memory,BLSTM)的情感傾向分類模型,以提高電商評論情感傾向分類的準(zhǔn)確率。為了避免傳統(tǒng)分詞方法對于文本的不合理切分,以單個字為基本單元,將預(yù)訓(xùn)練的字向量作為輸入特征。并將BLSTM模型的隱藏層分為兩層,分別用來學(xué)習(xí)文本的上文語義特征和下文語義特征,最后將其進行串接作為隱藏層的輸出。
Pang 等[5]早期就利用詞袋模型來進行文本的情感分類,后續(xù)很多人嘗試設(shè)計更合理的文本特征來提高情感分類的正確率。這些方法都是基于分析句法結(jié)構(gòu)搭配情感詞典的方法或者類似方法來進行構(gòu)建文本特征。為了擺脫傳統(tǒng)機器學(xué)習(xí)中特征工程的影響,人們開始將深度學(xué)習(xí)方法應(yīng)用于自然語言處理領(lǐng)域。例如Sutskever等[6]利用LSTM進行機器翻譯工作,Ghosh等[7]將LSTM應(yīng)用于詞語預(yù)測,Wang等[8]利用LSTM預(yù)測推特的情感極性。以上工作均取得不錯的成果,這充分說明LSTM在自然語言處理上的廣闊應(yīng)用前景。
自然語言處理首先需要將自然語言轉(zhuǎn)化為計算機語言。目前主流的向量生成方法為One-hot向量,該方法可以快速生成對應(yīng)的詞向量,并且能夠完整地保存文本特征。但是,該方法有兩個主要缺陷,其中一個是生成的詞向量中任意兩個詞之間是孤立的,難以反映詞與詞之間的語義關(guān)系。另外一個是面對單詞表數(shù)量多、自身長度較短的文本,生成的詞向量維度高,導(dǎo)致生成的文本特征矩陣過于稀疏。
Hinton[9]提出的詞向量表示方法可以有效解決上述問題。該方法通過將詞語分布式的映射到低維空間中,一方面解決了向量稀疏問題,另一方面保存了詞語間語義層面的關(guān)系。
但是,面對電商評論這種噪聲大、縮寫頻繁、合成詞多和高度口語化的文本類型,依照傳統(tǒng)分詞方法往往難以得到合理的切分,從而導(dǎo)致生成的詞向量質(zhì)量不高。因此本文提出使用字向量作為輸入特征,以單個字為基本單位進行訓(xùn)練,生成字向量。這樣一方面防止因文本的不合理切分而引起的語義丟失,另一方面又有效解決了one-hot向量引起的維度爆炸問題。
RNN支持可變長度輸入,在語言模型方面展現(xiàn)了很強的優(yōu)勢。與普通神經(jīng)網(wǎng)絡(luò)相比較,RNN中的循環(huán)結(jié)構(gòu)將上一時刻的信息作為下一時刻輸入的一部分傳輸?shù)较乱粚樱虼?,隱藏層中每一個時刻的輸出ht都依賴于上一時刻的輸出ht-1,其表示式為
ht=σ(Whxxt+Uht-1),
式中:xt是時間t處的輸入;Whx表示輸入特征的權(quán)重矩陣;U表示上一時刻輸出狀態(tài)到這個時刻輸入的權(quán)重矩陣;σ表示激活函數(shù)。
考慮到RNN在訓(xùn)練中會出現(xiàn)梯度消失和爆炸的問題,這使得如果輸入序列過長,將難以利用先前信息。LSTM模型是RNN的擴展,其隱藏層神經(jīng)元中構(gòu)建了記憶存儲單元,可以發(fā)現(xiàn)和建立輸入特征之間的長距離依賴關(guān)系,因此,可以有效處理RNN中存在的梯度消失和梯度爆炸問題。本文使用的LSTM模型結(jié)構(gòu)如圖1所示。
圖1 LSTM模型結(jié)構(gòu)示意圖
LSTM是RNN的一種擴展,由輸入門、遺忘門、輸出門和記憶存儲單元等4個部分構(gòu)成。若Wih、Wix、bi分別表示輸入門的權(quán)重矩陣,則輸入門it表示式為
it=σ(Wihht-1+Wixxt+bi)。
若Wfh、Wfx、bf分別表示遺忘門對應(yīng)的權(quán)重矩陣,則遺忘門ft表示式為
ft=σ(Wfhht-1+Wfxxt+bf)。
上述門結(jié)構(gòu)的輸出將同當(dāng)前的輸入xt,上一時刻LSTM單元的輸出ht-1,以及上一時刻的記憶單元中存儲的Ct-1用于決定是否更新記憶單元的狀態(tài)并遺忘之前存儲的狀態(tài)。其中記憶單元更新Ct表示式為
若Woh、Wox、bo為輸出門對應(yīng)的權(quán)重矩陣,則輸出門ot表示式為
ot=σ(Wohht-1+Woxxt+bo),
最后輸出記憶單元狀態(tài)改變后的值為
ht=ottanh (Ct)。
為了避免因傳統(tǒng)分詞方法對于文本的不合理切分而導(dǎo)致的歧義,將采取字級別輸入特征,以單個字作為句子的基本組成單元,對單個字訓(xùn)練字向量。例如“這家酒店真是高大上”,字級別的句子組成為“這/家/酒/店/真/是/高/大/上”,詞級別的句子組成為“這家/酒店/真是/高大/上”。對于字級別特征向量,包含n個基本單元的句子X表示為{x1,x2,…,xn},其中xi表示第i個字。若mi∈dw表示句子X中第i個字相對應(yīng)的字向量,dw表示字向量的維度,則對應(yīng)字向量的集合(m1,m2,…,mn)表示句子X的特征向量。
LSTM模型能有效處理文本中出現(xiàn)的長距離依賴問題,但單向LSTM模型只能利用上文的語義特征。在實際研究中,無論上文語義特征還是下文語義特征都應(yīng)該利用起來,這樣才能夠得到更全面的語義特征。
本文提出通過基于字向量輸入的BLSTM層來學(xué)習(xí)文本的語義特征,其模型結(jié)構(gòu)如圖2所示。BLSTM層由兩層LSTM模型組成,第一層LSTM模型為正向?qū)樱凑瘴谋菊蝽樞蜻M行學(xué)習(xí)。第二層為反向?qū)?,按照文本逆向順序進行學(xué)習(xí),且兩層之間無連接。在兩層LSTM模型之上,將兩層學(xué)習(xí)方向相反的隱層的輸出進行串接。雙向LSTM層中隱藏LSTM單元數(shù)目與字向量維度保持一致。
圖2 基于注意力機制的雙向長短期記憶網(wǎng)絡(luò)模型
H=(h1,h2,…,hn),
其中,對于H中的每一個元素hi∈dw,且ht為
通過對兩層LSTM輸出的語義特征矩陣進行相加,將來自上文的語義信息和來自下文的語義信息進行結(jié)合。
注意力機制最近在一系列應(yīng)用中取得成功,如機器翻譯[10]、語音識別[11]和圖像字幕生成[12]等。由于電商評論文本具有噪聲大和高度口語化等特點,若直接將上文模型中隱藏層最后時刻輸出的語義特征進行分類,將會造成細(xì)節(jié)丟失和信息冗余問題。因此,需要在生成語義特征的過程中計算歷史時刻隱藏層輸出對最終時刻隱藏層輸出的影響力權(quán)重。本文設(shè)計了一種新的注意力機制描述影響力權(quán)重。
對于上文中H矩陣中每一個時刻隱藏層的輸出Ht(t=1,2,…,n),計算隱藏層每個時刻的輸出對應(yīng)最終時刻輸出的注意力概率分布矩陣α。先網(wǎng)絡(luò)使用tanh層計算得到mi,這就意味著對hi和ht做聚合運算,mi并不僅考慮hi而獨立計算得到的,然后,對每個權(quán)重計算求上下文相關(guān)度最大的值。具體過程為
mi=tanh(Whhi+Uht),M=[m1,m2,…,mt],α=soft max (wTM)。
其中Wh、U、w分別為訓(xùn)練參數(shù)矩陣,且
M∈dwT,α∈dw。
將求得的概率分布矩陣作為對應(yīng)每個時刻隱藏層輸出的影響力權(quán)重矩陣,求得文本語義特征矩陣的加權(quán)r為
r=HαT。
其中r∈dw。由此可得到最終句子的語義向量表示h*為
h*=tanh(Wrr+Whht),
式中Wr表示語義特征的權(quán)重矩陣。上式將用于最終的情感分類。
本文模型是根據(jù)文本情感主題將文本分為消極和積極兩種類別。對于句子X,經(jīng)過模型學(xué)習(xí)得到文本特征,再對該特征進行sigmoid操作來獲得最終的情感傾向分類,即
C=σ(h*)。
考慮到采取二類情感傾向分類,因此,使用交叉熵?fù)p失函數(shù)(cross-entropy cost function)作為損失函數(shù)。選擇Adam(adaptive moment estimation)算法[13]作為模型的訓(xùn)練算法。為了防止過擬合,利用L2正則化進行參數(shù)約束;在模型的兩層LSTM層采取dropout策略[14],即在訓(xùn)練過程中,每次迭代隨機放棄一部分訓(xùn)練好的參數(shù)。通過反復(fù)實驗,設(shè)置dropout=0.5,即隨機放棄一半?yún)?shù)。
實驗環(huán)境配置如表1所示。
表1 實驗環(huán)境及配置
實驗數(shù)據(jù)采用攜程網(wǎng)酒店評論數(shù)據(jù)集[15]。隨機抽取8 000 條數(shù)據(jù)進行實驗。其中包括4 000 條積極評論數(shù)據(jù),4 000 條負(fù)面評論數(shù)據(jù)。實驗中采用10折交叉驗證來評估模型預(yù)測的準(zhǔn)確率。將數(shù)據(jù)隨機分為10 組,每次使用9組數(shù)據(jù)作為訓(xùn)練集,1組作為測試集,重復(fù)實驗10次。最后取10次實驗的平均值作為最終結(jié)果。
首先在對數(shù)據(jù)進行訓(xùn)練字向量之前,需要對數(shù)據(jù)進行如下預(yù)處理。
1)去除特殊字符,只留下中英文字符以及標(biāo)點符號。
2)進行繁簡轉(zhuǎn)換,將數(shù)據(jù)中的繁體字轉(zhuǎn)換為簡體字。
3)對于字向量進行分字處理,對于詞向量進行分詞處理。
對于字向量,以字為基礎(chǔ)單位訓(xùn)練字向量。其中所使用的字向量訓(xùn)練工具為Python平臺下的gensim[16],該工具使用skip-gram[17]方法進行字向量的訓(xùn)練。為了訓(xùn)練出更高質(zhì)量的字向量,這要求訓(xùn)練維度更高,也就意味著需要更大規(guī)模的語料進行訓(xùn)練。本文將整個數(shù)據(jù)集提供的10 000條數(shù)據(jù)分別訓(xùn)練詞向量和字向量。通常情況下,向量維度越高,表示其訓(xùn)練質(zhì)量越高,但是,隨著向量維度的增加,也會導(dǎo)致整個模型在訓(xùn)練過程出現(xiàn)過擬合的風(fēng)險增加,因此,需要根據(jù)具體實驗情況來選擇合適的維度。
另外,為了對比字向量和詞向量對實驗結(jié)果的影響,本文在同樣的語料庫上訓(xùn)練了詞向量。首先對語料進行分詞,然后以詞作為基礎(chǔ)單位訓(xùn)練詞向量,且詞向量的訓(xùn)練參數(shù)與字向量保持一致。訓(xùn)練過程中的參數(shù)設(shè)置如表2所示。
表2 字向量和詞向量參數(shù)設(shè)置表
為了分析基于注意力機制的BLSTM模型在情感傾向分類的性能優(yōu)劣,加入普通的單層LSTM模型、BLSTM模型和傳統(tǒng)機器學(xué)習(xí)模型作為對比。實驗中采用的評價指標(biāo)為準(zhǔn)確率(precision)、召回率(recall)和F1分?jǐn)?shù),并采用下述6種測試實驗?zāi)P瓦M行對比分析。
1)“LSTM+word(pretrained)”模型:將預(yù)訓(xùn)練的詞向量作為輸入特征。隱藏層只設(shè)置單層LSTM模型。在實驗中,詞向量保持不變,只更新模型中的其他參數(shù)。
2)“LSTM+ character(pretrained)”模型:將skip-gram模型訓(xùn)練好的字向量作為輸入特征。隱藏層設(shè)置單層LSTM模型。在實驗中,字向量保持不變,只更新模型的其他參數(shù)。
3)“BLSTM+word(pretrained)” 模型:將skip-gram模型訓(xùn)練好的詞向量作為輸入特征。在實驗中,詞向量保持不變,只更新模型中其他參數(shù)。
4)“BLSTM+ character (pretrained)” 模型:將skip-gram模型訓(xùn)練好的字向量進行初始化。在實驗中,字向量保持不變,只更新模型中的其他參數(shù)。
5)“Attention-BLSTM” 模型:將skip-gram模型訓(xùn)練好的字向量進行初始化。采用本文提出的基于注意力機制的BLSTM模型進行實驗,在實驗中,詞向量保持不變,只更新模型中的其他參數(shù)。
6)傳統(tǒng)機器學(xué)習(xí)模型:使用線性SVM算法進行對照實驗。為了避免因為輸入特征不同而引起的對實驗結(jié)果的影響,將使用相同詞向量作為輸入特征。
3.5.1 實驗結(jié)果
仿真實驗中, 上述6種測試實驗?zāi)P偷慕Y(jié)果如表3所示,6種測試實驗?zāi)P偷腇1分?jǐn)?shù)對比結(jié)果如圖3所示。
表3 分組實驗結(jié)果
圖3 6種測試實驗?zāi)P偷腇1分?jǐn)?shù)對比
3.5.2 實驗結(jié)果分析
1) 普通LSTM模型與BLSTM模型對比:通過對比“LSTM+word(pretrained)”和“BSTM+word(pretrained)”以及“LSTM+character(pretrained)”和“BLSTM+character(pretrained)”等4組實驗的結(jié)果可以發(fā)現(xiàn),在分別使用詞向量和字向量作為輸入特征時,BLSTM模型的表現(xiàn)均要優(yōu)于LSTM模型。結(jié)合實驗結(jié)果以及模型特點分析,BLSTM模型通過設(shè)置兩層不同學(xué)習(xí)方向的LSTM隱藏層可以學(xué)習(xí)到文本更為全面的語義信息,使分類更準(zhǔn)確。
2) Attention-BLSTM模型與BLSTM模型對比:通過對比Attention-BLSTM模型與“BLSTM+character(pretrained)”模型實驗結(jié)果可以發(fā)現(xiàn),注意力層的加入使得實驗結(jié)果進一步得到提升,而且從圖3可以看出,與BLSTM模型實驗相比較,注意力機制的引入使得模型對于負(fù)面評論的情感傾向分類效果提升更加顯著,表明本文提出的注意力機制對于文本中關(guān)鍵信息的捕捉是有效的。相比BLSTM模型,可以提高文本中重要的信息的權(quán)重,降低文本中的冗余成分對于情感傾向分類的影響。
3)Attention-BLSTM模型與機器學(xué)習(xí)方法:通過對比Attention-BLSTM模型與線性SVM的實驗結(jié)果可以看出,相比較傳統(tǒng)的方法,深度學(xué)習(xí)模型有著顯著的優(yōu)勢,這表明深度學(xué)習(xí)方法在挖掘數(shù)據(jù)抽象信息的能力要大大強于傳統(tǒng)方法。隨著互聯(lián)網(wǎng)發(fā)展越來越快,傳統(tǒng)方法對于在網(wǎng)絡(luò)語境下產(chǎn)生的文本的處理能力將越來越弱。
另外,通過對比“LSTM+word(pretrained)”、“BLSTM+character(pretrained)”、“LSTM+word(pretrain-ed)”和“BLSTM+character(pretrained)”的實驗結(jié)果可以發(fā)現(xiàn),單層LSTM模型以字向量作為輸入特征的表現(xiàn)要弱于使用詞向量作為輸入特征的表現(xiàn),使用BLSTM模型時以字向量作為輸入特征的表現(xiàn)要優(yōu)于使用詞向量為輸入特征的表現(xiàn)。結(jié)合實驗結(jié)果分析,主要在于如下原因,即字向量雖然粒度更小,但是進行字向量訓(xùn)練時,以單個字作為基本單元導(dǎo)致字的個體數(shù)量遠(yuǎn)遠(yuǎn)少于詞的個體數(shù)量,這會導(dǎo)致訓(xùn)練出來的字向量中語義信息弱于詞向量。而采用BLSTM模型時,通過從兩個方向來進行文本特征的學(xué)習(xí),其中含有的文本語義信息相比單層LSTM模型學(xué)習(xí)所得特征更加豐富。而且,從文本角度來說,字的組合自由度要高于詞的組合自由度,因此,使用BLSTM模型以及基于BLSTM的衍生模型時以字向量作為輸入特征更為適合。
情感傾向分類是自然語言處理領(lǐng)域的重要研究課題之一。本文提出一種基于注意力機制的BLSTM模型來進行商品評論的情感分類,是在BLSTM模型學(xué)習(xí)到的文本語義特征的基礎(chǔ)上,通過所提出的注意力機制來捕捉文本中的重要信息,降低冗余成分的干擾。在仿真實驗中,設(shè)計了一系列實驗來該方法的有效性,同時探究了輸入特征粒度對實驗結(jié)果的影響。測試結(jié)果表明,注意力機制能夠用于計算模型歷史時刻隱藏層的輸出序列對最終時刻隱藏層輸出序列的影響力的權(quán)重。BLSTM可以有效地利用上下文信息,豐富文本的語義特征;而注意力機制會提高句子中重要部分的權(quán)重,最終生成包含有歷史權(quán)重信息并且突出關(guān)鍵語義信息的文本語義特征,這將顯著降低句子自身冗余噪聲對于最終分類結(jié)果的影響,有效提升分類的性能。
但是,本文算法依然存在著不足之處,如BLSTM模型對于一些小范圍的前后詞性依賴問題無法進行有效地建模,且隨著模型結(jié)構(gòu)的擴大,訓(xùn)練中也會出現(xiàn)過擬合的風(fēng)險。針對這些問題進行改進,將是下一步需要重點研究的工作。隨著互聯(lián)網(wǎng)熱潮的繼續(xù),將電商評論的情感分析方面的研究將更深入。