EIDER: Evidence-enhanced Document-level Relation Extraction阅读笔记

EIDER: Evidence-enhanced Document-level Relation Extraction

  • Background
  • Purpose
  • Methodology
    • Joint Relation and Evidence Extraction
    • Evidence-centered Relation Extraction
    • Fusion of Extraction Results

Background

文档级关系抽取的目的是提取文档中实体对之间的关系,文档中的推断关系所需的最小句子集称为“evidence sentences”,能够帮助预测特定实体对之间的关系。

Purpose

为了更好地利用证据句,本文提出了一个包含三个阶段的证据增强框架EIDER,包括联合抽取关系和证据,以证据为中心的关系抽取,以及抽取结果融合。

Methodology

系统框架如图2所示。

EIDER: Evidence-enhanced Document-level Relation Extraction阅读笔记_第1张图片

Joint Relation and Evidence Extraction

在本文提出的框架中,关系抽取模型和证据抽取模型共用一个预训练编码器,并有各自的预测器,通过共享基编码器,两个模型能够相互提供额外的训练信号,从而相互增强。

Encoder

给定一个文档 d = [ s t ] t = 1 N d=[s_t]_{t=1}^N d=[st]t=1N,在每个实体提及前后都加入" * ",接着使用BERT编码器获得每个token的嵌入:

H = [ h 1 , h 2 , . . . , h L ] = E n c o d e r ( [ s 1 , . . . , s N ] ) H=[h_1,h_2,...,h_L]=Encoder([s_1,...,s_N]) H=[h1,h2,...,hL]=Encoder([s1,...,sN])

对于每个实体 e i e_i ei的提及,首先使用第一个符号" * "作为提及嵌入,接着使用LogSumExp池化获得实体 e i e_i ei的嵌入:

e i = l o g ∑ j , 1 N e i e x p ( m j i ) e_i=log{\sum^{N_{e_i}}_{j,1}exp(m_j^i)} ei=logj,1Neiexp(mji)

其中 N e i N_{e_i} Nei是实体 e i e_i ei在文档中出现的次数, m j i m_j^i mji是其第j次提及的嵌入。

基于预训练编码器的注意力矩阵,计算每个实体对的上下文嵌入。首先计算在第k个头部下每个token到每个提及 m j m_j mj的注意力分数,记为 A j , k M ∈ R l A_{j,k}^M \in R^l Aj,kMRl。接着通过平均每个提及,计算每个token到每个实体 e i e_i ei的注意力分数,记为 A i , k E ∈ R l A^E_{i,k} \in R^l Ai,kERl。实体对 ( e h , e t ) (e_h,e_t) (eh,et)的上下文嵌入为:

c h , t = H a ( h , t ) c_{h,t}=Ha^{(h,t)} ch,t=Ha(h,t)

a ( h , t ) = s o f t m a x ( ∑ i = 1 K A h , k E ⋅ A t , k E ) a^{(h,t)}=softmax(\sum^K_{i=1}A^E_{h,k}·A^E_{t,k}) a(h,t)=softmax(i=1KAh,kEAt,kE)

Relation Prediction Head

首先通过结合实体嵌入和上下文嵌入,将 e h e_h eh e t e_t et的嵌入映射到上下文感知表示 z h , z t z_h,z_t zh,zt。接着通过bilinear函数获得关系的概率:

z h = t a n h ( W h e h + c h , t ) z_h=tanh(W_{h}e_{h}+c_{h,t}) zh=tanh(Wheh+ch,t)

z t = t a n h ( W t e t + c h , t ) z_t=tanh(W_{t}e_{t}+c_{h,t}) zt=tanh(Wtet+ch,t)

P ( r ∣ e h , e t ) = σ ( z h W r z t + b r ) P(r|e_h,e_t)=\sigma(z_{h}W_{r}z_t+b_r) P(reh,et)=σ(zhWrzt+br)

使用自适应阈值损失(adaptive-thresholding loss )作为关系抽取模型的损失函数:

L R E = − ∑ r ∈ P T l o g ( e x p ( l o g i t r ) ∑ r ′ ∈ P r ∪ { T H } e x p ( l o g i t r ′ ) ) − l o g ( e x p ( l o g i t T H ) ∑ r ′ ∈ N T ∪ { T H } e x p ( l o g i t r ′ ) ) L_{RE} = -\sum_{r \in P_T}log(\frac{exp(logit_r)}{\sum_{r'\in P_r \cup \{TH\}}exp(logit_{r'})}) -log(\frac{exp(logit_{TH})}{\sum_{r'\in N_T \cup \{TH\}}exp(logit_{r'})}) LRE=rPTlog(rPr{TH}exp(logitr)exp(logitr))log(rNT{TH}exp(logitr)exp(logitTH))

对于实体对T,若其包含关系r,则 r ∈ P T r \in P_T rPT(正类),否则$ r \in N_t $(负类)。正类的概率应该高于阈值,负类的概率应该低于阈值,该阈值TH可学习得到。

Evidence Prediction Head

证据预测模型预测每个句子是否是实体对的证据句。为了获得句子嵌入,引入平均池化的方法:

s i = 1 ∣ s i ∣ ∑ h l ∈ s i ( h l ) s_i=\frac{1}{|s_i|}\sum_{{h_l}\in s_i}(h_l) si=si1hlsi(hl)

使用bilinear函数评估句子 s i s_i si与实体对的重要性:

P ( s i ∣ e h , e t ) = σ ( s i W v c h , t + b v ) P(s_i|e_h,e_t)=\sigma (s_{i} W_{v}c_{h,t}+b_v) P(sieh,et)=σ(siWvch,t+bv)

由于实体对可能包含不止一个证据句,采用二元交叉熵作为模型目标函数:

L E v i = − ∑ s i ∈ D y i ⋅ P ( s i ∣ e h , e t ) + ( 1 − y i ) ⋅ l o g ( 1 − P ( s i ∣ e h , e t ) ) L_{E_{vi}}=-\sum_{{s_i}\in D}y_i·P(s_i|e_h,e_t) + (1-y_i)·log(1-P(s_i|e_h,e_t)) LEvi=siDyiP(sieh,et)+(1yi)log(1P(sieh,et))

其中 s i s_i si是证据句时 y i = 1 y_i=1 yi=1,否则 y i = 0 y_i=0 yi=0

Optimization

联合抽取的损失函数为:

L = L R E + α ⋅ L E v i L=L_{RE}+\alpha ·L_{E_{vi}} L=LRE+αLEvi

其中$ \alpha $时平衡损失的超参数。

Evidence-centered Relation Extraction

如果已经掌握与关系相关的所有信息,就没有必要对整个文档进行关系抽取。可以按照原文档的顺序,为每个实体对构建一个伪文档,包含所有的证据句,将其填充入模型。

证据信息仅在训练中有用,将伪文档中的证据句替换为模型抽取的证据,标记为 V h , t ′ V^{'}_{h,t} Vh,t,并获得一组关系预测分数。将原文档和伪文档的预测分数分别记为 S ( O ) S^{(O)} S(O) S ( E ) S^{(E)} S(E)

Fusion of Extraction Results

将以上分数进行融合:

P F u s e ( r ∣ e h , e t ) = σ ( S h , t , r ( O ) + S h , t , r ( E ) − γ ) P_{Fuse}(r|e_h,e_t) = \sigma(S^{(O)}_{h,t,r}+S^{(E)}_{h,t,r}-\gamma) PFuse(reh,et)=σ(Sh,t,r(O)+Sh,t,r(E)γ)

γ \gamma γ是可学习参数,损失函数:

L F u s e = − ∑ d ∈ D ∑ h ≠ t ∑ r ∈ R y r ⋅ P F u s e ( r ∣ e h , e t ) + ( 1 − y r ) ⋅ l o g ( 1 − P F u s e ( r ∣ e h , e t ) ) L_{Fuse} = -\sum_{d \in D}\sum_{h \neq t}\sum_{r \in R}y_r·P_{Fuse}(r|e_h,e_t) + (1-y_r)·log(1-P_{Fuse}(r|e_h,e_t)) LFuse=dDh=trRyrPFuse(reh,et)+(1yr)log(1PFuse(reh,et))

其中,实体对包含关系 r r r y r = 1 y_r=1 yr=1,否则为0。

你可能感兴趣的:(论文阅读笔记,自然语言处理,深度学习)