程 艷 堯磊波 張光河 唐天偉 項國雄 陳豪邁 馮 悅 蔡 壯
1(江西師范大學(xué)計算機(jī)信息工程學(xué)院 南昌 330022)
2(江西師范大學(xué)管理決策評價研究中心 南昌 330022)
3(江西師范大學(xué)新聞與傳播學(xué)院 南昌 330022)
4(豫章師范學(xué)院數(shù)學(xué)與計算機(jī)學(xué)院 南昌 330022)
情感分析,也稱為觀點(diǎn)挖掘,是指人們對服務(wù)、產(chǎn)品、組織、個人、問題、事件、話題及其屬性的情感、觀點(diǎn)、評價、態(tài)度和情緒[1].在自然語言處理領(lǐng)域,情感傾向性分析是一項基礎(chǔ)性任務(wù),近年來已經(jīng)吸引了國內(nèi)外學(xué)者的廣泛關(guān)注.隨著互聯(lián)網(wǎng)和移動網(wǎng)絡(luò)的快速發(fā)展,用戶在網(wǎng)上發(fā)表的觀點(diǎn)和評論也越來越多,從這些內(nèi)容中挖掘出重要的情感信息也值得探索.情感分析主要分為主客觀情感識別和情感分類這2類,主客觀情感識別是將給定文本分成主觀性或客觀性文本,情感分類則是把主觀性文本分類為正面、負(fù)面或者中性[2].情感分析方法主要有基于機(jī)器學(xué)習(xí)和基于情感詞典的這2類方法,隨著神經(jīng)網(wǎng)絡(luò)研究的再次復(fù)蘇,基于深度學(xué)習(xí)的方法被廣泛應(yīng)用到文本情感分析任務(wù)中.基于情感詞典的方法最先被用于情感分析領(lǐng)域,它首先需要構(gòu)建一個情感詞典,然后對情感詞典進(jìn)行手工極性和強(qiáng)度標(biāo)注,最后實現(xiàn)對文本的情感分類.這種方法雖然能夠?qū)ξ谋具M(jìn)行情感分類,但是分類的效率并不高,因為它需要人工構(gòu)建情感詞典并進(jìn)行手工標(biāo)注.20世紀(jì)90年代,機(jī)器學(xué)習(xí)方法開始在文本情感分析中嶄露頭角[3-4].機(jī)器學(xué)習(xí)方法模型的函數(shù)雖然簡單,但通常需要復(fù)雜的特征工程,而特征的好壞能夠直接影響后面的分類效果,此外,機(jī)器學(xué)習(xí)方法的泛化能力比較低.近年來興起的深度學(xué)習(xí)方法很好地彌補(bǔ)了基于機(jī)器學(xué)習(xí)和基于情感詞典2種方法的缺陷,并被成功地應(yīng)用于自然語言處理任務(wù)中,尤其是被應(yīng)用在情感分析任務(wù)中,如卷積神經(jīng)網(wǎng)絡(luò)[5-7](convolution neural network, CNN)、長短期記憶(long-short term memory, LSTM)網(wǎng)絡(luò)[8-9].循環(huán)神經(jīng)網(wǎng)絡(luò)(recurrent neural network, RNN)和CNN是目前深度學(xué)習(xí)領(lǐng)域比較熱門的2種模型.但這2種模型也都存在一定的缺陷,CNN不能考慮到上下文語義信息,從而忽視了句子之間的相互聯(lián)系;RNN模型缺乏對文本特征提取的能力,不能很好地提取句子的局部特征.針對2種模型存在的缺陷問題,本文利用CNN、雙向門控循環(huán)單元(bidirectional gated recurrent unit, BiGRU)網(wǎng)絡(luò)模型和注意力機(jī)制,結(jié)合word2vec詞向量[10]表示模型,提出一種基于注意力機(jī)制的多通道CNN和BiGRU網(wǎng)絡(luò)的模型來解決文本情感分類問題.模型使用3個CNN進(jìn)行信息抽取,利用不同大小的卷積窗口進(jìn)行粒度不同的情感特征提取,從而可以提取到更豐富的文本情感特征.BiGRU網(wǎng)絡(luò)能夠考慮文本上下文信息和保持句子間單詞時序,因此能夠更加充分地利用整個文本中的特征信息,有效識別文本情感極性.同時在CNN通道和BiGRU網(wǎng)絡(luò)通道都引入注意力機(jī)制,能夠更加關(guān)注句子中對分類重要的單詞信息,以此來進(jìn)一步提升分類準(zhǔn)確率.
本文的主要貢獻(xiàn)有3個方面:
1) 利用雙向GRU(BiGRU)代替單向GRU和傳統(tǒng)的RNN模型,使模型既能夠考慮到文本上下文語義信息,又能夠解決梯度消失問題.
2) 提出一種結(jié)合CNN和BiGRU的網(wǎng)絡(luò)模型.該模型既能夠利用不同大小的卷積核在CNN不同通道內(nèi)提取文本中粒度不同的特征信息,又能夠使用BiGRU網(wǎng)絡(luò)充分考慮到句子上下文語義信息,彌補(bǔ)了各自的缺陷,增強(qiáng)了模型的文本特征提取能力,提高了分類準(zhǔn)確率.
3) 將注意力機(jī)制引入到本文模型中,它能夠提取影響情感極性分類的關(guān)鍵文本特征,使模型能夠關(guān)注到句子中對文本分類貢獻(xiàn)大的詞語,以此來提升CNN和BiGRU網(wǎng)絡(luò)的特征提取效果.
情感分析是研究人們對實體的看法、態(tài)度和情感的.情感傾向性分析一直都是自然語言處理領(lǐng)域的研究熱點(diǎn).早些年,主要使用基于情感詞典和傳統(tǒng)的機(jī)器學(xué)習(xí)的方法進(jìn)行情感傾向性分析.基于情感詞典的方法是使用情感詞典中已經(jīng)人工標(biāo)注好的詞條和句子中分好詞的每個詞語進(jìn)行匹配,再用相關(guān)公式對每個句子進(jìn)行計算并打分,最后整個句子得分大于0的分為正類,小于0的分為負(fù)類,以此進(jìn)行文本情感傾向性分析.對于英文詞典,Kamps等人[11]使用WordNet英文情感詞典判斷英文文本的情感傾向性.與英文情感詞典相比,規(guī)范的中文情感詞典相對缺乏,最早也是最普遍使用的是由董振東等人[12]標(biāo)注的大型情感分析詞語庫HowNet.基于情感詞典進(jìn)行分類的方法雖然操作簡單,但是情感詞典的構(gòu)建耗時耗力,且擴(kuò)充范圍有限,具有領(lǐng)域局限性.而傳統(tǒng)的基于機(jī)器學(xué)習(xí)的情感分類方法通常被看作是一類有監(jiān)督學(xué)習(xí)問題.Pang等人[13]在2004年利用最大熵、樸素貝葉斯和支持向量機(jī)(support vector machine, SVM)在文本情感分析中進(jìn)行了實驗比較,發(fā)現(xiàn)使用SVM進(jìn)行文本情感分類能夠達(dá)到最優(yōu)效果.Lee等人[14]將最大熵分類應(yīng)用于給定電子產(chǎn)品評論的極性評估.這些機(jī)器學(xué)習(xí)方法雖然能夠進(jìn)行文本情感分類,但是在分類的過程中需要復(fù)雜的特征選擇,這個過程同樣需要人工設(shè)計,同樣會導(dǎo)致其擴(kuò)展性差,很難適應(yīng)不同的領(lǐng)域和應(yīng)用需求.
近些年來,深度學(xué)習(xí)方法逐漸成為了情感分析的主流方法.它不需要人工進(jìn)行干預(yù),是一種端到端的方法,可以實現(xiàn)對特征進(jìn)行自動選擇,因此效率會比基于詞典和機(jī)器學(xué)習(xí)的方法更高,且領(lǐng)域適用性更強(qiáng).Collobert等人[15]于2011年首先提出使用CNN解決詞性標(biāo)注等自然語言處理(natural language processing, NLP)領(lǐng)域的問題.在2014年,Kim[6]提出將CNN應(yīng)用于英文文本情感分類任務(wù)中,并取得了當(dāng)時不錯的分類結(jié)果.Kalchbrenner等人[5]提出了一種寬卷積模型,并且用k-max池化代替了傳統(tǒng)CNN的最大池化,這樣做可以保留更多的特征信息.這種模型不需要任何的先驗信息輸入,也不需要構(gòu)造非常復(fù)雜的人工特征.Yin等人[16]使用多通道不同尺寸的卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行句子分類.陳珂等人[17]提出一種多通道卷積神經(jīng)網(wǎng)絡(luò)模型,使用多個卷積神經(jīng)網(wǎng)絡(luò)提取句子的多方面特征,在中文微博情感分析任務(wù)上取得了不錯的效果.然而,基于CNN的文本情感分類存在不能考慮句子上下文語義信息問題.
相較于CNN,RNN引入了記憶單元使得網(wǎng)絡(luò)具備了一定的記憶性,能夠捕捉到文本間的長距離依賴關(guān)系.但是它也存在一定的弊端,即在訓(xùn)練的過程中會出現(xiàn)梯度消失問題.而LSTM和門控循環(huán)單元(gated recurrent unit, GRU)網(wǎng)絡(luò)在傳統(tǒng)的RNN基礎(chǔ)上引入了門機(jī)制,較好地克服了RNN中梯度消失的弊端.基于LSTM和GRU模型,很多人在它們基礎(chǔ)上進(jìn)行改進(jìn),并取得了不錯的分類效果.Tang等人[18]首先使用CNN或LSTM實現(xiàn)單句表示,然后再用gated RNN編碼句子間的內(nèi)在關(guān)系和語義聯(lián)系,最后再實現(xiàn)篇章級文本的編碼,通過此方法可以較好地捕獲句子間的語義信息.Lai等人[19]提出了一種RCNN模型,首先利用雙向循環(huán)網(wǎng)絡(luò)模型得到單詞的上下文信息,然后再通過CNN的卷積池化過程進(jìn)行文本分類,在ZONews,Fudan,ACL,SST這4個測試集上取得了最好的效果.Zhou等人[20]提出了一種C-LSTM模型,首先利用卷積神經(jīng)網(wǎng)絡(luò)提取文本特征,然后再用LSTM網(wǎng)絡(luò)代替最大池化層得到最終分類結(jié)果.Ruder等人[21]使用一種層次化的雙向LSTM模型進(jìn)行方面級別的文本情感分類.Rao等人[22]使用2層LSTM進(jìn)行文檔級別的情感分類.Sachin等人[23]使用LSTM、GRU、雙向GRU和雙向LSTM方法進(jìn)行亞馬遜評論情感分析,并取得了不錯的效果.雖然LSTM和GRU模型能夠提取到上下文語義信息和考慮到單詞間時序問題,但是它們并不能像CNN那樣很好地提取句子的局部特征.
為了能夠充分發(fā)揮CNN和RNN的各自優(yōu)勢,越來越多的研究者將CNN與RNN進(jìn)行結(jié)合以此來進(jìn)行文本情感傾向性分析.Wang等人[24]使用一層CNN和一層RNN構(gòu)成一個融合模型,進(jìn)行短文本情感分析,實驗證明效果優(yōu)于單純使用CNN和RNN模型.Zhou等人[25]提出一種結(jié)合雙向LSTM和CNN的模型,并在池化層使用2維最大池化代替?zhèn)鹘y(tǒng)的最大池化得到最終分類結(jié)果.Zhang等人[26]提出一種CNN-LSTM模型,用于預(yù)測Twitter文本的情感強(qiáng)度.Zhang等人[27]提出一種多通道CNN-LSTM模型,用于Twitter文本情感分類任務(wù).Alayba等人[28]提出一種結(jié)合CNN和LSTM模型,用于阿拉伯語情感分析,并取得了不錯的分類效果.Zhang等人[29]使用基于Convolution-GRU模型對Twitter仇恨評論文本進(jìn)行情感極性判別.
近幾年來,注意力機(jī)制被廣泛應(yīng)用于文本分類任務(wù)中,因為注意力機(jī)制能夠讓模型從大量信息中有選擇性地篩選出重要信息,同時忽略一些不重要的信息,能夠讓模型注意到句子中對情感分類重要的詞語,例如Yang等人[30]結(jié)合了雙向RNN與注意力機(jī)制,構(gòu)建了注意力模型應(yīng)用在篇章級文本分類任務(wù)中,取得了當(dāng)時文本分類任務(wù)的最佳結(jié)果;Wang等人[31]將多層注意力機(jī)制和CNN結(jié)合用于句子關(guān)系分類任務(wù)中,模型在多個數(shù)據(jù)集上的實驗結(jié)果表明,使用注意力機(jī)制的模型比未使用的模型有更高的分類精度.Yang等人[32]提出2種不同的基于注意力機(jī)制的雙向LSTM模型用于目標(biāo)相關(guān)的情感分類,在當(dāng)時達(dá)到了最好的分類效果.Wu等人[33]使用基于注意力機(jī)制的CNN-LSTM網(wǎng)絡(luò)模型進(jìn)行Twitter文本情感強(qiáng)度分析,并取得了不錯的效果.程艷等人[34]提出一種融合卷積神經(jīng)網(wǎng)絡(luò)與層次化注意力網(wǎng)絡(luò)的模型,先利用CNN學(xué)習(xí)詞語特征,然后再將其輸入到基于注意力機(jī)制的雙向GRU網(wǎng)絡(luò)中得到句子的情感傾向.吳小華等人[35]提出一種結(jié)合雙向LSTM和自注意力機(jī)制的模型,先使用雙向LSTM得到文本的上下文語義特征,然后通過自注意力機(jī)制自動調(diào)整特征權(quán)重,在短文本情感分類任務(wù)上取得了不錯的效果.袁和金等人[36]提出一種提出了一種基于多通道卷積與雙向GRU網(wǎng)絡(luò)的情感分析模型,并在雙向GRU網(wǎng)絡(luò)上引入注意力機(jī)制來自動關(guān)注對情感極性影響較強(qiáng)的特征.鑒于融合注意力機(jī)制的神經(jīng)網(wǎng)絡(luò)模型的出色表現(xiàn),本文在對文本情感傾向性分析任務(wù)中也引入了注意力機(jī)制,使網(wǎng)絡(luò)模型能夠更多地注意到對文本情感極性貢獻(xiàn)大的詞語.
基于CNN,RNN和注意力機(jī)制各自的優(yōu)點(diǎn),本文提出一種基于注意力機(jī)制的多通道CNN和BiGRU網(wǎng)絡(luò)模型,該模型利用3通道CNN提取文本不同粒度的局部特征信息,并且使用BiGRU網(wǎng)絡(luò)模型代替?zhèn)鹘y(tǒng)的RNN模型,提取文本上下文語義信息,然后在每一個通道上都引入注意力機(jī)制,最后將它們進(jìn)行拼接,得到一種新的基于注意力機(jī)制的多通道神經(jīng)網(wǎng)絡(luò)模型.本文綜合利用CNN,BiGRU網(wǎng)絡(luò)和注意力機(jī)制這3種深度學(xué)習(xí)方法的優(yōu)點(diǎn),既考慮了文本的局部信息又考慮到了上下文語義信息,避免了文本信息的丟失,還能通過注意力機(jī)制關(guān)注到句子中對情感分類貢獻(xiàn)較大的詞語,提高了模型對文本情感分類性能.
oi=W·Si:i+h-1,
(1)
Fig. 1 The structure of the CNN圖1 CNN結(jié)構(gòu)
我們在2.1節(jié)已經(jīng)詳細(xì)描述了用一個過濾器提取一個特征的過程.圖1中模型利用了幾個不同大小的過濾器(具有不同窗口大小)來提取不同的特征,接下來把每一個過濾器提取的特征進(jìn)行max-pooling操作,以此來得到多個不同的最重要特征,然后把這些特征進(jìn)行拼接,最后再傳遞給全連接的Softmax層,其輸出是標(biāo)簽上的概率分布.
Fig. 2 The structure of the GRU圖2 GRU結(jié)構(gòu)
Cho等人[38]在2014年最初提出了一種GRU網(wǎng)絡(luò)模型,以使每個循環(huán)單元能夠自適應(yīng)地捕獲不同時間尺度的依賴性,有關(guān)GRU的結(jié)構(gòu)說明如圖2所示:
相比于LSTM,GRU的模型更為簡單,僅由更新門z和重置門r構(gòu)成,比LSTM少了一個門,所以在訓(xùn)練的時候參數(shù)更少,收斂時間更快.可以通過式(2)~(5)更新參數(shù):
rt=σ(Wrxt+Urht-1),
(2)
zt=σ(Wzxt+Uzht-1),
(3)
(4)
(5)
單向GRU的狀態(tài)是從前往后單向傳輸?shù)?,也就是忽略了后文單詞對整體狀態(tài)的影響;BiGRU是GRU的一個變體,它的輸出取決于前向狀態(tài)和后向狀態(tài)的雙重影響,解決了單向GRU存在的問題,使得最后的輸出結(jié)果更加準(zhǔn)確.BiGRU的模型結(jié)構(gòu)如圖3所示:
Fig. 3 The structure of the BiGRU圖3 雙向GRU結(jié)構(gòu)
Fig. 4 The structure of attention mechanism圖4 注意力機(jī)制結(jié)構(gòu)
注意力機(jī)制早在2014年便被應(yīng)用在機(jī)器翻譯任務(wù)上[39],并取得了當(dāng)時最好的效果.2016年,Yang等人[30]把注意力機(jī)制應(yīng)用于文本篇章級別的情感分類任務(wù)中,取得了不錯的分類效果.因為對于每個句子而言,每個詞的重要程度不同,所以本文引入注意力機(jī)制來提取句子中重要單詞的語義信息.注意力機(jī)制可以抽象為由Encoder和Decoder這2個模塊組成.Encoder一般為編碼器,對輸入數(shù)據(jù)做一定的變換得到語義向量;Decoder一般為解碼器,同樣經(jīng)過一定的變換后得到輸出數(shù)據(jù).注意力機(jī)制結(jié)構(gòu)如圖4所示.
主要公式如式(6)~(8)所示:
ui=tanh(Wihi+bi),
(6)
(7)
(8)
其中,uw為隨機(jī)初始化的上下文向量,在訓(xùn)練的過程中更新;ui為隱藏層向量hi經(jīng)過一個全連接運(yùn)算得到的結(jié)果;Wi和bi分別為注意力計算的權(quán)值矩陣和偏置項;αi為句子中第i個單詞的注意力分?jǐn)?shù),L為句子的長度.
本文在上述基礎(chǔ)模型上提出一種基于注意力機(jī)制的多通道CNN和BiGRU網(wǎng)絡(luò)的文本情感分析模型.該模型由卷積神經(jīng)網(wǎng)絡(luò)、雙向門控循環(huán)網(wǎng)絡(luò)和注意力機(jī)制組成,模型結(jié)構(gòu)如圖5所示.
Fig. 5 The overall structure of model圖5 模型整體結(jié)構(gòu)
本文的總體模型是由多個通道組成,主體是3個拼接的CNN模型通道和一個BiGRU模型通道,3個CNN通道主要是用來提取句子間詞語的不同的局部特征,而BiGRU通道是用來得到句子上下文語義信息.CNN通道的輸入是每個句子經(jīng)過分詞操作得到的詞語.第1層是嵌入層,作用是把輸入的每個詞語映射成一個向量表示;第2層是注意力機(jī)制層,主要是為了提取句子間重要單詞信息;第3層是卷積層,主要用來提取詞語間的局部特征,本文詞向量維度選取300維,選擇的3種過濾器大小分別為3×300,4×300,5×300,每一種過濾器各128個,步長stride=1,padding=valid(不需要進(jìn)行補(bǔ)零操作),經(jīng)過卷積操作之后就能得到句子的局部特征;第4層為池化層,主要是把卷積層得到的局部特征進(jìn)行最大池化操作,提取句子間最重要的特征,丟棄部分不相關(guān)和無用特征,以此生成固定維度的特征向量,再將3個經(jīng)過最大池化操作輸出的特征進(jìn)行拼接,作為全連接層輸入的一部分,經(jīng)過3種不同過濾器得到的3種不同的特征經(jīng)過拼接后可以為后面句子情感分類提供更豐富的特征信息.
BiGRU通道的第1層亦為詞嵌入層,詞向量的維度也設(shè)置為300維,第2層同樣是一個注意力機(jī)制層,和用于CNN模型的注意力機(jī)制一樣,均用來提取句子中重要的單詞信息;BiGRU的第3層和第4層分別為前向GRU和后向GRU結(jié)構(gòu),它們的隱藏層大小都設(shè)置為128,因為當(dāng)前時刻的輸入單詞和前后序列單詞都有一定的關(guān)系,所以將輸入序列分別從前后2個方向輸入GRU模型中,如圖3所示,然后通過隱藏層來保存前后方向文本的信息,最后將這2個隱藏層的輸出進(jìn)行拼接,得到BiGRU最后輸出,BiGRU輸出代碼如下:BiGru_output=keras.layers.Bidirectional(gru(hidden_dim,return_sequences=True))(inputs).
利用BiGRU模型主要是用來提取句子中詞的上下文語義信息,以此來提取文本中詞語的全局特征,然后我們將CNN通道中經(jīng)過池化操作拼接起來的特征和BiGRU的輸出進(jìn)行融合,融合的代碼為:output=keras.layers.merge.concatenate([cnn_output,BiGru_output]).
將融合的特征作為全連接層的輸入,全連接層中的激活函數(shù)都是使用relu,在全連接層之后加入dropout機(jī)制,每次訓(xùn)練的時候都讓一部分神經(jīng)元不工作,這樣做的目的是為了防止過擬合,最后再把它輸入到Softmax分類器中得到最后的分類結(jié)果,本文Softmax分類器將x分類為類別j的概率如式(9)所示:
(9)
其中,θ為訓(xùn)練中的所有參數(shù),k=2,本文均為二分類任務(wù).
本文實驗環(huán)境如下:操作系統(tǒng)為Windows10,CPU是Intel Core i7-6700U,GPU為GeForce GTX 1080,內(nèi)存大小為DDR3 8 GB,開發(fā)環(huán)境為Keras 2.1.0,開發(fā)工具使用的是PyCharm.
本文實驗部分在2個公開數(shù)據(jù)集上進(jìn)行:
1) 譚松波酒店評論數(shù)據(jù)集.用戶在國內(nèi)不同酒店上的評論數(shù)據(jù)集,然后經(jīng)過譚松波教授的整理,用于情感傾向性分析.
2) IMDB[40]數(shù)據(jù)集.國外用戶在網(wǎng)站上對電影的評論數(shù)據(jù),評論包括正向和負(fù)向的情感,用于情感傾向性分析.
數(shù)據(jù)集中的每條評論已經(jīng)被人為地設(shè)置了情感標(biāo)簽,這2個數(shù)據(jù)集具體信息如表1所示,部分評論數(shù)據(jù)如表2所示,為了減少訓(xùn)練過程中帶來的隨機(jī)性影響,我們分別在這2個數(shù)據(jù)集上進(jìn)行10折交叉驗證實驗.本文句子的長度我們用詞語個數(shù)來衡量.
Table1 Specific Information of Two Datasets表1 2個數(shù)據(jù)集具體信息
Table 2 Part of Review Data表2 部分評論數(shù)據(jù)
詞向量在自然語言處理中起著至關(guān)重要的作用,結(jié)合詞向量進(jìn)行預(yù)訓(xùn)練有助于提高模型的準(zhǔn)確率[41].對于中文數(shù)據(jù)集,本文使用大規(guī)模中文Wikipedia百科數(shù)據(jù)集來預(yù)訓(xùn)練CBOW模型,以此來得到中文詞向量,經(jīng)過訓(xùn)練之后,每個語義相近的中文詞語被映射到向量空間中相近的位置上,在訓(xùn)練過程中,我們設(shè)置詞向量的維度大小為300.首先用Jieba分詞工具對輸入的句子進(jìn)行分詞操作,之后去除停用詞,然后使用詞向量訓(xùn)練工具把這些詞語轉(zhuǎn)換為向量形式后作為神經(jīng)網(wǎng)絡(luò)的輸入.對于英文數(shù)據(jù)集,本文使用大規(guī)模英文Wikipedia數(shù)據(jù)集來訓(xùn)練CBOW模型,以此來得到英文詞向量,在訓(xùn)練過程中我們同樣設(shè)置詞向量維度為300.然后通過空格把每個句子分成一個個單詞,再去除停用詞,本文中我們把句子最大長度設(shè)置為200,小于該長度時,對句子進(jìn)行補(bǔ)零操作,大于該值時進(jìn)行截斷操作.本文實驗基于Keras深度學(xué)習(xí)框架,模型的優(yōu)化函數(shù)采用Adam[42]函數(shù),因為它能為不同的參數(shù)設(shè)計獨(dú)立的自適應(yīng)性學(xué)習(xí)率,并且能夠加快網(wǎng)絡(luò)收斂速度.
在本文實驗中,為了得到更加豐富的情感特征信息,將多通道CNN所選取的卷積核窗口大小分別為3,4,5,每個卷積核的數(shù)量都為128.為了防止過擬合現(xiàn)象,我們使用了L2正則化和dropout機(jī)制.本文模型的詳細(xì)超參數(shù)設(shè)置如表3所示:
Table 3 Hyper Parameters of Experiment表3 模型超參數(shù)設(shè)置
為了驗證本文提出的模型的分類性能,我們使用準(zhǔn)確率作為評估指標(biāo),將本文基于注意力機(jī)制的多通道CNN和BiGRU模型(MC-AttCNN-AttBiGRU)分別與13種模型方法在2個數(shù)據(jù)集上進(jìn)行實驗對比.
1) SVM.相較于其他機(jī)器學(xué)習(xí)方法,SVM在情感分類上面的效果較好[13],本文先把句子中的每個單詞用詞向量表示,然后再把這些單詞向量進(jìn)行加權(quán)平均作為SVM的輸入進(jìn)行分類.
2) Fasttext[43].Fasttext是Facebook開源的文本分類工具.在本實驗中,將模型學(xué)習(xí)率設(shè)為0.01,詞向量的維度設(shè)置為300.
3) CNN[6].普通的單通道CNN分類,把句子中每個詞語經(jīng)過詞嵌入之后得到的詞向量作為CNN的輸入,然后經(jīng)過卷積層、池化層、全連接層和最后的Softmax輸出層進(jìn)行分類.
4) MC-CNN.這是卷積核窗口大小分別為3,4,5的3個卷積層通道的拼接,即3通道CNN情感分類模型,過程和單個CNN分類一樣,只是最后把3個經(jīng)過池化層得到的最大特征進(jìn)行了拼接,以此來獲得更豐富、不同粒度的特征信息.
5) RCNN[19].這是一個單通道的CNN-RNN模型,該模型使用CNN和RNN進(jìn)行文本分類,在訓(xùn)練的過程中對輸入詞向量進(jìn)行微調(diào).
6) C-LSTM[20].這是一個單通道CNN-LSTM模型,首先把句子中每個詞語經(jīng)過詞嵌入之后得到的詞向量作為CNN的輸入,然后把抽取到的特征作為LSTM的輸入,最后再經(jīng)過全連接和Softmax層得到最終分類結(jié)果.
7) Convolution-GRU[29].這是一種結(jié)合CNN和GRU的復(fù)合模型,首先把句子中每個詞語經(jīng)過詞嵌入之后得到的詞向量作為CNN的輸入,然后把抽取到的特征作為GRU的輸入,最后再經(jīng)過全連接和Softmax層得到最終分類結(jié)果.
8) MC-CNN-LSTM[27].這是一種多通道的CNN-LSTM模型,該模型由2部分組成:一部分是多通道CNN模型;另一部分是LSTM模型.首先使用多通道CNN抽取不同的n-gram特征,然后把得到的特征作為LSTM的輸入,最后再經(jīng)過全連接和Softmax層得到最終分類結(jié)果.
9) BiGRU.使用經(jīng)過詞嵌入之后的單詞向量作為輸入經(jīng)過BiGRU網(wǎng)絡(luò)模型進(jìn)行句子情感分類.
10) ATT-MCNN-BGRUM[36].該模型是一種單通道的CNN-BiGRU模型,首先使用多通道的CNN模型提取到文本的不同的n-gram特征,然后將其輸入到基于注意力機(jī)制的BiGRU模型中,最后使用Maxout神經(jīng)元得到最后的分類結(jié)果.
11) MC-CNN-BiGRU.這是3個CNN通道和BiGRU通道的拼接,3個CNN通道和BiGRU通道的輸入都是經(jīng)過詞嵌入之后單詞的詞向量,但3個CNN通道和BiGRU通道都不加入注意力機(jī)制.
12) MC-AttCNN-BiGRU.這是3個CNN通道和BiGRU通道的拼接,并且在3個CNN通道上都加入注意力機(jī)制,而BiGRU通道不加入注意力機(jī)制,其他參數(shù)設(shè)置和MC-CNN-BiGRU一致.
13) MC-CNN-AttBiGRU.這是3個CNN通道和BiGRU通道的拼接,并且在BiGRU通道上加入注意力機(jī)制,而3個CNN通道不加入注意機(jī)制,其他參數(shù)設(shè)置和MC-CNN-BiGRU一致.
14) MC-AttCNN-AttBiGRU.這是本文提出的最終模型,3個CNN通道和BiGRU通道的拼接,并且在BiGRU通道和3個CNN通道上都加入注意力機(jī)制,以經(jīng)過詞嵌入之后得到的詞向量作為輸入,分別通過CNN通道和BiGRU通道提取特征,最后將提取到的2種特征融合進(jìn)行最后的情感分類.
本文用所提出的MC-AttCNN-AttBiGRU與3.4節(jié)其他13種神經(jīng)網(wǎng)絡(luò)模型方法在譚松波酒店評論數(shù)據(jù)集和IMDB上進(jìn)行實驗對比,實驗結(jié)果如表4所示:
Table 4 Accuracy Comparison of the Proposed Model and Other Baseline Models on Two Public Datasets表4 本文模型和其他基線模型在2種公開數(shù)據(jù)集上的準(zhǔn)確率對比 %
從表4可以看出,本文提出的MC-AttCNN-AttBiGRU模型方法在2個數(shù)據(jù)集上都取得了比其他模型更好的分類效果,在譚松波酒店評論數(shù)據(jù)集上準(zhǔn)確率達(dá)到了92.28%,在IMDB數(shù)據(jù)集上準(zhǔn)確率達(dá)到了91.70%,說明了本文所提模型的優(yōu)越性.
由表4可知,基于神經(jīng)網(wǎng)絡(luò)模型方法(CNN,RCNN等)在分類效果上還是顯著優(yōu)于傳統(tǒng)機(jī)器學(xué)習(xí)模型方法SVM的,因為SVM模型只是簡單地對句子中所有單詞向量進(jìn)行加權(quán)平均,并沒有考慮到句子間的上下文語義和一些更深層次的信息,所以分類效果不好,基于神經(jīng)網(wǎng)絡(luò)模型方法準(zhǔn)確率大概比基于傳統(tǒng)機(jī)器學(xué)習(xí)方法SVM高10%左右,說明了深度學(xué)習(xí)方法在文本情感分類任務(wù)上更有效果;此外,F(xiàn)asttext模型分類準(zhǔn)確率(83.96%,81.69%)優(yōu)于SVM模型(80.16%,79.86%),證明Fasttext模型在文本情感分析中的優(yōu)良性能,因為其模型簡單,運(yùn)算速度快,因此本文把它作為基線模型;在譚松波酒店評論數(shù)據(jù)集上,CNN和BiGRU的分類準(zhǔn)確率相近,因為它們都能提取到一定的語義信息,但CNN的準(zhǔn)確率要比BiGRU的稍微高一點(diǎn),這是因為譚松波酒店評論數(shù)據(jù)集較小并且評論文本較短,CNN可以很好地提取句子整體特征,而BiGRU卻無法在短文本上充分發(fā)揮其優(yōu)勢;在IMDB數(shù)據(jù)集上,BiGRU的分類準(zhǔn)確率要比CNN準(zhǔn)確率要稍微高一點(diǎn),這是因為IMDB數(shù)據(jù)集的每條評論都很長,BiGRU可以充分發(fā)揮其長距離記憶的優(yōu)勢;通過MC-CNN和單通道CNN,C-LSTM和MC-CNN-LSTM,ATT-MCNN-BGRUM和MC-AttCNN-AttBiGRU這3組對比實驗可以看出,多通道模型相對于單通道模型能夠提取到更豐富的情感特征信息,有助于提高情感分類性能;通過對比C-LSTM和Convolution-GRU可以看出,Convolution-GRU模型在本文數(shù)據(jù)集上的分類效果要優(yōu)于C-LSTM模型;通過對比MC-CNN-BiGRU,MC-CNN-LSTM和RCNN,C-LSTM,Convolution-GRU可以看出多通道的CNN-RNN模型還是優(yōu)于單通道CNN-RNN模型;通過MC-CNN-BiGRU和CNN,BiGRU進(jìn)行對比可以看出融合了CNN和BiGRU的多通道模型還是比單獨(dú)的CNN,BiGRU分類效果要好得多,這是因為MC-CNN-BiGRU結(jié)合了CNN和BiGRU各自的優(yōu)點(diǎn),既能提取到句子間連續(xù)單詞的局部信息又能夠獲得句子上下文語義信息,從而得到更高的分類準(zhǔn)確率.通過MC-AttCNN-BiGRU,MC-CNN-AttBiGRU和MC-CNN-BiGRU對比發(fā)現(xiàn),加入注意力機(jī)制的多通道模型可以更好地提高分類準(zhǔn)確率,因為它能讓模型更加注意到句子中那些對情感分類貢獻(xiàn)較大的單詞;通過MC-AttCNN-AttBiGRU和MC-AttCNN-BiGRU,MC-CNN-AttBiGRU對比發(fā)現(xiàn),在CNN通道和BiGRU通道同時引入注意力機(jī)制還能再進(jìn)一步提升文本分類準(zhǔn)確率.
本文提出的MC-AttCNN-AttBiGRU模型方法不僅能夠提取到句子中連續(xù)單詞的局部特征信息,還能夠捕獲句子上下文語義信息,充分發(fā)揮了CNN和BiGRU各自的優(yōu)勢,并且引入注意力機(jī)制能夠讓模型在特征提取的過程中更加關(guān)注句子中比較重要的情感詞語信息,減少那些對分類不重要的詞語的影響,所以本文提出的模型相較于其他幾種基線模型能夠獲得最好的效果.
為了更加直觀有效地展示模型效果,本文在實驗部分使用seaborn庫和matplotlib庫進(jìn)行句子中單詞注意力權(quán)重分配的可視化展示,本文選取正面和負(fù)面評論各一段進(jìn)行可視化展示實驗.
文本1:總體感覺還不錯.房間很干凈、簡潔、舒適.
文本2:酒店前臺小女孩子服務(wù)太次, 態(tài)度很差.
Fig. 6 Text one word attention weight heatmap圖6 文本1單詞注意力權(quán)重?zé)崃D
對于文本1和文本2,我們首先使用Jieba分詞工具對句子進(jìn)行分詞,然后再去除標(biāo)點(diǎn)符號和停用詞,得到“總體 感覺 還 不錯 房間 很 干凈 簡潔 舒適”和“酒店 前臺 小 女孩子 服務(wù) 太 次 態(tài)度 很差”這些單詞,然后再分別繪制單詞級別的注意力權(quán)重?zé)崃D如圖6、圖7所示.圖中顏色越深即灰度值越大,表示分配給單詞的權(quán)重越高,說明該單詞對后續(xù)情感分類的重要性更高.
Fig. 7 Text two word attention weight heatmap圖7 文本2單詞注意力權(quán)重?zé)崃D
文本1中經(jīng)過Jieba分詞和去除停用詞和標(biāo)點(diǎn)之后包含9個單詞,從圖6中可以看出模型對“還”、“不錯”、“很”、“干凈”、“簡潔”、“舒適”這幾個單詞分配了較高的權(quán)重,這些都是有關(guān)正面評論的詞語;文本2經(jīng)過Jieba分詞和去除停用詞之后也包含9個單詞,從圖7可以看出模型對“太”、“次”、“很差”這幾個單詞分配了較高的權(quán)重,這些都是有關(guān)負(fù)面評論的詞語.
通過在這2段正負(fù)評論文本上進(jìn)行注意力權(quán)重可視化實驗,結(jié)果表明:本文使用注意力機(jī)制可以很好地找出句子中對情感分析結(jié)果影響較大的單詞,證明了注意力機(jī)制確實能夠關(guān)注句子中比較重要的情感詞語.
本文提出了一種基于注意力機(jī)制的多通道CNN和BiGRU的網(wǎng)絡(luò)模型用于文本情感傾向性分析,該模型既能夠利用CNN有效地提取到文本間相鄰詞語的局部特征,又能夠利用BiGRU捕獲句子上下文全局語義信息,而且引入注意力機(jī)制還能更好的注意到句子中對情感分類貢獻(xiàn)大的詞語.在中英文數(shù)據(jù)集上多個實驗結(jié)果充分證明了本文提出模型的有效性,這種多通道混合模型比單一的CNN和BiGRU網(wǎng)絡(luò)提取的特征效果更好,且本文提出的模型較其他幾種基線模型在2個公認(rèn)的數(shù)據(jù)集上都取得了最好的分類效果.
雖然本文模型可以通過CNN提取局部特征和BiGRU網(wǎng)絡(luò)提取一定的上下文語義結(jié)構(gòu)信息,但是這對于文本情感分類任務(wù)還是不夠的.傳統(tǒng)的文本情感分類方法一般加入了一些句法結(jié)構(gòu)特征,而本文提出的模型沒有使用任何句法結(jié)構(gòu)特征,因此下一步工作我將探討如何讓深度學(xué)習(xí)方法與傳統(tǒng)的方法結(jié)合,并考慮引入更多文本特征進(jìn)一步來提高分類準(zhǔn)確率.