余 杰,紀 斌,吳宏明,任 意,李莎莎,馬 俊,吳慶波
(1.國防科技大學計算機學院,湖南 長沙 410073;2.中央軍委裝備發(fā)展部裝備項目管理中心,北京 100034;3.陸軍項目管理中心,北京 100071)
本文研究句內(nèi)命名實體和關(guān)系的聯(lián)合抽取。與流水線模式的分步抽取方法相比,實體和關(guān)系的聯(lián)合抽取模式可以減輕錯誤級聯(lián)傳播并促進信息之間的相互使用,因此引起了諸多研究者的關(guān)注。
通常,聯(lián)合抽取模式是通過基于序列標注的方法實現(xiàn)的[1]。
最近大量的研究人員摒棄了基于序列標注的方法,提出了基于span的聯(lián)合抽取模式。此模式首先將句子的文本處理為文本span,這些span被稱為基于span的候選實體;然后計算span語義表示并對其進行分類,以獲得預(yù)測的實體;接下來組合span,構(gòu)成基于span的候選關(guān)系元組,并計算這些候選元組的語義表示;最后對候選關(guān)系元組進行分類,得到關(guān)系三元組。該模式進一步提高了聯(lián)合抽取性能,然而存在以下3個問題:
(1)構(gòu)成span的不同token對span語義表示的貢獻應(yīng)有所不同,本文稱其為span特定特征。但是,現(xiàn)有的方法將span的每個token視為同等重要或僅考慮span頭尾token的語義表示,而忽略了這些重要特征。
(2)現(xiàn)有研究方法忽略了關(guān)系元組的局部上下文信息或僅通過max pooling的方法對其進行計算,因而不能充分捕獲其中包含的信息。而局部上下文中包含的信息,可能在關(guān)系預(yù)測中起到關(guān)鍵作用。
(3)在span分類和關(guān)系分類中均忽略了句子級的上下文信息,而這些信息可能是兩者的重要補償信息。
為了解決上述問題,本文提出了一種基于span的實體關(guān)系聯(lián)合抽取模型,該模型使用attention機制捕獲的span特定特征和句子上下文語義表示來增強實體和關(guān)系的語義表示。具體來說,(1)使用MLP(Multi Layer Perceptrons)attention[2]計算span特定特征的語義表示;(2)通過將span特定特征的語義表示作為Q(query),將句子token序列的語義表示作為K(key)和V(value),使用Multi-Head attention計算句子的上下文語義表示,用于強化span的語義表示;(3)通過將關(guān)系元組語義表示作為query,將相應(yīng)的token語義序列作為key和value,使用Multi-Head attention分別計算關(guān)系的局部和句子級上下文語義表示,用于強化關(guān)系的語義表示。
本文使用BERT(Bidirectional Encoder Representation from Transformers)[3]實現(xiàn)基于span的實體和關(guān)系聯(lián)合抽取模型,并研究了上述3個問題,在ACE2005、CoNLL2004和ADE 3個基準數(shù)據(jù)集上進行了大量的實驗。實驗結(jié)果表明,本文提出的模型超越了以前的最優(yōu)模型,在3個基準數(shù)據(jù)集上均達到了當前的最優(yōu)性能。
傳統(tǒng)上,流水線模式將實體關(guān)系抽取分為2個子任務(wù),即實體識別和關(guān)系分類。大量的研究工作將神經(jīng)網(wǎng)絡(luò)應(yīng)用于這2個子任務(wù)中,例如將RNN(Recurrent Neural Network)[4]、CNN(Convolutional Neural Network)[5]用于實體識別中;將RNN[6]、CNN[7]和Transformer[8]等用于關(guān)系分類中。
實體和關(guān)系的聯(lián)合抽取通常被形式化為序列標注任務(wù)。研究人員首先提出的方法是表格填充方法[9],該方法用token標簽和關(guān)系標簽分別填充表格的對角線和非對角線。最近,許多研究人員專注于利用深度神經(jīng)網(wǎng)絡(luò)來實現(xiàn)這一任務(wù),例如BiLSTM(Bidirectional Long-Short Term Memory)和CNN的結(jié)合[10]。
最近,有學者提出了基于span的實體關(guān)系聯(lián)合抽取方法,用于解決序列標注方法中存在的問題,如無法抽取重疊的實體。Dixit等人[2]通過BiLSTM獲得span語義表示來實現(xiàn)實體關(guān)系聯(lián)合抽取方法,然后將ELMo(Embeddings from Language Models)、單詞和字符嵌入拼接起來,并在span和關(guān)系分類中實現(xiàn)了共享。Luan等人[11]獲取span語義表示的方法與Lee等人[12]采用的方法相同,但他們通過引入共指消除任務(wù)增強了span語義表示。在文獻[11]的基礎(chǔ)上Luan等人[13]提出了DyGIE(Dynamic Graph Information Extraction),該模型通過動態(tài)構(gòu)造span交互圖來捕獲span之間的交互。Wadden等人[14]使用BERT替代DyGIE中的BiLSTM,提出了DyGIE++,進一步提高了模型性能。最近,Eberts等人[15]提出了SpERT(Span-based Entity and Relation Transformer),一個簡單但有效的基于span的聯(lián)合抽取模型,該模型將BERT作為編碼器,并使用2個多層前饋神經(jīng)網(wǎng)絡(luò)FFNN(Feed Forward Neural Network)分別對span和關(guān)系進行分類。
本文提出了一種基于span的實體和關(guān)系聯(lián)合抽取模型,與已有研究方法不同的是,本文使用attention機制捕獲span特定特征和上下文語義表示,進一步強化span和關(guān)系的語義表示。通過計算目標序列語義表示與源序列語義表示之間的匹配程度,attention機制可得到源序列上的注意力得分,即權(quán)重得分。因此,信息越重要,其權(quán)重得分就越高。根據(jù)權(quán)重得分的計算方式進行分類,attention機制具有多種變體,例如Additive attention[16]、Dot-Product attention[17]和Multi-Head attention[18]等。
Figure 1 Architecture of the proposed joint entity and relation extraction model
圖1所示為本文提出的模型架構(gòu)。本文提出的模型使用BERT作為編碼器,即使用Transformer[18]模塊將單詞嵌入映射到BERT嵌入。根據(jù)這些嵌入表示,計算span語義表示并執(zhí)行span分類和過濾(3.1節(jié));然后,組織關(guān)系元組,計算關(guān)系元組語義表示并執(zhí)行關(guān)系分類和過濾(3.2節(jié));最后,介紹模型的損失函數(shù)(3.3節(jié))。
首先定義一個句子和該句子的一個span:
句子:S=(t1,t2,t3,…,tn)
span:s=(ti,ti+1,ti+2,…,ti+j)
其中,t表示token,一個token指代文本中的一個單詞或一個符號,如標點符號、特殊符號等;下標(例如1,2,3,…)表示token在文本中的位置索引。在span中,下標j表示span的長度閾值。
首先,將NoneEntity類型添加到預(yù)定義的實體類型集合(表示為η)中。若span的類型不屬于任何預(yù)定義的實體類型,那么它的類型為NoneEntity。
如圖1所示,用于分類的span語義表示由4部分組成,即:(1)span頭尾token語義表示的拼接;(2)span特定特征的語義表示;(3)span的句子級上下文語義表示(span width embeddings);(4)span寬度語義表示。本文用Xi表示tokenti的BERT嵌入,則S和s的BERT嵌入序列表示分別如式(1)和式(2)所示:
BS=(X0,X1,X2,…,Xn)
(1)
Bs=(Xi,Xi+1,Xi+2,…,Xi+j)
(2)
其中X0表示特定字符[CLS]的BERT嵌入。
(1)span頭尾token語義表示的拼接:如果span包含多個token,則將span頭token和尾token的BERT嵌入拼接。否則,復制單個token的BERT嵌入并將其拼接起來。以s為例,其拼接結(jié)果為:
Hs=[Xi;Xi+j]
(2)span特定特征的語義表示:本文使用MLP attention[2]計算span特定特征的語義表示,以s為例,其特定特征計算的形式化表示如式(3)所示:
Vk=MLPk(Xk)
s.t.k∈[i,i+j]
(3)
(4)
(5)
其中,Vk是標量;αk是Xk的attention權(quán)重,由Softmax函數(shù)計算得出;Fs是根據(jù)attention權(quán)重和Bs計算得到的span特定特征的語義表示。通過這種方式可以評估span包含的每個token的重要性,并且token越重要,它持有的attention權(quán)重就越大。通過將Fs作為Q(query),BS作為K(key)和V(value),使用Multi-Head attention計算span的句子級的上下文語義表示。以s為例,上述計算可形式化如式(6)所示:
Ts=Attention(Fs,BS,BS)
(6)
(3)span寬度嵌入:在模型訓練過程中為每個span寬度(1,2,…)訓練一個寬度嵌入表示[3],因此可以從寬度嵌入矩陣中為s查找寬度為j+1的嵌入表示W(wǎng)j+1。
(4)span分類:用于分類的span語義表示由4部分拼接而成,其形式化表示如式(7)所示:
Rs=(Ts,Fs,Hs,Wj+1)
(7)
Rs首先輸入到一個多層FFNN,然后將輸出結(jié)果輸入到一個Softmax分類器,輸出結(jié)果為s在實體類型空間(包括NoneEntity)上的后驗概率分布值,如式(8)所示:
ys=Softmax(FFNN(Rs))
(8)
(5)span過濾:通過搜索得分最高的類別,ys預(yù)測得到s的實體類型。本文保留未分類為NoneEntity的span,并構(gòu)成一個預(yù)測的實體集ε。
首先,將NoneRelation類型添加到預(yù)定義的關(guān)系類型集合(表示為γ)中。設(shè)s1和s2是2個span,用于關(guān)系分類的關(guān)系元組定義如式(9)所示:
〈s1,s2〉∈{ε?ε}
s.t.s1≠s2
(9)
如圖1所示,用于分類的關(guān)系語義表示由3部分組成,即:(1)構(gòu)成關(guān)系的2個預(yù)測的實體的語義表示拼接;(2)關(guān)系的局部上下文語義表示;(3)關(guān)系的句子級上下文語義表示。
(1)關(guān)系元組語義表示的拼接:將s1和s2的語義表示分別形式化為Rs1和Rs2(本質(zhì)為span的語義表示)。在拼接Rs1和Rs2之前,本文首先使用2個不同的多層前饋神經(jīng)網(wǎng)絡(luò)FFNN分別減小其維度,拼接結(jié)果如式(10)所示:
Hr=[FFNN(Rs1);FFNN(Rs2)]
(10)
(2)關(guān)系的局部上下文語義表示:令Bc表示s1和s2之間的局部上下文的BERT嵌入序列,其形式化表示如式(11)所示:
Bc=(Xm,Xm+1,Xm+2,…,Xm+n)
(11)
通過將Hr作為Q(query),Bc作為K(key)和V(value),使用Multi-Head attention計算關(guān)系的局部上下文語義表示,如式(12)所示:
Fr=Attention(Hr,Bc,Bc)
(12)
(3)關(guān)系的句子級的上下文語義表示:通過將Hr作為Q,Bs作為K和V,使用Multi-Head attention計算關(guān)系的句子級上下文語義表示,其形式化表示如式(13)所示:
Tr=Attention(Hr,Bs,Bs)
(13)
(4)關(guān)系分類:在將Fr和Tr融合到關(guān)系語義表示之前,本文首先將2個不同的多層FFNN應(yīng)用到Fr和Tr,以控制其維度,目的是使它們在關(guān)系的語義表示中保持適當?shù)谋壤?,用于分類的關(guān)系語義表示可形式化為:
Rr=[Hr;FFNN(Fr);FFNN(Tr)]
(14)
類似于span分類,Rr首先輸入到一個多層FFNN,然后將輸出結(jié)果輸入到一個Softmax分類器,產(chǎn)生〈s1,s2〉在關(guān)系類型空間(包括NoneRelation)上的后驗概率分布,如式(15)所示:
yr=Softmax(FFNN(Rr))
(15)
(5)關(guān)系過濾:通過搜索得分最高的類別,yr可以預(yù)測出〈s1,s2〉的關(guān)系類型。本文保留預(yù)測為非NoneRelation的關(guān)系元組并構(gòu)成關(guān)系三元組。
本文將聯(lián)合抽取模型的損失函數(shù)定義如式(16)所示:
L=0.4Ls+0.6Lr
(16)
其中,Ls表示span分類的交叉熵損失,Lr表示關(guān)系分類的二元交叉熵損失。由于關(guān)系分類的性能通常比實體識別性能差,因此本文對Lr賦予更大的權(quán)重,旨在讓模型更多地關(guān)注關(guān)系分類。
本文模型在ACE2005[19]、CoNLL2004[20]和ADE(Adverse-Effect-Drug)[21]3個基準數(shù)據(jù)集上進行實驗,以下將3個數(shù)據(jù)集簡稱為ACE05、CoNLL04和ADE。
(1)ACE05英文數(shù)據(jù)集由多領(lǐng)域的新聞報道組成,例如廣播、新聞專線等。該數(shù)據(jù)集預(yù)定義了7個實體類型和6個關(guān)系類型。本文遵循當前已有研究工作中提出的training/dev/test數(shù)據(jù)集劃分標準。其中包括351份訓練數(shù)據(jù),80份驗證數(shù)據(jù)和80份測試數(shù)據(jù),這其中又有437份包含重疊實體。
(2)CoNLL04數(shù)據(jù)集包括來自華爾街日報和AP的新聞?wù)Z料,本文遵循當前已有研究工作中提出的training/dev/test數(shù)據(jù)集劃分標準。其中包括910份訓練數(shù)據(jù),243份驗證數(shù)據(jù)和288份測試數(shù)據(jù)。
(3)ADE旨在從醫(yī)學文獻中抽取藥物相關(guān)的不良反應(yīng),預(yù)定義了2個實體類型(即Adverse-Effect和Drug)和1個關(guān)系類型,即Adverse-Effect。該數(shù)據(jù)集由4 272個句子組成,其中1 695個包含重疊實體。本文在該數(shù)據(jù)集上進行10重交叉驗證實驗。
本文使用English BERT-base-cased model作為嵌入生成器。在本文模型訓練期間訓練FFNN和attention的模型參數(shù)并且對BERT模型參數(shù)進行微調(diào)。本文將模型訓練的batch大小設(shè)置為8,dropout設(shè)置為0.2,寬度嵌入的維度設(shè)置為50。Multi-Head attention頭數(shù)設(shè)置為8。學習率設(shè)置為5e-5,weight decay設(shè)置為0.01,梯度裁剪閾值設(shè)置為1,對不同數(shù)據(jù)集,本文設(shè)置了不同的epoch。對于所有數(shù)據(jù)集,span寬度閾值均初始化為10。本文采用動態(tài)負采樣策略來提高模型性能和魯棒性,其中實體和關(guān)系的負例采樣數(shù)量都是每個句子中正例的30倍。
在3個基準數(shù)據(jù)集上,本文模型與以下模型進行比較。
(1)DyGIE++[14]是當前在ACE05數(shù)據(jù)集上基于span聯(lián)合抽取模式的最優(yōu)模型,它通過引入共指消除任務(wù)來強化span和關(guān)系的語義表示。
(2)Multi-turn QA(Multi-turn Question & Answer)[22]是當前在ACE05和CoNLL04 2個數(shù)據(jù)集上基于序列標注的最優(yōu)模型。它將實體和關(guān)系的聯(lián)合抽取形式化為一個多輪問答問題,但仍是基于序列標注的抽取模式。
(3)SpERT[15]是當前在ADE和CoNLL04 2個數(shù)據(jù)集上基于span聯(lián)合抽取模式的最優(yōu)模型。
(4)Relation-Metric[23]是一種基于序列標注的聯(lián)合抽取模型,并且采用了多任務(wù)聯(lián)合學習模式。該模型在ADE數(shù)據(jù)集上取得了當前的最優(yōu)性能。
本文提出的模型和當前性能最優(yōu)的聯(lián)合抽取模型的比較結(jié)果如表1所示。本文提出的模型表示為SPANMulti-Head,表示使用Multi-Head attention計算上下文語義表示。在ACE05和CoNLL04 2個數(shù)據(jù)集上,本文采用準確率P(Precision)、召回率R(Recall)和微平均F1(micro-averageF1)評估指標。在ADE數(shù)據(jù)集上,本文采用準確率P(Precision)、召回率R(Recall)和宏平均F1(macro-averageF1)評估指標。這些指標均參照當前已發(fā)表的研究工作。對于ACE05和ADE 2個數(shù)據(jù)集,表1列出的所有結(jié)果均已將重疊實體考慮在內(nèi)。
Table 1 Performance comparisons of different models on ACE05,CoNLL04 and ADE datesets
從表1可以看出,SPANMulti-Head在3個基準數(shù)據(jù)集上的性能均超過了當前已有的最優(yōu)模型。具體來說,與SpERT相比,SPANMulti-Head在實體識別方面獲得了1.29(CoNLL04)和1.31(ADE)的絕對F1值提升,而在關(guān)系抽取方面則獲得了更佳的絕對F1值提升,分別為2.86(CoNLL04)和1.89(ADE)。本文將這些性能提高歸結(jié)于span特定特征和上下文表示。此外,與DyGIE++相比,在ACE05數(shù)據(jù)集上,SPANMulti-Head在實體識別和關(guān)系抽取上相比DyGIE++獲得了0.99和1.84的絕對F1值提升。但是,值得注意的是DyGIE++采用了多任務(wù)聯(lián)合學習的方式,通過引入共指消除任務(wù)進一步增強了span的語義表示,而本文方法并未引入共指消除。
本節(jié)在ACE05測試集上進行消融實驗,以分析不同模型組件的影響。
(1)span特定特征和span的句子級上下文語義表示的影響。
表2給出了span特定特征和span的句子級上下文語義表示對本文提出模型的影響。其中,-SpanSpecific表示使用Bs的max pooling替換Rs中的[Fs,Hs];-SentenceLevel表示使用[CLS]的BERT嵌入替換Rs中的Ts;base表示執(zhí)行以上2種消融操作。在ACE05測試集上,可觀察到span特定特征語義表示和span的句子級上下文語義表示均有益于實體識別和關(guān)系抽取,這是因為 span的語義表示在2個子任務(wù)中共享。
Table 2 Ablation results of span-specific and span sentence-level contextual representations
(2)關(guān)系的局部和句子級上下文語義表示的影響。
表3給出了關(guān)系的局部和句子級上下文語義表示對本文提出模型的影響,其中,-local表示使用Bc的max pooling替換Rr中的FFNN(Fr);-SentenceLevel表示去除Rr中FFNN(Tr);base是執(zhí)行以上2種消融操作。
Table 3 Ablation results of relation local and sentence-level contextual representations
在ACE05驗證數(shù)據(jù)集上,可觀察到關(guān)系的局部和句子級的上下文語義表示明顯地有益于關(guān)系提取,然而對實體識別的影響卻可以忽略不計。一個可能的原因是,這些上下文語義表示直接構(gòu)成關(guān)系的語義表示,然而僅通過梯度反向傳播影響span的語義表示。
值得注意的是,與關(guān)系的句子級上下文語義相比,關(guān)系的局部上下文語義對關(guān)系抽取的影響更大。原因之一是決定關(guān)系類型的信息主要存在于關(guān)系元組和局部上下文中。另一個原因是作為補償信息,關(guān)系的句子級上下文語義表示在關(guān)系語義表示中所占的比例相對較小,目的在于避免將噪聲引入關(guān)系的語義表示中。
本文提出了一種基于span的實體關(guān)系聯(lián)合抽取模型,該模型使用attention機制強化span和關(guān)系的語義表示。具體來說,使用MLP attention捕獲span特定特征,豐富了span的語義表示;使用Multi-Head attention捕獲句子局部和全局特征,進一步強化了span和關(guān)系的語義表示。本文提出的模型在3個基準數(shù)據(jù)集上的性能均超過了當前最優(yōu)模型,創(chuàng)造了當前最優(yōu)的聯(lián)合抽取性能。將來將研究通過減少span分類錯誤來進一步提高關(guān)系分類性能,還計劃探索更有效的方法用于編碼語義更為豐富的span和關(guān)系語義表示。