Document-Level Relation Extraction:SSAN模型

参考链接

  • 论文链接:Entity Structure Within and Throughout: Modeling Mention Dependencies for Document-Level Relation Extraction
  • 代码链接:https://github.com/BenfengXu/SSAN

Introduction

  • 首先通过一个例子来简单阐述 一下Document-Level Relation Extraction:
    Document-Level Relation Extraction:SSAN模型_第1张图片
    红色的线:表示共指关系;蓝色的线:表示句内关系,通过句内局部信息进行预测;绿色的线:表示句间关系,需要通过红色的线和蓝色的线的逻辑推理进行预测。
  • 最近的许多研究,通过图神经网络来解决文档级关系抽取问题,但是他们通常的做法是:
    • 先通过编码器编码整个文档,以此获得每个词的上下文表示。
    • 然后,在词的上下文表示上进行构图,并在图上进行信息传播和推理,以此更新图中节点的表示。
    • 最后,使用更新后的节点表示进行实体对的关系预测。
  • 论文动机:论文认为,上述过程最大的问题是句子编码过程与图推理过程是孤立分开的,使得编码器无法从图结构中获利。为此论文提出SSAN模型(Structured Self-Attention Network);直接将图结构融入到编码器中。

Method

模型整体结构图

Document-Level Relation Extraction:SSAN模型_第2张图片

Entity Structure

  • 目标:利用启发式规则进行构建图。
  • 图中节点;词分为实体词(entity words: E ∗ E_* E)和非实体词(non-entity words: N N N)。
  • 图中有6种
    • intra+coref:连接同一个句子中的同一个实体的不同提及之间的词;连接同一个提及中包含的词。
    • intra+relate:连接同一个句子中的不同实体提及之间的词;
    • inter+ coref:连接不同句子中的同一个实体的不同提及之间的词;
    • inter+ relate:连接不同句子中的不同实体提及之间的词;
    • intraNE:连接同一个句子中的实体词与非实体词。
    • NA:不属于上面几种关系的词,标为NA
  • 通过上述的节点和边,我们可以为每个文档构建一个邻接矩阵,上面模型图中的右边就是一个包含两个句子的文档的邻接矩阵。邻接矩阵中的元素就是这6类边,行和列对于到文档中的每个词。

SSAN Model (Structured Self-Attention Network)

  • 目标:将图结构融入到Transformer编码器的Self-Attention中间去。
  • 文档表示为一个token序列: x = { x 1 , x 2 , ⋯ , x } x=\{x_1,x_2,⋯,x\} x={x1,x2,,x};将邻接矩阵表示为: S = { s i j } S=\{s_{ij}\} S={sij},其中: s i j ∈ s_{ij}∈ sij{intra+coref,inter+coref,intra+relate,inter+relate,intraNE,NA}。
  • SSAN模型是上面模型结构图的左边部分;是一个Transformer编码器的变体,通过修改Transformer编码器中attention分数计算方式得到
  • SSAN模型的attention分数由两部分组成: unstructured attention scorestructured attentive bias
  • 在第 l l l层的具体计算过程:
    • 首先,将输入表示 x i l ∈ R d i n x_i^l∈R^{d_{in}} xilRdin投影到query / key / value向量上:
    • 计算 unstructured attention score
      实质就是Transformer中的标准的attention分数
    • 计算structured attentive bias,并将其unstructured attention score相加获得最终的attention分数:
      论文使用一个transformation模块来计算structured attentive bias,下面会详细讲述transformation模块的计算过程。
    • 最后进行修正后的attention分数归一化,再对value向量进行加权求和,以获得 x i l x_i^l xil的下一层表示:

Transformation Module

  • 目标:计算structured attentive bias
  • 论文使用两个方式将Entity Structure图进行参数化,以此来计算structured attentive bias:Biaffine TransformationDecomposed Linear Transformation
    Document-Level Relation Extraction:SSAN模型_第3张图片
  • Biaffine Transformation
    • 计算公式如下:
      其中 A l , s i j ∈ R d o u t × 1 × d o u t A_{l,s_{ij }}∈R^{d_{out}×1×d_{out} } Al,sijRdout×1×dout边特定的矩阵,即每类边对于一个特定的矩阵,以此来体现图的结构。
    • Decomposed Linear Transformation
      K l , s i j K_{l,s_{ij}} Kl,sij Q l , s i j Q_{l,s_{ij}} Ql,sij都是边特定的向量,这相当于对 A l , s i j A_{l,s_{ij}} Al,sij矩阵进行矩阵分解。
    • 最终的self-attention计算为:
      Document-Level Relation Extraction:SSAN模型_第4张图片
  • 注意:论文表示不同层和不同head中的Transformation Module参数不共享。

SSAN for Relation Extraction

  • 输入文档经过SSAN模型编码后得到每个词的上下文表示向量;再通过平均池化获得实体表示向量;最后通过下面公式预测实体对关系:
    使用sigmoid函数表示将文档级关系抽取建模为多标签问题
  • 训练的目标函数:

Experimental

  • 数据集:DocRED、CDR、GDA
    Document-Level Relation Extraction:SSAN模型_第5张图片
  • DocRED 数据集上的结果:
    Document-Level Relation Extraction:SSAN模型_第6张图片
  • CDR 数据集上的结果:
    Document-Level Relation Extraction:SSAN模型_第7张图片
  • GDA 数据集上的结果:
    Document-Level Relation Extraction:SSAN模型_第8张图片
  • 边类型的消融结果:
    Document-Level Relation Extraction:SSAN模型_第9张图片
  • 对transformation模块中structured attentive bias计算公式的消融:
    Document-Level Relation Extraction:SSAN模型_第10张图片

你可能感兴趣的:(NLP)