任鵬程,于 強,侯召祥
(中國石油大學(華東)計算機與技術科學學院,青島 266580)
信息抽取是從自然語言中提取出特定需求信息的過程,例如從醫療文檔中提取疾病名稱,疾病原因、藥物名稱信息,或者從新聞文本中提取時間、地點、人物信息等,從而對文本數據進行分類、提取、重構.其中關鍵任務之一就是提取形為SPO (Subject,Prediction,Object)的實體關系三元組,從而將無結構數據轉換為結構化的可用形式.
傳統上實體關系抽取使用Pipeline 方式,即首先通過命名實體識別模型提取實體,然后對提取的實體進行關系分類.Pipeline 形式簡單、操作靈活,但是任務的級聯特性會導致模型誤差的累積,命名實體識別模型的錯誤預測會傳播到關系抽取模型,影響關系分類任務的性能.同時在關系分類任務前,需要對命名實體識別的結果進行實體對的兩兩配對,如果匹配的實體對本身不存在關系則產生“噪聲”,引起模型錯誤率及計算復雜度的增加.聯合抽取即將命名實體識別模型和關系分類模型合并為一個模型進行統一建模,考慮兩個任務之前潛在關聯,以此削弱級聯誤差傳播影響,文本中所有實體、實體與關系、關系與關系的交互信息學習的越多,聯合模型的效果就會越好.
關系抽取還面臨重疊關系的挑戰,即實體間存在多種對應方式,一對多或者多對多等情況,例如“Quebec,Canada’s second most populous province,after Ontario,has not decided to go that far.”,包含3 個實體關系三元組 (Ontario,country,Canada)、(Canada,Contains,Ontario)以及(Canada,administrative_divisions,Ontario),其中(Canada,Ontario)實體對對應兩個關系,預測時就會面臨只預測出一種關系的情況.重疊關系的問題在基于知識庫的抽取方式中相對容易解決,但是通過模型進行聯合抽取依舊面臨挑戰.
語句的依存分析是NLP 中處理文本的關鍵技術之一,其目標是確定句子的句法結構和各單詞間的依存關系.圖神經網絡是圖結構數據建模的有效模型,圖注意力網絡(Graph Attention Network,GAT)[1]是一種空域圖神經網絡,適用于動態圖的處理,有利于將頂點特征之間的關聯性更好得融合進模型.
為優化傳統Pipline 方式并實現高效的實體關系聯合抽取模型,本文綜合依存分析和圖注意力網絡特性建立依存約束的圖注意力網絡DCGAT (Graph Attention Network with Dependency Constraints)聯合抽取模型.將句法結構拓撲到句子中各個單詞間的內在聯系,通過圖注意力網絡進行約束依賴的學習,并采用自注意力機制進行單詞底層特征學習,實現實體與關系的聯合抽取.
本文主要貢獻為以下3 個方面:
1)通過對句子中各字詞的依存分析動態建立依存分析圖,圖頂點表示文本中的單詞,圖的邊表示各單詞間的依賴關系,建模句子中所有實體、實體與關系、關系與關系間的依賴,形成依存約束.
2)提出一種端到端的實體關系聯合抽取模型DCGAT,通過多頭自注意力機制學習單詞多層次表示,通過圖注意力網絡融合依存約束矩陣進行句法依存圖節點的權重計算,動態學習實體關系的特征表示,實現實體與關系的聯合抽取.
3)將依存分析與圖注意力網絡進行結合,深入學習單詞特征表示,充分考慮句子中各個單詞依賴關系,顯著提升關系預測的Recall,從而改善重疊關系的預測.
在公共關系抽取NTY 數據集上進行多次實驗,實驗結果表明,本文提出的方法顯著提升了模型的預測效果.
現有的實體關系聯合抽取模型中,實體與關系的抽取順序依據模型特點各有差異.Miwa和Bansal[2]提出BiLSTM-TreeLSTM 模型進行實體和關系的共同建模,模型通過Bi-LSTM 學習的字詞特征由實體標記器和最短依賴路徑關系分類器共享,但是模型在抽取關系時需通過Pipeline 傳遞標記器抽取的實體,形成實體對再抽取關系,并且未解決關系重疊問題.Dixit 等[3]提出片段排列的方式解決實體重疊問題,模型在Span范圍內通過注意力機制與原始LSTM 編碼進行特征學習,然后將所有的實體Span 并行輸入Softmax 進行關系解碼,不過模型計算復雜度極高,關系解碼時也存在冗余發生.Bekoulis 等[4]提出多頭選擇機制,將關系抽取當作多頭選擇任務執行,該機制提高了多重關系的抽取能力,實體抽取則通過CRF 進行線性建模,所以模型對于被其他實體或者非實體詞間隔的實體無法進行處理.
不同于上述模型先實體后關系的抽取順序,Zeng等[5]提出一種聯合抽取的Seq2Seq 框架和Copy 機制,依次抽取關系、頭實體和尾實體.文獻中使用Bi-LSTM進行句子編碼,使用LSTM 解碼關系并從文本中復制兩個單詞進行三元組動態解碼.然而,模型在復制實體時忽略了多個單詞構成的實體組合情況.Katiyar 與Cardie[6]提出一種同時抽取實體與關系的指針網絡,識別出當前位置的實體之后進行前向回溯,查詢已識別實體并計算注意力得分并進行關系分類,但查詢回溯只能判斷已知實體,存在實體遺漏問題.
此外,Li 等[7]放棄三元組抽取結構,將實體關系抽取問題轉換為多輪對話問題,將各實體和關系通過人工問答模板進行重構,并應用強化學習優化多輪對話懲罰獎勵實現聯合抽取,然而通常情況下問答模板的重構編碼需要更高的時間復雜度.
依存分析任務的方式一般有3 種:基于規則的方法,基于統計的方法和基于深度學習的方法.目前多數工作將依存分析作為其他任務的子任務來進行.Jia 等[8]在他們的研究工作中提出了一種基于依存語義范式(DSNFs)的無監督中文開放式關系抽取模型,在不考慮實體關系位置因素的情況下通過提取動名詞之間的關系來實現關系識別.
自從圖神經網絡發展起來以后,其在自然語言處理方面的研究多樣化.Zhang 等[9]利用GCN 編碼依存樹信息,并提出path-centric pruning 方法對依存樹中無關path 進行剪枝,優化實體、關系冗余問題.Zhu 等[10]提出具有生成參數的圖神經網絡進行關系抽取,使GNN能夠處理非結構化文本輸入上的關系推理.Fu 等[11]的研究工作中將實體關系的聯合抽取分成兩階段,第一階段通過Bi-LSTM和GCN 對文本字詞和依賴特征進行學習,抽取普通三元組,第二階段重構隱狀態輸出為全連接圖,通過加權GCN 模型實現重疊關系的再次學習,但其使用Bi-LSTM 進行特征抽取,提取效益相較自注意力機制不足.文本語句的依存分析圖天然是一種動態的圖結構,相比GCN的研究工作[9-13],GAT 自身更適用于動態圖的任務,例如許晶航等[14]的工作中將GAT 應用于因果關系的抽取.
注意力機制最早應用于圖像領域,Bahdanau 等[15]的工作中將類似Attention的機制應用在機器翻譯任務上,開創了注意力機制在NLP 使用的開端.隨后Google的“Attention is All You Need”[16]工作提出的自注意力機制,相比傳統RNN、CNN 在自然語言處理中的應用效果有極大的提升,Tang 等[17]、凡子威等[18]以及李明揚等[19]的工作也論證了自注意力機制的語義抽取能力的先進性.
本文依托自注意力機制的強大特征學習能力,融合依存分析與圖注意力網絡的結構優勢,編碼依存約束矩陣充分建模文本中實體與關系的相互作用,建立DCGAT 模型實現實體與關系的聯合抽取.
本文提出的DCGAT 模型總體架構如圖1所示,原始文本(original text)編碼成詞向量(word)和位置向量(pos),由多頭自注意力機制(multi self-attention)計算單詞特征與語義特征的注意力得分(score),通過依存分析圖(semantic dependency graph)構建依存約束矩陣(dependency constrain matrix),將約束矩陣應用于圖注意力網絡(GAT)進一步學習句子中各單詞的潛在關系,實現實體與關系的聯合抽取.
模型采用多頭自注意力機制自動學習句子的單詞特征及語義特征,并堆疊N個多頭自注意力塊進行深入編碼.首先將詞向量與位置向量組合嵌入為初始輸入特征,詞向量采用Glove 預訓練詞向量,位置向量由positional encoding 進行編碼,具體方式為采用sine和cosine 函數進行直接計算,

式中,i表示詞向量的位置,pos表示單詞在句子中的位置,dmodel表示詞向量維度.線性變換層映射得到Query、Key、Value 向量,分別由Q、K、V表示:

然后通過Dot-Product Attention 進行權重計算.Dot-Product Attention 計算公式為:

其中,dk為詞向量維度,約束內積值不宜過大.
為保證模型可以在不同的子表示空間學習到不同的空間信息,將注意力機制拓展到多頭計算方式.

通過多頭計算得到句子中單詞和語義表示的注意力得分.
句子的依存分析是對句子各成分進行依賴關系的分析來解釋句法結構,可通過依存分析圖進行可視化.
如圖2所示,對句子進行依存分析,默認創建“Root”,通過“Root”有向弧指向“Beijing”,“capital”和“China”分別有多條指向其他單詞的有向弧,表示“capital”和“China”與其他詞的依賴關系,如圖中顯示的“SCO”、“FEAT”、“mRELA”等.

圖1 DCGAT 總體架構圖

圖2 依存分析圖
根據依存分析圖的結果,構建依存約束矩陣,如圖3所示.矩陣構建的規則為:
1)矩陣維度為句子元素長度,行表示目標節點(單詞),列表示鄰域節點(單詞),矩陣值表示目標節點與鄰域節點的幾何關系,即單詞間的依賴情況,對于輸入的各個句子動態構建約束矩陣.
2)忽略“Root”有向弧,其他句法依存圖中的邊依賴情況在矩陣中相應位置以“1”表示連接關系,無有向弧連接以“0”填充.因重點關注是否有依賴關系,所以不考慮相關依賴關系類型,即依存矩陣中不存儲依存分析圖中的有向弧標簽信息(如“FEAT”等).例如,“capital”與“is”之間存有向弧連接,則矩陣中(capital,is)位置由“1”表示,而“is”沒有指向“capital”的邊存在,則相應位置(is,capital)處賦值為“0”.

圖3 依存約束矩陣
3)對于單詞自身與自身的依賴情況,若依存分析圖中不存在有向弧連接,在構建依存約束矩陣時,分為兩種方式:一是考慮單詞自身約束,矩陣中(wordi,wordi)位置賦值為“1”,二是不考慮自身依賴,對應位置賦值為“0”.
圖注意力網絡是空域圖神經網絡的代表模型,從對應空間結構學習目標節點與鄰域節點的幾何關系.GAT 對輸入圖信息進行注意力計算,對目標節點與鄰域節點計算注意力得分以分配不同的權重,從而提升圖結構中影響較大節點的關注度并降低影響較小節點的關注度.
圖注意力網絡的計算過程分為兩步:第一步計算注意力系數.將多頭自注意力機制提取的單詞特征通過權重矩陣W進行線性映射,將映射后的頂點i與鄰域節點j的特征向量進行拼接(由“||”表示),通過單前饋網絡層f(·)進行轉換,完成目標頂點與其鄰域節點的相似系數eij的計算.

將相似系數通過LeakyReLU(·)非線性函數進行激活,將激活后的矩陣通過依存矩陣進行Mask(·)約束,強化單詞之間依賴關系的影響,并且可以稀疏化矩陣加速運算.最后通過Softmax進行歸一化,完成注意力系數的計算.注意力系數(αij)的計算過程如圖4所示.


圖4 注意力系數計算
第二步計算為注意力系數的聚合.將計算完成的注意力系數進行加權、激活得到頂點特征hi,當前對于每個頂點i都聚合了其依賴特征信息.

為提高模型的健壯性,圖注意力網絡中的注意力計算同樣采用多頭計算的方式,由式(10)將K個互相獨立的注意力系數進行Concat和Average 計算,得到最終的輸出結果.多頭計算過程如圖1中“GAT”部分所示,線條數代表K值,例如圖中表示K=3的多頭計算.

DCGAT 模型整體的訓練損失包括兩部分:命名實體損失losse和關系分類損失lossr.兩者都由分類損失CrossEntropy 函數進行計算,總體損失Lossmodel為命名實體識別損失與關系分類損失之和,二者損失權重系數比為1:1.實體標簽由“BIESO”方法進行標注,損失計算為對應標注的判斷.關系標簽由數據集中所有類別通過LabelEncoder 進行映射,關系損失基于預測的實體對(Subject,Object)進行計算.

模型的Inference 解碼采用閾值方法.將所有單詞對都作為候選分別進行判斷,當模型中的實體、關系類別解碼概率大于閾值時,選取為Inference 結果.閾值可自定義初始化,根據需要進行權衡調整.
模型效果的評估采用標準的F1 分數對預測的三元組SPO 進行判別,Precision代表模型預測效果,Recall代表模型的預測精度,三者計算公式如式(12)~式(14)所示.

實驗數據來自Zeng 等[5]工作中使用的NYT 關系抽取數據集,關系類別數為25 類,其中包括24 種實體關系類型及“None”關系類型.訓練集大小為56 196,驗證集大小為5000,測試集大小為5000.訓練集中部分關系類型數據量如表1所示,樣本格式如圖5所示,包含句子信息“sentText”、關系信息“relationMentions”和實體信息“entityMentions”等實體通過“BIESO”標注法與實體類型組合標注,依存分析通過spaCy[20]獲取依賴關系,并對數據集中的單詞、關系、依賴類型進行向量化編碼.

表1 部分關系類型數據量

圖5 數據集字段
模型詞向量使用預訓練的GloVe(300d)作為固定的詞向量表示,POS 位置向量通過式(1)、式(2)進行編碼,兩者拼接作為每個單詞的最終模型輸入表示.多頭自注意力機制中N設置為3,表示三層多頭自注意力的堆疊,在構建依存約束矩陣時考慮自身依賴,即圖3(a)所示矩陣構建方式,圖注意力網絡中多頭K設置為6.初始學習率設置為5e?5,使用Adam 優化器進行梯度優化.
將DCGAT 模型的效果與以往相關工作[5,11,21]進行了比較,其中Zheng 等[21]的研究提出Tagging Scheme,將命名實體識別的序列標注任務和關系抽取的分類任務合并成了一個序列標注問題,把關系類型集成在序列中一同標注;Zeng 等[5]的工作在Seq2Seq 框架中采用Copy Mechanism,提出OneDecoder和MultiDecoder 模型動態解碼提取關系三元組;Fu 等[11]的工作中GraphRel在兩階段中應用圖卷積神經網絡到關系提取中.對比模型的數據來源于原始論文,抽取結果以三元組SPO表示,當且僅當兩個對應實體的及關系與真實標簽相同則判斷為正確.
由表2各個模型的實體關系抽取效果可以看出,DCGAT 模型的F1-Score相比以往的工作有了明顯的提升.相比以往工作中的最優模型GraphRel-2,DCGAT模型的F1-Score 提升了2.5%,Precision上提升1.2%,Recall改變最大,提升3.9%.源于自注意力機制的強大特征提取能力,以及融合依存關系的圖注意力網絡的約束性學習,模型對于實體邊界及重疊關系的判斷更加準確,使得Recall提升尤其明顯,這也對整體效果F1-Score的提升產生了關鍵性的影響.

表2 模型實體關系抽取效果
(1)約束矩陣構建方式分析
在表2使用的DCGAT 模型中,依存約束矩陣的創建考慮每個單詞的自我約束,這一部分工作中我們對比了不同約束矩陣的構建方式以及無關系約束(即不考慮依存關系,對應關系矩陣全部取值為1,不產生Mask 約束作用)產生的影響及模型效果.另外,將依存圖中的有向邊依賴拓展至無向邊,在只考慮是否連接的情況下構建無向約束矩陣一同進行實驗對比,無向約束矩陣如圖6所示.
由圖7可以看出,考慮自身依賴的約束矩陣的F1-Score整體效果最好,不考慮自身依賴的情況次之,原因是不考慮自身約束的情況下,節點丟失了相應自身信息.對于轉換而成的無向約束矩陣,我們猜測,依賴信息的擴增從而獲得了更多節點特征,使得模型對于實體識別的判斷更加敏感,Precision相比考慮自身依賴的情況還有高出0.002,但是這種擴增信息丟失了有向的依賴指向關系,對于三元組中含有多個關系時弱化了對應差別,所以Recall效果顯著降低.

圖6 無向約束矩陣

圖7 不同約束矩陣模型對比
(2)注意力多頭數分析
為了驗證注意力網絡中多頭的計算方式給模型帶來的影響,實驗分別對比了自注意力多頭N和圖注意力多頭K的不同取值產生的模型效果.N、K分別取值1、3、6,實驗結果如表3所示.

表3 不同多頭取值模型效果
由表3看出,不同的頭取值對于模型的效果都會產生不同的影響.Multi Self-Attention 中N=3 時相對效果最好,GAT 中K=6 時相對效果也最好.實驗結果表明,K、N的最優值屬于一定的范圍,取值較小為1 時模型的注意力的提取能力相對較弱,不同空間的不同特征信息考慮相對不足;取值變大時,可以捕捉到更多位于不同分布空間的特征信息,隨之模型的效果得到提升.但是,K、N取值都取最大為6 時效果不如K=3,N=6的情況,這表明更多的頭也可能帶來信息的冗余.
(3)閾值取值分析
模型解碼階段采用閾值判別方法,實驗對比閾值為0.3 到0.9 之間的不同效果,實驗效果如圖8所示.由圖可以看出,隨著閾值不斷增大,Precision也增大,模型對于實體關系邊界的正確選擇概率擴大,在0.5和0.6 左右取值達到最優,伴隨閾值的繼續增大,模型對于邊界判斷強嚴格,模型的Precision效果隨之降低.

圖8 不同閾值取值對模型效果的影響
對于Recall,隨著閾值的逐漸增加并趨于相對穩定狀態,較大閾值控制模型的判斷準確性,保證句子中應包含的關系被正確識別,相對提升重疊關系的預測效果.閾值法有效地調整了不同閾值選擇下Precision和Recall之間的平衡,保證最終的F1-Score達到最優.
(4)重疊關系分析
我們還實驗對比了DCGAT 模型與文獻[5,11]工作對于重疊關系的預測效果.表4是挑選的兩個典型的句子樣例及真實標簽,其中包含多個重疊關系.

表4 原始句子及真實標簽
表5為3 個模型的實驗對比,后兩者分析結果源于其工作開源的官方代碼,參數默認使用官方設置,文獻[21]中未開源官方代碼暫不進行實驗對比.
由表5的對比結果分析可知,DCGAT 模型的預測效果最好,其對于三元組的預測更加接近真實標簽.在樣例“The bungalows at Fort Aguada,in Goa,India.”中,Copy Mechanism-Multi 模型僅僅預測到兩個關系,“India”與“Goa”同樣具有“contains”關系,卻沒有得到充分學習;GraphRel-2p 引入GCN 及依存樹的關系提升了效果,預測出了“India”與“Goa”的關系,但是未預測到同實體對的“administrative_division”關系類型;本文中的DCGAT 預測效果最好,對于“India”與“Goa”實體對成功預測到“administrative_division”的關系類型.

表5 模型預測結果
本文提出了依存約束的圖注意力網絡實體關系聯合抽取模型(DCGAT),通過多頭自注意力機制學習單詞表示及語義關系,借助語義分析中的依存分析圖構建約束矩陣,并通過圖注意力網絡實現約束矩陣對隱狀態的約束優化,提升模型對于實體、關系單詞特征的捕獲能力并實現了實體關系的聯合抽取.通過公共數據集NYT的實驗論證,DCGAT 模型相比以往工作實現了更優的性能.在以后的工作中,我們會繼續針對DCGAT的抽取性能進行優化,進一步提升預測精度和重疊關系的預測效果.