覃俊,孟凱,劉晶,廖立婷,毛養(yǎng)勤
(中南民族大學 計算機科學學院&湖北省制造企業(yè)智能管理工程技術(shù)研究中心,武漢 430074)
文本情感分析一直是自然語言處理和文本挖掘領(lǐng)域研究的熱點問題之一,因其廣泛的應(yīng)用前景而受到學術(shù)界和工業(yè)界的重視.文本情感分析領(lǐng)域中,情感分類[1]任務(wù)的目的在于確認文本所表達的情感,情感要素抽取[2]的目的在于分析文本所表達的情緒,而基于方面的情感分析[3]則旨在分析針對事物的某個方面所表達的情感.近年來,情感原因抽取也成為情感分析領(lǐng)域的一項重要子任務(wù),其旨在識別在給定文本中某種情緒表達背后的潛在原因.有效識別情感產(chǎn)生的原因,能更好地幫助服務(wù)提供者改善并提高服務(wù)質(zhì)量,提升用戶體驗.在公共安全領(lǐng)域,如輿情監(jiān)控和政府決策層面,對情感原因的探究有助于更好地理解公眾意見的形成的原因.因此,關(guān)于情感原因提取的研究近年來受到越來越多的關(guān)注.
早期的研究主要采用構(gòu)建規(guī)則的方法從文本中抽取情感對應(yīng)的原因[4-5],這些方法將情感原因抽取看作詞級別的序列標注任務(wù),其性能依賴于標注數(shù)據(jù)集的大小,而且移植性較差.一些研究[6-7]表明,考慮文檔中子句級別的信息可以提高情感分析任務(wù)尤其是情感原因抽取任務(wù)的性能.近幾年,在該任務(wù)上的研究取得了一定的成果[8-12].
圖1展示了子句級的情感原因抽取的基準數(shù)據(jù)集[13]中的一個例子.被標注了“激動”的情感標簽的文檔中包含了8個子句,其中子句C3描述了該情感,被標注為“激動”情感子句.子句C2是情感子句C3產(chǎn)生的原因,被標注為C3的原因子句.因此,子句級的情感原因抽取任務(wù)可以看作一個子句分類問題.根據(jù)給定的情感標注,判斷文檔中的每個子句是否包含該情感的原因,從而確定該情感的原因子句.該數(shù)據(jù)集已經(jīng)成為了情感原因抽取任務(wù)的一個基準數(shù)據(jù)集.基于該數(shù)據(jù)集,在深度學習和傳統(tǒng)機器學習[13-14]上都有了許多的研究工作.
圖1 例子:情感原因抽取Fig.1 Example:Emotion cause extraction
隨著深度學習的發(fā)展,長短期記憶網(wǎng)絡(luò)和注意力機制被廣泛的應(yīng)用于情感原因抽取任務(wù).文獻[8]提出了帶有上下文感知的聯(lián)合注意力神經(jīng)網(wǎng)絡(luò)進行情感原因抽?。墨I[10]考慮了整個文檔對情感原因子句的作用,利用多注意力機制從多個視角抽取文檔特征從而加大對原因子句的關(guān)注.文獻[15]基于雙向長短期記憶網(wǎng)絡(luò),設(shè)計了一種聯(lián)合注意力機制來捕捉每個候選原因子句和情感子句之間的相互作用.上述方法主要關(guān)注了情感原因子句中文檔的上下文信息,忽略了情感描述子句和情感原因子句之間的語義關(guān)系.另一方面,由于數(shù)據(jù)集中標簽不平衡,普通的子句遠多于原因子句,使得尋找情感描述子句與情感原因子句的之間的語義關(guān)系十分困難.
因此,本文綜合考慮了情感原因子句和情感描述子句之間的語義關(guān)系、情感原因子句和情感描述子句的位置關(guān)系,以及情感原因子句的上下文信息.提出了一個基于子句的自注意力多特征融合神經(jīng)網(wǎng)絡(luò)模型(SANN),本文主要貢獻如下:
(1)融合了情感原因子句的上下文信息、情感原因子句和情感描述子句之間的語義關(guān)系以及情感原因子句和情感描述子句的位置關(guān)系特征.
(2)利用自注意力機制,融合位置關(guān)系特征,計算情感描述子句和情感原因子句之間的語義信息.
(3)基于文獻[13]提出的當前最大子句級的中文情感原因抽取任務(wù)的數(shù)據(jù)集評估了我們的方法,實驗結(jié)果表明,該模型在查全率R上優(yōu)于目前的其他方法.
早期研究將情感原因抽取任務(wù)定義為詞級別的序列標簽問題,提出了基于規(guī)則或機器學習的方法[7,16-17].例如SOPHIA[4]等基于語言學規(guī)則,最早針對新聞文本中的情緒表達抽取其對應(yīng)的原因,同時提出了評測規(guī)范.文獻[18]基于人工規(guī)則特征,使用支持向量機(Support Vector Machine,SVM)等傳統(tǒng)機器學習方法去抽取情感原因.文獻[5]將認知學中的模型引入情感原因發(fā)現(xiàn),設(shè)計了新的抽取規(guī)則.一些研究方法[17]從其他領(lǐng)域?qū)胂闰炛R和理論來推斷并提取情感的原因.這些方法均基于有注釋的數(shù)據(jù)集構(gòu)建語言規(guī)則.在小數(shù)據(jù)集上能取得較好的效果,但隨著數(shù)據(jù)集的增大,規(guī)則集的構(gòu)建周期也會變長,而且移植性較差.
文獻[8]指出,圍繞情感關(guān)鍵詞的上下文描述了情緒引起的線索.因此,由情感詞以及與它相關(guān)的上下文組成的情感子句應(yīng)作為一個整體進行查詢.文獻[6]證明了子句級別的特征可以提高情感分析任務(wù)的性能.因此,情感抽取的研究開始考慮文檔中子句級別的信息,構(gòu)建基于句級別語義的情感原因抽取模型.已有的研究工作[7,11,13,19]表明,從子句級別去考慮表達的情感和原因之間的關(guān)系,能夠明顯提高情感原因的抽取效率,基于Transformer[20]的模型[9]取得了較好的效果.
文檔中不同內(nèi)容的子句對特定情感有著不同的作用,文獻[15]基于雙向長短期記憶網(wǎng)絡(luò),考慮了情感原因子句和情感描述子句相互作用,設(shè)計了一種聯(lián)合注意力機制來捕捉每個候選原因子句和情感子句之間的相互作用.文獻[8]提出了一個帶有上下文感知的聯(lián)合注意力神經(jīng)網(wǎng)絡(luò).利用聯(lián)合注意力機制尋找情感描述子句和情感原因子句之間的關(guān)系,最后使用卷積神經(jīng)網(wǎng)絡(luò)對添加了聯(lián)合注意力的子句進行分類.文獻[10]考慮了整個文檔對情感原因子句的作用,使用注意力機制對文檔建模,從多個視角抽取文檔特征從而加大對原因子句的關(guān)注.文獻[21]基于中文微博多用戶的特點,構(gòu)建了一個多用戶的中文情感原因數(shù)據(jù)集,發(fā)現(xiàn)了不同博客之間的情感原因關(guān)聯(lián),并使用SVM和長短期記憶網(wǎng)絡(luò)(Long Short-Term Memory,LSTM)等方法去探測多用戶的情感原因關(guān)聯(lián).文獻[13]基于新浪城市新聞構(gòu)建了中文情感原因數(shù)據(jù)集.該數(shù)據(jù)集針對的是基于子句級的情感原因抽取任務(wù),目標是對給定的情感描述的注釋,確認該情感的原因子句.這個數(shù)據(jù)集已經(jīng)成為了情感原因抽取任務(wù)的一個基準數(shù)據(jù)集.
之前的研究工作主要忽略了情感原因子句和情感描述子句的語義關(guān)聯(lián).因此,本文綜合考慮了情感描述子句和情感原因子句之間的語義關(guān)系以及原因子句自身的特點,利用自注意力機制的特性,同時結(jié)合情感描述子句和情感原因子句的相對位置特征,學習情感描述子句和情感原因子句之間的語義關(guān)系,然后利用卷積神經(jīng)網(wǎng)絡(luò)捕捉情感原因子句的局部上下文特征,從而學習情感原因子句的特征.在基準數(shù)據(jù)集上的實驗表明,綜合考慮了情感原因子句和情感描述子句的語義關(guān)系和位置關(guān)系,以及原因子句的上下文后,能獲得較好的原因子句抽取效果.
情感原因抽取可以轉(zhuǎn)化為子句級別的分類問題[13].在子句級別的情感原因抽取任務(wù)中,對給出的每個文檔D,根據(jù)標注的情感子句,從所有候選子句中找出引發(fā)該情感的原因子句,即判斷子句是否是該情感產(chǎn)生的原因.本文充分考慮了子句間的語義和位置關(guān)系,首先,利用雙向長短期記憶網(wǎng)絡(luò)(Bi-directional Long Short-Term Memory,Bi-LSTM)編碼子句信息,并通過位置嵌入網(wǎng)絡(luò),將子句的位置信息融入到該子句的語義信息中.接著,利用卷積神經(jīng)網(wǎng)絡(luò)和自注意力機制,獲得文檔中每個子句的上下文信息以及該子句與情感描述子句之間的語義信息,最后結(jié)合以上子句特征對子句分類.整體網(wǎng)絡(luò)模型如圖2所示.
圖2 基于子句的自注意力神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)Fig.2 Clause-based self-attention neural network model structure
模型主要由5個部分組成:子句編碼器網(wǎng)絡(luò)、位置特征編碼器網(wǎng)絡(luò)、自注意力計算網(wǎng)絡(luò),上下文特征提取網(wǎng)絡(luò)和原因子句分類網(wǎng)絡(luò).其中,句子編碼器由Bi-LSTM組成(3.2節(jié)),用于編碼子句從而獲得子句的特征表示.位置特征編碼器(3.3節(jié))由位置嵌入和線性變換網(wǎng)絡(luò)組成,用于位置特征的學習和提?。宰⒁饬τ嬎憔W(wǎng)絡(luò)(3.4節(jié))由多個線性網(wǎng)絡(luò)層組成,用于計算情感原因子句和情感描述子句之間的自注意力計算.上下文特征提取網(wǎng)絡(luò)(3.5節(jié))由多個卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Networks,CNN)組成,用于抽取子句的上下文局部特征.原因子句分類網(wǎng)絡(luò)(3.6節(jié)),將由各個網(wǎng)絡(luò)學到的特征融合后,最后使用softmax網(wǎng)絡(luò)層進行分類,獲得最后的句子標簽.
表1為論文相關(guān)符號說明.
表1 相關(guān)符號說明Tab.1 Related symbol description
文檔D={C1,C2,…,Cn}由n條子句組成.其中,情感描述子句用Ed表示,引發(fā)情感Ed的原因子句用Ec表示.D中的每個子句Ci由m個詞組成,即Ci={w1,w2,…,wm}.利用word2vec[22]技術(shù)將每個詞映射為向量表示.情感描述子句Ed被轉(zhuǎn)換由詞向量表示的特征矩陣Ed={w1,w2,…,wm}.
為了便于訓練模型,令文檔中候選原因子句Ec和情感描述子句Ed有相同的L個詞的長度.所有的子句都用一個lxd(l為句子長度,d為詞向量維度)矩陣來表示,同時融入Ec和Ed的相對距離特征Pf.為了更加凸顯情感原因子句特點,本文在訓練過程中利用卷積神經(jīng)網(wǎng)絡(luò)融入了候選原因子句的上下文信息F.
相對于一般的循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network ,RNN),LSTM[23]不僅可以解決RNN的梯度消失和梯度爆炸問題,還可以依賴門控機制捕獲更長依賴的語義信息.與LSTM相比,Bi-LSTM不僅能捕獲正向的序列信息,還能捕獲反向的序列信息.因此,為了更好的獲得情感原因子句和情感描述子句的上下文語義信息,本文使用Bi-LSTM對句子編碼,如圖3所示.
圖3 基于雙向神經(jīng)網(wǎng)絡(luò)的句子編碼器Fig.3 Sentence encoder based on Bi-LSTM
實驗所使用的Bi-LSTM包含了兩層ht的輸出,即一個為正向LSTM的輸出,另一個為反向LSTM的輸出,將文檔D={C1,C2,…,Cn}中的子句的詞向量矩陣放進Bi-LSTM中,可以獲得兩個正反兩個方向的輸出,拼接兩個輸出獲得最終的輸出,如公式(1)所示.
(1)
通過對數(shù)據(jù)集的統(tǒng)計,發(fā)現(xiàn)Ed和Ec的距離大多數(shù)情況下都是接近的,如表2所示,情感描述子句和情感原因子句的相對距離(Relative Position,RP)小于2的占比85%以上,相對距離大于2的子句對少于5%,表明了情感描述子句和情感原因子句存在位置上的關(guān)系.
表2 相對距離統(tǒng)計Tab.2 Relative distance statistics
因此,本文引入位置編碼網(wǎng)絡(luò)去學習Ed和Ec的位置特征,如圖4所示.
本文用位置嵌入來描述子句之間的相對位置信息P.首先初始化一個符合正態(tài)分布的隨機位置矩陣PE(Position Embedding),獲得位置向量Pe,然后通過線性變換和ReLU激活函數(shù)來抽取位置特征,獲得最后的位置特征Pf,在網(wǎng)絡(luò)訓練過程中調(diào)節(jié)位置矩陣PE,公式(2)-(5)給出了變換過程的定義.
(2)
(3)
(4)
(5)
圖4 位置編碼網(wǎng)絡(luò)Fig.4 Position encoder neural network
利用自注意力機制[19]可以計算詞與詞之間的相關(guān)程度的特性,本文使用自注意力計算子句Ed和Ec之間的關(guān)聯(lián)性,如圖5所示.
圖5 自注意力計算網(wǎng)絡(luò)Fig.5 Self attention neural network
計算自注意力需要q、k和v三個輸入,Ec的輸入用qc,kc,vc表示,Ed的輸入用qd,kd,vd表示,hc和hd分別是使用Bi-LSTM編碼得到的Ec和Ed的子句特征.Ec和Ed的自注意力計算如公式(6)-(13)所示.
(6)
(7)
(8)
(9)
(10)
(11)
(12)
(13)
其中wQ,wk,wV分別為查詢矩陣,鍵矩陣和值矩陣,輸入向量通過與這三個矩陣相乘獲得對應(yīng)查詢向量q、鍵向量k和值向量v,公式(7)-(9)給出了計算過程.然后,本文在自注意力計算過程中利用q、k計算出對應(yīng)的注意力分數(shù),如公式(14)-(17)所示.βd和βc分別是Ed和Ec得到的注意力分布,最后通過與值向量v相乘獲得,獲得Ed和Ec的自注意力信息zd和zc.
(14)
(15)
(16)
(17)
文獻[24]將卷積神經(jīng)網(wǎng)絡(luò)應(yīng)用到文本分類任務(wù),利用多個不同大小的卷積核提取句子中的關(guān)鍵信息,從而捕捉到句子的局部特征.為了更好的找到情感原因子句的局部特征,本文也利用卷積神經(jīng)網(wǎng)絡(luò)抽取每個子句的上下文特征F.如圖6所示,利用三個不同的卷積核的卷積神經(jīng)網(wǎng)絡(luò)從不同維度提取特征.通常一個子句的語義與前后子句是相關(guān)聯(lián)的,因此本文將每個子句的前一條子句和后一條子句作為子句的上下文.
1)卷積層.
(18)
圖6 基于卷積神經(jīng)網(wǎng)絡(luò)的上下文編碼網(wǎng)絡(luò)Fig.6 Context encoder based on CNN
2)池化層.
獲得卷積提取特征后,再通過最大值池化操作進一步對文本特征進行采樣提取,從而獲得每個子句的上下文特征,式子(19)表示了池化過程.將三個不同卷積核的卷積神經(jīng)網(wǎng)絡(luò)抽取的特征進行拼接,最后獲得的子句的上下文特征表示F,如公式(20)所示.
(19)
(20)
首先將自注意力信息zd和zc融入到Ed和Ec的子句特征中,然后結(jié)合上下文特征獲得最后的特征表示fcd,最后,我們使用句子分類器對子句進行分類,如公式(21)-(24)所示.
(21)
(22)
(23)
(24)
本文選取了基于新浪城市新聞的中文情感原因數(shù)據(jù)集[13],該數(shù)據(jù)集目前是情感原因抽取領(lǐng)域最大的中文數(shù)據(jù)集.數(shù)據(jù)集中包含了2105條新聞文檔,總共包含11799條子句.其中,原因子句有2167條,平均每個文檔至少包含一條原因子句,具體信息如表3所示.每個文檔包含多個子句,其中可能存在多個情感描述子句和情感原因子句,模型的目標是找出文檔中的原因子句.
表3 數(shù)據(jù)集信息統(tǒng)計Tab.3 Dataset information statistics
為了更好地評價模型的性能,本文采用查準率(P)、查全率(R)和F分數(shù)作為模型的性能指標.同時,參考了文獻[20]的實驗設(shè)置,將數(shù)據(jù)隨機分為10份,其中,9份作為訓練集,1份作為測試集,最后的實驗結(jié)果由十折交叉驗證實驗結(jié)果求均值得到.實驗使用了gensim模塊訓練詞向量,詞向量維度設(shè)置為200,位置嵌入矩陣維度為200,Bi-LSTM的隱藏層設(shè)為400,層數(shù)為1,卷積神經(jīng)網(wǎng)絡(luò)的卷積核大小分別為3、4、5.本文利用Adam優(yōu)化器,在G200eR2上訓練模型,每次學習64條數(shù)據(jù),學習率設(shè)置為0.0001.
本文選取了近年的情感原因抽取模型進行對比,對比模型的具體信息如下:
● RB 是一種基于語言規(guī)則的情感原因分析模型[4].
● CB 是一個基于知識的方法[17].
● RB+CB 是一個聯(lián)合RB和CB的方法.
● RB+CB+SVM 是一個結(jié)合了規(guī)則和知識的基于SVM的方法[14].
● Multi-kernel 是一個基于多核的情感原因抽取方法[13].
● CNN 是一個基于卷積神經(jīng)網(wǎng)絡(luò)的方法[24].
● Memnet 是一個將情感原因抽取任務(wù)看做一個問答問題中閱讀理解任務(wù)神經(jīng)網(wǎng)絡(luò)模型[20].
● CANN 是一個有上下文感知的聯(lián)合注意力神經(jīng)網(wǎng)絡(luò)模型[8].
● HCS 是一個基于CNN和RNN的層次神經(jīng)網(wǎng)絡(luò)模型[11].
● RTHN是一個基于RNN和transformer的層次網(wǎng)絡(luò)模型[9].
● MANN是一個帶有上下文感知的多注意力神經(jīng)網(wǎng)絡(luò)模型[15].
● COMV 是一個帶有上下文感知的多視圖神經(jīng)網(wǎng)絡(luò)模型[10].
如表4所示,基于深度學習技術(shù)的方法整體上要優(yōu)于傳統(tǒng)方法,體現(xiàn)出深度學習方法強大特征抽取能力.在傳統(tǒng)方法中,Multi-kernel模型由于其多核的設(shè)置,明顯優(yōu)于其他方法,能夠抽取更多的文本特征.RTHN模型考慮了文檔中全局子句之間的關(guān)系,與除了COMV以外的模型相比,R和F均有較好的提升.模型COMV由于考慮了文檔中子句的上下文信息,使得整體指標明顯優(yōu)于其他模型,提升了1%左右,說明了每個子句的特征與其上下文有著緊密的聯(lián)系.MANN模型使用互注意力機制,考慮了情感描述子句和情感原因子句的關(guān)系,而在查全率R上優(yōu)于其他模型,提升了2%左右.
表4 模型結(jié)果對比Tab.4 Comparison of model results
從表4中可以看出,本文提出的子句級自注意力神經(jīng)網(wǎng)絡(luò)模型(SANN),在查全率R上有明顯提升,達到了0.8383,而查準率P有小幅度下降,F(xiàn)分數(shù)與其他模型相比,略有提升.經(jīng)分析,本文所提出的模型一方面利用子注意力機制,結(jié)合位置特征學習了情感描述子句和情感原因子句之間的語義關(guān)系,能更好的抽取情感原因子句的特征;另一方面,還考慮了情感原因子句的上下文特征,從而更加凸顯情感原因子句的語義特性,使得模型可以更好的辨別情感原因子句和其他子句的差異,使模型有更好的查全率R.
在Transformer原始結(jié)構(gòu)中,自注意力計算可以進行多頭的并行計算,從而獲得詞在不同子空間的語義,從而獲得更好的注意力表示.因此,本文對子句級的自注意力的有效性也進行了驗證.
從表5可以看出,在有子句級別的自注意力時,模型的查全率R和F分數(shù)明顯高于沒有自注意力的情況.另一方面,模型各個性能指標并沒有隨著head的數(shù)量的增加而有明顯的變化,只有微弱的浮動,說明在本文的模型中,多頭注意力只學習了有限的情感原因子句和情感描述子句之間的語義關(guān)系.
表5 多頭注意力的結(jié)果Tab.5 Results of multi-head attention
為了驗證位置特征抽取網(wǎng)絡(luò)的有效性,本文進行了在沒有位置特征情況下的試驗,實驗結(jié)果如表6所示.從表6可以看出,在沒有位置特征的情況下,模型的各個性能指標均發(fā)生了明顯的下降,達到25%左右.實驗結(jié)果表明,位置特征對自注意力網(wǎng)絡(luò)學習情感原因子句和情感描述子句之間的語義特征十分重要;本文提出的位置特征抽取網(wǎng)絡(luò)能夠有效學習到子句的位置特征.
表6 位置特征比結(jié)果Tab.6 Comparison of location features
為了找到模型的最優(yōu)超參數(shù)設(shè)置,本文進一步分析了不同超參數(shù)對模型收斂速度和各個性能指標的影響.
如圖7展示的是模型收斂的速度與批數(shù)據(jù)大小的關(guān)系,從圖中可以看出,模型在訓練70輪左右時,模型基本收斂,批處理數(shù)據(jù)越小,模型收斂的速度越快.在批處理大小為16時,模型收斂得最快,同時,隨著批處理數(shù)據(jù)越大,模型收斂的速度越快.但是,在尋找最優(yōu)值時,批處理數(shù)據(jù)越小,越容易在最優(yōu)值附近波動,使得模型不容易找到最優(yōu)收斂值,相反,批處理數(shù)據(jù)偏大,模型收斂慢,但是容易找到最優(yōu)值.
圖7 模型收斂與批大小關(guān)系Fig.7 Relationship between model convergence and batch size
圖8展示了詞向量的維度與模型各性能指標的實驗結(jié)果.從圖中可以看出,在詞向量維度為200的情況下,模型的整體性能最好,最高的查全率R為0.8383.雖然不同維度的詞向量對模型的性能有一定的影響,但各性能指標差異在1%以內(nèi).
圖8 詞向量維度對模型性能的影響Fig.8 Influence of word vector dimension on model performance
為了更好地抽取情感原因子句和情感描述子句之間的語義關(guān)系,本文提出了一個基于子句的自注意力機制的情感原因抽取方法.首先利用雙向長短期記憶網(wǎng)絡(luò)編碼情感原因子句和情感描述子句信息,然后利用自注意力機制,融入位置特征的去抽取情感原因子句和情感描述子句之間的語義關(guān)系,最后結(jié)合卷積神經(jīng)網(wǎng)絡(luò)提取的子句上下文局部特征,去識別情感原因子句.實驗結(jié)果表明,本文提出的方法能夠有效學習情感原因子句和情感描述子句之間的關(guān)聯(lián)特征,從而有效識別原因子句,使得模型的查全率R明顯優(yōu)于其他神經(jīng)網(wǎng)絡(luò)模型.
在未來工作中,將嘗試引入預訓練語言模型,在抽取情感原因子句的同時,進行情感的抽取,并進一步探究情感原因子句的其它特征.