信息抽取——實體關係聯合抽取

簡介

一般,早期的信息抽取將實體抽取和關係抽取看做串聯的任務,這樣的串聯模型在建模上相對更簡單,但這樣將實體識別和關係抽取看成兩個獨立的任務明顯會存在一系列的問題:算法

  • 兩個任務的解決過程當中沒有考慮到兩個子任務之間的相關性,從而致使關係抽取任務的結果嚴重依賴於實體抽取的結果,致使偏差累積的問題
  • 對於一對多的問題,也就是關係重疊問題,串聯模型沒法提供較好的解決方案

所以,近年來有許多工做都考慮將實體識別與關係抽取任務進行聯合建模,這種 end-to-end 的模型直覺上會有更優的效果。網絡

實體關係聯合抽取

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

原文連接:https://www.aclweb.org/anthology/P16-1105/架構

該論文是經典的 end-to-end 實體關係聯合抽取模型,在此以前,聯合抽取模型一般都是基於人工構造特徵的結構化學習方法,而該論文采用了端到端的神經網絡結構來進行建模,該模型基於詞序信息以及依存樹結構信息來抽取實體以及實體關係,其主要模型結構以下圖所示:
框架

該模型主要分爲以下三個部分:機器學習

  • Embeddings layer:Embedding 層主要用於學習對應表徵,整個模型中主要有四個 Embedding 層,分別用來表示詞嵌入\(v^{(w)}\)、詞性(POS)嵌入\(v^{(p)}\)、依存關係嵌入 \(v^{(d)}\) 以及實體標籤嵌入 \(v^{(e)}\)。注意每一個嵌入層是用在模型的不一樣位置的。
  • Sequence Layer:嵌入層的詞嵌入以及POS嵌入做爲該層的輸入,即時刻 \(t\) 的輸入爲 \(x_t = [v^{(w)}_t, v^{(p)}_t]\),Sequence Layer 主要完成的是實體識別任務,有以下幾個小塊
    • 利用 BiLSTM 做爲序列編碼器,獲得的輸出則是 BiLSTM 在同一個時刻兩個方向上的輸出 \(s_t = [\overrightarrow{h}_t; \overleftarrow{h}_t]\)
    • 將實體識別任務看做是一個序列標註任務,實體標籤採用 BILOU(Begin, Inside, Last, Outside, Unit) 的標註方式,而實體類別接續在實體標籤以後 (標準方法能夠參考我關於序列標註的第一篇文章)。利用兩個全鏈接層來實現實體識別
      \[\begin{aligned} h^{(e)}_t &= tanh(W^{(e_h)}[s_t; v_{t-1}^{(e)}] + b^{(e_h)})\\ y_t &= softmax (W^{(e_y)}h^{(e)}_t + b^{(e_y)}) \end{aligned}\]ide

      顯然,在每一個詞的標籤預測時,將考慮到上一個詞的預測結果,從而考慮到標籤上的依賴性。
  • Dependency layer:該層主要關注兩個實體在依存樹的最短路徑(shortest path),最短路徑在作個關係分類研究中已被證實是十分有效的。做者採用了雙向樹結構的 BiLSTM 來捕捉兩個實體之間的關係。從論文中的表達式來看,樹結構的 LSTM 與傳統 LSTM 的區別在於,其接受多個子節點的隱藏信息,而不只僅是上一個時刻的隱藏信息。做者提出一種新的基於樹結構的 LSTM,其相同類型的子節點共享參數矩陣,同時容許可變數量的子節點(感興趣的讀者能夠去原文看看模型細節,公式較多這裏就不作詳細介紹了)。該層以對應 Sequence Layer 對應時刻的隱藏狀態、依存關係嵌入和實體標籤嵌入的拼接做爲模型輸入,即
    \[x_t = [s_t; v_t^{(d)}; v_t^{(e)}]\]函數

    做者將 Dependency layer 堆疊在 Sequence layer 上,所以 Dependency layer 能夠依賴 Sequence layer 的輸出,或者說實體識別的結果間接地對關係分類的結果加以影響。工具

    對於構造的樹結構的 BiLSTM,存在兩個傳輸方向,即從子節點到根節點方向 "\(\uparrow\)",和從根節點到子節點方向 "\(\downarrow\)",最終用於關係分類的輸入,爲根節點位置 \(\uparrow\) 方向上的隱藏狀態,和兩個實體的 \(\downarrow\) 方向上的隱藏狀態的拼接,即
    \[d_p = [\uparrow h_{pa}; \downarrow h_{p1}; \downarrow h_{p2}]\]性能

    此外,考慮到每一個輸出都是隻考慮到單詞之間的關係,而沒法利用整個實體的信息,爲了緩解這個問題,做者將 Sequence layer 上對應實體的隱藏層求平均拼接到 \(d_p\) 上,即
    \[d_p' = [d_p;\frac{1}{|I_{p_1}|}\sum_{i\in I_{p_1}}s_i;\frac{1}{|I_{p_2}|}\sum_{i\in I_{p_2}}s_i]\]

    其中,\(I_{p_1}\)\(I_{p_2}\) 分別表示實體 1 和實體 2 的單詞集合,將該向量直接輸入與 Sequence layer 中相似的分類器進行分類,即
    \[\begin{aligned} h^{(r)}_p &= tanh(W^{(r_h)}d_p' + b^{(r_h)})\\ y_p &= softmax (W^{(r_y)}h^{(r)}_t + b^{(r_y)}) \end{aligned}\]

小結:總的來講,該任務經過在實體識別和關係抽取任務中共享 Embedding layer 和 Sequence layer 參數的方法,增強兩個任務之間的相關性,確實存在必定的創新,且設計了樹結構的 LSTM 模型用於關係分類任務中。可是其模型設計上還存在很大的缺陷,如實體抽取任務上忽略了標籤之間的長依賴關係,此外實體與關係的抽取仍是存在前後性,兩個任務並非徹底同步進行的。這篇論文首次將神經網絡模型用於解決實體關係聯合抽取任務,屬於這塊領域的開山之做,以後不少工做都在此基礎上進行改進,或與該工做的結果進行對比

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

原文連接:https://arxiv.org/abs/1706.05075

該篇論文被評爲 ACL2017 傑出論文,其主要作法是將實體關係聯合抽取任務看做一個序列標註任務來處理,取得了很是好的效果。

做者認爲,以前的作法多數都須要大量複雜的特徵工程,而且十分依賴其餘的 NLP 工具,這將致使偏差傳播問題。雖然 Model 1 經過共享參數的方法將兩個任務整合到同一個模型當中,可是實體抽取與關係識別任務仍然是兩個分離的過程,這將形成產生大量的冗餘信息。

做者認爲,實體關係聯合抽取的關鍵就是要獲得實體對以及它們之間關係組成的三元組。所以做者的作法是直接對三元組進行建模,而不是分別提取實體和關係。爲了解決這個問題,做者設計了一種新穎的標註方案,它包含實體信息和它們所持有的關係,對於系列標註問題,很容易使用神經網絡來建模,而不須要複雜的特徵工程。

論文的主要貢獻有以下幾點:

  • 提出了一種新的標註方案,聯合提取實體和關係,能夠很容易地將提取問題轉化爲標註任務。
  • 基於咱們的標註方案,咱們研究了不一樣類型的端到端模型來解決問題。基於標記的方法比大多數現有的流水線和聯合學習方法要好。
  • 此外,咱們還開發了具備偏置損失函數的端到端模型,以適應新型標註。它能夠加強相關實體之間的關聯。

下面簡單介紹一下論文如何將提取問題轉換爲基於本文標註方法的標註問題,簡單的標註實例如上圖所示

  • 須要抽取的三元組能夠表示爲:(Entity1, RelationType, Entity2),其中,Entity1 和 Entity2 須要抽取的文中的實體,RelationType 爲預約義的 Entity1 和 Entity2 之間的關係
  • 非抽取對象用標籤 "O" 標註,表示 "Other"
  • 實體對象的標籤由三部分組成:單詞位置、關係類型、關係角色
    • 單詞位置使用 "BIES" 的方式來標註,表示單詞在實體中的位置信息
    • 關係類型直接從預約義的關係集合中得到
    • 關係角色直接用 "1" 和 "2" 表示,用於表示實體在三元組中的位置
    • 標籤的總數爲 $2 \times 4 \times|R| + 1 $,其中 \(|R|\) 是預約義的關係集的大小
  • 對於已標註的序列,根據就近原則將其合併爲須要抽取的三元組

端到端模型的基本架構如上圖所示,主要包括以下幾個部分:

  • BiLSTM Encoder layer: 將傳統的 BiLSTM 做爲序列編碼層,並將對應時刻的雙向隱藏輸出拼接獲得對應詞的編碼結果,即 \(h_t = [\overrightarrow{h}_t; \overleftarrow{h}_t]\)
  • LSTM Decoding Layer: 從圖中能夠清楚的看到差異,LSTM Decoding Cell 與經典的 LSTM 的區別在於,其當前時刻的輸入除了上一時刻的隱藏狀態 \(h^{(2)}_{t-1}\) 以及當前時刻的輸入 \(h_t\) 以外,還包括上一時刻的預測標籤表示 \(T_{t-1}\),即
    \[h_t^{(2)} = LSTM(h_t, [h^{(2)}_{t-1}, T_{t-1}])\]

    對於時刻 \(t\) 的隱藏狀態,經過一個全鏈接層獲得標籤表示:
    \[T_t = W_{ts}h_t^{(2)} + b_{ts}\]

最終將標籤表示輸入經典的全鏈接層分類器進行分類:
\[\begin{aligned} y_t &= W_yT_t + b_y\\ p_t^i&=\frac{exp(y_t^i)}{\sum_{j=1}^{N_t}exp(y_t^j)} \end{aligned}\]

  • The Bias Objective Function: 定義了一個標籤偏置函數
    \[ L = max\ \sum_{j=1}^{|D|}\sum_{t=1}^{L_j}(log(p_t^{(j)}=y_t^{(j)}|x_j, \Theta)\cdot I(O) + \alpha \cdot log(p_t^{(j)}=y_t^{(j)}|x_j, \Theta)\cdot (1- I(O)))\]

    上式中,\(|D|\) 是訓練集的大小,\(L_j\) 是句子 \(x_j\) 的長度,\(y_t^{(j)}\) 是單詞 \(x_j\) 中詞 \(t\) 的標註,\(p_t^{(j)}\) 是模型輸出的歸一化標註機率。此外,\(I(O)\) 是一個開關函數,以區分標註 ‘O’ 與 其餘標註。他被定義以下:
    \[I(O) = \begin{cases} 1,\ if\ tag = 'O'\\ 0,\ if\ tag \ne 'O' \end{cases}\]

    簡單來講,就是使得模型對於實體標籤與其餘標籤的關注程度不同,而參數 \(\alpha\) 就是偏置權重,\(\alpha\) 越大,模型對於實體的相關標註的偏向性就越大。

小結:這篇論文經過巧妙的設計將實體與關係聯合抽取任務看成一個序列標註任務來處理,大大簡化了工做的複雜性,且其模型性能優於以前的工做。此外,模型的缺陷也是比較明顯的,其沒法考慮到實體關係重疊的問題,也就是說一個實體在上下文中可能與多個實體有不一樣的關係。

Model 3: Joint entity recognition and relation extraction as a multi-head selection problem

原文連接:https://arxiv.org/abs/1804.07847

論文指出了目前的實體關係抽取任務存在的一些問題:

  • 目前 State-of-the-art 的聯合抽取模型依賴外部的NLP工具提取特徵,模型性能嚴重依賴 NLP 工具的性能;
  • 以前的工做沒有考慮實體關係重疊問題,即一個實體可能與上下文中的多個實體有不一樣的關係。

該論文創新點在於其將實體關係聯合抽取問題看做是一個 multi-head selection 的問題,即任何一個實體均可能與其餘實體存在關係,目的是解決關係重疊問題。

該論文提出的模型如上圖所示,包括如下結構:embedding layer,BiLSTM layer,CRF layer,sigmoid scoring layer。

  • Embedding layer:Embedding layer 主要用於生成詞表徵,包括字符級別的向量和詞級別的向量兩個部分,構造方式以下所示,引入字符級別的向量是由於字符級別的向量能夠融入一些形態學特徵

  • BiLSTM encoding layer:利用 多層的 BiLSTM 來對句子進行編碼,每個時刻的輸出爲兩個方向的向量的拼接:
    \[h_i = [\overrightarrow{h}_i; \overleftarrow{h}_i], i = [0, ..., n]\]

  • CRF layer: 在 BiLSTM 以後接 CRF 來輔助實體識別已是常規操做了,實體識別部分的標註方式是 BIO,此外在實體位置標註以後還接有實體類別標註,在圖中也有很清楚的表示
  • Label Embedding:構造一個 Label Embedding 層,用來獲取標籤相應的向量表徵,也是可訓練的,用 \(g_i\) 表示第 \(i\) 個 token 的預測標籤向量

  • multi-head selection problem:將關係抽取看做一個 multi-head selection problem,multi-head 的含義是每一個 實體 與其餘全部 實體 都存在關係,在判斷關係的時候,爲了不形成信息冗餘,只判斷每一個實體的最後一個 token 與其餘實體的最後一個 token 的關係,而每一個實體的最後一個 token 被稱做 head。對於每一個 head ,須要預測元組 \((\hat{y}_i, \hat{c}_i)\),其中 \(\hat{y}_i\) 表示當前 token 的關係對象,\(\hat{c}_i\) 表示二者之間的關係。對於給定的 token 向量 \(w_i\)\(w_j\),其關係爲 \(r_k\) 的分數爲:
    \[s^{(r)}(z_j, z_i, r_k) = V^{(r)}f(U^{(r)}z_j + W^{(r)}z_i + b^{(r)})\]

    其中,\(z_i = [h_i; g_i]\)\(f(·)\) 爲激活函數,\(U^{(r)}, W^{(r)}\) 至關於先將向量進行降維,\(V^{(r)}\) 是一個一維向量,最後輸出的是一個分數值,以後再將分數映射爲機率值
    \[Pr(head=w_j, label=r_k|w_i)=\sigma(s^{(r)}(z_i, z_j, r_k))\]

    關係抽取過程的損失函數定義爲:
    \[L_{rel} = \sum_{i=0}^{n}\sum_{j=0}^{m}-log\ Pr(head=y_{i,j}, relation=r_{i,j}|w_i)\]

    整個模型的損失函數即爲 \(L_{ner} + L_{rel}\)

    在預測階段,能夠經過認爲輸出的預測機率超過某一個閾值就認爲這個關係是有效的。注意,該模型對兩個詞之間過個關係的預測並非採用的 softmax 函數,而是對每一個關係採用了 sigmoid 函數,區別在於 softmax 是將全部類別看做是互斥關係,將全部分數歸一化爲和爲 1 的形式,而 sigmoid 與 softmax 的區別在於,其獨立的將每一個類別的判斷看做是獨立二分類的問題,即各個類別不存在互斥關係,這樣跟有利於判斷出兩個實體之間存在的多種關係的狀況。

小結:這篇文章的關鍵創新點在於其將關係抽取任務看成一個 multi-head selection problem 的問題,從而使得每一個實體可以與其餘全部實體判斷關係,此外,再也不將關係抽取任務看成一個每一個關係互斥的多分類任務,而是看做每一個關係獨立的多個二分類任務,從而可以判斷每一對實體是否可能有多個關係存在。此外,該組在同一年還發布了一篇以該論文爲 baseline,在訓練過程當中加入對抗擾動的論文,分數達到新高,有興趣的同窗能夠關注一下

Model 4: 基於DGCNN和機率圖的輕量級信息抽取模型

原文連接:https://kexue.fm/archives/6671

這個模型是蘇神提出的 DGCNN 用於實體關係抽取的模型,一直感受這個模型設計的挺巧妙的,這裏也記錄下。數據集是百度給出的中文信息抽取數據集(須要的話能夠去蘇神博客裏找,有下載連接)。

首先,做者發現數據主要有如下幾個特色:

  • s和o未必是分詞工具分出來的詞,所以要對query作標註才能抽取出正確的s、o,而考慮到分詞可能切錯邊界,所以應該使用基於字的輸入來標註;
  • 樣本中大多數的抽取結果是「一個s、多個(p, o)」的形式,好比「《戰狼》的主演包括吳京和余男」,那麼要抽出「(戰狼, 主演, 吳京)」、「(戰狼, 主演, 余男)」;
  • 抽取結果是「多個s、一個(p, o)」甚至是「多個s、多個(p, o)」的樣本也佔有必定比例,好比「《戰狼》、《戰狼2》的主演都是吳京」,那麼要抽出「(戰狼, 主演, 吳京)」、「(戰狼2, 主演, 吳京)」;
  • 同一對(s, o)也可能對應多個p,好比「《戰狼》的主演和導演都是吳京」,那麼要抽出「(戰狼, 主演, 吳京)」、「(戰狼, 導演, 吳京)」;
  • 極端狀況下,s、o之間是可能重疊的,好比「《魯迅自傳》由江蘇文藝出版社出版」,嚴格上來說,除了要抽出「(魯迅自傳, 出版社, 江蘇文藝出版社)」外,還應該抽取出「(魯迅自傳, 做者, 魯迅)」。

由上可知,數據集的質量很是高,且狀況也十分複雜。做者由此調研了當時主要的信息抽取模型,發現沒有一個模型能很好地覆蓋這5個特色。因而自行設計了一個基於機率圖思想的抽取方案,而後從效率出發,利用 CNN+Attention 的架構完成了這個模型。

做者設計的抽取方案借鑑了 seq2seq 的機率圖思路。在 seq2seq 解碼器的解碼過程是層次遞歸進行的的,其其實是在建模
\[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(o|s)P(p|s,o)\]

即首先預測 \(s\),而後根據 \(s\) 來預測該 \(s\) 所對應的 \(o\)\(p\)。因爲抽取 \(s\) 以及抽取 \(s\) 所對應的 \(o\)\(p\) 的過程均是非惟一性的,所以,做者採用了 MRC 中經常使用的指針網絡的抽取方法,即僅抽取答案的開始和結束位置,且把預測開始和結束位置的任務轉化爲了預測每個位置是否爲開始位置或結束位置(將softmx換成sigmoid)。模型的總體結構以下圖所示

咱們這裏只關注做者信息抽取的思路,更多的模型細節能夠去做者的博客裏瞭解。總的來講,整個模型包括以下幾個部分:

  • 字編碼層:獲得字表徵
  • \(s\) 抽取層:經過 Self-Attention 和 CNN 的結構來對 s 的開始和結束位置進行抽取
  • 對於預測到的 \(s\) 將其對應位置的編碼結果經過一個 BiLSTM 進一步比啊媽,而後拼接到 Self-Attention 的輸出中,再經過 CNN 預測每個 \(p\) 對應的 \(o\) 到開始和結束位置

做者的思路相比於以前的模型很好的解決了關係重疊問題,且主要架構是基於 CNN 和 Self-Attention,所以模型訓練速度很是快。做者在博客結尾提到了下面要介紹的這篇論文,大體思想與做者的論文相相似,可是是經過將其轉化爲一個多輪問答的形式將信從而將抽取過程建模爲層次遞歸的。

Model 5: Entity-Relation Extraction as Multi-turn Question Answering

原文連接:https://www.aclweb.org/anthology/P19-1129/

過去大部分論文都將實體關係聯合抽取的任務看做是一個三元組抽取任務,而這樣的處理將存在以下幾個問題

  • 在形式化層面上:簡單的三元組形式每每不能充分表現文本背後的結構化信息,由於每每在文本中存在層級性的依賴關係。獨立地考慮兩種實體可能致使依賴關係的間斷。
  • 在算法層面上:對於關係抽取任務,大多數模型都是以標記的 mention 做爲輸入,而模型的主要目的是判斷兩個 mention 是否存在某種關係,在這種狀況下,模型難以捕捉詞彙、語法以及語義上的關係,特別是在以下幾種情形下:
    • 實體相距很遠;
    • 一個實體出如今多個三元組中;
    • 關係跨度相交

這個篇文章的創新點在於其將實體關係聯合抽取的任務看成一個多輪問答類問題來處理,即每種實體和每種關係都用一個問答模板進行刻畫,從而這些實體和關係能夠經過回答這些模板化的問題來從上下文中進行抽取。下面簡單給出一個問答模版:

可見,問題主要有以下幾個特色:

  • 首先肯定目標實體 \(e1\)
  • 以後根據目標實體和候選關係類別進行提問

這樣的處理方法主要有以下幾個優勢:

  • 可以很好地捕捉標籤的層次依賴性。即隨着每一輪問答的進行,咱們有序的得到所須要的實體,這與多回合填充式對話系統相似
  • 問題的編碼可以整合對關係分類任務重要的一些先驗信息,這些信息能夠潛在地解決了現有關係抽取模型難以解決的問題,如遠距離實體對,或是關係重疊問題
  • QA任務提供了一種很天然的方式來融合實體抽取和關係抽取任務,由於 QA 任務對於沒有答案的問題能夠返回 None,則對於不存在相應關係的問題,若是返回的不是 None,則能夠同時肯定實體和關係

將實體關係抽取任務轉化爲多輪問答任務的算法如上所示,整個算法分以下幾個部分:

  • 頭實體抽取(line 4 - 9):因爲每一輪多輪對話都須要一個頭實體來做爲 trigger,所以須要事先抽取句子中全部的頭實體,而抽取實體的過程能夠看做一個抽取 entity_question 答案的過程。全部 entity_question 都存放在 EntityQuesTemplates 中,每一種 entity_question 都對應一類實體的抽取
  • 關係與尾實體抽取(line 10 - 24):ChainOfRelTemplates 定義了一個關係序列,咱們須要根據這個關係序列來進行多輪問答。同時,它也定義了每種關係的模板,爲了生成對應的問題(第14行),咱們要在模板槽(slot)中插入以前抽取的實體。而後,關係 REL 和尾實體 e 就能經過回答問題同時被抽取出來。若是回答是 None,就說明沒有答案,即只有同時抽出頭實體,以及頭實體存在對應的關係和尾實體被抽出時,纔算是成功抽出一個知足條件的三元組了。

關於問題模版的生成方式能夠參考原文中的方法,這裏就不贅述了。

咱們知道現階段常見的 MRC 模型都是經過指針網絡的方式,僅預測答案在 Context 中的開始和結束位置,僅適用於單答案的狀況。但對於實體識別任務,在一段 Context 中可能有多個答案,因此這種方法並不合適。做者的作法是將其看成以問題爲基礎的序列標註問題,或者說將 2 個 N-class 分類任務轉換成 N 個 5-class 分類任務,其中 N 爲句子長度。

做者將 BERT 做爲 baseline。訓練時,損失函數爲兩個子任務的疊加,即:
\[L = (1-\lambda)L(head_entity) + \lambda L(tail_entity, rel)\]

爲了進一步優化模型性能,還採用了強化學習的方法來進一步優化,這一塊暫時也不作研究了,感興趣的同窗能夠去原文參考一下

Model 6: A Novel Hierarchical Binary Tagging Framework for Joint Extraction of Entities and Relations

原文連接:https://arxiv.org/abs/1909.03227

這篇文章在 WebNLG 和 NYT 數據集上取得了 SOTA 的效果,模型的總體思路與蘇神的模型很是相似。該論文指出,當前處理關係重疊的模型仍然存在一系列問題,具體來講,它們都將關係視爲要分配給實體對的離散標籤。 這種表述使關係分類成爲困難的機器學習問題。 例如,當在相同上下文中的同一實體參與多個(在某些狀況下超過五個)有效關係(即重疊的三元組)時,分類器須要大量的監督學習才能肯定上下文與關係的對應關係。

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

  • 抽取三元組中的 subject
  • 針對每個 \(f_r(·)\),抽取其對應的 object

實體抽取的方法與上一片論文以及蘇神的作法差很少,即採用 Point Net 的指針形式進行抽取。這樣的建模方式明顯更容易學習。實驗結果代表即使使用隨機初始化的 BERT 做爲編碼層,仍然可以取得 SOTA 的效果。

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

  • BERT Encoder:經過 BERT 獲得每一個詞的詞表徵,關於 BERT 這裏不作具體介紹了,把 BERT 的輸出看成詞向量用便可
  • Subject Tagger:該部分用於識別全部可能的 subject 對象。其經過對每個位置的編碼結果用兩個分類器進行分類,來判斷其是不是實體的開始或結束位置,即
    \[ p^{start\_s}_i = σ(W_{start}x_i + b_{start}) \\ p^{end\_s}_i = σ(W_{end}x_i + b_{end}) \]

    其中,\(x_i\) 爲第 i 個詞經過 BERT 的編碼輸出,\(W, b\) 爲全鏈接層分類器的參數,激活函數爲 sigmoid。對於句子中存在多個 subject 的狀況,開始指針與結束指針經過就近匹配原則進行配對

  • Relation-specific Object Taggers:針對每個 subject,都須要對其進行以後的 object 進行預測。由圖中可知,其與 Subject Tagger 基本一致,主要區別在於
    • 每個關係類別獨享一組 object 分類器
    • 這一部分的輸入除了輸入序列的 BERT 編碼結果,還額外加入了 subject 的特徵,subject 特徵爲 subject 的每一個字符的 BERT 表徵的平均池化
    • 主要表達式以下
      \[p^{start\_o}_i = \sigma(W^r_{start}(x_i + v^k_{sub}) + b^r_{start}) \\ p^{end\_o}_i = \sigma(W^r_{end}(x_i + v^k_{sub}) + b^r_{end})\]

小結

早期聯合抽取模型的架構主要可分爲兩個部分:

  • 實體對抽取
  • 實體間關係分類

其將關係分類看做兩個實體間的離散標籤多分類問題,這樣的問題學習起來是十分困難的,或者說沒法很好的學習到兩個標籤之間的相關性。近年來的模型大多都將其建模爲層次遞歸的模型,其直接爲每一個關係類別構建獨立的模型,用於學習這種關係映射關係,主要能夠分爲下面兩個部分

  • 抽取全部可能的第一個 subject
  • 對於每個 subject,將其輸入到每個關係類別模型中,抽取每一個關係對應的 object

這種將實體關係看成一種函數映射來學習的方式顯然可以獲得更好的效果。

參考連接
https://zhuanlan.zhihu.com/p/74886839
https://mp.weixin.qq.com/s?__biz=MzI2NjkyNDQ3Mw==&mid=2247486614&idx=2&sn=46b8a011a29803fc59f14431e91b8fbd&chksm=ea87f440ddf07d564cb3ce680ea52277c12bce882419428c581b95abbf58d75265fd3fb01942&scene=21#wechat_redirect
https://blog.csdn.net/qq_32782771/article/details/86062586
https://zhuanlan.zhihu.com/p/65870466

相關文章
相關標籤/搜索