楊 青,朱 麗,張亞文,吳 濤
(1.華中師范大學(xué)計(jì)算機(jī)學(xué)院;2.國家語言資源監(jiān)測與研究網(wǎng)絡(luò)媒體中心,湖北武漢 430079)
網(wǎng)絡(luò)的快速發(fā)展推動(dòng)大數(shù)據(jù)時(shí)代的到來,人們表達(dá)情緒的方式逐漸多樣化,其中社交網(wǎng)絡(luò)平臺成為最重要的途徑。帶有情感傾向的文本信息暴增,有效挖掘海量文本的情感信息,并將其應(yīng)用于實(shí)際生活中,是極其重要的研究方向,文本情感識別也成為自然語言處理領(lǐng)域的一個(gè)研究熱點(diǎn)。
近年來,關(guān)于情感分析的研究工作得到許多關(guān)注,相關(guān)研究人員在文本情感分析方面不懈努力,取得了較大進(jìn)步。文本情感分析也稱為意見挖掘,是對帶有情感傾向性的文本進(jìn)行分析處理的過程。目前,大部分情感分析工作的研究目標(biāo)是簡單的文本,處理這些文本時(shí)沒有考慮到用戶信息,主要的情感分析方法有兩種,即基于語義的情感詞典方法和基于機(jī)器學(xué)習(xí)的情感分類方法。文獻(xiàn)[1]基于大量微博評論文本構(gòu)造大規(guī)模情感詞典,用于提高情感分類效率,但分類效果極其依賴情感詞典的規(guī)模和質(zhì)量;文獻(xiàn)[2]采用支持向量機(jī)(SVM)和樸素貝葉斯方法(Na?ve Bayesian)在微博評論數(shù)據(jù)集上進(jìn)行情感分析,指出基于機(jī)器學(xué)習(xí)的分類方法性能比基于語義的情感詞典方法表現(xiàn)更好。
隨著長短期記憶網(wǎng)絡(luò)LSTM、卷積神經(jīng)網(wǎng)絡(luò)CNN 以及注意力機(jī)制等模型在自然語言領(lǐng)域,特別是在文本情感分析中的廣泛應(yīng)用,注意力機(jī)制和神經(jīng)網(wǎng)絡(luò)模型的結(jié)合使用成為近年來的研究熱點(diǎn)。Bengio 等[3]提出將神經(jīng)網(wǎng)絡(luò)應(yīng)用于構(gòu)造語言模型;Quoc 等[4]在word2vec[5]的基礎(chǔ)上提出doc2vec,用于獲取句子的特征向量表示;文獻(xiàn)[6]對比word2vec 和doc2vec 兩種技術(shù)在情感分析句子表征中的表現(xiàn),通過實(shí)驗(yàn)證明了doc2vec 技術(shù)在句子語序語義表達(dá)上的優(yōu)勢;Kim[7]使用卷積神經(jīng)網(wǎng)絡(luò)CNN 模型進(jìn)行文本情感分類;文獻(xiàn)[8]提出基于卷積神經(jīng)網(wǎng)絡(luò)CNN 結(jié)合注意力機(jī)制的模型進(jìn)行文本情感分析;文獻(xiàn)[9]使用LSTM 模型提取文本特征,結(jié)合情感極性轉(zhuǎn)移模型,并將該模型用于中文文本情感分類;文獻(xiàn)[10]使用基于注意力機(jī)制和BiLSTM的神經(jīng)網(wǎng)絡(luò)模型對中文評論進(jìn)行情感分析,BiLSTM 提取文本特征,Attention 層用于突出文本分類中的重點(diǎn)信息;文獻(xiàn)[11]提出使用雙向長短時(shí)間記憶網(wǎng)絡(luò)模型BiLSTM,并基于詞向量對中文文本進(jìn)行情感分析;文獻(xiàn)[12]使用雙向門控循環(huán)單元BiGRU 進(jìn)行中文文本情感分析,一定程度上提升了分類效果;文獻(xiàn)[13]將BiGRU 模型和注意力機(jī)制相結(jié)合,對文本情感進(jìn)行極性分類,驗(yàn)證了BiGRU-Attention模型的有效性;文獻(xiàn)[14]使用BiGRU 神經(jīng)網(wǎng)絡(luò)和卷積最大池化的混合模型提取文本特征信息,從而進(jìn)行文本情感分類,取得了較好效果;文獻(xiàn)[15]使用BiGRU 提取對話句子表征,指出對話中的信息主要依賴于話語中的序列上下文信息;文獻(xiàn)[16]構(gòu)建CNN 和BiGRU 混合模型用于提取文本局部特征,從而對中文文本進(jìn)行情感分類。
然而,目前大多數(shù)用于文本情感分析的模型存在同樣問題,大部分模型忽略了對話中的意圖建模,以及話題及說話人個(gè)性等因素在對話情感中發(fā)揮的作用。從理論上分析,RNNs、LSTM、GRU 等網(wǎng)絡(luò)模型,可以傳播長期的上下文信息,然而在實(shí)際應(yīng)用中,這些網(wǎng)絡(luò)模型可能并非總是這樣,從而影響到RNN 模型在其它相關(guān)任務(wù)中的有效性。
不同于傳統(tǒng)的網(wǎng)絡(luò)模型LSTM 和CNN,圖卷積神經(jīng)網(wǎng)絡(luò)在處理廣義拓?fù)鋱D結(jié)構(gòu)上發(fā)揮著重要作用,能夠深入挖掘不規(guī)則數(shù)據(jù)的特征和規(guī)律。圖卷積神經(jīng)網(wǎng)絡(luò)作為一種新興的網(wǎng)絡(luò)模型,在許多領(lǐng)域都有所應(yīng)用,文獻(xiàn)[17]提出將圖卷積神經(jīng)網(wǎng)絡(luò)GCN 應(yīng)用于長文本分類問題;文獻(xiàn)[18]將關(guān)系圖卷積神經(jīng)網(wǎng)絡(luò)RGCN 用于實(shí)體分類;文獻(xiàn)[19]在英文對話數(shù)據(jù)集上將GCN 用于情感識別。社交網(wǎng)絡(luò)中人際關(guān)系的不規(guī)則性充分反映出圖結(jié)構(gòu)應(yīng)用的重要性和多樣性,而圖卷積神經(jīng)網(wǎng)絡(luò)的廣泛應(yīng)用則體現(xiàn)該模型在不同類型領(lǐng)域中的可利用性。
在對話情感分析中,如果充分考慮說話者之間的情緒影響,對話文本情感分析的準(zhǔn)確率會(huì)有所提升,而采用圖結(jié)構(gòu)的形式刻畫說話者對應(yīng)話語之間的關(guān)系是一種十分方便且直觀的方式。圖卷積操作可以通過聚合每個(gè)節(jié)點(diǎn)的鄰居節(jié)點(diǎn)特征而獲得該節(jié)點(diǎn)的聚合特征表示,進(jìn)而用于分析說話者的情感在對話文本情感分析中產(chǎn)生的影響。
在實(shí)際生活中,用戶之間的情感交互可能對文本的情感類別產(chǎn)生一定影響,對話文本的情感識別依賴于用戶之間的情感狀態(tài),即參與對話人員相互間的交流會(huì)影響到對方的情緒和狀態(tài)。對話情感識別是識別對話中說話人所說語句的情緒,本質(zhì)上也可以歸納為文本分類問題,在預(yù)先定義好的情緒類型中,為對話中的每一句話確定其情感類別。
本文使用BiGRU 提取文本特征向量,提出將圖卷積神經(jīng)網(wǎng)絡(luò)GCN 用于對話文本情感識別中,充分考慮參與對話人之間的情感交互,結(jié)合兩種上下文信息獲取更好的文本表征,最后用于文本情感分類。得到的實(shí)驗(yàn)結(jié)果證明,相較于目前分類方法,BiGRU 結(jié)合GCN 模型的方法具有更好的情感分類性能。
本文思想是:首先,BiGRU 用于提取對話文本的序列上下文特征;然后,將對話語句按順序構(gòu)造一個(gè)有向圖,GCN 通過聚合局部鄰居節(jié)點(diǎn)信息,提取說話者級別上下文編碼特征;最后,結(jié)合兩個(gè)不同的特征向量,對對話文本進(jìn)行情感分類。
建立說話人之間依賴關(guān)系模型的關(guān)鍵是說話人的信息,這使得模型能夠理解說話人如何影響其他說話人的情緒狀態(tài)。此外,說話人內(nèi)部或自我依賴有助于理解個(gè)體說話人的情感慣性,由于這種慣性,說話人會(huì)抵抗外部因素對自身情感產(chǎn)生的影響。并且,目標(biāo)話語和上下文話語的相對位置決定了以前說過的話如何影響未來話語。
本文中對話情感識別方法的框架大體上劃分為3 部分,如圖1 所示,分別是:①序列上下文編碼器,其作用是提取對話文本的序列上下文信息;②說話人級別上下文編碼器,用于提取對話中與說話者有關(guān)的上下文特征;③情感分類器,通過結(jié)合兩種上下文特征表示,采用基于相似度的注意力機(jī)制獲取最終的語句特征表示,輸入全連接層進(jìn)行情感分類。
對話情感識別的上下文信息主要有兩種,即序列上下文和說話人級別上下文。在對話過程中,情緒學(xué)研究表明,造成情緒波動(dòng)的因素主要是相互依賴性和自我依賴性,其中相互依賴性指說話人之間產(chǎn)生的情感波動(dòng)影響,說話者在對話過程中存在感知并吸收對方情緒的傾向,參與對話人的情緒會(huì)相互影響;而自我依賴性則指說話者在對話中自身情緒對自己的情感影響,這是一種情感惰性,會(huì)導(dǎo)致說話者保持一種情緒。總而言之,這兩種依賴性相互作用、相互干擾,共同影響參與對話人的情緒狀態(tài)。因此,結(jié)合兩種不同但相關(guān)的上下文信息,可以獲取更好的文本上下文表示,從而提高對話情感識別效率。
Fig.1 Model of dialogue emotional analysis network圖1 對話情感分析網(wǎng)絡(luò)模型
假設(shè)構(gòu)造一段對話,統(tǒng)計(jì)參與對話的人數(shù)為X,表示為e1,e2,…,eX,這X個(gè)人在對話中總共說了Y句話,表示為u1,u2,…,uY,ut∈RDY是每段語句的初始特征向量表示,ut對應(yīng)的說話人是es(ut),s是話語與其對應(yīng)的說話人索引之間的一個(gè)映射。對話文本情感分析的最終目的是預(yù)測對話中每個(gè)話語對應(yīng)的情感類別。
由于對話本質(zhì)上是連續(xù)的,故對話中話語的上下文信息對于話語的情感分析具備一定的參考價(jià)值。GRU 模型[20]是LSTM 模型的一個(gè)經(jīng)典變體,在效果一樣的條件下GRU 模型比標(biāo)準(zhǔn)的LSTM 模型更簡單。BiGRU 的基本思想則是利用兩個(gè)GRU 分別處理正向和反向序列,通過將輸出連接到同一個(gè)輸出層,以記憶序列上文信息和下文信息,充分提取文本的所有信息??傊珺iGRU 不僅可以記憶上下文信息,而且結(jié)構(gòu)相對簡單。因此,本文使用BiG?RU 提取對話文本信息特征,以獲取對話句子的序列上下文表征,過程如式(1)—式(3)所示。
其中,ut是與上下文無關(guān)的初始話語表示,和分別是正向GRU 和負(fù)向GRU 的輸出,gt是包含序列上下文信息的話語表示。
兩個(gè)單向且方向相反的GRU 構(gòu)成BiGRU 網(wǎng)絡(luò)模型,輸出由兩個(gè)不同GRU 的狀態(tài)共同決定。BiGRU 的具體結(jié)構(gòu)如圖2 所示。
Fig.2 Sequential context encoder圖2 序列上下文編碼器
為了有效獲取對話序列語句中的說話人級別上下文信息,本文構(gòu)造一個(gè)有向圖刻畫對話者之間的情感交互關(guān)系,并利用基于空間域的圖卷積神經(jīng)網(wǎng)絡(luò)模型得到包含說話人級別上下文信息的文本表征,說話人級別上下文編碼器具體結(jié)構(gòu)如圖3 所示。
Fig.3 Speaker level context encoder圖3 說話人級別上下文編碼器
有向圖:構(gòu)造一個(gè)有向圖G={V,E,R,W}用于表示對話,V 表示節(jié)點(diǎn)集合,E 表示邊集合,每一個(gè)話語表示為一個(gè)節(jié)點(diǎn)vt∈V,t=1,2,…,Y,初始化特征向量表示記為gt;節(jié)點(diǎn)vt和節(jié)點(diǎn)vs之間的邊記作rts∈E,r∈R 表示邊的關(guān)系類型,邊的關(guān)系類型取決于說話人類別和話語時(shí)間順序兩個(gè)方面,即vt和vs分別對應(yīng)的說話人es(vt)和es(vs),還有節(jié)點(diǎn)語句vt和vs的先后順序。
示例1 假設(shè)一段對話僅包含兩個(gè)說話人e1和e2,且總共有5 句話v1、v2、v3、v4、v5,則整個(gè)對話構(gòu)造出的有向圖如圖4 所示,且所有關(guān)系類型如表1 所示。
邊權(quán)重wts∈[0,1]且wts∈W,t,s=1,2,…,Y,使用基于文本相似性的注意力模型設(shè)置邊的權(quán)重,即對于每一個(gè)節(jié)點(diǎn),輸入邊的權(quán)重全部加起來為1,考慮到每個(gè)節(jié)點(diǎn)語句之前的m句話vt-1,vt-2,…,vt-m和之后的n句話vt+1,vt+2,…,vt+n,節(jié)點(diǎn)vt和節(jié)點(diǎn)vs之間邊的權(quán)重具體計(jì)算如式(4)所示。
Fig.4 Constructed directed graph for example 1圖4 示例1 構(gòu)造的有向圖
式(4)中,softmax 函數(shù)確保了節(jié)點(diǎn)vt與節(jié)點(diǎn)vt-m,…,vt,…,vt+n之間輸入邊的總權(quán)重之和為1。
Table 1 Relation types of sample graphs表1 示例圖的全部關(guān)系類型
圖卷積神經(jīng)網(wǎng)絡(luò)模型GCN 通過聚合每個(gè)節(jié)點(diǎn)的局部鄰居節(jié)點(diǎn)特征信息,使用兩步圖卷積操作將與說話人無關(guān)的節(jié)點(diǎn)特征向量gt轉(zhuǎn)換為與說話人信息有關(guān)的新的特征向量表示ht,計(jì)算方法如式(5)和式(6)所示。
其中,σ是一個(gè)激活函數(shù),可以設(shè)置為ReLU 函數(shù),為變換參數(shù),wts、wtt∈W,表示關(guān)系r∈R中節(jié)點(diǎn)vt的鄰接指數(shù)。式(5)、式(6)有效地聚合圖中各語句節(jié)點(diǎn)的局部鄰域說話人信息,并且自連接的邊也確保了自相關(guān)特征轉(zhuǎn)換。
情感分類器結(jié)構(gòu)如圖5 所示,先將包含序列上下文信息的特征向量gt和與說話人信息相關(guān)的特征向量ht連接起來,再通過基于相似度的注意力機(jī)制獲取新的對話文本特征表示,最后使用全連接層對話語進(jìn)行情感分類,得到文本對應(yīng)的情感類別標(biāo)簽xt。
如式(7)所示,將兩種上下文特征向量表示gt和ht連接起來。如式(8)、式(9)所示,將連接的文本向量表示采用基于相似度的注意力機(jī)制轉(zhuǎn)換為最終對話文本特征表示。
最后,如式(10)、式(11)所示,將新的語句特征表示輸入到全連接層,softmax 層對文本語句的情感進(jìn)行多分類,根據(jù)式(12),得到最大概率的情感標(biāo)簽xt。
Fig.5 Emotion classifier圖5 情感分類器
本文算法實(shí)驗(yàn)環(huán)境是基于Windows 10 操作系統(tǒng),硬件為英特爾i5 6200U CPU,采用深度學(xué)習(xí)框架PyTorch,版本號為1.0,在Python 3 運(yùn)算環(huán)境下進(jìn)行算法實(shí)驗(yàn)。
本文實(shí)驗(yàn)選取的實(shí)驗(yàn)數(shù)據(jù)集是一個(gè)通過爬取大量學(xué)習(xí)網(wǎng)站的對話練習(xí)內(nèi)容而收集到的英文語料庫dailydialog(http://yanran.li/dailydialog),原始數(shù)據(jù)包含大約11 318 個(gè)對話,選取其中部分語料集翻譯為中文,用于中文對話情感分析研究,節(jié)選的中文語料庫包含大約600 個(gè)對話,對話平均有10 輪,語句規(guī)模大約為6 000 句,語句標(biāo)注的情感類別有7 種,分別是中立、憤怒、厭惡、恐懼、幸福、悲傷及驚喜。
本文選取的dailydialog 語料庫主要由日常聊天場景中兩個(gè)人的多輪對話構(gòu)成,其中日常對話涉及生活中的多個(gè)主題,話題比較豐富,這些對話語句包含極其豐富的情感信息,且基本符合人類的對話方式,適合用于對話文本情感分析研究,dailydialog 語料庫具體示例如圖6 所示。
Fig.6 Examples of dailydialog dataset圖6 dailydialog 數(shù)據(jù)集示例
對文本數(shù)據(jù)進(jìn)行預(yù)處理,一般而言,符號對算法沒有很大意義,為了減少噪聲干擾,首先使用正則表達(dá)式過濾掉文本中的無用標(biāo)點(diǎn)符號,然后采用Python 中的結(jié)巴分詞庫對實(shí)驗(yàn)數(shù)據(jù)集中文文本進(jìn)行分詞處理,最后基于預(yù)訓(xùn)練的詞向量,使用Doc2vec 工具[21]將文本向量化,獲取文本語句的特征向量表示,得到的輸入句子向量將用于本文模型訓(xùn)練。
為了更好地進(jìn)行算法實(shí)驗(yàn),本文對輸入樣本的長度進(jìn)行分析,假設(shè)選取數(shù)據(jù)集樣本長度的最大值為maxL,那么當(dāng)樣本長度小于maxL時(shí),樣本需進(jìn)行填充零向量操作,使樣本長度達(dá)到最大值,而當(dāng)樣本長度大于maxL時(shí),則需舍棄樣本多余部分,截?cái)噙^長的樣本。
樣本長度最大值maxL的選取關(guān)系到實(shí)驗(yàn)結(jié)果的好壞。當(dāng)maxL設(shè)置較大時(shí),樣本數(shù)據(jù)零向量填充過多,而maxL設(shè)置較小時(shí),樣本數(shù)據(jù)舍棄的信息過多,因此,maxL大小的設(shè)置可能對模型性能產(chǎn)生一定影響。本文通過設(shè)置不同的maxL,觀察對比maxL的大小對模型性能造成的影響,F(xiàn)1 值隨樣本長度變化情況如圖7 所示,且實(shí)驗(yàn)結(jié)果差異如表2 所示。
Fig.7 Effect of maxL on F1圖7 maxL 值大小對F1 值的影響
觀察圖7 和表2,可以發(fā)現(xiàn)當(dāng)maxL設(shè)置小于100 時(shí),F(xiàn)1 值相對較低,這是由于樣本數(shù)據(jù)舍棄的信息過多,當(dāng)maxL取100 時(shí),F(xiàn)1 值達(dá)到最高點(diǎn),為79.54%,當(dāng)maxL大于100 時(shí),F(xiàn)1 值均有所降低,模型性能下降,且F1 值在maxL為175 時(shí)取得最低值,只有63.66%,因?yàn)閙axL設(shè)置過大時(shí),樣本數(shù)據(jù)填充的零向量過多,對數(shù)據(jù)特征造成干擾。
Table 2 Experimental results of different maxL表2 樣本長度對實(shí)驗(yàn)結(jié)果的影響
因此,本文模型選取maxL的值為100 最為合適。
本文實(shí)驗(yàn)使用L2 正則化度量訓(xùn)練過程中的損失,并采用基于隨機(jī)梯度下降的Adam 優(yōu)化器[22]對模型進(jìn)行優(yōu)化。為避免網(wǎng)絡(luò)模型訓(xùn)練過程中出現(xiàn)過擬合現(xiàn)象,采用Dropout 策略,將丟棄率的大小設(shè)置為0.5,并結(jié)合10 折交叉驗(yàn)證進(jìn)行實(shí)驗(yàn)。
在構(gòu)造上下文語句的有向圖時(shí),語句節(jié)點(diǎn)與其之前和之后的若干個(gè)語句節(jié)點(diǎn)之間存在構(gòu)造的邊關(guān)系,本文實(shí)驗(yàn)通過改變上下文窗口的大小,發(fā)現(xiàn)在dailydialog 數(shù)據(jù)集上,F(xiàn)1 值的大小隨著上下文窗口的大小而變化,如圖8 所示,窗口設(shè)置小于2 時(shí),模型性能表現(xiàn)較差,當(dāng)窗口設(shè)置值大于2 時(shí),性能表現(xiàn)穩(wěn)步上升,出于對實(shí)驗(yàn)數(shù)據(jù)集中對話輪數(shù)以及計(jì)算上的考慮,本文實(shí)驗(yàn)設(shè)置窗口大小為5 即可。
Fig.8 Effect of different window sizes on F1圖8 窗口大小對F1 的影響
本文將BiGRU+GCN 與CNN、BiLSTM、BiGRU 等模型進(jìn)行對比分析,在dailydialog 中文語料庫上的情感分析實(shí)驗(yàn)結(jié)果如表3 所示。
Table 3 Experimental results of different models表3 不同模型的實(shí)驗(yàn)結(jié)果
觀察各模型實(shí)驗(yàn)結(jié)果,可以看出在dailydialog 數(shù)據(jù)集上,與BiLSTM 模型相比F1 值提高了15.69%,與BiGRU模型相比F1 值提高了14.87%。相比于CNN、BiLSTM 等模型,BiGRU 結(jié)合GCN 的混合模型在對話文本情感識別方面的準(zhǔn)確率明顯有所提高,且F1 值高達(dá)70.61%,整體分類效果表現(xiàn)更佳。
根據(jù)表3 可知,與其它模型相比,BiGRU+GCN 模型不僅可以提取文本序列上下文特征,還能夠充分考慮文本對應(yīng)說話人的情感信息交互,獲取更好的對話文本情感特征,從而在分類效果上表現(xiàn)更佳。在沒有上下文語境的情況下,比如“是的”“好的”等一些簡短語句的情感類別被認(rèn)為是中性詞,但在實(shí)際語境中其情感類別可能不是中性的,而BiGRU+GCN 模型可以避免這種錯(cuò)誤分類情況,提高對話文本情感分類準(zhǔn)確率。
本文充分考慮說話人之間的情感交互,利用圖卷積神經(jīng)網(wǎng)絡(luò)GCN 提取與說話者相關(guān)的文本特征,再結(jié)合BiG?RU 模型提取文本序列特征,將兩者連接起來,以提高對話語句情感分析中的上下文理解能力,有效識別對話文本中的情感類別。實(shí)驗(yàn)結(jié)果證明了該模型的有效性,與其它方法相比,該模型在對話情感分析中表現(xiàn)出良好的分類效果。本文將圖卷積神經(jīng)網(wǎng)絡(luò)用于對話文本情感分類,因此只關(guān)注實(shí)驗(yàn)數(shù)據(jù)集中的文本信息,多模態(tài)情感識別則有待進(jìn)一步研究。