張 鑫,冼廣銘,梅灝洋,周岑鈺,劉贏方
(華南師范大學 軟件學院,廣東 佛山 528225)
作為自然語言處理領域的一個重要任務,實體關系抽取受到了廣泛的關注和研究。早期,基于規則[1]或本體[2]的實體關系抽取方法過度依賴行業專家進行的大規模的模式匹配規則,在跨領域中可移植性差,極大耗費了人力物力。后來,隨著傳統機器學習的發展,以統計學為基礎的機器學習方法顯著提高了實體關系抽取的召回率和跨領域能力。
近些年,隨著深度學習的發展,實體關系抽取的性能得到了極大的提升[3-5]。自從Hinton G等[6]提出深度學習方法以來,研究人員將深度學習應用到實體關系抽取任務中,取得了相當優異的效果。2012年,Socher R等[7]運用循環神經網絡[8](Recurrent Neural Networks,RNN)進行實體關系抽取,并在該任務中融入了句子特征,然其忽略了位置信息的重要性;Zhang等[9]使用循環神經網絡時雖然引入了位置信息,但循環神經網絡存在遠距離依賴問題;Zeng等[10]首次使用卷積神經網絡(Convolutional Neural Networks,CNN)進行關系抽取,提取出更加豐富的特征,但是由于受到卷積核大小的影響,無法很好地提取出語義特征;李青青等[11]設計一種Attention機制的多任務模型,通過共享信息編碼提升實體關系抽取的性能;李衛疆等[12]使用Bi-RNN解決詞與詞之間的依賴關系,并融入位置、語法、句法和語義信息進行實體關系抽取;Zheng等[13]將BiRNN和CNN模型融合成為聯合抽取模型,通過共享BiLSTM的編碼層,運用LSTM與CNN進行解碼,解決了信息冗余問題,然而都無法很好地解決復雜實體中的實體重疊問題。并且以上所有方法由于使用單解碼模型,都受到單解碼強行執行某種順序而帶來的局限性。
隨著預訓練模型的興起,以往的循環神經網絡和卷積神經網絡等逐漸淡去,新的神經網絡Transf-ormer[14]逐漸受到廣大研究者的青睞。對于Transfo-rmer等預訓練模型,由Tang等[15]實驗結果表明,相較循環、卷積等模型,Transformer在綜合特征提取能力和語義表征能力上有較高提升。而近期,基于Transformer的模型BERT(Bidirectional Encoder Representation from Transformers)[16]憑借其合理的設計,在自然語言處理領域取得了重大突破,同時也備受實體關系抽取研究人員的青睞。其中Wei等[17]和Fan等[18]利用BERT預訓練模型在關系抽取領域取得不錯的效果。
針對實體關系抽取中的依賴信息不足、重疊實體獲取效果低下、解碼順序問題進行研究,主要貢獻為:一是使用GCN融入語句的句法特征,增強相關實體與關系之間的依賴性;二是使用基于span的方法,篩選出對應的實體信息;三是利用深度多叉解碼樹進行解碼操作,最終得到相應的關系三元組。
該文提出的基于Span[19]和DMFDT的實體關系抽取模型主要由四個部分組成,即使用預訓練模型BERT編碼層、基于GCN[20]的句子依賴性增強、基于Span的實體獲取、深度多叉解碼樹抽取關系三元組。模型的實現流程如圖1所示。

圖1 基于Span和深度多叉解碼樹的實體關系抽取模型框架
BERT預訓練模型主要包含輸入層和多層編碼層,其中輸入層由位置編碼(PosEmbedding)和詞編碼(Token Embedding)等組成,并為其添加[CLS]和[SEP]標志位,也正因如此使得BERT具有較強的綜合特征提取能力和語義表征能力。該文使用BERT編碼器提取句子特征,為下游任務提供后續的H(隱藏層向量)。公式如下:
H=BERT(W)
(1)
其中,W={w1,w2,…,wn}為輸入的句子;H=[h1,h2,…,hn]為相應位置詞對應輸出的隱藏層向量。
對于BERT模型輸出的隱藏層向量H,通過融合句法特征可以很好地利用詞與詞之間的依賴信息,然而在過往的實體關系抽取模型中往往忽略實體與關系本身在句法上的聯系。該文綜合前人的研究成果,將可以有效利用句法依賴信息的圖神經網絡(GCN)融入其中,以提高模型的抽取性能。對于給定的句子,使用Stanford CoreNLP工具生成相應的句法依存樹[21],然后使用GCN運行依賴關系圖,將相應的依賴信息融合到編碼中。
1.2.1 使用GCN標記圖
對于依賴關系圖,G=(N,Ed),其中N和Ed表示節點(Node)和它們之間邊(Edges)的集合。將任意的隱藏向量hi(1
(2)
其中,wLuv為權重,bLuv為偏置,F為非線性激活函數。
1.2.2 邊處理
在生成的圖中,可能會存在錯誤的邊需要丟棄。因此,需要對生成的每一條邊進行打分。通過打分,高分的邊得到保留,低分的邊被丟棄。用于計算最終邊(hu,hv,Luv)取舍的公式為:
Tuv=Score(huwLuv+bLuv)
(3)

通過保留有效邊,得到含有句法信息的隱藏v節點表示hv_side:
(4)

(5)

(6)
將所有的邊信息和BERT輸出連接生成新的序列表達hGcn_s。
隨著基于Span的實體關系抽取方法被提出,極大提升了過往基于BIO/BILOU標簽方法[22]對重疊實體提取的效果。如在“food poisoning”中識別出“food”?;赟pan的方法:任意標記的子序列(Span)都作為潛在的實體,例如:“Jones was diagnosed with food poisoning”中{“Jones”,“Joneswas”,…,“food”,“food poisoning”}等均可以作為潛在實體。通過Span selector得出相應的實體。基于Span的實體獲取流程如圖2所示。

圖2 基于Span實體獲取流程
1.3.1 Span表示

使用融合函數g生成候選Span表達式。且在已有研究上發現最大池化的效果最好。
(7)
根據前人研究,連接標記C(cls,表達上下文語義信息)對實體類型表達具有強有力的作用。因此,融入標記C。表達式如下:
Xs=E(s)°C
(8)
其中,Xs作為Span的最終表達,°表示連接符號。
1.3.2 Span分類器
將得到的Span表達輸入到softmax分類器中,得到相應的實體類型。
ECs=softmax(Xs)
(9)
其中,ECs表示實體類型得分。

將構成實體的Spans連接,表達相應的實體集合:
(10)
然后將增強依賴性的上下文語句信息與實體信息進行連接,作為解碼部分的輸入。
hconcat=[X;hGcn_s]
(11)
深度多叉解碼樹一改以往單解碼的方式,運用多解碼的方式更好地解決了單解碼帶來的模型容易記憶和過度擬合訓練集中頻繁出現的三元組順序的問題。通過并行解碼三元組(Triad),很好地解決了三元組執行順序問題。例如:“Qian Xuesen was born in Shang hai,and graduated from Massachusetts nstitute of Technology andCalifornia Institute of Technology.”。如果解碼時三元組的執行順序為{Triad1,Triad2,Triad3}(單解碼執行順序如圖3所示)。但是{Triad2,Triad1,Triad3}{Triad2,Triad3,Triad1}也是正確的。然而對于單解碼情況下只能執行其中一種順序。并且對于單解碼情況,若出現如{Triad2,Triad3}這種順序的數據,由于訓練出來的模型將會高度擬合{Triad1,Triad2,Triad3}這種順序,從而直接由Triad3結束,進而忽略了Triad1,在后期的應用中出現無法擬合三元組1的現象。因而,放棄以往的單解碼的方式,使用多叉解碼樹的方式,解碼關系三元組順序如圖4所示。

圖3 單解碼關系強制順序執行


圖4 多叉解碼樹關系執行順序
e1=sig(Max(hconcatwe1+be1))
(12)
其中,we1為權重,be1為偏置,sig為sigmoid函數。
Possiblere=Sig(hconcatwr+br)
(13)
Possiblers=Sig(hconcatwr+br)
(14)
其中,wr為權重,br為偏置。
對于實體2解碼層與實體1類似,在整個序列上預測實體1和關系R對應的實體2,最終得到構成的三元組。
e2=Sig(Max(hconcatwe2+be2))
(15)
其中,we2為權重,be2為偏置。
損失函數作為評價模型輸出值(預測值)與真實目標的相似程度。因此,選擇合適的損失函數對模型的性能來說至關重要,不同的模型損失函數一般也不一樣。通過對比多個損失函數的,該模型最終使用Hinge損失函數,它的標準形式如下所示:
L(y,f(x))=max(0,1-yf(x))
(16)
其中,f(x)是預測值,Hinge損失函數的特點:使用Hinge損失函數如果被分類正確,損失為0,否則損失為1-yf(x);f(x)在-1到1之間,使得分類器并不過度打分,讓某個正確分類的樣本距離分割線超過1并不會有任何獎勵,從而使得分類器更加專注于整體的誤差,y是目標值(-1或1);具有較高的健壯性。
該模型使用的Hinge損失函數為MultiMarginLoss,公式如下:
Loss(x,y)=
(17)
其中,x為神經網絡的輸出,y是真實的類別標簽,w為每一類可傳入相應的權值,margin默認為1。
為了測試該模型的性能,使用實體關系抽取領域公開數據集CoNLL04、ADE進行實驗。CoNLL04數據集包含了從新聞中提取出來的帶有注釋的命名實體和關系的句子。其包含LOC、ORG、PER、OTHERS四種實體類型和Located in、Work for、Organization based in、Live in、Kill五種關系。ADE數據集包含了從醫學報告中提取出的4 272個句子和6 281個關系。它包含了一種單一的關系Adverse Effect和兩種實體類型Adverse Effect、Drug。
實驗采用Pytorch框架,使用谷歌云盤和谷歌Colab作為實驗環境,使用Python編程語言。
在模型訓練過程中,將batch_size設置為32;根據數據集合理設置語句的長度(max_length);根據日常訓練過程中損失函數的收斂情況,設置失活率(drop out)和學習率(learning rate)分別為0.1、1e-4;設置hidden_size為768。使用Multi-MarginLoss損失函數和Adam(Adaptive Moment Estimation)算法優化模型參數。
將所提模型與目前該領域主流基線模型進行比較。其中用于比較的模型如下:
(1)Global Optimization[23]:將雙向 LSTM和全局優化結合在一起,命名實體識別和關系抽取同時進行。
(2)Multi-turn QA[24]:將實體關系抽取任務轉換為多問答任務,即將實體和關系的提取轉換為從上下文識別答案跨度的任務。
(3)Multi-head+AT[25]:將對抗訓練應用到聯合實體關系抽取模型當中。
(4)Relation-Metric[26]:結合CNN(卷積神經網絡)和metric learning(度量學習)的思想應用到端到端的關系抽取任務中。
(5)Biaffine Attention[27]:提出了一種端到端神經網絡的抽取模型。其采用BiLSTM-CRF體系結構進行實體識別,使用雙注意力機制的關系分類。
(6)Replicating Multihead with AT[28]:使用CRF將實體識別和關系抽取任務建模為多頭選擇任務。
(7)SpERT[29]:一種基于預訓練模型BERT和Spaner的實體關系聯合抽取模型,是一種和文中同樣使用BERT和Span方法的關系抽取模型,但相對于文中模型未使用依賴增強和多叉解碼方法。
其中Multi-head+AT、Biaffine Attention、RMWA模型使用不同的RNN-CRF方法進行關系抽取;SpERT使用基于BERT和Span的方法進行關系抽取;模型Global Optimization、Multi-turn QA、RelationMetric使用關系抽取的其他方法進行關系抽取。
為了評估文中模型的優劣性,實驗結果主要采用準確率P(precision)、召回率R(recall)以及F1進行評估。其中計算準確率、召回率、F1值之前,首先要得到TP(預測為真且實際正確的樣本數)、FN(預測為假且實際正確的樣本數)、FP(預測為真且實際為假的樣本數)、TN(預測為假且實際為假的樣本數)。然后進行如下計算:

(18)
(19)

(20)
為了更好地展現文中模型的效果,在數據集CoNLL04、ADE上進行了對比實驗和消融實驗。
2.4.1 模型對比實驗分析
文中模型以BERT模型作為詞編碼層,基于Span的方式獲取實體信息,并通過GCN增強詞與詞之間的依賴性,最后運用深度為多叉解碼樹對實體關系三元組進行解碼,得到實體與對應的關系。損失函數值與訓練次數如圖5所示,可以直觀地看到,隨著訓練次數的增加,模型的loss逐漸減少,當loss值分別為0.3、0.28左右時,模型在CoNLL04、ADE數據集上趨于收斂。

圖5 損失函數值與訓練次數變化
圖6展示的為文中模型、Global Optimization模型、SpERT模型在數據集CoNLL04與ADE上F1值隨著訓練次數增加的變化曲線??梢钥吹?在CoNLL04數據集上Global Optimization模型的最優F1值明顯小于文中模型和SpERT,由此說明了基于預訓練模型和Span方法的優越性。在數據集CoNLL04、ADE上,對于SpERT模型,雖然也取得了不錯的效果,但相比文中模型F1值分別低了3.13百分點、1.54百分點,由此可見文中模型使用依賴增強和多叉解碼樹的優越性。

圖6 文中模型、Global Optimization、SpERT 模型的F1與迭代次數變化
由表1中的實驗結果對比可知,在Co-NLL04數據集上,文中模型相比Multi-head+AT、Biaffine Attention、RMWA等RNN-CRF類型網絡模型的F1值分別高出12.57百分點、10.2百分點、12.72百分點,說明使用預訓練模型和Span方法要明顯優于使用RNN-CRF方法的模型。通過文中模型與Global Optimization、Multi-turn QA、RelationMetric等其他關系抽取方法對比結果可知,文中模型在CoN-LL04數據集上效果要比以上三種模型分別高出6.7百分點、5.7百分點、12.56百分點,在數據集ADE上文中模型也要比Multi-turn QA、Rel-ationMetric模型分別高出5.18百分點和3.14百分點,由此也說明了即使在一些優化方法的作用下,文中模型依然具有相當大的優勢。根據文中模型與SpERT模型的實驗結果對比可以看出,文中模型使用GCN增強依賴性下的多叉解碼樹方法的提取效果在CoNLL04、ADE數據集上要比SpERT模型高出3.14百分點、1.46百分點(GCN、多叉解碼樹各自優勢見消融實驗)。由此可見,文中模型具有極好的優越性。

表1 實體關系抽取對比實驗結果
文中模型性能較優主要因為使用實體提取能力更強的Span方法和更具優越性的多叉解碼方法,以及使用了綜合特征能力提取更強的預訓練模型和GCN進行詞與詞之間依賴增強。
2.4.2 消融實驗與分析
為了驗證提出的多叉解碼樹和使用GCN融入依賴特征的效果,做了以下消融實驗:
(1)Baseline(SpERT):不使用多叉解碼樹和GCN,使用單解碼的方式也即模型SpERT的效果。
(2)Self-GCN:文中模型只進行依賴增強但仍使用單解碼的方式。
(3)Self-DMFDT:不融入依賴增強信息,將單解碼換為多叉解碼樹進行解碼。
(4)Self-GCN-DMFDT(文中模型):將2中的單解碼的方式換為多叉解碼樹的方式。
從表2可見,在CoNLL04、ADE數據集上,Self-GCN相比于Baseline (SpERT)模型分別提升1.06百分點和0.09百分點,由此證明了通過GCN進行詞與詞之間的依賴增強,模型的性能可以得到一定的提升。而Self-DMFDT相比于Baseline(SpERT)模型的實驗結果證明,通過使用多叉解碼樹進行并行解碼在兩種數據集上可以使模型性能提升1.88百分點、0.9百分點,由此也證明了多叉解碼樹的優越性。對于融合了兩種方法的模型也即文中模型相比Baseline (SpERT)在兩種數據集上達到了3.13%和1.54%。由此證明使用依賴增強和多叉解碼方法對模型的效果有一個不錯的提升。

表2 消融實驗結果
該文提出一種基于Span方法和深度多叉解碼樹的實體關系抽取模型。該模型通過利用句法依賴信息提升下游實體識別和關系抽取的效果。下游任務中基于Span方法更好地獲取重疊實體的同時,使用多叉解碼樹成功地避免了單解碼的執行順序問題。實驗結果表明,該方法在CoNLL04、ADE數據集上明顯比先前方法優越。