1. 程式人生 > 實用技巧 >《A Joint Neural Model for Information Extraction with Global Features》論文筆記

《A Joint Neural Model for Information Extraction with Global Features》論文筆記

2020 ACL會議《A Joint Neural Model for Information Extraction with Global Features》

論文地址

該論文提出一個名為ONEIE的資訊抽取框架,增加一個全域性特徵,在例項之間和子任務之間進行聯合決策。

1. Introduction

大多數的資訊抽取的聯合學習模型使用task-specific分類對獨立實體進行標記而不是使用實體之間的互動資訊。論文提出名為ONEIE的端到端資訊抽取框架,整個過程分為四個操作階段:

  1. 對輸入語句進行編碼(Embedding);
  2. 識別句中的實體(Entity)和事件(Event)並用結點(Node)進行表示;
  3. 使用句內資訊(Local classifier)計算所有結點及其連線(Link)的標籤分數(Label Score);
  4. 解碼(Decoding)時使用束搜尋(Beam search)找到全域性最優圖。

在解碼階段加入全域性特徵(Global Feature)捕捉例項之間(cross-instance)和子任務之間(cross-subtask)的聯絡(Interaction)。同時ONEIE框架沒有使用任何特定語言的語法特徵(Language-specific feature),所以很容易適應新語言。

框架示意圖

2. Task

  1. Entity Extraction

    根據提前定義(Pre-defined)的實體分類識別語句中提及的實體。

  2. Relation Extraction

    對給定的實體對分配關係型別。

  3. Event Extraction

    涉及識別非結構語句中的事件觸發語(Event trigger: the word or phrases that most clearly express event occurrences)及這些詞語和短語的論據(Arguments: the words and phrases for participants in those events),並將這些短語根據型別和語法規則進行分類。

    一個Argument可以是一個實體、時間表達式或數值等。

對資訊抽取的任務作如下規定:
對於給定的句子,目的是提取一個資訊表示圖: G = ( V , E ) G=(V,E)

G=(V,E),其中 V V V E E E分別表示結點集和邊集。

對於任意結點 v i = < a i , b i , l i > ∈ V v_i=<a_i, b_i, l_i>\in V vi=<ai,bi,li>V表示一個實體(Entity)或事件觸發器(Event trigger),其中 a a a b b b分別表示結點起始和結束詞語的索引(indices), l l l表示結點型別標籤(Node type label)。

對於任意邊 e i j = < i , j , l i j > ∈ E e_{ij}=<i,j,l_{ij}>\in E eij=<i,j,lij>E表示兩個結點之間的關係,其中 i i i j j j分別表示兩個相關結點的索引, l i j l_{ij} lij表示關係型別。

3. Approach

ONEIE框架對給定的語句進行資訊網路提取,分為以下四步:encoding,identification,classification和decoding。我們使用預訓練的BERT模型進行編碼,然後對語句中的實體和事件觸發器進行識別。之後計算所有的結點和相關的邊的型別標籤分數(Type label scores)。在解碼階段,我們使用束搜尋(Beam Search)探索輸入語句可能的資訊網路。

3.1 Encoding

輸入一句包含 L L L個詞的語句,使用預訓練的BERT模型將每個詞表示為 x i x_i xi。實驗發現使用最後三層BERT在大多數的子任務上表現較好。

3.2 Identification

這一階段將識別句中的實體提及和事件觸發器,並表示為資訊網路中的結點。我們使用前饋神經網路FFN計算每個詞的分數向量 y ^ i = F F N ( x i ) \hat{y}_i=FFN(x_i) y^i=FFN(xi) y ^ i \hat{y}_i y^i表示一個標籤在目標標籤集(Target tag set)中的分數。

之後使用CRF層捕捉標籤之間的聯絡,計算tag path z ^ = { z 1 ^ , . . . , z ^ L } \hat{z}=\{\hat{z_1},...,\hat{z}_L\} z^={z1^,...,z^L}的分數:
s ( X , z ^ ) = ∑ i = 1 L y ^ i , z i ^ + ∑ i = 1 L + 1 A z ^ i − 1 , z ^ i s(X,\hat{z})=\sum_{i=1}^{L}{\hat{y}_{i,\hat{z_i}}}+\sum_{i=1}^{L+1}{A_{\hat{z}_{i-1},\hat{z}_{i}}} s(X,z^)=i=1Ly^i,zi^+i=1L+1Az^i1,z^i

其中 X = { x 1 , . . . , x L } X=\{x_1,...,x_L\} X={x1,...,xL}是輸入語句中每個詞的向量表示, y ^ i , z i ^ \hat{y}_{i,\hat{z_i}} y^i,zi^是分數向量 y ^ i \hat{y}_i y^i在第 z ^ i \hat{z}_i z^i條路徑的組合, A z ^ i − 1 , z ^ i A_{\hat{z}_{i-1},\hat{z}_{i}} Az^i1,z^i是矩陣A中 z ^ i − 1 \hat{z}_{i-1} z^i1 z ^ i \hat{z}_i z^i的轉移分數。同時,我們在A中新增兩個特殊的標籤 < s t a r t > , < e n d > <start>,<end> <start>,<end>分別作為 z ^ 0 \hat{z}_0 z^0 z ^ L + 1 \hat{z}_{L+1} z^L+1來表示詞語序列的開始和結束。

訓練階段時,我們最大化標準標籤路徑的對數似然估計:
log ⁡ p ( z ∣ X ) = s ( X , z ) − l o g ∑ z ^ ∈ Z e s ( X . z ^ ) \log{p(z|X)}=s(X,z)-log{\sum_{\hat{z}\in Z}{e^{s(X.\hat{z})}}} logp(zX)=s(X,z)logz^Zes(X.z^)
其中 Z Z Z是輸入語句中所有可能標籤路徑的集合。

所以我們定義實體識別階段的損失函式為:
L I = − log ⁡ p ( z ∣ X ) L^I=-\log{p(z|X)} LI=logp(zX)

3.3 Classification

將每個識別出的結點表示為 v i v_i vi,之後使用分離的針對特定任務的前饋神經網路來計算每個結點的標籤分數:
y ^ i t = F F N t ( v i ) \hat{y}_{i}^{t}=FFN^t(v_i) y^it=FFNt(vi)
其中 t t t表示一個特定的任務。

為了獲得 i − t h i-th ith j − t h j-th jth結點之間邊的標籤分數,我們連線它們的跨度表示(Span Representation),將向量表示為:
y ^ k t = F F N t ( v i , v j ) \hat{y}_{k}^{t}=FFN^t(v_i,v_j) y^kt=FFNt(vi,vj)
對於每個任務,訓練目標是最小化以下交叉熵損失:
L t = − 1 N t ∑ i = 1 N t y i t log ⁡ y ^ i t L^{t}=-\frac{1}{N^t}\sum_{i=1}^{N^t}{y_i^{t}\log{\hat{y}^{t}_{i}}} Lt=Nt1i=1Ntyitlogy^it
其中, y i t y_i^{t} yit是向量的正確標籤, N t N^t Nt是任務 t t t中的實體數量。

如果忽略結點和邊的內在依賴關係(Inter-dependencies),我們可以直接通過每個任務的最高分數來預測標籤,之後生成區域性的最佳圖 G ^ \hat{G} G^。最佳圖 G ^ \hat{G} G^分數的計算方法為:
s ′ ( G ^ ) = ∑ t ∈ T ∑ i = 1 N t max ⁡ y ^ i t s'(\hat{G})=\sum_{t\in T}\sum_{i=1}^{N^t}{\max{\hat{y}_i^t}} s(G^)=tTi=1Ntmaxy^it
其中, T T T是任務的集合,將 s ′ ( G ^ ) s'(\hat{G}) s(G^)作為 G ^ \hat{G} G^的區域性分數參考。

3.4 Global Features

我們考慮框架中的兩種型別的內部依賴:

  1. 子任務間的作用 Cross-subtask interactions

    這種依賴關係存在於實體、關係和事件之間;

  2. 實體之間的作用 Cross-instance interactions

    這種依賴存在於一個句子中多個事件和/或關係的例項之間。

全域性特徵型別模板(Event schemas)

我們設計一套全域性特徵型別模板(Event schemas)來捕捉以上兩類相互作用,模型填充所有可能的型別來生成特徵,並在訓練過程中學習每個特徵的權重。對於給定的一張圖,我們將它的全域性特徵向量描述為:
f G = { f 1 ( G ) , . . . , f M ( G ) } f G = { f 1 ( G ) , . . . , f M ( G ) } f_G=\{f_1(G),...,f_M(G)\}f_G=\{f_1(G),...,f_M(G)\} fG={f1(G),...,fM(G)}fG={f1(G),...,fM(G)}
其中, M M M是全域性特徵的數量, f i ( ⋅ ) f_i(\cdot) fi()是一個函式,對某個特徵求值並返回標量。比如:
f i ( G ) = { 1 , G   h a s   m u l t i p l e   A T T C K   e v e n t s 0 , o t h e r w i s e f_i(G)=\begin{cases} 1,G\,has\,multiple\,ATTCK\,events\\ 0,otherwise \end{cases} fi(G)={1,GhasmultipleATTCKevents0,otherwise
之後,ONEIE框架學習到一個權重向量 u ∈ R M u\in \R^{M} uRM並且將 f ( G ) f(G) f(G) u u u的點乘作為圖G的全域性特徵分數。將圖G的區域性分數和全域性特徵分數之和作為G的全域性分數:
s ( G ) = s ′ ( G ) + u f ( G ) s(G)=s'(G)+\bold{u}\bold{f}(G) s(G)=s(G)+uf(G)
我們假定一條語句的最佳(Gold-standard)圖應該擁有最高的全域性分數。所以,我們最小化該損失函式:
L G = s ( G ^ ) − s ( G ) L^{G}=s(\hat{G})-s(G) LG=s(G^)s(G)
其中, G ^ \hat{G} G^是區域性分類得到的圖, G G G是最佳圖。

最終,我們在訓練中最優化如下的聯合目標函式:
L = L I + ∑ t ∈ T L t + L G L=L^I+\sum_{t\in{T}}{L^t}+L^{G} L=LI+tTLt+LG

3.5 Decoding

ONEIE對所有的結點和成對的邊進行聯合決策,得到全域性的最優圖。最基本的方法是計算所有候選圖的全域性分數,選擇分數最高的作為最終結果。為了優化複雜度,我們設計了一個以束搜尋為基礎的解碼器(Beam search-based decoder)。

解碼演算法示例

對於給定的識別出的結點集 V V V、所有結點的標籤分數(label scores)和他們之間的成對聯絡執行解碼,初始束集(initial beam set)為 B = { K 0 } B=\{K_{0}\} B={K0} K 0 K_0 K0是一個零階圖。每一步 i i i分為兩小步,分別對結點和邊進行擴充套件:

  1. Node Step

    選擇 v i ∈ V v_i\in V viV,定義候選集為 V i = { < a i , b i , l i ( k ) > ∣ 1 ≤ K ≤ β v } V_i=\{<a_i,b_i,l_i^{(k)}>|1\le K\le\beta_v\} Vi={<ai,bi,li(k)>1Kβv},其中 l i ( k ) l_i^{(k)} li(k)表示 v i v_i vi中分數第 k k k高的區域性標籤分數, β v \beta_v βv是控制候選標籤數量的超引數(hyper-parameter)。通過如下公式更新束集(beam set):
    B ← { G + v ∣ ( G , v ) ∈ B × V i } B\leftarrow\{G+v|(G,v)\in B\times V_i\} B{G+v(G,v)B×Vi}

  2. Edge Step

    迭代地選擇一個 i i i之前的結點 v j ∈ V , j < i v_j\in V,j<i vjV,j<i,同時在 v j v_j vj v i v_i vi之間新增可能的邊。如果 v i v_i vi v j v_j vj都是觸發器(trigger)則跳過 v j v_j vj。每一次迭代中,我們構造一個候選邊集 E i j = { < j , i , l i j ( k ) > ∣ 1 ≤ k ≤ β e } E_{ij}=\{<j,i,l_{ij}^{(k)}>|1\le k\le \beta_e\} Eij={<j,i,lij(k)>1kβe},其中 l i j ( k ) l_{ij}^{(k)} lij(k) e i j e_{ij} eij中分數第 k k k高的標籤, β e \beta_e βe是候選標籤數量的閾值。之後,通過如下函式更新束集:
    B ← { G + e ∣ ( G , e ) ∈ B × E i j } B\leftarrow \{G+e|(G,e)\in B\times E_{ij}\} B{G+e(G,e)B×Eij}
    在每次edge step的最後,如果 ∣ B ∣ |B| B超過束的寬度 θ \theta θ,我們對候選物件按全域性分數從高到低進行排序,只保留分數最高的 θ \theta θ個。

最後一步之後,返回全域性分數最高的圖,作為輸入語句中提取的資訊網路。