陳 晨,周夏冰,王中卿,張 民
(1. 蘇州大學 計算機科學與技術(shù)學院,江蘇 蘇州 215006)
實現(xiàn)情感智能一直是人工智能領(lǐng)域的一個重要目標,通過對話情感分析,使得模型能夠從人們的日常對話中習得一定程度的情感識別能力,進而構(gòu)建出具有移情能力的系統(tǒng)。
對話情感分析是情感分析的一個細分任務,相較于簡單的情感分析問題——給予一個句子對其進行情感分類,模型只需要在句子內(nèi)部進行信息抽??;對話情感分析的背景是對話,類比于一個序列標注任務[1],模型需要對對話中的每個句子進行情感分類,因此其最大特點在于需要考慮說話人之間的情感交互和對話之間的長依賴關(guān)系。圖1是一則對話情感分析的示例,我們將整個對話稱為一個Dialogue,對話中的每個句子稱為Utterance[2],意為言語句,參與者分別設為說話人A和說話人B。在本段對話中,說話人A因為擔心自己表現(xiàn)得不好而害怕,說話人B鼓勵了他,說話人A便重拾了信心。兩人在交流中,產(chǎn)生了說話人情感的轉(zhuǎn)變和情感的維持。
我們將說話人B的這種情感上的延續(xù)稱為情感慣性[3],將說話人A由驚到喜的情感轉(zhuǎn)變稱為情感轉(zhuǎn)移[4],其中情感慣性主要取決于說話者的內(nèi)部因素,而情感轉(zhuǎn)移受到說話人外部即說話人之間的影響更大。圍繞著情感慣性和情感轉(zhuǎn)移,學者們做出了一些相關(guān)研究,Hazarik等[5]提出了CMN(Conversational Memory Network),基于GRU(Gated Recurrent Unit)[6]模擬說話人的狀態(tài),使得每個說話人的情感慣性得以維持,Interactive Conversational Memory Network(ICON)[7]與Dialogue-RNN[8]在此之上對說話人之間的交互進行分析,取得了更加優(yōu)秀的效果,但大部分工作主要基于循環(huán)神經(jīng)網(wǎng)絡。眾所周知,循環(huán)神經(jīng)網(wǎng)絡由于其結(jié)構(gòu)特點,無法并行化運算,所以在性能上具有很大的局限性;再加上其相對封閉的設計思路,使得對于循環(huán)神經(jīng)網(wǎng)絡的改進只會局限于cell內(nèi)部,難以覆蓋到整個網(wǎng)絡,因此往往需要配合Attention[9]一同使用。
圖1 對話情感分析示例
本文從基于Transformer[10]的對話建模角度出發(fā),提出了多方注意力建模。既通過并行計算提高了模型的運行速率,也充分利用了注意力機制對全局上下文進行把控的優(yōu)點,可拓展性更高。本文提出了一種名為Dialogue Transformer的網(wǎng)絡結(jié)構(gòu),在底層運算上,運用多頭注意力機制,充分挖掘文本信息;在頂層設計上,通過多方注意力機制,對說話多方進行建模并以全局注意力層構(gòu)建聯(lián)系,同時考慮內(nèi)部情感慣性和外部情感轉(zhuǎn)移。此外,我們還對Transformer在對話情感分析中的位置編碼問題進行了探究。由于Self-attention不考慮語義位置,而對話情感分析的語義順序極為復雜,包括Dialogue全局的語句順序,說話人內(nèi)部的語句順序以及綜合考慮全局和內(nèi)部的話輪順序,因此如何傳遞位置信息極為重要?;诖?,我們綜合比較了基于三角函數(shù)的絕對位置編碼和取消絕對位置編碼的自適應模型[11]。最后,本文以前向網(wǎng)絡和殘差結(jié)構(gòu)[12]等方法將模型由一層拓展到多層,進一步提高模型的擬合能力。
在DailyDialog數(shù)據(jù)集上的實驗表明,我們提出的Dialogue Transformer模型在運算速率上比循環(huán)神經(jīng)網(wǎng)絡有2~3倍的提升,評價指標也有顯著提高,并且通過不同位置編碼方式的對比,自適應模型效果相較于絕對位置編碼表現(xiàn)更優(yōu)。此外,在多層模型的實驗結(jié)果上,我們的模型表現(xiàn)穩(wěn)定,且無退化現(xiàn)象,具有更大挖掘潛力。
本文的組織結(jié)構(gòu)如下: 第1節(jié)介紹基于對話情感分析的相關(guān)研究和Transformer在句子分類中的相關(guān)工作;第2節(jié)對對話情感分析的任務做了具體定義;第3節(jié)詳細描述本文提出的Dialogue Transformer模型;第4節(jié)介紹實驗的相關(guān)內(nèi)容并對實驗結(jié)果進行分析;第5節(jié)對全文做了總結(jié),并對下一步工作進行展望。
對話情感分析本質(zhì)上依然歸結(jié)于文本情感分類問題,所以一般性的用于單文本情感分類的模型也可以處理這類問題。傳統(tǒng)方法可分為基于知識的方法和基于統(tǒng)計的方法[13]?;谥R的方法為情感詞典[14],而基于統(tǒng)計的方法則更加豐富,包括支持向量機[15]、貝葉斯模型[16]、神經(jīng)網(wǎng)絡等,其中以神經(jīng)網(wǎng)絡中的循環(huán)神經(jīng)網(wǎng)絡效果最佳,如GRU等,通過對整個句子順序建??梢垣@取句子上下文之間的關(guān)系。然而此類方法具有局限性,上述方法均只考慮句子內(nèi)部單詞之間的關(guān)系,沒有考慮到對話場景中句子與句子之間的關(guān)系,因此后續(xù)的學者圍繞著對話情感分析中對話上下文之間的關(guān)聯(lián),提出了一系列的基于循環(huán)神經(jīng)網(wǎng)絡的模型,極大地提高了分類的準確率。Poria等率先提出BC-LSTM[17],以對話為基本單位,通過LSTM去獲取上下文相關(guān)性之后再進行預測;進一步地,對話中的人物信息也被考慮進來,Hazarika等[5]的CMN模型為不同說話者構(gòu)建不同的GRU去獲得自身的信息,實現(xiàn)了對說話者內(nèi)部情感慣性的建模;Hazarika等[7]的ICON模型將問題側(cè)重于說話人之間的情感轉(zhuǎn)移,在獲得說話人內(nèi)部的語義特征之后,對整個對話環(huán)境進行建模,構(gòu)建全局記憶網(wǎng)絡用于最終預測;Majumder[8]則綜合考慮了多種情況,提出了DialogueRNN,更好地模擬了情感交互的過程,成為目前該領(lǐng)域的前沿模型。
Transformer是由Vaswani等提出的基于Self-Attention的語言模型,該模型拋棄了循環(huán)神經(jīng)網(wǎng)絡線性的運算方式,僅以Attention去獲取上下文之間的相關(guān)性,在效果不弱于循環(huán)神經(jīng)網(wǎng)絡的同時,計算速度也有大幅度的提升。近年來基于Transformer開展的很多工作都取得了巨大成功,如機器翻譯、句子生成以及大型預訓練語言模型BERT等。同樣的,在情感分析領(lǐng)域[18],Transformer也憑借其長依賴的特性,比循環(huán)神經(jīng)網(wǎng)絡保留更多有效信息。本文將這種依賴關(guān)系由上下文拓展到人物對話中,將Transformer用在對話領(lǐng)域,去探究其基于對話的依賴關(guān)系。
該問題場景始于對話,我們將一段對話定義為U,對話中包含了n個句子{u0,u1,u2,…,ut,…,un},和兩個參與方Pa和Pb(本數(shù)據(jù)集僅考慮兩人參與的對話方式)。U中每個句子由Ps(t)發(fā)出,其中s(t)∈(a,b)。具體任務是對ut進行情感分類,得到對話情感標注序列{y0,y1,y2,…,yt,…,yn}。
考慮到對話情感分析的主要對象為句子,為了便于分析和建模,本文將句子作為信息處理的基本單位,ut∈RDm是每個句子的向量表示,通過以下的特征抽取方式獲得。
對于詞向量的表達,本文通過對訓練語料以skipgram模式訓練Word2Vec[19]詞向量,訓練參數(shù)見表1。對于每個句子,我們先將其由字映射到詞向量,接著進行平均池化,得到一個300維的句向量,用此句向量作為ut的表達方式。其中詞向量不隨著對話情感分析模型一起訓練,以便對不同模型之間的性能差別有一個較為客觀穩(wěn)定的比較。
表1 詞向量訓練參數(shù)
本節(jié)對Dialogue Transformer模型的結(jié)構(gòu)(圖2)進行詳細介紹。該節(jié)共分為四部分,分別為多頭注意力機制、多方注意力機制、位置編碼以及多層結(jié)構(gòu)設計。
圖2 Dialogue Transformer模型結(jié)構(gòu)圖
多頭自注意力機制是Transformer的核心機制,只需要注意力結(jié)構(gòu)的矩陣運算而不需要循環(huán)結(jié)構(gòu)就可以實現(xiàn)對序列問題的建模,且運算速度快。其中多頭自注意力又由多個自注意力模型組成。但顯然,自注意力機制[20]對于本任務中特有的對話交互具有限制,因此,我們?nèi)∠宰⒁饬?,而選擇一般的注意力模型,去構(gòu)建說話者之間的交互行為。同樣的,用多頭注意力結(jié)構(gòu)取代多頭自注意力結(jié)構(gòu)。
注意力結(jié)構(gòu)的描述如式(1)~式(4)所示。首先將接收的序列轉(zhuǎn)為Q,K,V三組向量,其中Q用于查詢,K用于匹配,V用于取值。
(5)
相比于一次在整個維度上進行注意力計算,多頭注意力機制選擇將dk維度的Q,K,V切分為h個部分,每個部分維度均為dk/h,分別做self-attention。所得結(jié)果再進行拼接,這樣就可以從多個角度對數(shù)據(jù)進行理解,其效果也要好于一次完整的數(shù)據(jù)計算。
在多頭注意力之后,Transformer選擇了通過一層前向網(wǎng)絡進行信息篩選和Layer Normalization正則化來降低過擬合程度,從而獲得了較為不錯的效果。本文也繼承該結(jié)構(gòu),并以此節(jié)所述結(jié)構(gòu)作為Dialogue Transformer的基本計算單元,寫作MA(Q,K,V),注意力計算過程如圖3所示。
圖3 注意力模型圖
由于對話情感分析涉及到多個參與者,超出了Transformer的適宜范疇,因此我們提出了多方注意力機制以適應此問題。圖2是模型整體結(jié)構(gòu)圖,從左到右依次包括4個部分,第一部分Dialogue表示模型輸入,包含對話雙方(Person A、Person B)的句子序列以及二者組合成的對話整體Global序列;第二部分Inner Self Attention負責建立說話人自身的情感慣性;第三部分Outer Attention建模說話人之間的交互和情感轉(zhuǎn)移;第四部分獲得模型整體輸出,詳見下文。
Inner Attention旨在提取說話人內(nèi)部的信息,對說話人A、說話人B以及對話整體Global分別進行處理,從而獲得各自內(nèi)部的信息表達,即圖2中的Inner A、Inner B以及Inner G。
對于說話人p,p∈(A,B,global),有句子序列Up={…ut…},由于該序列不定長度,如單獨計算,則無法利用Transformer的矩陣并行運算進行加速。為了將其變?yōu)槎ㄩL從而達到并行加速的目的,我們固定輸入長度,并以對話整體Global序列作為輸入,在此基礎上采用掩碼機制,為說話人p建立掩碼序列Mp,屬于該說話人的句子掩碼為0,不屬于該說話人的掩碼為1,如式(6)所示。
(6)
(7)
如此就能實現(xiàn)對于非說話人所說句子的忽略。下文將加入掩碼計算后的MA寫作MAM。
特別的,對于Global序列的Inner Attention, Global序列只需要對于最大句長中所padding的句子進行掩碼操作即可。此外,無論是說話人A、B還是Global,都需要對結(jié)果進行進一步的掩碼操作,將非自身信息重置為0,以免影響模型后續(xù)計算,因此Inner Attention的整個計算如式(8)所示。
Innerp=MAM(Qp,Kp,Vp)*Mp,p∈(a,b,g)
(8)
Outer attention承接Inner attention,其目的為模擬對話者之間的交互,為此我們對attention的輸入進行約定,以達到信息交互的目的。對于Pa的outer attention,計算過程見圖3,Query為Innera代表其自身的信息,Key為對應的交互對象Innerb,Value為全局信息Innerg,Key掩碼為Mb,意為只對Pb做交互。數(shù)據(jù)流向?qū)獔D2第三部分。
Outera=MAM(Innera,Innerb,Innerg)*Mp
(9)
有了Inner attention和Outer attention兩部分的注意力結(jié)果之后,就可以對此進行綜合處理去獲得用于分類的特征Ur,對應于圖2第四部分。
最后將Ur通過一個全連接層進行情感分類。
(13)
與循環(huán)神經(jīng)網(wǎng)絡不同的是,self-attention本身是不含位置信息的,原Transformer通過三角函數(shù)位置編碼的方式將絕對位置信息與序列一同輸入。
但是這種方法并不適合對話任務,因為在此任務中,語義順序可以分為兩部分,一是全局的對話順序,二是參與者個人的說話順序,如果將絕對信息直接編入全局對話中,將導致個人順序信息的丟失。同理,將絕對位置信息編入?yún)⑴c者個人的說話中,語義的不連貫和跳躍同樣導致了一種不適應。因此本文從這個角度對三角函數(shù)位置編碼和取消位置編碼的自適應模型做了對比,探究位置信息對于模型是否有很大的影響。
此外,我們設計將模型從一層變成可隨意拓展的多層,主要基于前向網(wǎng)絡和殘差結(jié)構(gòu)實現(xiàn)。如圖4所示,首先將Ur通過一層前向網(wǎng)絡進行維度壓縮,壓縮至與輸入向量相同維度后與輸入向量相加,作為下一層網(wǎng)絡的輸入。經(jīng)驗表明,通過該結(jié)構(gòu)可以較為有效地解決模型退化問題。
圖4 多層結(jié)構(gòu)設計
實驗數(shù)據(jù)集選用DailyDialog[21]。DailyDialog是一個高質(zhì)量的多輪對話數(shù)據(jù)集,對話內(nèi)容采集自日常交流并且覆蓋多個話題,每個對話的參與者均為兩人,且為ABAB型,即按照你一句我一句的順序依次發(fā)言。其標簽數(shù)據(jù)分布如表2所示。該數(shù)據(jù)集提供了意圖標簽和情感標簽兩種,此處只選取情感標簽。
表2 DailyDialog數(shù)據(jù)集情感標簽分布
續(xù)表
同時為了驗證算法可行性,本文對該數(shù)據(jù)集進行了重構(gòu),維持中性和喜悅情緒不變,將其他情緒全部歸結(jié)為負面情緒,以此修正任務,將標簽由情感轉(zhuǎn)為傾向,既緩解了原數(shù)據(jù)集樣本分布不均衡的問題,又可以通過兩個不同的任務來驗證模型的可靠性。
為了對本文模型性能進行評估,在實驗中對比了以下幾種方法:
c-LSTM[17]通過雙向LSTM對對話語境進行分析,提取上下文信息,進而進行情感分類。由于該模型對說話方不做區(qū)分,因此并沒有對人物進行建模。
ICON[7]ICON對人物進行了建模,通過兩個不同的GRU分別對說話人自身的語境進行建模,并對其輸出按說話順序通過另一個GRU構(gòu)建了一個全局表示。最后將每個待分類的句子作為查詢與全局GRU做注意力建模,并進行情感分類。
DialogueRNN[8]DialogueRNN是當前最優(yōu)的基于循環(huán)神經(jīng)網(wǎng)絡建模的對話情感分析模型。該模型首先通過一個全局的GRU對整個對話構(gòu)建語境信息,隨后基于此分別對不同說話人以注意力機制作為輸入,構(gòu)建對話人的GRU。最后建立一個新的GRU對不同說話人網(wǎng)絡的輸出建模,并通過全連接層進行情感分類。
Transformer[10]Transformer是基于多頭自注意力機制的神經(jīng)網(wǎng)絡,通過自注意力對對話上下文進行建模,最后對輸出表示進行情感分類。本文以此作為基準模型進行對比調(diào)優(yōu)。
鑒于Transformer類模型需要較小的學習率,而RNN類網(wǎng)絡則并無此類影響,所以我們對其區(qū)別對待,Transformer為1e-4,RNN為1e-3。參數(shù)優(yōu)化方法為Adam算法,損失函數(shù)為交叉熵,不同結(jié)構(gòu)之間通過dropout連接,提高模型泛化能力并降低過擬合。最終于測試集上評價的模型來自驗證集上表現(xiàn)最好的參數(shù),通過早停方式獲取。各具體參數(shù)設置如表3所示。
表3 超參數(shù)設置
對話情感分析任務是針對一段對話中的每個句子進行分類,屬分類任務的一種,因此采用F1值作為評價指標??紤]到數(shù)據(jù)集中樣本不充分平衡,本文采用加權(quán)F1(weighted-F1)值得出更加合理的評價結(jié)果[22]。其運算過程為: 先對不同類別的F1值基于樣本數(shù)量設置不同權(quán)重,再加權(quán)求和得到最終的加權(quán)F1值。
表4展示了本文的模型與其他模型的性能對比,在對比的Transformer模型中,后綴“BasePos”為三角函數(shù)位置編碼,后綴“NoPos”為不含三角函數(shù)位置編碼,后綴“Res”為加入一層殘差結(jié)構(gòu)。從各個情感的分類結(jié)果來看,在情感傾向任務中,樣本較多的中性情感各模型差異不大,而樣本量較小的正負樣本更加明顯地體現(xiàn)出了模型性能的優(yōu)劣。由于負樣本數(shù)量最少,最難訓練,不同模型在此項表現(xiàn)中差異巨大。基礎Transformer模型只有0.16,而基礎DialogueTransformer就達到0.33,高出17%,亦高于SOTA模型DialogueRNN的0.291 0。取消絕對位置編碼和加入殘差結(jié)構(gòu),效果都有進一步的提升,最優(yōu)可達0.445 1,相較于其他模型性能提升顯著,可見DialogueTransformer對于樣本數(shù)量依賴較少,少樣本類別也能有不錯的識別率,更加穩(wěn)定。對于正樣本,基礎DialogueTransformer表現(xiàn)低于基礎Transformer模型1.6%,這是由于模型更多地去召回負樣本以至于對于正樣本的召回減少導致的。而在去除三角函數(shù)位置編碼后,DialogueTransformer便反超Transformer 1.8%,加入殘差結(jié)構(gòu)的DialogueTransformer表現(xiàn)最好,相較于SOTA模型DialogueRNN高3.2%,且也優(yōu)于未優(yōu)化的標準Transformer模型4.1%。最后從整體上看,DialogueTransformer比基于循環(huán)神經(jīng)網(wǎng)絡的SOTA模型DialogueRNN高出2.3%,且也高出標準Transformer模型3.8%。在情感識別任務中,DialogueTransformer同樣表現(xiàn)優(yōu)異,獲得了最高分。
表4 實驗結(jié)果對比
此外,在對話情感分析中,基于Transformer的模型其位置編碼對最終效果有著巨大影響,無論是標準Transformer還是DialogueTransformer,不帶三角函數(shù)位置編碼的版本均優(yōu)于有位置編碼的版本,加權(quán)F1值平均有1到2個百分點的提升,且對于DialogueTransformer提升更加明顯。可見,對于這一復雜問題,其位置信息并非是靜態(tài)的,具有一定程度的交錯,因此靜態(tài)的三角函數(shù)位置編碼難以解決這一問題,甚至有反作用,反而是沒有位置編碼的版本,可以自行學習到這中間的信息,從而表現(xiàn)更加優(yōu)秀。
在模型的運算性能方面(表5),我們用模型在訓練集上訓練一輪的時間作為評價指標。首先是模型參數(shù)的比較,DialogueTransformer的參數(shù)量最多,BC-LSTM與標準Transformer的參數(shù)量最少,但性能上,即便是參數(shù)量最少的循環(huán)神經(jīng)網(wǎng)絡模型的速率也要低于參數(shù)量最多的DialogueTransformer,并且雖然Dialogue Transformer的參數(shù)量是Transformer的兩倍多,其訓練時間也并沒有較大的差距,可見基于Transformer的模型在性能上的表現(xiàn)相較于循環(huán)神經(jīng)網(wǎng)絡的各個模型具有顯著的優(yōu)越性。
表5 模型參數(shù)量與預算速率比較
最后我們嘗試了將模型從單層拓展到多層,因為通常情況下,更深的網(wǎng)絡結(jié)構(gòu)往往擁有更強的擬合能力,實驗結(jié)果如圖5所示,x軸為網(wǎng)絡層數(shù),y軸為情感傾向的加權(quán)F1值,基礎版本在圖中為正方形直線,殘差版本在圖中為三角形虛線。為了滿足多層結(jié)構(gòu),將Inner attention和Outer attention由拼接改為相加以實現(xiàn)不同層間具有相同大小的維度表示。
實驗表明,模型在單層結(jié)構(gòu)的表現(xiàn)與殘差版本性能接近,具體數(shù)據(jù)見表4的相應部分。但是隨著網(wǎng)絡深度的提升,性能有較為明顯的波動,而在網(wǎng)絡到達6層時,該模型已完全無法識別弱類別,以至于效果極差。該問題的產(chǎn)生是由于大量參數(shù)與少量訓練數(shù)據(jù)不匹配造成的,Transformer往往需要較多的訓練數(shù)據(jù)才能擁有較好的結(jié)果,過深的網(wǎng)絡搭配少量的數(shù)據(jù)反而導致了模型的退化。因此,本文對該模型進行了改進,參照殘差網(wǎng)絡的設計,加入了殘差結(jié)構(gòu)以解決這一問題。從圖5中的三角形虛線可以看出,不同層數(shù)下該模型均較為穩(wěn)定。
圖5 多層Dialogue Transformer的效果
一個有趣的現(xiàn)象是,當網(wǎng)絡在1~3層時,兩種結(jié)構(gòu)的初始損失均會處在一個較小的位置,并且網(wǎng)絡越深,其收斂越快,而當模型超過3層之后,由于初始化參數(shù)過多,初始損失往往會處于一個較大的位置,殘差模型可以逐漸收斂,但是基礎結(jié)構(gòu)則停滯不前,這是由于網(wǎng)絡過深,深層梯度在反向傳播的時候存在梯度消失現(xiàn)象,而殘差結(jié)構(gòu)通過一個加法操作,緩解了這一窘境。
由此可見,本文通過殘差結(jié)構(gòu)較為成功地解決了模型退化的問題,實現(xiàn)了模型的可拓展性,但是由于缺乏與之相匹配的數(shù)據(jù)量,難以實現(xiàn)模型精度的大幅度提升,不過可以預見的是,在更加龐大的數(shù)據(jù)集之上,多層結(jié)構(gòu)必然有更加優(yōu)異的效果。
本文從基于Transformer的對話建模角度出發(fā),提出了基于多方注意力機制建模不同說話者之間的交互,該方法既學習了對話上下文之間的關(guān)系,也實現(xiàn)了說話人之間的情感慣性和情感轉(zhuǎn)移,在準確率高于SOTA模型的同時計算速率上也有較大的優(yōu)勢。
在下一步的工作中,我們將更加具體地考慮對話中的位置信息對于Transformer的影響,構(gòu)建出滿足對話這一復雜場景的位置編碼方式,建立一個更加契合這種交錯位置關(guān)系的Transformer模型。