【關(guān)于 實(shí)體關(guān)系聯(lián)合抽取論文】那些你不知道的事
撰寫團(tuán)隊(duì):whalePaper 深度學(xué)習(xí)學(xué)習(xí)小組 團(tuán)隊(duì)成員:楊夕、謝文睿、jepson、王翔、李威、李文樂(lè)、袁超逸
論文地址:https://github.com/km1994/whalePaperShare
面筋地址:https://github.com/km1994/NLP-Interview-Notes
個(gè)人筆記:https://github.com/km1994/nlp_paper_study
前言
這篇文章主要來(lái)自于 whalePaper 論文分享的知識(shí)沉淀
whalePaper 想做的事:
選取比較成熟的 Topic 和 做一些 開源方案 分享;
給 whalePaper 成員一個(gè)一起看論文一起討論的空間,以幫助組織成員更好“高效+全面”學(xué)習(xí);
認(rèn)識(shí)更多更優(yōu)秀的小伙伴!
一、實(shí)體關(guān)系聯(lián)合抽取介紹
實(shí)體關(guān)系抽取(Entity and Relation Extraction,ERE)是信息抽取的關(guān)鍵任務(wù)之一。對(duì)于以下給定一段文本,從中抽取出具有特定關(guān)系的主體和客體。這里的關(guān)系是事先給出的關(guān)系之一。因此,訓(xùn)練數(shù)據(jù)的標(biāo)注是一些 關(guān)系-主體-客體 的三元組,一段文本中可以有一個(gè)或多個(gè)三元組,屬于一種級(jí)聯(lián)任務(wù)。

注:樣例來(lái)自 LIC 2019 信息抽取比賽樣例數(shù)據(jù)
ERE 可分為兩個(gè)子任務(wù):實(shí)體抽取和關(guān)系抽取,如何更好處理這種類似的級(jí)聯(lián)任務(wù)是NLP的一個(gè)熱點(diǎn)研究方向。
二、實(shí)體關(guān)系聯(lián)合抽取知識(shí)框架
實(shí)體關(guān)系聯(lián)合抽取主要分 pipeline 方法和 end2end 方法:
pipeline 方法
思路:先命名實(shí)體識(shí)別( NER) , 在 關(guān)系抽?。≧E)
問(wèn)題:
忽略兩任務(wù)間的相關(guān)性
誤差傳遞。NER 的誤差會(huì)影響 RE 的性能
end2end 方法
解決問(wèn)題:實(shí)體識(shí)別、關(guān)系分類
思路:
實(shí)體識(shí)別
BIOES 方法:提升召回?和文中出現(xiàn)的關(guān)系相關(guān)的實(shí)體召回
嵌套實(shí)體識(shí)別方法:解決實(shí)體之間有嵌套關(guān)系問(wèn)題
頭尾指針?lè)椒ǎ汉完P(guān)系分類強(qiáng)相關(guān)?和關(guān)系相關(guān)的實(shí)體召回
copyre方法
關(guān)系分類:
思路:判斷 【實(shí)體識(shí)別】步驟所抽取出的實(shí)體對(duì)在句子中的關(guān)系
方法:
方法1:1. 先預(yù)測(cè)頭實(shí)體,2. 再預(yù)測(cè)關(guān)系、尾實(shí)體
方法2:1. 根據(jù)預(yù)測(cè)的頭、尾實(shí)體預(yù)測(cè)關(guān)系
方法3:1. 先找關(guān)系,再找實(shí)體 copyre
需要解決的問(wèn)題:
關(guān)系重疊
(BarackObama, Governance, UnitedStates) 與 (BarackObama, PresidentOf, UnitedStates)
從示例可以看出,實(shí)體對(duì)(BarackObama,UnitedStates) 存在Governance 和PresidentOfPresidentOf兩種關(guān)系,也就是關(guān)系重疊問(wèn)題。
* 關(guān)系間的交互
(BarackObama, LiveIn, WhiteHouse) 和 (WhiteHouse, PresidentialPalace, UnitedStates) -> (BarackObama, PresidentOf, UnitedStates)
從示例可以看出,實(shí)體對(duì)(BarackObama,WhiteHouse) 和 實(shí)體對(duì)(WhiteHouse,UnitedStates) 存在中間實(shí)體WhiteHouse,而且通過(guò)(BarackObama, LiveIn, WhiteHouse) 和 (WhiteHouse, PresidentialPalace, UnitedStates) 能夠推出 (BarackObama, PresidentOf, UnitedStates) 關(guān)系,也就是關(guān)系間存在交互問(wèn)題。
三、論文介紹
【paper 1】Joint entity recognition and relation extraction as a multi-head selection problem
論文地址:http://arxiv.org/abs/1804.07847
一、論文動(dòng)機(jī)
最早期的端到端實(shí)體關(guān)系聯(lián)合抽取模型
二、論文思路

思路:將NER任務(wù)和關(guān)系分類任務(wù)一起做
提出方法
用BiLSTM+CRF識(shí)別出所有實(shí)體
對(duì)任意兩個(gè)實(shí)體進(jìn)行關(guān)系分類
損失函數(shù)
【paper 2】Joint Extraction of Entities and Relations Based on a Novel Decomposition Strategy[ACL2017]
論文地址:https://www.aclweb.org/anthology/P17-1113/
一、論文動(dòng)機(jī)
如何解決抽取過(guò)程中大量冗余實(shí)體對(duì);
如何利用實(shí)體對(duì)之間相互關(guān)系
二、論文思路

思想:先抽取頭實(shí)體,再抽取尾實(shí)體和關(guān)系
步驟
Shared Encoder :字符級(jí)別和單詞級(jí)別的特征抽取,這部分是共享的
HE Extractor :上面共享的特征進(jìn)來(lái)以后,利用LSTM繼續(xù)抽取特征,并做簡(jiǎn)單轉(zhuǎn)化,見(jiàn)公式:

1. TER Extractor :將共享特征和抽取頭實(shí)體獲取的特征,輸入進(jìn)來(lái),同樣利用LSTM處理,過(guò)程同上,見(jiàn)公式:

1. Training of Joint Extractor

1. 損失函數(shù)

三、論文 trick
本論文的核心編程部分并不復(fù)雜,就是逐層寫LSTM,后面的輸入使用前面生成的特征。
技巧點(diǎn)就在于如何利用豐富的特征,這一點(diǎn)詳見(jiàn)論文中對(duì)每一部分的輸入的介紹。
【paper 3】GraphRel:Modeling Text as Relational Graphs for Joint Entity and Relation Extraction [ACL2019]
論文地址:https://www.aclweb.org/anthology/P19-1136.pdf 論文代碼:tsujuifu/pytorch_graph-rel
一、論文動(dòng)機(jī)
端到端的聯(lián)合抽取實(shí)體及其關(guān)系
Pipeline:
思路:先 NER , 在 RE
問(wèn)題:忽略兩任務(wù)間的相關(guān)性
NN 模型:
思路:利用 CNN、LSTM 等深度學(xué)習(xí)網(wǎng)絡(luò)進(jìn)行實(shí)體關(guān)系聯(lián)合抽取;
問(wèn)題:非端到端聯(lián)合抽??;
重疊關(guān)系的預(yù)測(cè)
考慮到關(guān)系間的交互,特別是重疊關(guān)系間的交互
二、論文思路

如上圖,GraphRel 分為兩個(gè)階段:
第一階段:
BiLSTM
將詞向量和對(duì)應(yīng)的詞性標(biāo)簽向量作為原始輸入,然后利用 Bi-LSTM 抽取 句子的順序依賴特征。

1. Bi-GCN
對(duì)輸入句子進(jìn)行依存句法分析,構(gòu)建依存樹,并將其作為 輸入句子的鄰接矩陣,然后采用GCN 抽取局部依賴關(guān)系。
1. 實(shí)體和關(guān)系提取
1. 對(duì)于實(shí)體的抽取:采用 LSTM 輸出每個(gè)詞的類別,并得到 eloss1p;
2. 對(duì)于關(guān)系的抽?。侯A(yù)測(cè)每個(gè)單詞對(duì)之間的關(guān)系。對(duì)于單詞對(duì)(w1,w2),我們計(jì)算給定關(guān)系r的得分,然后對(duì)所有關(guān)系(包括non關(guān)系)做一個(gè)softmax,得到每種關(guān)系的概率,關(guān)系預(yù)測(cè)的loss為 rloss1p
第二階段:
a. Relation-weight Graph
經(jīng)過(guò)第一階段的預(yù)測(cè),我們構(gòu)建了每種關(guān)系的關(guān)系加權(quán)圖,圖的節(jié)點(diǎn)是每個(gè)單詞,邊表示單詞之間的關(guān)系概率。

b. Relation-weight Graph
在每個(gè)關(guān)系圖上采用bi-GCN,考慮不同關(guān)系的不同影響程度并聚合做為一個(gè)單詞的綜合特征。

其中, Pr(u,v) 表示單詞對(duì)(u,r)之間關(guān)系為r的概率。V表示所有單詞,R表示所有關(guān)系。首先遍歷所有單詞,然后對(duì)每個(gè)單詞v,u和v之間在每種關(guān)系下都存在一個(gè)概率,然后通過(guò)這個(gè)概率進(jìn)行加權(quán)求和。這樣的話,對(duì)于每一個(gè)單詞,它都考慮到了所有單詞在關(guān)系加權(quán)下的信息。第二階段的GCN不同關(guān)系下的權(quán)重信息,對(duì)每個(gè)單詞抽取了更豐富的特征。
得到新的單詞特征后,接下來(lái)就是實(shí)體和關(guān)系的預(yù)測(cè) ,并獲得 eloss2p 和 rloss2p
三、論文 trick
因?yàn)殛P(guān)系抽取是對(duì)每個(gè)單詞對(duì)都進(jìn)行一個(gè)關(guān)系分類,所以對(duì)于由多個(gè)單詞組成的實(shí)體對(duì)之間的關(guān)系預(yù)測(cè)就可能存在沖突,這里作者提出了三個(gè)方法:
head prediction:對(duì)于由多個(gè)單詞組成的實(shí)體對(duì),只取每個(gè)實(shí)體最后一個(gè)單詞之間的關(guān)系作為這兩個(gè)實(shí)體對(duì)之間的關(guān)系。
比如,實(shí)體關(guān)系三元組(Barack Obama, PresidentOf, United States)被正確識(shí)別出當(dāng)且僅當(dāng)Barack Obama和United States是實(shí)體,并且P(Obama,States)最大概率的關(guān)系為PresidentOf。其實(shí)這里稱為tail prediction比較好,因?yàn)槿〉氖菍?shí)體的最后一個(gè)單詞。
average prediction
拿上個(gè)例子來(lái)說(shuō),存在四個(gè)單詞對(duì)(United, Barack)、(United, Obama)、(States, Barack)、(States, Obama),那么就有四個(gè)關(guān)系概率向量,對(duì)這四個(gè)關(guān)系概率向量求平均然后取概率最大的作為三元組的關(guān)系。
threshold prediction:與average不同,這里是對(duì)四個(gè)關(guān)系概率向量分別求概率最大的關(guān)系,然后統(tǒng)計(jì)每種關(guān)系的概率.
比如PresidentOf出現(xiàn)兩次,LocatedIn、LivedIn分別出現(xiàn)一次,那么對(duì)應(yīng)的概率為50%、25%、25%,然后取最大的概率50%是否大于θ來(lái)調(diào)整關(guān)系的輸出。
四、論文 總結(jié)
學(xué)習(xí)特征
通過(guò)堆疊Bi-LSTM語(yǔ)句編碼器和GCN(Kipf和Welling, 2017)依賴樹編碼器來(lái)自動(dòng)學(xué)習(xí)特征
第一階段的預(yù)測(cè)
GraphRel標(biāo)記實(shí)體提及詞,預(yù)測(cè)連接提及詞的關(guān)系三元組
用關(guān)系權(quán)重的邊建立一個(gè)新的全連接圖(中間圖)
指導(dǎo):關(guān)系損失和實(shí)體損失
第二階段的GCN
通過(guò)對(duì)這個(gè)中間圖的操作
考慮實(shí)體之間的交互作用和可能重疊的關(guān)系
對(duì)每條邊進(jìn)行最終分類
在第二階段,基于第一階段預(yù)測(cè)的關(guān)系,我們?yōu)槊總€(gè)關(guān)系構(gòu)建完整的關(guān)系圖,并在每個(gè)圖上應(yīng)用GCN來(lái)整合每個(gè)關(guān)系的信息,進(jìn)一步考慮實(shí)體與關(guān)系之間的相互作用。
五、個(gè)人觀點(diǎn)
該方法只能解決關(guān)系重疊的一種情況,但是對(duì)于同一實(shí)體對(duì)具有多種關(guān)系無(wú)法解決;
該方法分別預(yù)測(cè)實(shí)體和關(guān)系,可能出現(xiàn)關(guān)系預(yù)測(cè)對(duì),實(shí)體預(yù)測(cè)錯(cuò)情況;
構(gòu)建了單詞的關(guān)系圖,而不是實(shí)體的關(guān)系圖,后果就是預(yù)測(cè)多個(gè)單詞的實(shí)體之間的關(guān)系時(shí)存在問(wèn)題
【paper 4】CopyMTL: Copy Mechanism for Joint Extraction of Entities and Relations with Multi-Task Learning [AAAI2020]
論文地址:https://arxiv.org/abs/1911.10438?context=cs.lg 論文代碼(torch復(fù)現(xiàn)):https://github.com/WindChimeRan/CopyMTL
一、論文動(dòng)機(jī)
CopyMTL是在CopyRE基礎(chǔ)上進(jìn)行改進(jìn),CopyRE是一種基于 copying mechanism + seq2seq 結(jié)構(gòu)的聯(lián)合關(guān)系抽取模型,但存在以下兩個(gè)缺點(diǎn):
對(duì)頭尾實(shí)體其實(shí)區(qū)分不大,基本上使用的是統(tǒng)一預(yù)測(cè)分布

只能抽取單字,不能抽取成詞的字
二、論文思路
模型核心思路 (CopyRE類似)
Encoder:使用BiLSTM建模句子上下文信息
結(jié)合copying mechanism生成多對(duì)三元組
同時(shí),針對(duì)CopyRE只能抽取單字,不能抽取成詞的字的問(wèn)題,引入命名實(shí)體任務(wù)進(jìn)行多任務(wù)學(xué)習(xí)。
模型結(jié)構(gòu)
Encoder
使用BiLSTM建模上下文信息

2. Decoder
解碼部分使用Attention + LSTM去建模

3. 使用一個(gè)全連接層獲取輸出

三、論文 trick
與常規(guī)的seq2seq不同,CopyMTL需要獲取的是三元組,所以對(duì)于頭實(shí)體、關(guān)系和尾實(shí)體需要采用不同的策略:
對(duì)于關(guān)系預(yù)測(cè)
由于對(duì)于三元組的解碼從關(guān)系開始,所以先做關(guān)系預(yù)測(cè),同時(shí)加入NA表示沒(méi)有關(guān)系。

頭實(shí)體預(yù)測(cè)
預(yù)測(cè)文中哪一個(gè)實(shí)體最可能是當(dāng)前關(guān)系下的頭實(shí)體

尾實(shí)體預(yù)測(cè)
在CopyRE中,需要加入隱碼矩陣

但CopyMTL認(rèn)為這主要是由于預(yù)測(cè)實(shí)體時(shí)使用的方式不當(dāng):

因此在CopyMTL中更改了預(yù)測(cè)方式,使用如下公式進(jìn)行預(yù)測(cè):

激活函數(shù)使用selu
Sequence Labeling
對(duì)于CopyRE只能預(yù)測(cè)單字的問(wèn)題,CopyMTL加入了一個(gè)命名實(shí)體任務(wù):

多任務(wù)
將seq2seq和Sequence Labeling 的損失加權(quán)融合

是命名實(shí)體的損失:

是seq2seq的損失:

【paper 5】Span-based Joint Entity and Relation Extraction with Transformer Pre-training [ECAI 2020]
論文地址:https://arxiv.org/abs/1909.07755
一、論文動(dòng)機(jī)
如何利用Transformer來(lái)解決聯(lián)合關(guān)系抽取問(wèn)題
二、論文思路
思路
利用預(yù)訓(xùn)練的BERT模型作為其核心部分;BERT部分對(duì)于一個(gè)句子僅僅需要前向執(zhí)行一次;
拋棄了傳統(tǒng)的BIO/BILOU標(biāo)注實(shí)體的方式,構(gòu)建了一個(gè)基于跨度的聯(lián)合實(shí)體識(shí)別和關(guān)系抽取模型。
具體方法

輸入:byte-pair encoded (BPE) tokens(和BERT的輸入一致)
Span Classification:本質(zhì)是一個(gè)多分類模型(分類類別實(shí)體類型:person, organization, none等)
輸入:word embedding(實(shí)體包括的詞向量進(jìn)行max-pooling操作), width embedding(實(shí)體包含的詞個(gè)數(shù)在width向量矩陣中找到的width向量), cls embedding(BERT的cls向量)
輸出:實(shí)體類別
Span Filtering:預(yù)先過(guò)濾span size超過(guò)10的實(shí)體
關(guān)系分類:本質(zhì)也是一個(gè)多分類模型
輸入:word embedding1(實(shí)體1), width embedding1(實(shí)體1), context embedding(實(shí)體1和實(shí)體2中間的詞向量進(jìn)行max-pooling操作), word embedding2(實(shí)體2), width embedding2(實(shí)體2)
輸出:關(guān)系類別
損失函數(shù)
實(shí)體分類損失 + 關(guān)系分類損失
三、論文 trick
負(fù)采樣
實(shí)體負(fù)采樣:在所有可能的實(shí)體中最多隨機(jī)選取 N 個(gè)實(shí)體,并將未在訓(xùn)練集中被標(biāo)注為正例的樣本標(biāo)記成負(fù)例,同時(shí)規(guī)定實(shí)體的長(zhǎng)度不能超過(guò)10。
關(guān)系負(fù)采樣:針對(duì)所有待預(yù)測(cè)的實(shí)體之間的關(guān)系,對(duì)于出現(xiàn)過(guò)的所有實(shí)體任意兩兩組合構(gòu)建關(guān)系,對(duì)于在正樣本中未出現(xiàn)的標(biāo)注為負(fù)樣本,并且最多選取 M 個(gè)負(fù)樣本。
【paper 6】A Novel Cascade Binary Tagging Framework for Relational Triple Extraction[ACL2020]
論文地址:https://arxiv.org/abs/1909.03227 論文代碼(keras):https://github.com/weizhepei/CasRel 論文代碼(torch復(fù)現(xiàn)):https://github.com/powerycy/Lic2020-
一、論文動(dòng)機(jī)
目前一個(gè)句子僅包含一個(gè)關(guān)系三元組進(jìn)行關(guān)系三元組抽取已經(jīng)能夠達(dá)到不錯(cuò)的效果。但在一個(gè)句子中包含多個(gè)關(guān)系三元組,尤其當(dāng)多個(gè)三元組有重疊的情況時(shí),模型表現(xiàn)的效果不盡人意。
二、論文思路
模型著重解決了一對(duì)多的問(wèn)題,利用概率圖的思想:首先預(yù)測(cè)第一個(gè)實(shí)體s,預(yù)測(cè)出s過(guò)后傳入s來(lái)預(yù)測(cè)s對(duì)應(yīng)的p跟o,公式如下:

思路

1. 把訓(xùn)練中的句子利用BERT進(jìn)行切分得到相應(yīng)的編碼

2. 指出句子中subject與object的位置的起始位置與終止位置

3. 隨機(jī)選擇一個(gè)subject的起始與終止為止。(這樣做的理由是增加了訓(xùn)練集中的負(fù)樣本數(shù)量)

4. 把相應(yīng)的輸入送入的BERT模型得到最后一層的隱藏狀態(tài)

5. 對(duì)隱藏狀態(tài)進(jìn)行sigmoid分類,得到subject的開始位置與結(jié)束位置

6. 得到subject的開始與結(jié)束位置之后,在取出倒數(shù)第二層的隱狀態(tài),利用輸入的subject_id取出隱狀態(tài)中的首尾向量


7. 得到相應(yīng)的向量過(guò)后對(duì)向量進(jìn)行簡(jiǎn)單的相加求平均,并通過(guò)Conditional Layer Normalization。


8. 得到相加過(guò)后的向量通過(guò)sigmoid對(duì)所有的關(guān)系進(jìn)行二分類

這里是將句子的token_ids,segment_ids和attention_mask_ids傳入RoBERTa,RoBERTa對(duì)每個(gè)token做embedding,通過(guò)Linear層與sigmoid函數(shù),得到每個(gè)字是subject起始位置和終止位置的概率,然后通過(guò)RoBERTa的隱層輸出,利用subject_id找到對(duì)應(yīng)得向量取出來(lái),通過(guò)這兩個(gè)向量相加,過(guò)一層sigmoid函數(shù)得到object的起始位置和終止位置的概率,在subject確定的情況下,在得到相應(yīng)的object后predicate也就確定了下來(lái)。
9. 損失函數(shù)中的mask

mask函數(shù)可以句子在padding過(guò)后只采用有效的部分從而避免計(jì)算的時(shí)候因?yàn)?的添加導(dǎo)致計(jì)算錯(cuò)誤。
【paper 7】END-TO-END NAMED ENTITY RECOGNITION AND RELATION EXTRACTION USING PRE-TRAINED LANGUAGE MODELS
論文地址:https://arxiv.org/abs/1912.13415
一、論文動(dòng)機(jī)
Pipline的方式存在誤差傳播
Jiont 方式需要使用額外的NLP工具
二、論文思路

使用bert 提取embedding,然后使用FFNN進(jìn)行NER任務(wù)
得到的NER的vector拼接bert embedding 進(jìn)行關(guān)系分類任務(wù)
三**、**論文trick
通過(guò)構(gòu)造NRE和RE的loss權(quán)重,引入entity pre-train
使用E-和S-的標(biāo)記傳入RE模型,進(jìn)行關(guān)系分類
在關(guān)系分類中引入Head 和 Tail 模塊。
參考
Joint entity recognition and relation extraction as a multi-head selection problem
Joint Extraction of Entities and Relations Based on a Novel Decomposition Strategy【ACL 2017】
GraphRel: Modeling Text as Relational Graphs for Joint Entity and Relation Extraction【ACL 2019】
[CopyMTL: Copy Mechanism for Joint Extraction of Entities and Relations with Multi-Task Learning 【AAAI2020】(https://arxiv.org/abs/1911.10438)
Span-based Joint Entity and Relation Extraction with Transformer Pre-training 【ECAI 2020】
[A Novel Cascade Binary Tagging Framework for Relational Triple Extraction 【ACL2020】(https://arxiv.org/abs/1909.03227)
END-TO-END NAMED ENTITY RECOGNITION AND RELATION EXTRACTION USING PRE-TRAINED LANGUAGE MODELS




