2020實體關系聯合抽取一片紅海,各種SOTA方法你方唱罷我方登場,在一些數據集上也是不斷刷出新高度,為信息抽取領域帶來了新思路,推動了信息抽取領域的發展。本文梳理了實體關系聯合抽取取得SOTA的三種方法,以做總結。
先總體對三種方法做個比較:*表示Exact Matching
以下將對上面提到的三篇文章依次進行詳細解讀。
CasRel
論文:A Novel Cascade Binary Tagging Framework for Relational Triple Extraction
地址:https://arxiv.org/abs/1909.03227
arxiv訪問不方便的同學后臺回復『0016』直接獲取
2019年的時候看到蘇劍林在paperweekly上的一篇文章,闡述了其在參加百度SPO競賽中所使用的方法,這篇論文可以認為是之前所提方法的延伸。
論文提出級聯二分標記框架CasRel方法(a novel cascade binary tagging framework),與以往把關系看著離散標簽不同,這里把關系看著是一個函數fr(sub)->obj,頭實體sub是自變量,尾實體obj是因變量,先抽取出頭實體,然后結合各關系類型,進一步抽取出對應的尾實體。該方法可以解決實體關系中的EPO/SEO實體重疊問題。結合模型框架圖更好理解:
CasRel模型可以分兩部分理解:
編碼部分:采用Bert進行編碼,輸入subword embedding + position embedding
Cascade解碼(級聯解碼):先對subject實體進行抽?。╯ubject tagger),然后對每一種關系,進一步去抽取該關系下subject所對應的object實體(relation-specific object tagger)。
subject實體抽?。褐苯釉贐ert編碼后進行span解碼,得到實體的start和end位置,如圖示,對每個token位置做二分類,判斷是否為start位,或者是否為end位。注意:在解碼的時候,start和end配對可以采用就近原則得到實體
特定關系下的object實體抽?。航Y合上圖示,obj實體解碼類似于sub的解碼,需要注意兩點:一是對每種關系都要做obj解碼,二是obj的解碼中引入了上一步中所得到的sub實體的信息Vsub,Vsub是對sub實體中各token向量求平均。當start_o和end_o經過二分判斷都為0時,表示該關系下沒有對應的obj實體,也即該sub為頭實體時不存在這個關系的三元組。
優化目標及模型損失函數:目標是最大化三元組抽取概率,sub和obj的抽取都是采用span方式,可采用二分交叉熵計算loss。優化目標公式如下:
實驗結果
在NYT和WebNLG兩個數據集上達到了SOTA,如下圖所示,即使不使用Bert進行編碼(使用LSTM)效果依然是十分顯著的。實驗同時對比了句子中不同三元組數目下的結果,以及Normal、EPO和SEO三種情況下的結果,實驗顯示CasRel方法在多三元組、EPO和SEO情況下效果提升更明顯。
總結:
級聯兩個任務,兩個任務獨立解碼,共享編碼,這種模型架構也可以算到多任務學習的范疇,模型先抽取出sub實體,再在各個relation下去抽sub實體對應的obj實體,把relation看成函數,模型整體架構很清晰,特別是在relation緯度上做堆疊,打開了關系抽取的新思路。
TPLinker
論文:TPLinker: Single-stage Joint Extraction of Entities and Relations Through Token Pair Linking
地址:https://arxiv.org/abs/2010.13415
arxiv訪問不方便的同學后臺回復『0017』直接獲取
這篇文章提出TPLinker方法(Token Pair Linking)能夠end2end對實體及實體關系三元組進行聯合抽取,可解決實體關系抽取中的SEO、EPO、實體嵌套等問題。其設計了一種很巧妙的數據標注方式,被稱為Handshaking tagging scheme,這種標注統一了實體及實體關系的信息,同時避免了以往其他方法中普遍存在的標簽曝光偏差問題(exposure bias)(訓練階段標簽使用ground true,推斷階段標簽使用predict tag)。
Handshaking tagging scheme:個人感覺文中所給圖示(下圖)其實不太好理解,從具體例子出發會更方便理解的。
為長度為n的句子,構造nxn的矩陣M,行、列分別對應著句子中的token,針對句子中的實體及實體關系設計三種標注方式:
entity head to entity tail (EH-to-ET):對每個實體,將它的頭token(行)對應的尾token(列)位置標記為1,反應在M的上三角上,如所給例子實體:New York City ==> M(New, City) = 1, De Blasio ==> M(De, Blasio) =1,上圖中紫色背景。
subject head to object head (SH-to-OH):對每個關系下的實體對,將首實體(sub)的頭token(行)對應到尾實體(obj)的頭token(列),如所給例子關系mayor實體對:(New York City, De Blasio) ==> M(New, De),上圖中紅色背景。
subject tail to object tail (ST-to-OT): 對每個關系下的實體對,將首實體(sub)的尾token(行)對應到尾實體(obj)的尾token(列),如所給例子關系mayor實體對:(New York City, De Blasio) ==> M(City, Blasio),上圖中藍色背景。
注意:EH-to-ET只會存在M的上三角,而SH-to-OH和ST-to-OT是上下三角都會存在的,為了節省存儲資源,同時減少目標tag的稀疏性(還是很稀疏),將M的下三角映射到上三角上,值設置為2。(考慮上三角映射的位置上會不會不為0呢,是會存在這種可能的,但現實中概率很低,如triple (ABC, R, CDE)和(CDE, R, BC))
上面將三元組中的實體信息映射到矩陣上三角,然后將其展平為標記序列,可以得到序列的長度為n*(n+1)/2。如果有N中關系,則經過Handshaking tagging后,得到2N+1個標記序列。
解碼方式:
先不用去看下面所給的解碼圖示,考慮上面講到的Handshaking tagging作為模型的預測目標,實際上是2N+1個n*n的矩陣,矩陣的元素為句子各token對的關系,其值為0、1、2。其中一個矩陣標記了實體EH-to-ET,N個矩陣標記了SH-to-OH,N個矩陣標記了ST-to-OT。文章給出了一個解碼的算法流程,不再貼出,簡述過程如下:
解碼EH-to-ET可以得到句子中所有的實體,用實體頭token idx作為key,實體作為value,存入字典D中
對每種關系r,解碼ST-to-OT得到token對存入集合E中,解碼SH-to-OH得到token對并在D中關聯其token idx的實體value
對上一步中得到的SH-to-OH token對的所有實體value對,在集合E中依次查詢是否其尾token對在E中,進而可以得到三元組信息。
相關公式:
模型編碼可以是LSTM也可以是Bert,Token Pair表示為公式(1),Handshaking Tagger可以看著是多分類,公式為(2),損失函數定義為公式(4):
實驗結果:
同樣在NYT和WebNLG兩個數據集上進行實驗,延續CasRel的實驗結果,TPLinker方法達到了新的SOTA,同時通過進一步細化實驗分析得到以下結論:
句子中triple數目大于5的時候,TPLinker方法優勢更加明顯
在實體關系標注中只標注實體尾token,和標注實體span相比,并沒有簡化問題
得益于解碼的高效性,TPLinker推斷性能相對于CasRel有極大提升
總結:
創新性地提出了Handshaking tagging方式,統一了實體與實體關系信息,使得模型能夠一次解碼得到三元組信息
能夠解決實體關系中的實體重疊EPO、SEO問題,受益于EH-to-ET標記,模型同時能夠解決嵌套實體問題
end2end得到實體及實體關系,避免了標簽暴露偏差的問題
SPN4RE
論文:Joint Entity and Relation Extraction with Set Prediction Networks
地址:https://arxiv.org/abs/2011.01675
arxiv訪問不方便的同學后臺回復『0018』直接獲取
這篇文章出至中科院劉康老師團隊,是目前NYT和WebNLG數據集上的最新SOTA。論文將實體關系聯合抽取歸納為三種范式,分別為:
end2end抽取實體及關系(as table filling problem),編碼層共享參數,解碼層獨立解碼
轉化為序列標注問題,需要設計復雜的tagging scheme,即每個tag需要同時表示實體及關系的信息(之前的方案無法應對嵌套、重疊實體)
轉化為seq2seq問題,解碼時生成三元組(多次生成可解決嵌套、重疊實體(autoregressive decoder and cross-entropy loss))
實際上,第一種也可以看著是多任務學習,第二種在TPLinker方法中已經比較好地解決了實體重疊和嵌套問題,論文認為所提出的SPN4RE屬于seq2seq范疇,通讀下來筆者竊以為也可將SPN4RE歸為實體關系聯合抽取中的多任務學習。
論文的初衷是在以往使用seq2seq解決實體關系三元組時,面臨三元組生成順序對結果產生影響,所以從生成順序無關三元組、并行生成三元組集合出發提出新的模型SPN。
SPN(set prediction networks)包含了三個部分:
句子編碼:采用預訓練語言模型Bert,BPE編碼輸入
三元組集合生成:基于transformer的非自回歸解碼NAT(transformer-based non-autoregressive decoder)
并行產生三元組,產生三元組順序無關,加速解碼,NAT結構使用到了雙向信息
NAT條件概率公式:j!=i說明第j個triple和其他triple也是有關系的,n為三元組個數,本文設置為常數m
基于集合的Loss設計:二部圖匹配損失函數(bipartite matching loss function)
NAT結構解碼:
輸入m表示要解碼的triple個數,N個transformer層,每層先是各triple間做self-attention,然后是和sentence的編碼做inter-attention,輸出解碼向量為Hd,其為m*d緯度
關系預測:對每個hd過FFN經過softmax,預測「關系」,關系數量為總關系量+1(包含了null),公示如下:
關系首尾實體預測:類似與對sentence做span,融合了sentence編碼和對應關系的編碼,公式如下:
二部圖匹配損失函數(Bipartite Matching Loss):在預測的三元組集合和ground true三元組集合間計算loss
兩個集合的元素進行最優匹配:預測的集合大小為m,如果ground true集合小于m則補充null至大小為m。尋找最優匹配的過程,實際上相當于對m個人分配m個任務,第i個人做第j個任務的代價為Cij,尋找最優方式將這m個任務分配給m個人,使得總代價最小,這就是二部圖匹配問題,可以利用匈牙利算法求解,時間復雜度為O(m^3)。本文定義代價函數如下:
損失函數定義:對最優匹配得到的m個三元組對計算loss,注意,如果「關系」為null,則關系中的頭尾實體不參與loss計算,Loss函數定義如下:
實驗結果:
在NYT和WebNLG數據集上進行實驗,結果如下圖,提出并回答了以下四個問題:
聯合抽取模型SPN的整體性能如何:對比CasRel F1在NYT上提升2.9%,在 WebNLG上提升1.6%(圖略)
模型中每個設計對結果的影響:通過消融實驗,對比了交叉熵loss和二部圖匹配loss,以及非自回歸解碼層數對結果的影響,得到了NAT層數為3時最優,二部圖匹配Loss優于交叉熵Loss(圖略)
數據中存在不同數量的三元組對性能的影響:數據中三元組數量越多(信息越復雜),對比其他方法SPN的效果越顯著(圖略)
該方法在解決重疊模式問題上性能如何(EPO, SEO):和其他方法對比了Normal、SEO、EPO三種triple類型下效果,結論同上一條一致,在復雜問題上(SEO, EPO),相比與其他方法SPN效果顯著(圖略)
總結:
對NAT解碼的結果做關系預測,可看著是分類問題,然后將解碼結果進一步融合編碼信息對句子做實體抽取,可看著實體span解碼過程,所以筆者認為該方法也屬于聯合抽取中的多任務學習
采用二部圖匹配,尋找最優三元組匹配的過程復雜度O(m^3),先匹配再計算Loss為集合緯度的Loss計算提供了參考。
以上對實體關系聯合抽取三篇SOTA文章進行了分析解讀,在實際的工作當中,我們也已經將CasRel方法進行落地實踐,并取得了一定的效果。在實體抽取任務中,也可以借鑒TPLinker的標記方法,解決嵌套實體問題。SPN作為最新的SOTA,其所涉及的NAT解碼和在集合緯度上的Loss計算也值得借鑒參考。
責任編輯:xj
原文標題:SOTA集結,2020登頂關系抽取的3篇佳作
文章出處:【微信公眾號:深度學習自然語言處理】歡迎添加關注!文章轉載請注明出處。
-
深度學習
+關注
關注
73文章
5516瀏覽量
121556 -
自然語言
+關注
關注
1文章
291瀏覽量
13401 -
nlp
+關注
關注
1文章
489瀏覽量
22110
原文標題:SOTA集結,2020登頂關系抽取的3篇佳作
文章出處:【微信號:zenRRan,微信公眾號:深度學習自然語言處理】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論