王盛玉,曾碧卿,2,商 齊,韓旭麗
(1. 華南師范大學(xué) 計算機(jī)學(xué)院,廣東 廣州 510631;2. 華南師范大學(xué) 軟件學(xué)院,廣東 佛山 528225)
情感分類任務(wù)面向用戶生成的文本,分析文本的情感信息,最終得到文本的情感傾向: 正向、中性或負(fù)向。目前,情感分析已經(jīng)廣泛應(yīng)用于諸多領(lǐng)域,如電子商務(wù)平臺、電影推薦、輿情分析等。
當(dāng)前,情感分類主要有基于規(guī)則、機(jī)器學(xué)習(xí)和深度學(xué)習(xí)這三類方法。基于規(guī)則的方法主要借助于情感詞或?qū)<覙?gòu)建的特征,但特征構(gòu)建的代價非常高?;跈C(jī)器學(xué)習(xí)的方法將情感分類視為與文檔分類或主題分類相似的任務(wù),采用unigram、bigram或one-hot等語言模型構(gòu)建篇章特征,使用機(jī)器學(xué)習(xí)算法作為分類器對篇章進(jìn)行情感傾向性分析。該方法面臨篇章特征向量稀疏、維度爆炸、特征提取困難等問題?;谏疃葘W(xué)習(xí)的方法把神經(jīng)網(wǎng)絡(luò)模型參數(shù)訓(xùn)練與特征學(xué)習(xí)的過程并行化,篇章映射成矩陣作為模型的輸入,模型學(xué)習(xí)到篇章的特征表示后,將其輸入到分類器,完成情感分類任務(wù)。
近年來,隨著深度學(xué)習(xí)在情感分析領(lǐng)域的研究,越來越多的研究者使用深度學(xué)習(xí)、神經(jīng)網(wǎng)絡(luò)模型對文本進(jìn)行情感分析。卷積神經(jīng)網(wǎng)絡(luò)在情感分析任務(wù)中的有效性已被證明。篇章通過word embedding映射后作為CNN的輸入,經(jīng)過卷積層和池化層得到篇章的特征表示。Kim[1]利用提前訓(xùn)練的詞向量,成功地將CNN應(yīng)用于句子分類任務(wù)。Kalchbrenner[2]提出一種動態(tài)k-max pooling的CNN用于句子特征學(xué)習(xí),取得較好效果。
注意力機(jī)制(attention mechanism)目前已經(jīng)成功應(yīng)用于自然語言處理與圖像處理等多個領(lǐng)域。在情感分析領(lǐng)域,注意力機(jī)制的應(yīng)用,有利于模型更有效地發(fā)現(xiàn)和構(gòu)建特征,使模型在訓(xùn)練時有選擇地進(jìn)行特征提取。Xu K[3]將注意力機(jī)制應(yīng)用于解決圖片描述生成問題;在機(jī)器翻譯領(lǐng)域[4-5],注意力機(jī)制改進(jìn)了原有的encoder-decoder翻譯模型。Yin[6]等提出一種基于注意力機(jī)制的卷積神經(jīng)網(wǎng)絡(luò),將其用于句子對建模任務(wù)中;Wang[7]等人利用基于多層注意力機(jī)制的卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行句子關(guān)系分類;這些方法的成功說明注意力機(jī)制與CNN結(jié)合的有效性。
CNN雖然擁有強(qiáng)大的學(xué)習(xí)能力,但在文本特征提取時,數(shù)據(jù)集未進(jìn)行預(yù)處理,導(dǎo)致輸入文本中存在大量非關(guān)鍵詞;其次,CNN無法自動判別輸入文本中哪些局部特征詞較為重要,而這對情感分析至關(guān)重要;再者,CNN在情感分析中往往采用不同大小的卷積核,但忽略對單一詞特征的提?。蛔詈?,CNN在情感分析領(lǐng)域的應(yīng)用缺乏理論解釋,同時卷積操作容易忽略篇章首尾詞的上下文信息。因此,本文結(jié)合卷積神經(jīng)網(wǎng)絡(luò)和注意力機(jī)制,以詞特征提取為目標(biāo),提出詞注意力卷積神經(jīng)網(wǎng)絡(luò)模型(word attention-based CNN,WACNN)。該模型針對情感分析任務(wù),做出如下三方面工作: ①詞注意力機(jī)制。模型首先在詞嵌入層后構(gòu)造詞注意力層,注意力機(jī)制作用在詞嵌入層輸出的文本特征表示上,以局部窗口的方式,獲取窗口中心詞的上下文信息,得到每個詞的情感權(quán)重。②卷積核。卷積層的卷積操作可以視為獲取文本的n-grams特征,在該層加入大小為1的卷積核,獲取單一詞的特征。③輸入填充。借鑒n-grams思想,對卷積層的輸入進(jìn)行適當(dāng)?shù)?填充(Padding),使卷積操作可以根據(jù)每個詞的上下文提取特征。最后在MR5K和CR數(shù)據(jù)集上進(jìn)行實驗驗證,取得了比普通卷積神經(jīng)網(wǎng)絡(luò)和傳統(tǒng)機(jī)器學(xué)習(xí)方法更好的效果。
本文的主要貢獻(xiàn)如下:
(1) 本文首次結(jié)合注意力機(jī)制和CNN來解決情感分類問題。
(2) 基于詞注意力的卷積神經(jīng)網(wǎng)絡(luò)模型既能在詞嵌入層自動地獲取關(guān)鍵特征詞,還能在卷積層分別提取詞特征和整體的語義特征。
(3) 本文給出卷積在情感分析上的n-grams解釋,并利用Padding方法模擬該特征提取,實驗證明了Padding方法在文本特征提取上的有效性。
情感分析任務(wù)針對用戶生成的文本,判斷用戶的觀點、情感或態(tài)度[8]。情感分類作為情感分析的一項基礎(chǔ)任務(wù),通過對文本的情感分析獲取其情感傾向性。傳統(tǒng)的情感分析方法主要借助于機(jī)器學(xué)習(xí)算法和人工特征構(gòu)建。Pang B[9]利用機(jī)器學(xué)習(xí)方法,借助一元詞、二元詞、詞性標(biāo)注等特征進(jìn)行電影評論情感分析。Wang和Manning[10]將支持向量機(jī)與樸素貝葉斯方法相結(jié)合,在多個數(shù)據(jù)集上取得較好效果。
在語言模型上,傳統(tǒng)方法多使用詞袋模型,但該模型無法有效地獲取文本的深層次語義特征。詞嵌入(word embedding)[11]將詞或短語映射到一個低維向量空間中,用以表征它的語法和語義特征。大量基于word embedding的神經(jīng)網(wǎng)絡(luò)模型應(yīng)用于情感分類任務(wù)。Kim[1]將CNN應(yīng)用于文本分類;Johnson等[12]提出一種類似于Kim的方法,但將高維度的one-hot向量作為模型的輸入;Socher[13]提出遞歸神經(jīng)網(wǎng)絡(luò)對電影評論進(jìn)行分析;Tang[14]使用CNN與帶有門機(jī)制的RNN構(gòu)建層次化的情感分類模型。
注意力機(jī)制方面,Bahdanau[4]提出注意力機(jī)制,并首次應(yīng)用于翻譯領(lǐng)域,Luong[5]則提出了兩種注意力方式global attention和local attention。兩者將注意力機(jī)制在翻譯領(lǐng)域的成功應(yīng)用,使其迅速成為研究的熱點。Zhou[15]結(jié)合LSTM和注意力機(jī)制,用于特定目標(biāo)的情感分類,將特定目標(biāo)作為模型的關(guān)注點,訓(xùn)練中獲取與特定目標(biāo)關(guān)聯(lián)性強(qiáng)的信息,分配高權(quán)重,從而有效識別目標(biāo)的情感傾向。
本文以Kim的卷積神經(jīng)網(wǎng)絡(luò)為基礎(chǔ),卷積神經(jīng)網(wǎng)絡(luò)主要包括輸入層、詞嵌入層、卷積層、池化層和全連接層。假設(shè)輸入的情感篇章為S={w1,w2,…,wn-1,wn},篇章長度為n,通過詞嵌入層的詞嵌入矩陣可得到篇章的Word2Vec特征表示X,如式(1)所示。
X={x1,x2,…,xn}
(1)
d代表詞向量的維度,其中xi∈Rd。卷積層使用大小不同、數(shù)量不等的卷積核對輸入矩陣進(jìn)行卷積操作,獲取每個局部的特征,生成輸入篇章的特征圖,如式(2)所示。
C=f(ω·X+b)
(2)
其中ω∈Rh×d代表卷積核權(quán)重矩陣,h代表卷積核大小,b代表偏置量,f(·)代表卷積核函數(shù)。得到特征圖后,池化層進(jìn)行下采樣操作,提取重要的特征。最后,將經(jīng)過池化后的卷積層輸出串聯(lián)作為全連接層的輸入,得到最終的分類結(jié)果。
如圖1所示,本文提出的詞注意力卷積神經(jīng)網(wǎng)絡(luò)模型WACNN(word attention-based CNN)主要分為五個步驟:
(1) 詞嵌入層: 將序列化后的輸入文本進(jìn)行詞嵌入,得到文本的特征表示。
圖1 詞注意力機(jī)制卷積神經(jīng)網(wǎng)絡(luò)
(2) 詞注意力層: 在詞嵌入層后添加注意力層,使模型在訓(xùn)練的過程中有選擇地進(jìn)行詞特征提取,降低噪聲對情感分析的影響。
(3) 填充層: 本文以每個詞的上下文含義作為詞特征表示,根據(jù)卷積核大小對卷積層的輸入進(jìn)行填充,保證每個詞都存在上下文。
(4) 卷積層: 卷積層除了使用多個大小為[3,4,5]的卷積核,還增加大小為1的卷積核。卷積層對填充后的注意力層輸出進(jìn)行特征提取,獲取局部特征。
(5) 后兩部分與CNN相似,包括池化層和全連接層。
通過步驟(2)~(4),使卷積神經(jīng)網(wǎng)絡(luò)在情感分析時,具備鑒別特征詞的能力;卷積層既能獲取每個詞的特征,也能基于每個詞的上下文得到局部特征。
詞嵌入層: 篇章經(jīng)過序列化處理后得到S={w1,w2,…,wn-1,wn},wi代表詞在整個數(shù)據(jù)集詞匯表中的下標(biāo),篇章的特征表示采用one-hot模型。在詞嵌入層采用詞映射的方式將每個詞映射為d維的向量,如式(3)所示。
(3)
e代表詞向量矩陣e∈R|ν|×d,|ν|表示整個數(shù)據(jù)集中詞匯的數(shù)量。
詞注意力層: 注意力層的作用是對輸入文本進(jìn)行篩選,決定哪些詞匯較為重要,使模型在訓(xùn)練過程中重點關(guān)注。如圖2所示,我們采取n-grams語言模型,取該詞和其上下文的含義作為該詞的語義表達(dá)。設(shè)置詞的上下文范圍為D,pi表示詞在文本中的位置,則詞wi的語義可表示為: 大小為L=[pi-D,pi+D]=1+2D的窗口內(nèi)上下文的含義。設(shè)置滑動窗口矩陣參數(shù)Watt∈RL×d,計算每個詞xi的特征值權(quán)重αi,用以表示其對情感分析的重要程度。
(6)
對于詞嵌入層的輸出X,注意力層采用滑動的方式,對每個局部提取詞的權(quán)重αi,得到權(quán)重向量α,如圖2所示。
α={α1,…,αn}
α∈Rn
(7)
n代表輸入句子的長度。
圖2 詞注意力層
通過α可以標(biāo)識每個詞的重要程度,將其與對應(yīng)位置的詞向量相乘得到新的文本特征表示Xatt:
(8)
在情感分析領(lǐng)域,傳統(tǒng)自然語言處理常采用unigram、bigrams或trigrams作為語言特征。
Pang B[9]曾使用該方法進(jìn)行情感分析,此方法基于馬爾科夫鏈,考慮每個詞的上下文信息,研究結(jié)果表明該方法非常有效。卷積層提取局部特征,可以將卷積操作近似地視為提取文本的n-grams特征。每次卷積操作,卷積核參數(shù)ω∈Rh×d以xi為中心,考慮詞的上下文,依次提取每個詞的n-grams特征。以大小為3的卷積核為例,每次考慮中心詞的上下文范圍為1,即遵循隱馬爾可夫原則,而大小為5時,上下文范圍就擴(kuò)大到2。
但在卷積層中,處于篇章首尾的詞無法被卷積操作覆蓋到,且無上下文信息,即首尾各存在h/2個詞無法提取到n-grams特征,產(chǎn)生信息丟失。如圖3所示,我們使用兩種方式對卷積層的輸入進(jìn)行適當(dāng)?shù)奶畛洌允咕矸e操作可以提取到每個詞的上下文信息。
圖3 兩種Padding方式
(1) Padding-1: 對卷積層的輸入在首尾位置進(jìn)行0向量補(bǔ)全,補(bǔ)全大小為h/2,以保證開始詞存在上文,結(jié)尾詞存在下文,如式(9)所示。
(9)
(2) Padding-2: 在卷積層的輸入末尾進(jìn)行大小為h-1的0向量補(bǔ)全,如式(10)所示。
(10)
式(10)中,⊕表示串聯(lián)操作。
卷積層負(fù)責(zé)提取單一詞特征和詞的上下文信息。經(jīng)過填充后的文本特征表示Xatt,將其作為卷積層的輸入。卷積層使用大小為h的卷積核ω∈Rh×d對輸入進(jìn)行局部特征提取,如式(11)所示。
ci=f(ω·Xatt: (i: i+h-1)+b)
(11)
其中Xatt: (i: i+h-1)代表文本特征矩陣從第i行到第i+h-1 行的局部特征,f(·)代表卷積核函數(shù),b代表偏置量。卷積層對特征矩陣X的不同位置進(jìn)行卷積操作,得到特征圖(feature map)c,如式(12)所示。
c={c1,c2,…cn-h,cn-h+1}
(12)
(13)
上述為單一大小的卷積核,本文使用多個大小的卷積核,數(shù)量為z,將池化層的輸出串聯(lián)作為全連接層的輸入,全連接層負(fù)責(zé)情感分類,得到結(jié)果,如式(14)所示。
(14)
式(14)中,⊕表示串聯(lián)操作,O代表模型在多個不同大小的卷積核下生成的結(jié)果串聯(lián),z表示選取了幾種大小的卷積核,m表示每個卷積核的數(shù)量,Wfc為全連接層的權(quán)重,bfc為偏置量,y∈{+1,-1},代表情感類別,此處為二分類。
實驗部分在以下兩個公開數(shù)據(jù)集上進(jìn)行:
(1) CR: 用戶在不同商品上的評論數(shù)據(jù)集,用于對評論進(jìn)行情感傾向性分析[16]。
(2) MR5K: 用戶對電影的評論數(shù)據(jù)。每一條評論數(shù)據(jù)包含正向和負(fù)向的情感傾向[17]。
上述的這些數(shù)據(jù)集已經(jīng)人工對每條評論設(shè)置了情感標(biāo)簽,實驗中暫不考慮標(biāo)簽與文本是否相符的情況。數(shù)據(jù)集詳細(xì)信息如表1所示。
表1 實驗數(shù)據(jù)集
表1中|V|代表數(shù)據(jù)集詞匯數(shù)量;N代表數(shù)據(jù)集篇章數(shù)量;average代表篇章詞數(shù)量的平均值;max代表篇章詞數(shù)量的最大值。
本實驗按照8∶1∶1將數(shù)據(jù)集劃分為訓(xùn)練集、驗證集和測試集。數(shù)據(jù)集的預(yù)處理采用keras自帶的tokenizer接口進(jìn)行分詞。文本使用預(yù)訓(xùn)練的詞向量進(jìn)行映射,詞向量采用Mikolov[11]提前訓(xùn)練好的公開結(jié)果集,向量維度300維[注]https://code.google.com/archive/p/word2vec/。為了降低數(shù)據(jù)分配對實驗結(jié)果的影響,每組實驗結(jié)果都取十折交叉驗證的平均值。
實驗中卷積神經(jīng)網(wǎng)絡(luò)的參數(shù)同Kim[1]構(gòu)建的單層卷積神經(jīng)網(wǎng)絡(luò)參數(shù)相似,激活函數(shù)使用rectified linear units(RELU),卷積核大小分別為[1,3,4,5],每個卷積核數(shù)量為100個,Dropout層接收比例為0.5,batch_size為64,池化層采用最大池化,訓(xùn)練時對詞向量進(jìn)行微調(diào),采用 Adadelta[18]算法優(yōu)化模型參數(shù),詞注意力層取上下文范圍大小D=2,即L=5,滑動窗口數(shù)量為1。全連接層隱藏單元200個。
本文提出的方法與多種不同的方法進(jìn)行對比,包括支持向量機(jī)(support vector machine,SVM)、卷積神經(jīng)網(wǎng)絡(luò)等。對比實驗數(shù)據(jù)來自Kim[1]。
對比方法如下:
NBSVM,MNB: 使用樸素貝葉斯和支持向量機(jī)進(jìn)行情感和主題分類[10]。
CNN-K: Kim[1]將卷積神經(jīng)網(wǎng)絡(luò)應(yīng)用于篇章分類。
CNN-Z: Zhang Y[19]實驗觀察了卷積神經(jīng)網(wǎng)絡(luò)對各參數(shù)的敏感性。
CNN: 在本實驗環(huán)境下,使用CNN在各數(shù)據(jù)集上的實驗結(jié)果。
WACNN1: 詞注意力卷積神經(jīng)網(wǎng)絡(luò)模型,填充層使用Padding-1方法。
WACNN2: 詞注意力卷積神經(jīng)網(wǎng)絡(luò)模型,填充層使用Padding-2方法。
WACNN-N: 模型在填充層不使用Padding方法。
本文在MR5K和CR數(shù)據(jù)集上進(jìn)行多組實驗,得到目標(biāo)的情感傾向。表2給出了實驗在不同數(shù)據(jù)集上得到的分類結(jié)果。
表2 不同模型在特定目標(biāo)的情感分類結(jié)果
從表2可以看出,本文提出的方法在兩個領(lǐng)域的數(shù)據(jù)集上都取得更好的效果。WACNN1/WACNN2/WACNN-N都取得了比原始CNN和傳統(tǒng)機(jī)器學(xué)習(xí)方法更好的效果。CNN模型將所有詞都同等對待,提取每一處的局部特征,沒有識別關(guān)鍵詞匯的能力,基于注意力機(jī)制的WACNN模型相比CNN情感分類正確率有明顯提升。在CR數(shù)據(jù)集上提升了2%,這說明注意力機(jī)制能使CNN在訓(xùn)練過程中有選擇地關(guān)注特定目標(biāo)詞匯,降低噪聲影響,從而更好地識別目標(biāo)情感傾向性。本組實驗驗證了注意力機(jī)制同卷積神經(jīng)網(wǎng)絡(luò)結(jié)合有助于特定目標(biāo)的情感分類。
從表2還可以看出,在多個數(shù)據(jù)集上,WACNN-N模型的表現(xiàn)要比WACNN1和WACNN2略差。從圖4可以更顯著地看出,WACNN-N效果優(yōu)于原始CNN,但較WACNN1和WACNN2要差一些。卷積層在獲取文本開始和結(jié)尾處的局部特征時,缺乏詞的上下文信息,造成信息丟失,填充層的加入可有效提升模型效果,保證卷積層可提取到每個詞的n-grams特征。實驗驗證了本文提出的兩種填充方法在WACNN模型上的有效性。
從圖4可以看出,兩種填充方法的優(yōu)劣并無絕對差別,在不同的目標(biāo)數(shù)據(jù)中表現(xiàn)不一。兩種方法哪種更優(yōu)需要根據(jù)特定目標(biāo)而定。
卷積神經(jīng)網(wǎng)絡(luò)在卷積層的卷積操作,我們將其理解為依據(jù)中心詞提取詞的n-grams特征,并給出了兩種填充方法保證卷積操作可以提取到每個詞的上下文信息。
表2和圖4驗證了填充方法在WACNN模型上的有效性,本節(jié)在MR5K數(shù)據(jù)集上設(shè)計兩組實驗來驗證理論猜想的正確性、填充方法在CNN上的有效性。分別考慮多卷積核大小和單一卷積核的CNN,形成表3和表4的實驗結(jié)果。CNN-1代表使用Padding-1方法,CNN-2代表使用Padding-2方法。
從表3的實驗結(jié)果可以看出,伴隨著卷積核的變大,卷積層在文本開始和結(jié)尾處丟失的信息更多,取得的效果也越差。填充層的加入使輸入根據(jù)卷積核的大小進(jìn)行填充,卷積層提取到每一個詞的上下文信息,能更好地表達(dá)文本的情感信息。CNN-1和CNN-2取得了比原始CNN更好的效果。實驗驗證了填充方法在多卷積核卷積神經(jīng)網(wǎng)絡(luò)上的有效性。
表3 Padding對多卷積核模型的影響
表4的實驗結(jié)果表明,在不同大小的卷積核下,填充方法可取得0.3%~1%的模型提升效果。填充方法在單卷積核的情況下同樣有效,但是兩種方法的優(yōu)劣并沒有絕對差別,效果取決于目標(biāo)數(shù)據(jù)。
圖4 MR數(shù)據(jù)集上模型10折交叉驗證的實驗結(jié)果
Region SizeCNNCNN-1CNN-2380.8180.8980.89481.0281.3681.38581.2381.4481.62680.9681.4281.24780.8881.5281.091080.4481.4181.411580.1181.1481.10
3.4節(jié)和3.5節(jié)的實驗表明: ①理論的正確性。情感分析任務(wù)中,卷積層以每個詞為中心,依據(jù)詞的上下文提取詞的n-grams特征。②填充方法的有效性。兩種填充方法有效地保證了每個詞具有上下文信息,使卷積層可提取到每個詞的特征。
情感分析任務(wù)中,卷積神經(jīng)網(wǎng)絡(luò)取得了不錯的效果,但是模型在特征提取、特征選擇等環(huán)節(jié)都缺乏可解釋性和可視性。本文在詞嵌入層之后卷積層之前添加詞注意力層,使得模型在訓(xùn)練過程中有選擇地進(jìn)行特征提取。因此,我們可以對模型的特征提取和選擇進(jìn)行可視化,并給予解釋。
本組實驗從MR5K和CR數(shù)據(jù)集中隨機(jī)各選出兩條文本,模型的詞注意力層得到每個詞的權(quán)重,根據(jù)權(quán)重大小加深詞的顏色,深色陰影代表最高權(quán)重級別,淺色陰影代表較高權(quán)重級別。表5和表6中只標(biāo)識出權(quán)重較高的詞,其余不做標(biāo)注。
表5CR數(shù)據(jù)集文本注意力機(jī)制可視化
表6 MR5K數(shù)據(jù)集文本注意力機(jī)制可視化
從表5和表6中可以看出,模型訓(xùn)練時會將形容詞短語(形容詞+名詞)和形容詞視為較重要的詞。例如在CR數(shù)據(jù)中“very sleek”“good front panel”“thinly sketched”,MR5K數(shù)據(jù)中“thinly sketched”“integrated”等。除此之外,否定詞轉(zhuǎn)折詞、名詞短語和比較短語也有很高的權(quán)重值。如“much better”“more like”“i’m not”“but”等。
本組實驗證明: 詞注意力層確實可以使模型在訓(xùn)練過程中發(fā)現(xiàn)關(guān)鍵詞并有選擇地提取數(shù)據(jù)特征。在情感分類任務(wù)中,情感詞、形容詞短語、比較詞、否定詞和轉(zhuǎn)折詞都對情感傾向性判斷具有較大影響。
本文提出一種基于詞注意力的卷積神經(jīng)網(wǎng)絡(luò)模型,并將其用于情感分析領(lǐng)域,實驗取得了較好效果。模型借鑒傳統(tǒng)自然語言處理中的n-grams特征,在詞嵌入層之后加入注意力層,提升了模型訓(xùn)練時的特征選擇能力,并使模型具備特征選擇可視化和可解釋性;填充層的填充方法保證每個詞都具備上下文信息;卷積層以詞為中心,根據(jù)詞的上下文提取特征。最后,模型在MR5K和CR數(shù)據(jù)集上驗證了效果。
然而,本文將注意力機(jī)制應(yīng)用在詞特征的選擇上,并未在語義層面進(jìn)行特征篩選。所以接下來將對注意力機(jī)制進(jìn)行改進(jìn),使其對語義的特征選擇更加有效。