張 鑫,冼廣銘,梅灝洋,周岑鈺,劉贏方
(華南師范大學(xué) 軟件學(xué)院,廣東 佛山 528225)
作為自然語言處理領(lǐng)域的一個重要任務(wù),實體關(guān)系抽取受到了廣泛的關(guān)注和研究。早期,基于規(guī)則[1]或本體[2]的實體關(guān)系抽取方法過度依賴行業(yè)專家進(jìn)行的大規(guī)模的模式匹配規(guī)則,在跨領(lǐng)域中可移植性差,極大耗費(fèi)了人力物力。后來,隨著傳統(tǒng)機(jī)器學(xué)習(xí)的發(fā)展,以統(tǒng)計學(xué)為基礎(chǔ)的機(jī)器學(xué)習(xí)方法顯著提高了實體關(guān)系抽取的召回率和跨領(lǐng)域能力。
近些年,隨著深度學(xué)習(xí)的發(fā)展,實體關(guān)系抽取的性能得到了極大的提升[3-5]。自從Hinton G等[6]提出深度學(xué)習(xí)方法以來,研究人員將深度學(xué)習(xí)應(yīng)用到實體關(guān)系抽取任務(wù)中,取得了相當(dāng)優(yōu)異的效果。2012年,Socher R等[7]運(yùn)用循環(huán)神經(jīng)網(wǎng)絡(luò)[8](Recurrent Neural Networks,RNN)進(jìn)行實體關(guān)系抽取,并在該任務(wù)中融入了句子特征,然其忽略了位置信息的重要性;Zhang等[9]使用循環(huán)神經(jīng)網(wǎng)絡(luò)時雖然引入了位置信息,但循環(huán)神經(jīng)網(wǎng)絡(luò)存在遠(yuǎn)距離依賴問題;Zeng等[10]首次使用卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Networks,CNN)進(jìn)行關(guān)系抽取,提取出更加豐富的特征,但是由于受到卷積核大小的影響,無法很好地提取出語義特征;李青青等[11]設(shè)計一種Attention機(jī)制的多任務(wù)模型,通過共享信息編碼提升實體關(guān)系抽取的性能;李衛(wèi)疆等[12]使用Bi-RNN解決詞與詞之間的依賴關(guān)系,并融入位置、語法、句法和語義信息進(jìn)行實體關(guān)系抽取;Zheng等[13]將BiRNN和CNN模型融合成為聯(lián)合抽取模型,通過共享BiLSTM的編碼層,運(yùn)用LSTM與CNN進(jìn)行解碼,解決了信息冗余問題,然而都無法很好地解決復(fù)雜實體中的實體重疊問題。并且以上所有方法由于使用單解碼模型,都受到單解碼強(qiáng)行執(zhí)行某種順序而帶來的局限性。
隨著預(yù)訓(xùn)練模型的興起,以往的循環(huán)神經(jīng)網(wǎng)絡(luò)和卷積神經(jīng)網(wǎng)絡(luò)等逐漸淡去,新的神經(jīng)網(wǎng)絡(luò)Transf-ormer[14]逐漸受到廣大研究者的青睞。對于Transfo-rmer等預(yù)訓(xùn)練模型,由Tang等[15]實驗結(jié)果表明,相較循環(huán)、卷積等模型,Transformer在綜合特征提取能力和語義表征能力上有較高提升。而近期,基于Transformer的模型BERT(Bidirectional Encoder Representation from Transformers)[16]憑借其合理的設(shè)計,在自然語言處理領(lǐng)域取得了重大突破,同時也備受實體關(guān)系抽取研究人員的青睞。其中Wei等[17]和Fan等[18]利用BERT預(yù)訓(xùn)練模型在關(guān)系抽取領(lǐng)域取得不錯的效果。
針對實體關(guān)系抽取中的依賴信息不足、重疊實體獲取效果低下、解碼順序問題進(jìn)行研究,主要貢獻(xiàn)為:一是使用GCN融入語句的句法特征,增強(qiáng)相關(guān)實體與關(guān)系之間的依賴性;二是使用基于span的方法,篩選出對應(yīng)的實體信息;三是利用深度多叉解碼樹進(jìn)行解碼操作,最終得到相應(yīng)的關(guān)系三元組。
該文提出的基于Span[19]和DMFDT的實體關(guān)系抽取模型主要由四個部分組成,即使用預(yù)訓(xùn)練模型BERT編碼層、基于GCN[20]的句子依賴性增強(qiáng)、基于Span的實體獲取、深度多叉解碼樹抽取關(guān)系三元組。模型的實現(xiàn)流程如圖1所示。
圖1 基于Span和深度多叉解碼樹的實體關(guān)系抽取模型框架
BERT預(yù)訓(xùn)練模型主要包含輸入層和多層編碼層,其中輸入層由位置編碼(PosEmbedding)和詞編碼(Token Embedding)等組成,并為其添加[CLS]和[SEP]標(biāo)志位,也正因如此使得BERT具有較強(qiáng)的綜合特征提取能力和語義表征能力。該文使用BERT編碼器提取句子特征,為下游任務(wù)提供后續(xù)的H(隱藏層向量)。公式如下:
H=BERT(W)
(1)
其中,W={w1,w2,…,wn}為輸入的句子;H=[h1,h2,…,hn]為相應(yīng)位置詞對應(yīng)輸出的隱藏層向量。
對于BERT模型輸出的隱藏層向量H,通過融合句法特征可以很好地利用詞與詞之間的依賴信息,然而在過往的實體關(guān)系抽取模型中往往忽略實體與關(guān)系本身在句法上的聯(lián)系。該文綜合前人的研究成果,將可以有效利用句法依賴信息的圖神經(jīng)網(wǎng)絡(luò)(GCN)融入其中,以提高模型的抽取性能。對于給定的句子,使用Stanford CoreNLP工具生成相應(yīng)的句法依存樹[21],然后使用GCN運(yùn)行依賴關(guān)系圖,將相應(yīng)的依賴信息融合到編碼中。
1.2.1 使用GCN標(biāo)記圖
對于依賴關(guān)系圖,G=(N,Ed),其中N和Ed表示節(jié)點(Node)和它們之間邊(Edges)的集合。將任意的隱藏向量hi(1
(2)
其中,wLuv為權(quán)重,bLuv為偏置,F為非線性激活函數(shù)。
1.2.2 邊處理
在生成的圖中,可能會存在錯誤的邊需要丟棄。因此,需要對生成的每一條邊進(jìn)行打分。通過打分,高分的邊得到保留,低分的邊被丟棄。用于計算最終邊(hu,hv,Luv)取舍的公式為:
Tuv=Score(huwLuv+bLuv)
(3)
通過保留有效邊,得到含有句法信息的隱藏v節(jié)點表示hv_side:
(4)
(5)
(6)
將所有的邊信息和BERT輸出連接生成新的序列表達(dá)hGcn_s。
隨著基于Span的實體關(guān)系抽取方法被提出,極大提升了過往基于BIO/BILOU標(biāo)簽方法[22]對重疊實體提取的效果。如在“food poisoning”中識別出“food”。基于Span的方法:任意標(biāo)記的子序列(Span)都作為潛在的實體,例如:“Jones was diagnosed with food poisoning”中{“Jones”,“Joneswas”,…,“food”,“food poisoning”}等均可以作為潛在實體。通過Span selector得出相應(yīng)的實體?;赟pan的實體獲取流程如圖2所示。
圖2 基于Span實體獲取流程
1.3.1 Span表示
使用融合函數(shù)g生成候選Span表達(dá)式。且在已有研究上發(fā)現(xiàn)最大池化的效果最好。
(7)
根據(jù)前人研究,連接標(biāo)記C(cls,表達(dá)上下文語義信息)對實體類型表達(dá)具有強(qiáng)有力的作用。因此,融入標(biāo)記C。表達(dá)式如下:
Xs=E(s)°C
(8)
其中,Xs作為Span的最終表達(dá),°表示連接符號。
1.3.2 Span分類器
將得到的Span表達(dá)輸入到softmax分類器中,得到相應(yīng)的實體類型。
ECs=softmax(Xs)
(9)
其中,ECs表示實體類型得分。
將構(gòu)成實體的Spans連接,表達(dá)相應(yīng)的實體集合:
(10)
然后將增強(qiáng)依賴性的上下文語句信息與實體信息進(jìn)行連接,作為解碼部分的輸入。
hconcat=[X;hGcn_s]
(11)
深度多叉解碼樹一改以往單解碼的方式,運(yùn)用多解碼的方式更好地解決了單解碼帶來的模型容易記憶和過度擬合訓(xùn)練集中頻繁出現(xiàn)的三元組順序的問題。通過并行解碼三元組(Triad),很好地解決了三元組執(zhí)行順序問題。例如:“Qian Xuesen was born in Shang hai,and graduated from Massachusetts nstitute of Technology andCalifornia Institute of Technology.”。如果解碼時三元組的執(zhí)行順序為{Triad1,Triad2,Triad3}(單解碼執(zhí)行順序如圖3所示)。但是{Triad2,Triad1,Triad3}{Triad2,Triad3,Triad1}也是正確的。然而對于單解碼情況下只能執(zhí)行其中一種順序。并且對于單解碼情況,若出現(xiàn)如{Triad2,Triad3}這種順序的數(shù)據(jù),由于訓(xùn)練出來的模型將會高度擬合{Triad1,Triad2,Triad3}這種順序,從而直接由Triad3結(jié)束,進(jìn)而忽略了Triad1,在后期的應(yīng)用中出現(xiàn)無法擬合三元組1的現(xiàn)象。因而,放棄以往的單解碼的方式,使用多叉解碼樹的方式,解碼關(guān)系三元組順序如圖4所示。
圖3 單解碼關(guān)系強(qiáng)制順序執(zhí)行
圖4 多叉解碼樹關(guān)系執(zhí)行順序
e1=sig(Max(hconcatwe1+be1))
(12)
其中,we1為權(quán)重,be1為偏置,sig為sigmoid函數(shù)。
Possiblere=Sig(hconcatwr+br)
(13)
Possiblers=Sig(hconcatwr+br)
(14)
其中,wr為權(quán)重,br為偏置。
對于實體2解碼層與實體1類似,在整個序列上預(yù)測實體1和關(guān)系R對應(yīng)的實體2,最終得到構(gòu)成的三元組。
e2=Sig(Max(hconcatwe2+be2))
(15)
其中,we2為權(quán)重,be2為偏置。
損失函數(shù)作為評價模型輸出值(預(yù)測值)與真實目標(biāo)的相似程度。因此,選擇合適的損失函數(shù)對模型的性能來說至關(guān)重要,不同的模型損失函數(shù)一般也不一樣。通過對比多個損失函數(shù)的,該模型最終使用Hinge損失函數(shù),它的標(biāo)準(zhǔn)形式如下所示:
L(y,f(x))=max(0,1-yf(x))
(16)
其中,f(x)是預(yù)測值,Hinge損失函數(shù)的特點:使用Hinge損失函數(shù)如果被分類正確,損失為0,否則損失為1-yf(x);f(x)在-1到1之間,使得分類器并不過度打分,讓某個正確分類的樣本距離分割線超過1并不會有任何獎勵,從而使得分類器更加專注于整體的誤差,y是目標(biāo)值(-1或1);具有較高的健壯性。
該模型使用的Hinge損失函數(shù)為MultiMarginLoss,公式如下:
Loss(x,y)=
(17)
其中,x為神經(jīng)網(wǎng)絡(luò)的輸出,y是真實的類別標(biāo)簽,w為每一類可傳入相應(yīng)的權(quán)值,margin默認(rèn)為1。
為了測試該模型的性能,使用實體關(guān)系抽取領(lǐng)域公開數(shù)據(jù)集CoNLL04、ADE進(jìn)行實驗。CoNLL04數(shù)據(jù)集包含了從新聞中提取出來的帶有注釋的命名實體和關(guān)系的句子。其包含LOC、ORG、PER、OTHERS四種實體類型和Located in、Work for、Organization based in、Live in、Kill五種關(guān)系。ADE數(shù)據(jù)集包含了從醫(yī)學(xué)報告中提取出的4 272個句子和6 281個關(guān)系。它包含了一種單一的關(guān)系A(chǔ)dverse Effect和兩種實體類型Adverse Effect、Drug。
實驗采用Pytorch框架,使用谷歌云盤和谷歌Colab作為實驗環(huán)境,使用Python編程語言。
在模型訓(xùn)練過程中,將batch_size設(shè)置為32;根據(jù)數(shù)據(jù)集合理設(shè)置語句的長度(max_length);根據(jù)日常訓(xùn)練過程中損失函數(shù)的收斂情況,設(shè)置失活率(drop out)和學(xué)習(xí)率(learning rate)分別為0.1、1e-4;設(shè)置hidden_size為768。使用Multi-MarginLoss損失函數(shù)和Adam(Adaptive Moment Estimation)算法優(yōu)化模型參數(shù)。
將所提模型與目前該領(lǐng)域主流基線模型進(jìn)行比較。其中用于比較的模型如下:
(1)Global Optimization[23]:將雙向 LSTM和全局優(yōu)化結(jié)合在一起,命名實體識別和關(guān)系抽取同時進(jìn)行。
(2)Multi-turn QA[24]:將實體關(guān)系抽取任務(wù)轉(zhuǎn)換為多問答任務(wù),即將實體和關(guān)系的提取轉(zhuǎn)換為從上下文識別答案跨度的任務(wù)。
(3)Multi-head+AT[25]:將對抗訓(xùn)練應(yīng)用到聯(lián)合實體關(guān)系抽取模型當(dāng)中。
(4)Relation-Metric[26]:結(jié)合CNN(卷積神經(jīng)網(wǎng)絡(luò))和metric learning(度量學(xué)習(xí))的思想應(yīng)用到端到端的關(guān)系抽取任務(wù)中。
(5)Biaffine Attention[27]:提出了一種端到端神經(jīng)網(wǎng)絡(luò)的抽取模型。其采用BiLSTM-CRF體系結(jié)構(gòu)進(jìn)行實體識別,使用雙注意力機(jī)制的關(guān)系分類。
(6)Replicating Multihead with AT[28]:使用CRF將實體識別和關(guān)系抽取任務(wù)建模為多頭選擇任務(wù)。
(7)SpERT[29]:一種基于預(yù)訓(xùn)練模型BERT和Spaner的實體關(guān)系聯(lián)合抽取模型,是一種和文中同樣使用BERT和Span方法的關(guān)系抽取模型,但相對于文中模型未使用依賴增強(qiáng)和多叉解碼方法。
其中Multi-head+AT、Biaffine Attention、RMWA模型使用不同的RNN-CRF方法進(jìn)行關(guān)系抽取;SpERT使用基于BERT和Span的方法進(jìn)行關(guān)系抽取;模型Global Optimization、Multi-turn QA、RelationMetric使用關(guān)系抽取的其他方法進(jìn)行關(guān)系抽取。
為了評估文中模型的優(yōu)劣性,實驗結(jié)果主要采用準(zhǔn)確率P(precision)、召回率R(recall)以及F1進(jìn)行評估。其中計算準(zhǔn)確率、召回率、F1值之前,首先要得到TP(預(yù)測為真且實際正確的樣本數(shù))、FN(預(yù)測為假且實際正確的樣本數(shù))、FP(預(yù)測為真且實際為假的樣本數(shù))、TN(預(yù)測為假且實際為假的樣本數(shù))。然后進(jìn)行如下計算:
(18)
(19)
(20)
為了更好地展現(xiàn)文中模型的效果,在數(shù)據(jù)集CoNLL04、ADE上進(jìn)行了對比實驗和消融實驗。
2.4.1 模型對比實驗分析
文中模型以BERT模型作為詞編碼層,基于Span的方式獲取實體信息,并通過GCN增強(qiáng)詞與詞之間的依賴性,最后運(yùn)用深度為多叉解碼樹對實體關(guān)系三元組進(jìn)行解碼,得到實體與對應(yīng)的關(guān)系。損失函數(shù)值與訓(xùn)練次數(shù)如圖5所示,可以直觀地看到,隨著訓(xùn)練次數(shù)的增加,模型的loss逐漸減少,當(dāng)loss值分別為0.3、0.28左右時,模型在CoNLL04、ADE數(shù)據(jù)集上趨于收斂。
圖5 損失函數(shù)值與訓(xùn)練次數(shù)變化
圖6展示的為文中模型、Global Optimization模型、SpERT模型在數(shù)據(jù)集CoNLL04與ADE上F1值隨著訓(xùn)練次數(shù)增加的變化曲線??梢钥吹?在CoNLL04數(shù)據(jù)集上Global Optimization模型的最優(yōu)F1值明顯小于文中模型和SpERT,由此說明了基于預(yù)訓(xùn)練模型和Span方法的優(yōu)越性。在數(shù)據(jù)集CoNLL04、ADE上,對于SpERT模型,雖然也取得了不錯的效果,但相比文中模型F1值分別低了3.13百分點、1.54百分點,由此可見文中模型使用依賴增強(qiáng)和多叉解碼樹的優(yōu)越性。
圖6 文中模型、Global Optimization、SpERT 模型的F1與迭代次數(shù)變化
由表1中的實驗結(jié)果對比可知,在Co-NLL04數(shù)據(jù)集上,文中模型相比Multi-head+AT、Biaffine Attention、RMWA等RNN-CRF類型網(wǎng)絡(luò)模型的F1值分別高出12.57百分點、10.2百分點、12.72百分點,說明使用預(yù)訓(xùn)練模型和Span方法要明顯優(yōu)于使用RNN-CRF方法的模型。通過文中模型與Global Optimization、Multi-turn QA、RelationMetric等其他關(guān)系抽取方法對比結(jié)果可知,文中模型在CoN-LL04數(shù)據(jù)集上效果要比以上三種模型分別高出6.7百分點、5.7百分點、12.56百分點,在數(shù)據(jù)集ADE上文中模型也要比Multi-turn QA、Rel-ationMetric模型分別高出5.18百分點和3.14百分點,由此也說明了即使在一些優(yōu)化方法的作用下,文中模型依然具有相當(dāng)大的優(yōu)勢。根據(jù)文中模型與SpERT模型的實驗結(jié)果對比可以看出,文中模型使用GCN增強(qiáng)依賴性下的多叉解碼樹方法的提取效果在CoNLL04、ADE數(shù)據(jù)集上要比SpERT模型高出3.14百分點、1.46百分點(GCN、多叉解碼樹各自優(yōu)勢見消融實驗)。由此可見,文中模型具有極好的優(yōu)越性。
表1 實體關(guān)系抽取對比實驗結(jié)果
文中模型性能較優(yōu)主要因為使用實體提取能力更強(qiáng)的Span方法和更具優(yōu)越性的多叉解碼方法,以及使用了綜合特征能力提取更強(qiáng)的預(yù)訓(xùn)練模型和GCN進(jìn)行詞與詞之間依賴增強(qiáng)。
2.4.2 消融實驗與分析
為了驗證提出的多叉解碼樹和使用GCN融入依賴特征的效果,做了以下消融實驗:
(1)Baseline(SpERT):不使用多叉解碼樹和GCN,使用單解碼的方式也即模型SpERT的效果。
(2)Self-GCN:文中模型只進(jìn)行依賴增強(qiáng)但仍使用單解碼的方式。
(3)Self-DMFDT:不融入依賴增強(qiáng)信息,將單解碼換為多叉解碼樹進(jìn)行解碼。
(4)Self-GCN-DMFDT(文中模型):將2中的單解碼的方式換為多叉解碼樹的方式。
從表2可見,在CoNLL04、ADE數(shù)據(jù)集上,Self-GCN相比于Baseline (SpERT)模型分別提升1.06百分點和0.09百分點,由此證明了通過GCN進(jìn)行詞與詞之間的依賴增強(qiáng),模型的性能可以得到一定的提升。而Self-DMFDT相比于Baseline(SpERT)模型的實驗結(jié)果證明,通過使用多叉解碼樹進(jìn)行并行解碼在兩種數(shù)據(jù)集上可以使模型性能提升1.88百分點、0.9百分點,由此也證明了多叉解碼樹的優(yōu)越性。對于融合了兩種方法的模型也即文中模型相比Baseline (SpERT)在兩種數(shù)據(jù)集上達(dá)到了3.13%和1.54%。由此證明使用依賴增強(qiáng)和多叉解碼方法對模型的效果有一個不錯的提升。
表2 消融實驗結(jié)果
該文提出一種基于Span方法和深度多叉解碼樹的實體關(guān)系抽取模型。該模型通過利用句法依賴信息提升下游實體識別和關(guān)系抽取的效果。下游任務(wù)中基于Span方法更好地獲取重疊實體的同時,使用多叉解碼樹成功地避免了單解碼的執(zhí)行順序問題。實驗結(jié)果表明,該方法在CoNLL04、ADE數(shù)據(jù)集上明顯比先前方法優(yōu)越。