彭 韜,楊 亮,桑鐘屹,唐 雨,林鴻飛
(大連理工大學(xué) 計算機(jī)科學(xué)與技術(shù)學(xué)院,遼寧 大連 116024)
隨著移動互聯(lián)網(wǎng)的興起,社交媒體正在逐漸成為人們表達(dá)觀點和情感的主要平臺。與傳統(tǒng)的交流意見與情感方式不同(如書信),社交媒體平臺上的交流往往是充滿俚語和表情符的短文本對話形式,例如,微博評論、電商客服咨詢等。短文本對話是多個用戶交替發(fā)言產(chǎn)生的,對話的全局語義由多用戶在對話上下文中共同構(gòu)建,且單次發(fā)言的語義具有高度情景化的特點,這使得對社交媒體中對話結(jié)構(gòu)的文本分析成為自然語言處理領(lǐng)域的難點之一[1-2]。
文本情感分析旨在識別或提取文本中的情緒信息,如對商品評論[3]、電影影評[4]等短文本進(jìn)行情緒識別,但是這些應(yīng)用領(lǐng)域往往只是針對單個用戶的某一文本進(jìn)行分析,對于多個用戶在對話過程中的情緒識別,目前尚未進(jìn)行充分研究。近幾年,針對社交媒體的情感分析任務(wù)逐漸引起研究者的注意。對話情感分析由于涉及到多個用戶,用戶之間的交流往往會導(dǎo)致更復(fù)雜的上下文語境,如用戶之間觀點對立等,因此對對話文本中用戶情緒的識別是一項具有挑戰(zhàn)性的任務(wù)。如圖1所示,用戶1的第二句話“我快哭了”在大多數(shù)的情況下會被視為負(fù)向情感,但是在本對話情境中這句話實際上是表達(dá)了用戶1的正向情感。因此,對話情感分析的語境是復(fù)雜的,且與用戶情感狀態(tài)相互關(guān)聯(lián),如何更好地捕捉對話過程中不同用戶發(fā)言的結(jié)構(gòu)關(guān)系以及用戶單次發(fā)言的文本結(jié)構(gòu)是本文研究重點。
圖1 對話情感分析示例
目前對話情感分析的主流模型為循環(huán)神經(jīng)網(wǎng)絡(luò)[5]和預(yù)訓(xùn)練語言模型[6]。這些模型往往僅直接對整個句子甚至對話流程進(jìn)行順序編碼,忽視了句子本身的語法結(jié)構(gòu),以及復(fù)雜語境下語法成分的復(fù)雜上下文關(guān)系。而對話文本中用戶的發(fā)言多為偏口語化的,可能存在詞法和結(jié)構(gòu)等方面的歧義,尤其是循環(huán)神經(jīng)網(wǎng)絡(luò)存在長距離依賴問題,可能在建模具有較遠(yuǎn)距離依賴關(guān)系的語法結(jié)構(gòu)時表現(xiàn)不佳[7]。因此,通過引入文本顯式的語法結(jié)構(gòu),我們可以運用依存關(guān)系來建立具有較遠(yuǎn)距離的語法成分之間的聯(lián)系,再通過圖卷積網(wǎng)絡(luò)提取它們之間的語法結(jié)構(gòu)信息,彌補序列建模時忽視文本的語法結(jié)構(gòu)的不足。
針對對話情感分析,目前中文數(shù)據(jù)集的缺乏和模型句法結(jié)構(gòu)知識的問題,本文主要貢獻(xiàn)如下:
(1) 構(gòu)建了一個中文對話情感分析數(shù)據(jù)集;
(2) 提出了兩個框架,將句法信息加入常見的情感分析模型中,將文本的依存關(guān)系表示為異構(gòu)圖,再通過圖卷積網(wǎng)絡(luò)提取句法結(jié)構(gòu)信息;
(3) 在中文對話情感分析數(shù)據(jù)集上,相關(guān)實驗驗證了我們的模型能提取出有用的句法結(jié)構(gòu)信息,并對對話情感任務(wù)的精度有提高。
本文的組織結(jié)構(gòu)為: 第1節(jié)介紹對話情感分析的相關(guān)研究和圖神經(jīng)網(wǎng)絡(luò)在自然語言處理任務(wù)上的廣泛應(yīng)用;第2節(jié)介紹圖卷積網(wǎng)絡(luò)模型和將依存關(guān)系轉(zhuǎn)化為異構(gòu)二部圖的方法;第3節(jié)詳細(xì)描述了基于依存句法結(jié)構(gòu)增強的對話情感分析的兩個模型;第4節(jié)闡述實驗數(shù)據(jù)的來源、基線模型的選擇和實驗結(jié)果的分析;第5節(jié)做出總結(jié),并對下一步工作進(jìn)行展望。
針對對話中的情緒檢測,主流方法主要采用循環(huán)神經(jīng)網(wǎng)絡(luò)和預(yù)訓(xùn)練模型。在2017年,深度學(xué)習(xí)方法逐漸在自然語言處理領(lǐng)域得到廣泛應(yīng)用,Gupta等人首次對對話情感分析進(jìn)行了清晰的定義,并且運用GloVe和SSWE分別對用戶發(fā)言的語義和情感進(jìn)行編碼,再通過LSTM進(jìn)行句子的上下文建模[8]。Chen等人運用層次化的LSTM來解決對話中用戶的交互問題,低層LSTM建模句子的文本編碼,高層的上下文LSTM將用戶每一輪發(fā)言作為輸入,建模用戶交互中語義和情感的動態(tài)變化[9]。Majumder等人為了更好地追蹤對話過程中情緒的變化,用多個GRU來分別建模對話的整體狀態(tài)、說話人和聽者的情緒狀態(tài),并運用注意力機(jī)制來更好地捕捉遠(yuǎn)距離的語義和情緒的關(guān)聯(lián)關(guān)系[10]。隨著預(yù)訓(xùn)練語言模型的發(fā)展,在SemEval 2019的任務(wù)3評測中,通過微調(diào)BERT、ELMO等預(yù)訓(xùn)練模型,再結(jié)合一些常用的機(jī)器學(xué)習(xí)算法,如SVM、MLP等,使得預(yù)訓(xùn)練模型在對話情感分析中取得了十分出色的實驗結(jié)果[6,11]。
本節(jié)首先簡單介紹圖卷積網(wǎng)絡(luò)的計算模型,然后分析傳統(tǒng)的圖卷積網(wǎng)絡(luò)在依存關(guān)系圖上面臨的困難,最后介紹本文提出的基于依存關(guān)系的異構(gòu)二部圖及其對應(yīng)的圖卷積方式。
本文主要借鑒Kipf和Welling提出的GCN模型[12],該方法利用濾波器抽取出圖中節(jié)點及其鄰域的高維特征,進(jìn)而發(fā)現(xiàn)節(jié)點之間的高階相似性,在許多領(lǐng)域都有較好的表現(xiàn)。
如圖2所示,每張圖可以表示為G=(V,E),其中,V包含N個節(jié)點vi∈V,而每條邊eij=(vi,vj)表示圖中由節(jié)點vi指向節(jié)點vj的單向邊,E是圖中所有邊eij的集合。根據(jù)E可以構(gòu)造鄰接矩陣A∈RN×N,每個節(jié)點的特征向量xi∈RD共同構(gòu)成特征矩陣X∈RN×D,則圖卷積操作可定義為:
圖2 圖結(jié)構(gòu)示例
傳統(tǒng)的圖分類任務(wù)往往是同構(gòu)圖,即圖中所有節(jié)點和邊都是一種類型,但在實際應(yīng)用中,圖中往往包含不同類型的節(jié)點和邊,如果在構(gòu)造圖神經(jīng)網(wǎng)絡(luò)時所有節(jié)點和邊共享相同的特征映射矩陣和模型參數(shù),則會導(dǎo)致圖中不同類型的信息混雜在相同的特征空間中,因而模型的表現(xiàn)不佳。異構(gòu)圖中則可以存在多種不同類型的節(jié)點和邊,允許不同類型的節(jié)點映射到不同的特征空間。
為了在對話式情感分析任務(wù)中有效引入句子的句法信息,我們將句子的詞與詞之間的依存關(guān)系引入模型。在依存語法理論中,“依存”是指詞與詞之間的支配與被支配的關(guān)系,這種關(guān)系是有方向的,處于支配地位的成分稱為支配者,處于被支配地位的成分稱為從屬者[17]。
本文使用了哈爾濱工業(yè)大學(xué)社會計算與信息檢索研究中心研制的語言技術(shù)平臺(LTP)[18]對文本數(shù)據(jù)進(jìn)行依存關(guān)系分析。該框架一共包含14種依存句法關(guān)系,如表1所示。
表1 依存句法關(guān)系
圖3是使用LTP對短文本進(jìn)行依存分析的實例,可以看出即使句子僅含有七個詞,其中也包含了六種不同的依存關(guān)系。如果將依存關(guān)系圖視為同構(gòu)圖,即所有邊都被視為是相同的,這無疑丟失了依存關(guān)系圖中大量的重要信息。如果將依存關(guān)系圖中不同的類型邊進(jìn)行區(qū)分(假設(shè)依存句法具有r種關(guān)系類型),則在卷積中要考慮每一類型的邊對應(yīng)的映射矩陣RD×h(D為嵌入層維度,h為隱藏層維度),則在圖卷積層中需要訓(xùn)練O(r×D×h)的參數(shù)規(guī)模,這會導(dǎo)致在小規(guī)模數(shù)據(jù)集上訓(xùn)練過程難以迅速收斂,且反向傳播時模型參數(shù)梯度的計算量過大。
圖3 依存關(guān)系圖示例
針對以上問題,本文提出一種新穎的基于依存關(guān)系的異構(gòu)圖。我們將文本中的詞語視作一類節(jié)點,將所有依存句法中的關(guān)系類型視作另一類節(jié)點,詞語與詞語之間依存關(guān)系邊不再直接相連,而是由處于支配地位的詞語連接到對應(yīng)依存關(guān)系的節(jié)點,再從對應(yīng)依存關(guān)系的節(jié)點連接到處于從屬地位的詞語。將圖3中的依存關(guān)系重構(gòu)為我們提出的依存關(guān)系圖,如圖4所示。由于Root節(jié)點既不屬于文本中的詞語,也不屬于關(guān)系類型,故其不會出現(xiàn)在我們提出的基于依存關(guān)系的異構(gòu)圖中。
圖4 基于依存關(guān)系的異構(gòu)圖
通過圖4所示的方式,可以將依存關(guān)系圖中邊的異構(gòu)轉(zhuǎn)換為節(jié)點的異構(gòu),上層節(jié)點全部為詞節(jié)點,下層節(jié)點全部為關(guān)系節(jié)點,兩組節(jié)點形成了一個有向二部圖。二部圖中的邊分為兩種類型,一類為詞節(jié)點指向關(guān)系節(jié)點Ewr,另一類為關(guān)系節(jié)點指向詞節(jié)點Erw,對于這兩類邊,我們在做圖卷積時只需分別對應(yīng)一個映射矩陣RD×h,參數(shù)規(guī)模為O(2×D×h),相比于圖3的異構(gòu)圖,參數(shù)量減少了一個量級,使得模型訓(xùn)練更容易收斂。
針對2.2節(jié)提出的基于依存關(guān)系的異構(gòu)二部圖,我們在進(jìn)行圖卷積時需要做一些修改。我們將修改后的圖卷積命名為基于依存關(guān)系的異構(gòu)圖卷積層(簡稱HGCL)。
由于目前對話情感分析任務(wù)尚未充分考慮文本的依存句法結(jié)構(gòu),我們提出了基于依存關(guān)系的異構(gòu)圖卷積層(HGCL)來輔助對話情感分析的兩個模型,一個是層次雙向長短時記憶網(wǎng)絡(luò)(H-BiLSTM)與HGCL結(jié)合,另一個是預(yù)訓(xùn)練模型BERT與HGCL結(jié)合。下面我們對所提出的兩種模型進(jìn)行分別介紹。
模型的輸入如圖1的三次對話形式{s1,s2,s3},其中,si={w1,w2,…,wn},i=1,2,3,其中,wi代表句子中的第i個詞,n代表句子的詞語數(shù)。
模型的整體框架如圖5所示,模型主要分為以下幾個部分。
圖5 H-BiLSTM+HGCL模型
詞級別拼接: 將句子s1,s2,s3每個詞的語義表示與句法結(jié)構(gòu)特征表示進(jìn)行拼接,如式(7)所示。
(7)
雙向LSTM(詞級別): 將對話中每個句子經(jīng)過詞級別拼接的語義與句法結(jié)構(gòu)融合特征向量送入兩個相反的并行層,分別捕捉句子正向與反向的上下文信息,然后將序列最后的隱層狀態(tài)進(jìn)行拼接,作為句子的特征向量{h1,h2,h3}。
雙向LSTM(句級別): 將句子s1,s2,s3的特征向量{h1,h2,h3}送入另一個雙向LSTM模型,捕捉對話過程中的上下文信息,得到整個對話的特征表示后,送入一個前饋網(wǎng)絡(luò)和Softmax激活函數(shù),得到各個標(biāo)簽的概率分布。
隨著預(yù)訓(xùn)練模型在自然語言處理中的廣泛使用,我們還提出了將BERT與HGCL結(jié)合的方案,由BERT建模對話的語義表示,HGCL則建模對話的句法結(jié)構(gòu)表示,模型如圖6所示。
圖6 BERT+HGCL模型
特征表示層: BERT模型將句子s1,s2,s3表示為[CLS]s1[SEP]s2[SEP]s3[SEP]的格式輸入BERT中,選取最后一層Transformer的[CLS]處的隱藏層表示作為全局對話的語義表示ha。異構(gòu)圖模塊底層與3.1節(jié)描述一致,在頂層增加了圖池化層,將句子的所有節(jié)點的特征表示作全局平均池化操作,如式(8)所示。
(8)
對話級別拼接: 將特征表示層得到的全局語義向量ha和全局句法結(jié)構(gòu)特征向量hb拼接,然后輸入一個前饋神經(jīng)網(wǎng)絡(luò)和Softmax激活函數(shù),即可得到各個標(biāo)簽的概率分布。
數(shù)據(jù)集: 我們從知乎、豆瓣、貼吧等場景的評論區(qū)收集對話數(shù)據(jù),經(jīng)過清洗篩選后,保留了9 026段對話,構(gòu)建了一個中文對話情感分析數(shù)據(jù)集。我們按照85%、5%、10%的比例劃分了訓(xùn)練集、開發(fā)集和測試集。我們?nèi)斯槊慷螌υ挼淖詈笠淮伟l(fā)言標(biāo)注了情感標(biāo)簽,其中情感標(biāo)簽包括Happy、Sad、Angry和Others四類。表2給出了四類情感標(biāo)簽在數(shù)據(jù)集上的分布情況。
表2 中文對話情感分析數(shù)據(jù)分布
從表2可以看出,語料中Happy與Others情感占比較多,負(fù)向情感占比較少,表明我國互聯(lián)網(wǎng)交流平臺的主流情感是積極和中性的,符合我們對日常網(wǎng)絡(luò)生態(tài)的認(rèn)知[19]。
超參數(shù): 本文采用基于知乎問答語料的預(yù)訓(xùn)練詞向量[20],詞向量維度為300,LSTM和HGCL的隱藏層維度為100。未登錄詞的初始值從正態(tài)分布[-0.5,0.5]中隨機(jī)初始化,其他層的變量由Xavier initialization初始化,其余超參數(shù)由開發(fā)集調(diào)整。
評價指標(biāo): 我們采用三類情感標(biāo)簽(Happy、Sad、Angry)的平均Micro-F1值評價模型性能[21],如式(9)~式(11)所示。
(11)
我們實現(xiàn)了以下兩類基線模型。
基于機(jī)器學(xué)習(xí)的模型: 機(jī)器學(xué)習(xí)方法主要采取數(shù)據(jù)預(yù)處理、特征工程、模型選擇三個步驟。數(shù)據(jù)預(yù)處理包括分詞、去除停用詞等;特征工程主要提取句子的一元分詞(Unigram)和二元分詞(Bigram)的詞頻逆文檔頻率(TF-IDF);模型選擇部分我們選用了以下5個機(jī)器學(xué)習(xí)算法:
(1) 基于高斯分布先驗的樸素貝葉斯(GNB)
(2) 多層感知機(jī)分類器(MLP)
(3) 支持向量機(jī)(SVM)
(4) 隨機(jī)森林算法(RFC)
(5) 梯度提升樹(GBDT)
基于深度學(xué)習(xí)的模型
(1)Text-CNN: 將對話中句子以間隔符
(2)BiLSTM: 將對話中句子以間隔符
(3)Hierarchical BiLSTM(H-BiLSTM): 考慮到對話過程的層次性,通過底層雙向LSTM建模單次發(fā)言的上下文信息,通過頂層雙向LSTM建模對話的上下文信息,得到整個對話的特征表示。
(4)BERT: 本文選用BERT-Base中文模型,將對話整個文本輸入預(yù)訓(xùn)練模型BERT中,提取最后一層Transformer的第一個字符[CLS]的隱層向量,然后在訓(xùn)練集上微調(diào)BERT模型參數(shù)。
表3是基線模型與我們提出的模型在測試集上的性能,從表中可以看出: ①基于深度學(xué)習(xí)的模型全面超越了基于機(jī)器學(xué)習(xí)的方法,說明深度學(xué)習(xí)模型在對話情感分析任務(wù)上自動提取特征的能力確實遠(yuǎn)遠(yuǎn)強于機(jī)器學(xué)習(xí)模型,即使機(jī)器學(xué)習(xí)模型還有提取手動特征的空間,但是也很難超越深度學(xué)習(xí)模型。②在機(jī)器學(xué)習(xí)模型中,集成學(xué)習(xí)算法RFC和GBDT的整體表現(xiàn)優(yōu)于其他單模型算法,而樸素貝葉斯算法的性能表明其不適用于該任務(wù),而表現(xiàn)最佳的GBDT算法已經(jīng)接近于深度學(xué)習(xí)模型的性能。③在深度學(xué)習(xí)方法中,預(yù)訓(xùn)練模型BERT遠(yuǎn)遠(yuǎn)優(yōu)于其他未使用預(yù)訓(xùn)練的模型,但是將依存關(guān)系引入BERT后,BERT+HGCL相較于BERT性能提升了0.9%,在其他基線模型中,H-BiLSTM的性能最佳,將其與句法特征結(jié)合后,模型性能提升了0.7%,充分說明句法結(jié)構(gòu)特征確實是有利于對話情感分析任務(wù)精度的提升。
表3 與基線模型的比較
4.3.1 同構(gòu)圖與異構(gòu)圖的比較
為更好地比較異構(gòu)圖與同構(gòu)圖在對話情感分析任務(wù)上的表現(xiàn),本文添加了異構(gòu)圖與同構(gòu)圖的對比實驗。將圖3中依存關(guān)系圖僅保留詞節(jié)點,并將所有的依存關(guān)系表示為同一類型,構(gòu)成了依存關(guān)系的同構(gòu)圖,并將同構(gòu)圖以相同方式嵌入到H-BiLSTM和BERT模型中,形成H-BiLSTM+GCL和BERT+GCL模型。實驗過程中,模型參數(shù)和初始化參數(shù)保持一致。
從圖7的實驗結(jié)果可以看出: ①同構(gòu)圖模型H-BiLSTM+GCL比異構(gòu)圖模型H-BiLSTM+HGCL的性能低0.5%,但仍比H-BiLSTM模型高0.2%。②同構(gòu)圖模型BERT+GCL相較于異構(gòu)圖模型BERT+HGCL大幅下降1.2%,甚至低于BERT模型0.3%。
圖7 同構(gòu)圖與異構(gòu)圖對模型性能的影響
針對上述實驗結(jié)果,我們分析有以下幾點原因: ①同構(gòu)圖在表示依存句法關(guān)系時沒有區(qū)分不同類型的關(guān)系,導(dǎo)致同構(gòu)圖包含的信息量遠(yuǎn)遠(yuǎn)少于異構(gòu)圖,因此在兩個模型性能上同構(gòu)圖均不如異構(gòu)圖。②同構(gòu)圖中雖然編碼了文本的句法信息,但是由于不對邊的類型進(jìn)行區(qū)分,導(dǎo)致圖卷積模型中包含了更多“噪聲”,句法信息和“噪聲”都在模型中傳播,而H-BiLSTM中我們采取詞級別拼接,可以在詞級別雙向LSTM,在一定程度去除“噪聲”,而在BERT中我們采用句子級拼接,“噪聲”不會得到有效控制,因而會影響B(tài)ERT模型的性能。
4.3.2 異構(gòu)圖與自注意力機(jī)制的比較
由于注意力機(jī)制在解決長距離依賴問題時十分有效[22],本文為比較自注意力(簡稱SA)機(jī)制與異構(gòu)二部圖的性能表現(xiàn),將圖5和圖6模型中的圖模塊(Graph Module)替換為自注意力網(wǎng)絡(luò),分別構(gòu)造了H-BiLSTM+SA和BERT+SA模型。實驗過程中,自注意力網(wǎng)絡(luò)的隱藏層維度設(shè)為100維,注意力頭數(shù)為1。
分析圖8和表3的實驗結(jié)果可以看出: ①H-BiLSTM+SA模型比H-BiLSTM的F1值高出0.4%,這說明注意力機(jī)制確實可以在一定程度上緩解BiLSTM對于遠(yuǎn)距離依賴關(guān)系建模不佳的問題。②BERT+SA模型比BERT模型F1值高0.1%,提升非常有限,這可能是由于BERT本身是基于多層Transformer預(yù)訓(xùn)練的模型,而Transformer是基于自注意力機(jī)制,因此自注意力模塊對BERT意義不大。③H-BiLSTM+SA模型和BERT+SA模型比本文提出的模型的F1值分別低0.3%和0.8%,這證明了相比于注意力機(jī)制這種隱式的“軟連接”,依存關(guān)系這種顯式的“硬連接”是更加準(zhǔn)確有效的,而且注意力機(jī)制缺乏對依存關(guān)系類型的建模。相比之下,異構(gòu)二部圖能良好地將類型信息融入模型之中。
圖8 自注意力機(jī)制與異構(gòu)圖對模型性能的影響
本文提出了一種基于依存關(guān)系的圖卷積網(wǎng)絡(luò)輔助解決對話情感分析任務(wù)的方法。該方法將依存關(guān)系圖轉(zhuǎn)化為異構(gòu)二部圖,然后通過圖卷積網(wǎng)絡(luò)提取文本的句法結(jié)構(gòu)信息,與層次雙向LSTM或BERT的語義信息結(jié)合后,都能使模型在對話情感分析任務(wù)中的性能提升。
下一步工作中,我們不僅考慮詞語與依存關(guān)系的異構(gòu)關(guān)系,還可以將對話結(jié)構(gòu)表示為異構(gòu)圖中的一類節(jié)點,更好地建模對話的結(jié)構(gòu)信息,可以得到句子的依存關(guān)系結(jié)構(gòu)和對話交互結(jié)構(gòu)兩個層級的信息,從而進(jìn)一步提升對話情感分析任務(wù)的精度。