實體關係抽取任務方法及SOTA模型總結

1 實體關係抽取方法思路

實體關係抽取是從文本中的句子裏抽取出一對實體並給出實體間關係的任務。該任務的輸入是一句話,輸出是一個spo三元組(subject-predicate-object)。

對於實體關係抽取任務,最容易想到的方法就是先抽取句子中的實體,然後在對實體對進行關係分類,從而找出spo三元組,這種思想被稱作管道模型(Pipeline)。管道模型把實體關係抽取分成了兩個子任務,實體識別和關係分類,兩個子任務按照順序依次執行,它們之間沒有交互。在管道模型之後,可以同時進行實體識別和關係分類的聯合模型被提了出來,之後的實驗證明聯合模型由於實現了兩個子任務之間的信息交互,大大提升了實體關係抽取的效果,目前針對實體關係抽取任務的研究大多采用聯合模型。而聯合模型又可以細分爲基於參數共享的聯合模型和基於聯合解碼的聯合模型。

另外,解碼方式對實體關係抽取性能的影響也很大,主要的解碼方式有三種:基於序列標註、基於指針網絡和基於片段分類的方法。

實體關係抽取任務根據抽取思路的不同可以按下圖所示方式分類:

在這裏插入圖片描述

2 參數共享方法與聯合解碼方法

下圖是參數共享方法和聯合解碼方法的對比。使用參數共享的聯合模型和管道模型的結構是非常相似的,它們抽取spo三元組的過程都是分成多步完成的,主要的不同在於基於參數共享的聯合模型的loss是各個子過程的loss之和,在求梯度和反向更新參數時會更新整個模型所有子過程的參數,而管道模型各子過程之間則沒有聯繫。使用聯合解碼的聯合模型則更符合“聯合”的思想,主體,客體和關係類型是在同一個步驟中進行識別然後得出的。

在這裏插入圖片描述

2.1 使用參數共享的經典模型:

End-to-End Relation Extraction using LSTMs on Sequences and Tree Structures

這篇論文是實體關係抽取領域內的一篇非常重要的論文,幾乎所有和實體關係抽取有關的綜述都會提到這篇論文,它是聯合模型的開山之作,被之後許多論文借鑑。

本文提出了一種聯合實體關係識別,基於參數共享的關係抽取模型,模型中有兩個雙向的LSTM-RNN,一個基於word sequence,主要用於實體檢測;一個基於Tree Structures ,主要用於關係抽取;後者堆在前者上,前者的輸出和隱含層作爲後者輸入的一部分。下圖爲整個模型的結構圖:

在這裏插入圖片描述

該文章提出的模型就是一種典型的基於參數共享的聯合模型,兩個雙向LSTM-RNN結構分別用於檢測實體和分類關係,它們是單獨訓練的,但是loss是加在一起同時進行反向傳播和更新的。

2.2 使用聯合解碼的經典模型:

Joint Extraction of Entities and Relations Based on a Novel Tagging Scheme

該論文的主要工作是設計了一種特別的標籤類型,將實體識別和關係分類轉化爲序列標註問題;然後提出了一個端到端模型,通過編碼層對句子進行編碼,將隱藏層向量輸入解碼層然後直接得到spo三元組,沒有將抽取過程分爲實體識別和關係分類兩個子過程。

該論文提出的標記方法如下圖所示,在該方法中,共包含 3 種標註信息:

(1) 實體中詞的位置信息 { B,I,E,S,O } 分別表示{實體開始,實體內部,實體結束,單個實體,無關詞};

(2) 實體關係類型信息,需根據關係類型進行標記,分爲多個類別,如 { CF,CP,… } ;

(3) 實體角色信息 { 1,2 } 分別表示 { 實體 1,實體 2 }

在這裏插入圖片描述

該論文提出的端到端的神經網絡模型如下圖所示,對輸入的句子,首先,編碼層使用Bi-LSTM來進行編碼;之後,解碼層再使用 LSTMd( 作者提出的一種基於LSTM的改進型 ) 進行解碼;最終,輸出模型標註好的實體—關係三元組。

在這裏插入圖片描述

該論文提出的模型有一個明顯的不足就是不能識別重疊的實體關係,下圖表格展示了實體關係三元組的重疊類型,實體關係三元組根據重疊方式的不同可以分爲三類:沒有重疊的Normal類型,關係重疊的EPO類型,實體重疊的SEO類型。本文的模型由於標籤設計的原因,只能識別Normal類型的實體關係三元組。

在這裏插入圖片描述

2.3 參數共享方法和聯合解碼方法的優缺點對比:

參數共享 聯合解碼
優點 1.實體識別和關係分類過程不是同步的,所以後面步驟的訓練可以使用前面步驟的結果作爲特徵,2.靈活性更高,能夠更好的處理重疊實體關係重疊問題。 沒有明確的將抽取過程分爲多個步驟,真正實現了實體識別和關係分類的信息共享。
缺點 實體識別和關係分類仍然是兩個獨立的過程,沒有真正的“聯合”。 目前要實現聯合解碼一般需要設計複雜的標籤或者解碼過程,而且聯合解碼的方式對重疊的關係三元組的識別效果不是很好。

3 實體關係抽取解碼方式總結

常見的實體關係抽取的解碼層的解碼方式有三種,分別是基於序列標註,基於指針網絡和片段分類。

3.1 序列標註

基於序列標註的解碼方式通常會使用CRF作爲解碼器,使用結合BIO或者BIOES標籤的聯合標籤,每個token標記一個tag標籤。解碼層的任務就是確定每個token的tag,CRF能夠進行標籤約束,解碼效果比直接使用Softmax更好。

序列標註方法在命名實體識別任務中非常常用,但是在實體關係抽取任務中,序列標註有非常多的不足,很重要的一點是一個token只能有一個標籤,而關係抽取任務情況複雜,存在實體重疊、關係重疊等諸多特殊情況,經常需要設計比較複雜的聯合標籤才能完成對實體關係三元組的抽取,然而標籤越複雜,抽取效果就越差。因此最新的論文基本都不再採用這種方法。

上文提到的論文Joint Extraction of Entities and Relations Based on a Novel Tagging Scheme中提出的模型使用的就是序列標註方法,該模型就無法解決實體重疊問題。

下圖中的句子使用了序列標註方法,採用BIO和實體類型聯合標籤,該方法只能確定“北京”這一個實體,而無法將另一個實體“北京德易東方轉化醫學研究中心”也一起表示出來。

在這裏插入圖片描述

3.2 指針網絡

序列標註方法只有一個標籤序列,表達能力較弱,不能解決實體重疊問題,因此有人提出使用MRC機器閱讀理解中大量使用的指針網絡來對關係抽取中的輸入句子進行標註,使用多個標籤序列(多層label網絡)來表示一個句子。如下圖所示,該指針網絡採用了兩個標籤序列,一個表示實體的起始位置,另一個表示實體的結束位置。在解碼時使用Sigmoid代替Softmax,預測每個token對應的標籤是0還是1。由於指針網絡的表達能力較強,可以很好地解決實體-關係重疊等問題,所以在目前的實體關係抽取方法中被大量使用。雖然指針網絡是一個比較好的方案,但是在指針網絡的使用過程中很可能會遇到標籤不平衡問題,需要進行一些調參工作。

在這裏插入圖片描述

3.3 片段分類

片段分類方法和上述兩方法有較大的差異,片段分類方法找出所有可能的片段組合,然後針對每一個片段組合求其是否是實體的概率。如下圖所示,針對一個句子,片段排序方法從開始位置起依次選取一個token,兩個token……,組成實體可能的片段,然後求該片段是否是實體的概率。

在確定所有的實體之後,對所有實體兩兩配對,然後求每一對實體對之間存在關係的概率。例如,如果有N個實體,M種關係,那麼存在N × N個實體對(實體對是有序的),需要求N × N × M個概率,來判斷每個實體對之間的關係。

如果文本過長,片段分類會產生大量的負樣本,在實際中需要限制span長度併合理削減負樣本。

在這裏插入圖片描述

3.4 不同解碼方式的優缺點對比:

序列標註 指針網絡 片段分類
優點 使用簡單,準確率高 能夠在解決實體重疊問題的同時保證較高的準確率 可以直接得到實體,不需要從標籤到實體的轉換過程
缺點 無法解決實體重疊問題 1.容易遇到標籤不平衡問題。2.在使用解碼層得到指針網絡的多個標籤序列之後還需要專門的程序根據指針網絡確定實體 文本過長時會大大增加計算量

4 實體關係抽取任務主要模型總結

4.1 SOTA模型(2020.6)

實體關係抽取任務SOTA排行榜上目前最佳的模型,這幾個模型分別在不同的數據集上達到了SOTA效果:

模型 ETL-span HBT SpERT DYGIE
模型結構 基於共享參數的聯合模型 基於共享參數的聯合模型 基於參數共享的聯合模型 基於參數共享的聯合模型
解碼方式 指針網絡 指針網絡 片段分類 片段分類
達到SOTA效果的數據集 NYT-single NYT,WebNLG CoNLL04 ACE04,ACE05
論文 Joint Extraction of Entities and Relations Based ona Novel Decomposition Strategy A Novel Hierarchical Binary Tagging Framework forJoint Extraction of Entities and Relations Span-based Joint Entity and Relation Extraction withTransformer Pre-training A General Framework for Information Extractionusing Dynamic Span Graphs

ETL-span

該模型的抽取方案借鑑了 seq2seq 的概率圖思路。在 seq2seq 解碼器的解碼過程是層次遞歸進行的的,其實際上是在建模
P(y1,y2,...,ynx)=P(y1x)P(y2x,y1)...P(ynx,y1,y2,,yn1) P(y_1,y_2,...,y_n|x)=P(y_1|x)P(y_2|x,y_1)...P(y_n|x,y_1,y_2,…,y_n-_1)
而對於信息抽取任務,三元組的抽取過程也能夠轉化爲上述層次遞歸的方式進行抽取,對於三元組 (s, o, p),其抽取過程可以建模爲:
P(s,p,o)=P(s)P(os)P(ps,o) P(s,p,o)=P(s)P(o|s)P(p|s,o)
即首先預測 s(主體),然後根據 s 來預測該 s 所對應的 o (客體)及 p(關係)。具體的抽取過程如下圖所示,抽取過程的開始首先預測出句子中所有的主體,Trump和Queens。然後把每一個主體作爲觸發詞,預測該主體對應的客體及關係。在訓練階段模型會從句子中隨機選取一個主體來訓練,通過多個epoch的訓練達到遍歷全部數據的目的。預測階段會逐一遍歷每一個主體,預測出每個主體對應的客體和關係。

在這裏插入圖片描述

由於抽取 主體以及抽取主體所對應的客體及關係的過程均是非唯一性的(存在實體及關係重疊問題),因此,作者採用了 MRC 中常用的指針網絡的抽取方法,即僅抽取答案的開始和結束位置,且把預測開始和結束位置的任務轉化爲了預測每一個位置是否爲開始位置或結束位置(將softmx換成sigmoid)。模型的整體結構如下圖所示:

在這裏插入圖片描述

整個模型可以分爲三大部分,第一部分Shared Encoder,是模型的編碼層,將輸入的每個字編碼爲字向量。第二部分HE Extractor使用Shared Encoder的結果抽取(s,o,p)三元組中的主體s,第三部分TER Extractor也使用Shared Encoder的結果作爲輸入,同時還要使用HE Extractor抽取出的s作爲觸發詞,抽取o和p。模型的loss是HE Extractor和TER Extractor兩部分的loss之和,通過共享參數的方式訓練。

HE Extractor和TER Extractor都使用了HBT結構來抽取結果(這裏的HBT結構和下文中提到的HBT模型之間沒有關係),這個HBT結構由兩個雙向LSTM組成,分別用來預測目標實體的開始位置和結束位置,預測結束位置的LSTM會使用預測開始位置的LSTM的結果作爲特徵,通過增加約束來避免不合理的預測結果,比如預測的結束位置在開始位置前面。

HBT

該模型的論文指出,當前處理關係重疊得方法存在一系列問題,大部分模型都是先抽取出實體對,然後將關係視爲要分配給實體對的離散標籤。 這種表述使關係分類成爲困難的機器學習問題。 例如,當在相同上下文中的同一實體參與多個(在某些情況下超過五個)有效關係(即重疊的三元組)時,分類器需要大量的監督學習才能確定上下文與關係的對應關係。

該模型設計了一種 Hierarchical Binary Tagging 的框架,這個框架將三元組的抽取任務建模爲三個級別的問題,從而能夠更好解決三元組重疊的問題。其核心觀點就是不再將關係抽取的過程看作實體對的離散標籤,而是將其看作兩個實體的映射關係,即f(s,o)−>r,整個三元組的過程可以概括爲:

  • 抽取三元組中的 subject

  • 針對每一個 fr(⋅),抽取其對應的 object

這種思想和上面的ETL-span模型的思想極爲相似,HBT模型也是先抽取出主體,然後使用主體作爲觸發詞來抽取主體對應的客體和關係。

在這裏插入圖片描述

模型的整體結構如上圖所示,主要包括如下幾個部分:

  • BERT Encoder:通過 BERT 得到每個詞的詞表徵,把BERT的輸出當作詞向量使用
  • Subject Tagger:該部分用於識別所有可能的subject對象。其通過對每一個位置的編碼結果用兩個分類器(全連接層)進行分類,來判斷其是否是實體的開始或結束位置,激活函數爲 sigmoid,計算公式如下:

pistart_s=σ(Wstartxi+bstart) p^{start\_s}_i=σ(W_{start}x_i+b_{start})

piend_s=σ(Wendxi+bend) p^{end\_s}_i=σ(W_{end}x_i+b_{end})

  • Relation-specific Object Taggers:針對每一個 subject,都需要對其進行之後的 object 進行預測。由圖中可知,其與 Subject Tagger 基本一致,主要區別在於每一個關係類別獨享一組 object 分類器,同時還要將subject作爲特徵和BERT詞向量拼接後作爲輸入,計算公式如下:
    pistart_o=σ(Wstartr(xi+vsubk)+bstartr) p^{start\_o}_i=σ(W^r_{start}(x_i+v^k_{sub})+b^r_{start})

    piend_o=σ(Wendr(xi+vsubk)+bendr) p^{end\_o}_i=σ(W^r_{end}(x_i+v^k_{sub})+b^r_{end})

DYGIE

DYGIE是一個多任務的信息抽取框架,該框架可以在不經過修改的情況下,同時完成命名實體識別、關係抽取和共指消解三個不同的NLP任務。DYGIE構建了一個可以更新的動態圖,以實體span作爲圖中的節點,用關係信息和共指信息來構建邊,span的表示可以通過從關係信息和共指信息獲得的上下文信息進行更新優化。

在這裏插入圖片描述

有許多研究表明多任務學習通過各任務之間的信息交互,使得整體效果好於單獨執行一個任務的效果。上圖的例子展示了一個多任務學習的示例,該示例同時執行命名實體識別、關係抽取和共指消解三個任務。這裏有兩個句子,只關注第二個句子的信息無法預測出“This thing”和“it”這兩個實體的實體標籤。然而,由於父節點“car”的類型爲VEH,因此預測“This thing”和“it”這兩個實體類型也是VEH,通過共指關係幫助解決了命名實體識別問題。類似地,“Tom”位於”Starbucks”這個地點,根據“Mark”和“Tom”的關係(都是人名)可以推斷出“Mark”也在”Starbucks”,這是通過命名實體識別獲得的實體類型信息輔助解決了關係抽取任務。

DyGIE模型首先枚舉出每個句子中所有的text span,然後識別出最可能表示實體的text spans,並將這些spans作爲圖中的節點。根據這些節點,預測出節點間的共指鏈接和關係鏈接,然後使用這些鏈接作爲圖中的有可信度權重的邊。圖構建完成後,節點使用從相鄰的關係類型和共指實體傳播來的信息,對節點的向量表示進行更新優化。優化後的span表示用於多任務框架,以對實體類型、關係類型和共指鏈接進行預測。

下圖展示了DyGIE的訓練過程:

在這裏插入圖片描述

第一層是輸入的原始數據,Token Representation層是一個編碼層,對詞向量進行編碼。Span Representation層將編碼層的輸出結果與其他信息(span長度等)拼接得到實體span的原始輸入gi0g_i^0。Coreference Propagation層通過共指鏈接更新span表示,加入共指信息,共迭代N次,得到giNg_i^N。Relation Propagation層通過關係鏈接更新span表示,加入關係信息,迭代M次,得到giN+Mg_i^{N+M}。Final Prediction根據最終形態的span表示giN+Mg_i^{N+M},完成命名實體識別,關係抽取和共指消解三個任務。

對於命名實體識別任務,使用giN+Mg_i^{N+M}作爲輸入,爲每個span sis_i計算其爲每個實體類別的分數 PE(i)P_E(i)

對於關係分類任務,使用一對span表示,giN+Mg_i^{N+M}giN+Mg_i^{N+M}作爲輸入,爲每個span對 sis_isjs_j計算其爲每個關係類別的分數 PR(i,j)P_R(i,j)

對於共指消解任務,使用Coreference Propagation層的結果,爲每個span對 sis_isjs_j計算其爲共指關係的分數 pair(giN,gjN)(g_i^N,g_j^N)

SpERT

SpERT是一個使用片段分類作爲解碼方式的聯合模型,SpERT分爲span classification 、Span Filtering和relation classification三層結構。span classification 和 Span Filtering層對實體進行篩選和識別,relation classification 進行關係抽取。模型架構如下圖所示:

在這裏插入圖片描述

SpERT使用bert獲取文本的向量表示(e1,e2,...en,c)(e_1,e_2,...e_n,c)。之後,使用片段分類的方法,用枚舉的方式將所有可能的文本片段列舉出來,然後計算文本片段是實體的概率,計算實體概率時用到了token的向量、文本片段長度和特殊標記cls作爲特徵,拼接後作爲span分類階段的輸入。爲了減小計算量,模式設置了文本片段的最大長度。

在獲得實體表示後,SpERT通過將實體兩兩配對然後對每一對實體對求它們之間關係的概率。考慮到需要分類的關係太多,SpERT在關係分類過程中還使用了負採樣。

4.2 其他經典模型

另外還有一些模型沒有達到SOTA效果,但是其思路非常值得借鑑

模型 DuIE_baseline multi-head+AT PASL Multi-turn QA
模型結構 基於聯合解碼的聯合模型 基於參數共享的聯合模型 基於聯合解碼的聯合模型 基於參數共享的聯合模型
解碼方式 指針網絡 序列標註 序列標註 指針網絡
論文 Joint entity recognition and relation extraction as amulti-head selection problem Joint Extraction of Entities and Overlapping Relations Using Position-Attentive Sequence Labeling Entity-Relation Extraction as Multi-turn Question Answering

DuIE_baseline

該模型是百度20年關係抽取比賽的baseline模型,採用了指針網絡,聯合解碼的方法,統一了實體識別和關係分類兩個過程。DuIE_baseline的結構很簡單,使用Ernie作爲編碼層,對字級別token進行編碼,解碼層是一個全連接層,以Ernie字向量作爲輸入,輸出一個多層label實現實體關係抽取。

該模型最大亮點是設計了一個簡單而有效的標註框架,該框架使用token level 的多label分類,即每一個token對應多個label。假設一共存在R個關係,那label一共有(2*R+2)層,如果是subject中的第一個token,則標記爲「B-S-關係名稱」;如果是object中的第一個token,則標記爲「B-O-關係名稱」;其餘的實體token標記爲「I」,不隸屬於實體的token標記爲「O」;

如下圖示例中的2個spo三元組,「王雪純-配音-晴雯」和「王雪純-配音-紅樓夢」,存在兩個關係「配音-人物」和「配音-作品」,對於subject「王雪純」,「王」是一個複合標籤,同時標記爲「B-S-配音-作品」和「B-S-配音-人物」;其餘的「雪」「純」用「I」來標註;對於object「紅樓夢」,「紅」標註爲「B-O-配音-作品」;其餘的「樓」「夢」用「I」來標註;對於object「晴雯」,「晴」標註爲「B-O-配音-人物」;其餘的「雯」用「I」來標註。

在這裏插入圖片描述

Multi-turn QA

該模型將實體關係聯合抽取的任務當作一個多輪問答問題來處理,即每種實體和每種關係都用一個問答模板進行刻畫,從而這些實體和關係可以通過回答這些模板化的問題來從上下文中進行抽取。

Multi-turn QA的抽取過程如下圖所示:

在這裏插入圖片描述

Multi-turn QA可以分爲頭實體抽取和關係與尾實體抽取兩部分。

頭實體抽取:由於每一輪多輪對話都需要一個頭實體來作爲 trigger,因此需要事先抽取句子中所有的頭實體,而抽取實體的過程可以看作一個抽取 entity_question 答案的過程。所有 entity_question 都存放在EntityQuesTemplates 中,每一種 entity_question 都對應一類實體的抽取

關係與尾實體抽取:ChainOfRelTemplates 定義了一個關係序列,我們需要根據這個關係序列來進行多輪問答。同時,它也定義了每種關係的模板,爲了生成對應的問題,要在模板槽(slot)中插入之前抽取的實體。然後,關係 REL 和尾實體 e 就能通過回答問題同時被抽取出來。如果回答是 None,就說明沒有答案,即只有同時抽出頭實體,以及頭實體存在對應的關係和尾實體被抽出時,纔算是成功抽出一個滿足條件的三元組。

本文的思想和ETL-span,HBT兩個模型非常相似。都是先抽取一個頭實體作爲觸發詞,然後在從句子中抽取這個頭實體對應的尾實體和關係。這種抽取思路的主要優點是能夠整合對關係分類任務重要的一些先驗信息,這些信息可以幫助解決現有關係抽取模型難以解決的問題,如遠距離實體對、關係重疊問題。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章