張禹堯,蔣玉茹,張仰森
(北京信息科技大學(xué) 智能信息處理研究所,北京 100101)
角色識別(character identification)任務(wù)的目標(biāo)是在多人參與的對話中,將每個人物提及(mention)映射到具體的人物實體,這里的人物提及可以是任何表示人物的名詞,如“他”“阿姨”等。由于多方對話數(shù)據(jù)中的上下文往往由多個角色輪流交替發(fā)言組成,其中包含著大量的對話場景內(nèi)以及對話場景外的人物提及,因此想要正確理解上下文的內(nèi)容,必須明確這些人物提及的具體指代。換言之,角色識別任務(wù)是多方對話理解中關(guān)鍵性的步驟,也是后續(xù)高級自然語言處理任務(wù)(機器問答、文本摘要、信息抽取等)能應(yīng)用在多方對話數(shù)據(jù)上的基礎(chǔ)[1]。
Chen等[2]對美劇《老友記》(Friends)的劇本進(jìn)行了收集、整理、標(biāo)注,構(gòu)建了第一個關(guān)于多方對話理解的數(shù)據(jù)集,并將其以任務(wù)的形式發(fā)布在了SemEval2018 Task4[3]。在該評測任務(wù)中,來自龐培法布拉大學(xué)的Aina等[4]為了提升非高頻角色的識別效果,構(gòu)建了基于角色實體庫的角色識別模型(AMORE-UPF),取得了評測的冠軍。然而,就最終的評測指標(biāo)來看,該模型取得的效果似乎仍不盡如人意。原因一定程度上來自于模型的編碼器部分,該部分僅由單層的BiLSTM構(gòu)成。一方面,數(shù)據(jù)中存在著大量的長對話,盡管LSTM相較于基礎(chǔ)的RNN結(jié)構(gòu)能保留更長的記憶信息,但是對于過長的文本,同樣會有信息的丟失;另一方面,對話之間是存在著信息關(guān)聯(lián)的,只使用BiLSTM無法捕獲這種信息之間的關(guān)聯(lián)。本文針對這兩方面的問題,提出了一種基于多尺度自注意力增強的多方對話角色識別方法(multi-scale self-attention character identification,MSA-CI)。首先,通過尺度較大的全局注意力,對場景內(nèi)的全部對話信息進(jìn)行處理,保留全局的對話信息;其次,通過尺度較小的局部注意力,對局部范圍內(nèi)的對話進(jìn)行計算,捕獲近距離信息之間的關(guān)聯(lián)關(guān)系,這也符合人類對話交流的特點;最后,將不同尺度得到的信息進(jìn)行融合,達(dá)到對原始編碼結(jié)果增強的效果。實驗結(jié)果證明了本文所提出的方法的有效性。在主要角色的識別效果上,F(xiàn)1值達(dá)到了89.03%,相較于Aina等人的AMORE-UPF模型提升了9.67%;在全部角色的識別效果上,F(xiàn)1值提升了18.94%,達(dá)到59.99%。
角色識別任務(wù)最早在文獻(xiàn)[2]中進(jìn)行了明確定義,標(biāo)注整理了數(shù)據(jù)集,并給出了基于共指消解和簇映射策略的解決方法。文獻(xiàn)[1]對語料庫中《老友記》部分的若干注釋錯誤進(jìn)行了擴(kuò)充和修正,并提出了一種新的方法用于解決該問題。首先,采用聚合卷積神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)提及和提及對(mention-pair)的嵌入,然后將學(xué)到的嵌入信息應(yīng)用在實體鏈接模型中,實現(xiàn)最終的角色識別。文獻(xiàn)[3]對數(shù)據(jù)《老友記》部分按照CoNLL2012共享任務(wù)格式進(jìn)行了格式化,將其作為SemEval2018 Task4發(fā)布。在該評測中,文獻(xiàn)[4]提出的基于角色實體庫的角色識別模型將該任務(wù)視為一項多分類任務(wù),整體思路是通過BiLSTM編碼獲得提及在對話中的表示,并與角色實體庫中的實體表示計算相似度,完成角色識別,角色實體庫中的表示同樣通過學(xué)習(xí)得到;文獻(xiàn)[5]則將該任務(wù)視為一項序列標(biāo)注任務(wù),使用的結(jié)構(gòu)為編碼器解碼器結(jié)構(gòu),編碼器的輸入為對話文本,解碼器則按照提及出現(xiàn)的順序?qū)μ峒斑M(jìn)行角色分類。上述方法均建立在純文本的數(shù)據(jù)之上,文獻(xiàn)[6]則認(rèn)為在某些情況下人類也很難通過單純的文本信息識別出提及具體指代的角色,因此在模型中引入了視頻場景信息來進(jìn)一步提高角色識別的性能。
近年來,隨著深度學(xué)習(xí)的研究深入,基于注意力機制的神經(jīng)網(wǎng)絡(luò)成為神經(jīng)網(wǎng)絡(luò)研究中的重點。注意力機制最早由Bahdanau等人[7]提出并將其應(yīng)用在神經(jīng)機器翻譯中;隨后,Luong等人[8]對注意力機制在循環(huán)神經(jīng)網(wǎng)絡(luò)中的應(yīng)用方式進(jìn)行了擴(kuò)展,提出了全局注意力(global attention)和局部注意力(local attention)兩種不同形式的注意力機制;Google團(tuán)隊將注意力機制進(jìn)一步進(jìn)行了抽象描述[9],提出了縮放點積注意力(scaled dot-product attention),通過將縮放點積注意力重復(fù)多次得到多頭注意力機制(multi-head attention),并在完全基于注意力機制的基礎(chǔ)上提出了Transformer模型。除機器翻譯任務(wù)外,注意力機制在其他自然語言處理任務(wù)中同樣有廣泛的應(yīng)用,如共指消解[10-11]、文本分類[12]、情感分析[13]、關(guān)系抽取[14]、機器閱讀理解[15-17]等。
基線模型為SemEval2018 Task4的最佳系統(tǒng)。模型整體架構(gòu)如圖1所示,底部為模型的輸入部分,最上方為模型的輸出部分。簡單來說,模型通過BiLSTM對對話中的信息進(jìn)行編碼,并對提及進(jìn)行解析,最后通過與角色實體庫中的角色實體表示進(jìn)行相似度計算,得到最終的預(yù)測結(jié)果,角色實體庫中的向量表示會隨模型訓(xùn)練逐漸進(jìn)行更新。
圖1 AMORE-UPF模型結(jié)構(gòu)
模型的輸入為一個場景中全部對話信息,包括說話者以及說話的內(nèi)容。首先,將輸入中的第i個詞ti和所對應(yīng)的發(fā)言者集合Si進(jìn)行one-hot表示,然后通過角色實體嵌入矩陣Ws和詞嵌入矩陣Wt分別進(jìn)行嵌入編碼,并將二者編碼后的結(jié)果進(jìn)行拼接,得到最終的向量xi。如果發(fā)言者集合Si包含多個發(fā)言者,則將多個發(fā)言者編碼后的結(jié)果進(jìn)行求和。如式(1)所示,其中Ws和Wt為可學(xué)習(xí)的參數(shù)。
(1)
得到輸入向量xi后,將其通過一個激活函數(shù)f(=tanh),并對輸出的結(jié)果使用BiLSTM進(jìn)行編碼,得到包含上下文信息的編碼結(jié)果hi,如式(2)~式(4)所示。
接下來,對被標(biāo)記為提及的詞ti的BiLSTM編碼結(jié)果hi進(jìn)行映射,將其映射到一個向量ei∈R1×k,如式(5)所示,其中Wo和b為可學(xué)習(xí)的參數(shù)。
ei=Wohi+b
(5)
在基線模型中,學(xué)習(xí)到的每個實體表示都被存儲在角色實體庫E∈RN×k中,角色實體庫中共包含N個角色實體,每個角色實體通過一個k維向量表示。需要注意的是,這里的角色實體庫與角色實體嵌入矩陣二者并不等價,權(quán)重參數(shù)相互獨立,但是二者包含的角色實體的個數(shù)是一致的,并且均隨著訓(xùn)練進(jìn)行更新。利用上一步得到的向量ei,對角色實體庫中角色實體進(jìn)行余弦相似度計算,并對輸出的結(jié)果使用softmax函數(shù)進(jìn)行概率化,得到最終的輸出oi=[0,1]1×N,如式(6)所示。
oi=softmax(cosine(E,ei))
(6)
本文所提出的基于多尺度自注意力增強的方法主要是對基線模型中的編碼部分進(jìn)行擴(kuò)展,完整模型結(jié)構(gòu)如圖2所示。
圖2 MSA-CI模型結(jié)構(gòu)
模型輸入及基本的BiLSTM編碼器這兩部分與基線模型中一致,設(shè)此處輸入xi經(jīng)過BiLSTM編碼后,得到包含著上下文信息的編碼結(jié)果hi,整個場景的全部對話信息編碼結(jié)果為H。
接下來,引入大尺度的全局自注意力機制,這里的注意力機制采用點積注意力,是Transformer模型中縮放點積注意力的簡化版本,如式(7)、式(8)所示。將式中的Q,K,V均替換為H,即可得到全局自注意力的計算結(jié)果HGA。
將BiLSTM的編碼結(jié)果H與全局自注意力計算的結(jié)果HGA相加,相加后的結(jié)果經(jīng)過激活函數(shù)f(=relu)后再次使用BiLSTM進(jìn)行編碼,如式(9)所示,此時整個場景的全部對話信息編碼結(jié)果為H′。
H′=BiLSTM(f(H+HGA))
(9)
下面,引入小尺度的局部自注意力機制,與全局自注意力機制相同,這里同樣采用點乘注意力,但是需要通過一個mask矩陣Mwin來限制注意力的范圍,這個限制的范圍可以簡稱為注意力的窗口大小w,為一項可以調(diào)整的超參數(shù)。這里需要定義一項操作mask_fill(x,mask,ε),其作用是根據(jù)mask的值對x進(jìn)行填充,填充值為ε。首先將點乘后的結(jié)果根據(jù)mask矩陣Mwin進(jìn)行mask_fill,而后再進(jìn)行后續(xù)操作,即可實現(xiàn)局部自注意力的計算,如式(10)、式(11)所示。同樣的,只需要將式中的Q,K,V替換為H′,便可以得到局部自注意力的計算結(jié)果HLA。
此時,已經(jīng)得到了四部分的編碼計算結(jié)果,分別是最初BiLSTM的編碼結(jié)果H,全局自注意力的計算結(jié)果HGA,再次BiLSTM編碼的結(jié)果H′和局部自注意力的計算結(jié)果HLA。這里,選擇使用H,H′和HLA三部分進(jìn)行加權(quán)求和,其權(quán)重值分別為α、β、γ,將加權(quán)求和后結(jié)果經(jīng)過層歸一化,得到最終的編碼結(jié)果HMSA,如式(12)所示。其中,α、β、γ三個值為可調(diào)節(jié)的超參數(shù)。
(12)
模型中映射的部分,直接對HMSA中的編碼結(jié)果進(jìn)行映射即可。后續(xù)部分,按照基線模型中的方式進(jìn)行處理。此外,在MSA-CI中角色實體庫與角色實體嵌入矩陣共享參數(shù)。
本文所使用的數(shù)據(jù)集來自SemEval2018 Task4,該評測任務(wù)提供了基于《老友記》劇本標(biāo)注的多方對話角色識別數(shù)據(jù)。數(shù)據(jù)集中的數(shù)據(jù)按照類似CONLL2012評測任務(wù)進(jìn)行了格式化,如圖3所示??梢钥吹?,在樣例數(shù)據(jù)中,包含著三個提及,分別是“He”“guy”和“I”,對應(yīng)的角色實體分別是284和248,其中提及“He”和“guy”指代的是同一角色實體。
圖3 SemEval2018 Task4樣例數(shù)據(jù)
數(shù)據(jù)中共包含448個場景的對話,不同的場景中參與對話的人可以是不同的。此外,對話中共包含401個角色實體,15 709個提及。訓(xùn)練集和測試集的數(shù)據(jù)分布如表1所示。這里需要注意的是,在訓(xùn)練集和測試集中包含的角色實體是有差異的,測試集中存在訓(xùn)練集中未出現(xiàn)的角色實體29個。
表1 訓(xùn)練集和測試集數(shù)據(jù)分布
根據(jù)詞性標(biāo)注的結(jié)果,所有的提及可以大致被劃分為五類,第一人稱代詞、第二人稱代詞、第三人稱代詞、專有名詞和一般名詞,其中第一、二、三人稱代詞可以統(tǒng)稱為代詞,測試中各種類型的提及的分布如表2所示。其中代詞所占的比例最大,高達(dá)82.99%,而其中又以第一人稱為主,占比達(dá)到44.38%。
表2 測試集中不同類型提及分布
此外,為了更好地對系統(tǒng)的性能進(jìn)行評估,SemEval2018 Task4中按照角色不同對數(shù)據(jù)進(jìn)行了進(jìn)一步劃分,分為“主要角色+其他”和“全部角色”。其中,“主要角色+其他”將全部角色劃分為兩大類7小類,分別為“Chandler Bing”“Joey Tribbiani”“Monica Geller”“Phoebe Buffay”“Rachel Green”“Ross Geller”和“Others”;而“全部角色”中同樣包含著“其他”類,這里的“其他”類指的是在測試集中出現(xiàn),但并未出現(xiàn)在訓(xùn)練集中的角色,因此,在“全部角色”這種劃分中,共包含78類。由于對數(shù)據(jù)進(jìn)行了“主要角色+其他”和“全部角色”的劃分,后文實驗結(jié)果中將包含這兩部分各自的實驗結(jié)果。
SemEval2018 Task4評價指標(biāo)主要包含準(zhǔn)確率(accuracy,Acc)和宏平均F1值(Macro-averageF1)。Acc指標(biāo)計算的是整體的準(zhǔn)確率,計算如式(13)所示。
(13)
Macro-averageF1為每個角色實體的F1值的平均值,其中C為總的角色數(shù),F(xiàn)1i表示第i個角色的F1分?jǐn)?shù),計算如式(14)~式(17)所示。
本文按照文獻(xiàn)[4]的設(shè)置,對訓(xùn)練集進(jìn)行五折交叉驗證,并使用五個模型的融合模型對測試集進(jìn)行預(yù)測。使用的深度學(xué)習(xí)框架為Pytorch[18],詞嵌入層初始化選擇使用GloVe[19]官方提供的預(yù)訓(xùn)練好的詞向量(1)nlp.stanford.edu/data/glove.840B.zip。訓(xùn)練過程中,批量大小為32,場景內(nèi)對話最大長度為757,學(xué)習(xí)率0.001,優(yōu)化器為Adam[20],總輪數(shù)設(shè)置為50,如果損失超過5輪沒有下降則訓(xùn)練停止。此外,由于文本長度較長,為了防止訓(xùn)練時出現(xiàn)梯度爆炸的問題,這里加入了梯度裁剪策略,最大梯度范數(shù)設(shè)置為5.0。在模型部分,角色實體嵌入的維度為134,BiLSTM的隱藏層維度為400,局部注意力機制的窗口大小w設(shè)置為50,填充值ε的值為1e-9,α、β、γ的數(shù)值分別為0.6,0.25和0.15。在嵌入編碼層與歸一化后的Dropout層丟棄率大小統(tǒng)一設(shè)置為0.05。此外,BiLSTM網(wǎng)絡(luò)中的參數(shù)進(jìn)行正交初始化。
3.4.1 基于角色類別的實驗結(jié)果
表3中給出了本文所提出的模型在測試集上的評測結(jié)果??梢钥吹?,本文所提出的MSA-CI模型在測試集上的表現(xiàn)明顯優(yōu)于其他模型。在“主要角色+其他”的識別效果中,Acc值達(dá)到了87.98%,宏平均F1達(dá)到89.03%,相較于之前最好的結(jié)果,分別提升了2.88%和3.03%,而相較于本文使用的基線,則分別提升了10.75%和9.67%。此外,本文所提出的模型并未隨著主要角色的識別效果提升而降低對非主要角色的識別性能。在“全部角色”的識別中,與基線模型相比,本文所提出的模型同樣展示出了巨大的性能提升,Acc值從基線模型的74.72%提升至83.29%,提升了8.57%;宏平均F1值從41.05%提升至59.99%,提升了18.94%。
表3 SemEval2018 Task4 評測結(jié)果 (單位: %)
表4中給出了“主要角色+其他”部分更為詳盡的評測結(jié)果。相較于基線模型,性能提升最低的角色“Phoebe”提升了6.51%,性能提升最高的“Others”甚至提升了21.97%。主要角色部分的性能提升,表明本文所提出的MSA-CI模型可以較為準(zhǔn)確地學(xué)習(xí)到高頻角色實體的表示。
表4 “主要角色+其他”測試集F1值細(xì)節(jié) (單位: %)
3.4.2 基于提及類型的實驗結(jié)果
除了SemEval2018 Task4的官方基于角色類別的實驗結(jié)果外,本文還按照文獻(xiàn)[4]中的設(shè)置,給出了測試集中不同類型提及的評測結(jié)果。
圖4和圖5中對比了本文所提出模型與文獻(xiàn)[4]的基線模型在全部角色實體上的Acc值和宏平均F1值。可以看到,本文所提出的模型在不同類型的提及上性能均有不同程度的提升。其中,代詞方面的Acc和宏平均F1相較于基線模型有較大的提升,Acc提升了9.38%,F(xiàn)1值提升了17.43%。代詞提及中,以第二人稱代詞和第三人稱代詞提升較為突出,Acc分別提升了17.4%和24.23%,宏平均F1值的提升比Acc的提升更為明顯,第二人稱代詞從22.83%提升至58.29%,第三人稱代詞從12.09%提升至了32.48%;而第一人稱代詞在Acc上提升較小,但是在宏平均F1值上提升了7.13%。除代詞外,其余類型提及也都有不同程度的提升,且F1值的提升均略高于Acc的提升。以上結(jié)果一方面證明了本文方法的有效性,另一方面說明本文方法在出現(xiàn)次數(shù)較低的非主要角色上有比基線模型更好的識別效果。
圖4 測試集中不同類型提及Acc值對比
圖5 測試集中不同類型提及F1值對比
表5中給出了MSA-CI模型完整的消融實驗的結(jié)果,這里需要注意的是,表5中最后的結(jié)果與文獻(xiàn)[4]中的結(jié)果并不一致,本文復(fù)現(xiàn)的基線模型計算結(jié)果略高于原始模型,其原因可能源于深度學(xué)習(xí)版本的更迭以及軟硬件環(huán)境。
表5 MSA-CI模型消融實驗結(jié)果 (單位: %)
以全部角色的宏平均F1值為標(biāo)準(zhǔn),可以看到對參數(shù)的微調(diào)可以使基線模型的性能從43.70%提升至47.03%,GloVe預(yù)訓(xùn)練詞向量和共享角色實體權(quán)重分別又帶來了2.07%和0.81%的性能提升,多尺度自注意力中的全局注意力機制使模型性能突破了50%,達(dá)到了51.87%,隨后的局部注意力將其提升至55.63%,通過賦予不同注意力不同的權(quán)重,模型的性能達(dá)到59.99%??偟膩碚f,多尺度自注意力機制對模型的性能提升達(dá)到了10.08%。
為保證結(jié)果的有效性,本文采用近似隨機測試(approximate randomization test)[21]檢驗對全部角色上的性能(Acc、F1)進(jìn)行顯著性檢驗,迭代次數(shù)為10 000,檢驗結(jié)果如表6所示。
表6 全部角色近似隨機檢驗結(jié)果
表6中,實驗1為MSA-CI對比基線模型,實驗2為未使用多尺度自注意力機制的模型對比基線模型,實驗3為MSA-CI對比未使用多尺度自注意力機制的模型。首先,通過實驗1的對比可以看到完整模型相較于基線模型在測試數(shù)據(jù)上的表現(xiàn)有極其顯著的統(tǒng)計學(xué)差異,這表明本文所提出的完整模型相較基線模型有更好的性能不是出于偶然。接下來,通過實驗2,可以看到未使用多尺度自注意力的模型相較于基線模型在測試數(shù)據(jù)上同樣有極其顯著的統(tǒng)計學(xué)差異。進(jìn)一步地,實驗3則表明使用和未使用多尺度自注意力模型的系統(tǒng),在測試數(shù)據(jù)上同樣表現(xiàn)出極其顯著的統(tǒng)計學(xué)差異,說明了本文提出的多尺度自注意力機制模型的有效性。
進(jìn)一步對多尺度自注意力進(jìn)行研究,可以看到單純的全局注意力對模型的提升似乎并不明顯,反而是加入了局部注意力后模型的性能有了較大提升,那么這種較大提升是單純來自于局部注意力本身還是這種整體的設(shè)計便無法確定。為了驗證是否為本文所提出的模型的整體結(jié)構(gòu)帶來的提升,這里增加了一組對比實驗,對比實驗包含兩部分,一部分用于探究僅使用單尺度注意力的模型的性能,另一部分對多尺度自注意力中兩種注意力的計算順序進(jìn)行了探究,實驗結(jié)果如表7所示。其中,L為局部注意力,G為全局注意力,L+G表示先進(jìn)行局部注意力再進(jìn)行全局注意力,G+L則是先進(jìn)行全局注意力再進(jìn)行局部注意力。
表7 不同注意力機制實驗結(jié)果對比 (單位: %)
從前兩個實驗的結(jié)果中可以看到,在只使用一種注意力機制的情況下,全局注意力與局部注意力之間并無明顯差異;通過后兩個實驗結(jié)果可以看到,不同注意力之間的計算順序,對實驗結(jié)果有巨大影響,以全部角色為例,順序(L+G)相較于順序(G+L)的宏平均F1相差2.7%。
為了更細(xì)致地分析全局注意力和局部注意力在模型中的作用,本文統(tǒng)計了各種模型對不同類型提及的性能表現(xiàn),結(jié)果如表8所示。其中,L、G與表7表示內(nèi)容一致,△表示G+L的效果相對于L與G中值的變化,“-”代表低于L和G中最低值,“*”代表在L與G的值中間,“+”代表大于L和G中的最高值。
表8 不同類型注意力機制測試集全部角色F1值 (單位: %)
可以看到,在僅使用一種尺度注意力的模型中,局部注意力在第二人稱代詞上的表現(xiàn)更佳,在一般名詞上的表現(xiàn)雖有優(yōu)勢但不明顯,其余項則均不如全局注意力的結(jié)果。當(dāng)使用多尺度的注意力機制時,可以看到在第三人稱代詞、專有名詞和一般名詞上性能有顯著的提升,超過了單獨使用時的最優(yōu)值,說明兩種尺度的注意力機制在這三種提及類型中有一定的互補的效果;在第二人稱代詞上的性能則沒有提升,但比全局注意力要高,略低于局部注意力,說明局部注意力在這里發(fā)揮了更多的作用;而第一人稱代詞的性能不僅沒有提高,反而些許下降,出現(xiàn)這種情況的原因,本文分析是由于注意力機制的多次使用,使得模型更多關(guān)注了范圍更大的上下文,減少了對臨近上下文信息的關(guān)注。
最后,本文對局部注意力機制中的窗口大小進(jìn)行了不同的嘗試,以10為差值對窗口分別進(jìn)行縮小和放大,實驗結(jié)果如表9所示??梢钥吹?,當(dāng)取窗口大小為50的時候,可以達(dá)到最優(yōu)效果,當(dāng)窗口被放大或縮小的時候,都會有不同程度的性能下降。
表9 不同窗口大小實驗結(jié)果對比 (單位: %)
續(xù)表
面向多方對話中的角色識別任務(wù),本文在現(xiàn)有模型的基礎(chǔ)上進(jìn)行了改進(jìn),提出了一種基于多尺度自注意力增強的方法,該方法能夠利用不同尺度的自注意力機制,獲得不同方面的信息,從而達(dá)到對最終的編碼信息增強的效果。在SemEval2018 Task4數(shù)據(jù)集上的實驗結(jié)果證明本文提出方法的有效性。
盡管本文提出的方法已經(jīng)取得了一定的效果,但是還有提升空間。首先,本文并未加入語言模型,借助語言模型,模型的性能大概率還能進(jìn)行提升;其次,在局部注意力的使用上,生硬地劃定窗口大小這個方法還不夠完美,可以細(xì)化改進(jìn);最后,由于數(shù)據(jù)集來自劇本,與真實場景下的多方對話可能還存在著一些差異。因此,構(gòu)建整理真實場景下的多方對話數(shù)據(jù)集,也將是我們下一步工作的重點。