实体关系抽取新范式!TPLinker:单阶段联合抽取,并解决暴漏偏差~


划重点:TPLinker是实体关系抽取的新范式,巧妙设计了统一的联合抽取标注框架,可实现单阶段联合抽取、并解决暴露偏差,同时依旧可以解决复杂的重叠关系抽取。

实体关系抽取是NLP社区备受关注的子任务之一,热度很高,在2020年SOTA就更换了好几次。本文主要针对实体关系的「联合抽取」进行介绍;Pipeline方式不再赘述,可到知乎搜索JayJay的《nlp中的实体关系抽取方法总结》进行查阅。

前言

联合抽取主要分为2种范式:

  • 多任务学习:即实体和关系任务共享同一个编码器,但通常会依赖先后的抽取顺序:关系判别通常需要依赖实体抽取结果。这种方式会存在暴漏偏差,会导致误差积累。
  • 结构化预测:即统一为全局优化问题进行联合解码,只需要一个阶段解码(损失函数和解码是不一样的概念),解决暴漏偏差。

暴漏偏差:指在训练阶段时gold实体输入进行关系预测,而在推断阶段是上一步的预测实体输入进行关系判断;导致训练和推断存在不一致的问题。

可以发现,在思维导图中,多任务学习会出现不同的抽取顺序的问题。

JayJay这里也将最近几年来主要的 【实体关系联合抽取】 方法做了一个总结,如上图所示。

从上面的分析我们可以看出:结构化预测方式可以解决暴漏偏差问题;基于此,本文就介绍一篇来自COLING20的论文《TPLinker: Single-stage Joint Extraction of Entities and Relations Through Token Pair Linking》,其主要亮点为:

  • TPLinker将抽取标注框架统一为字符对链接问题,即Token Pair Linking problem;
  • TPLinker既可以解决重叠关系问题、同时也可解决暴漏偏差问题!
  • TPLinker是单阶段解码,训练和推断阶段抽取三元组不存在差异。

论文地址https://arxiv.org/pdf/2010.13415

代码地址https://github.com/131250208/TP

本文组织结构如下:

1、TPLinker要解决什么问题?

基于结构化预测的联合抽取方法,最早出现在17年论文《Joint extraction of entities and relations based on a novel tagging scheme》中,这篇论文用一个统一的序列标注框架抽取实体关系,如上图所示:直接以关系标签进行BIOES标注,subject实体序号为1,object实体序号为2。

不过,以关系标签进行BIOES标注这种方式不能解决关系重叠问题,如上图所示:

  1. SEO:SingleEntityOverlap,一个实体出现在多个关系三元组中;
  2. EPO:EntityPairOverlap,一个实体pair有多种关系;

也就是说:结构化预测不能在解决暴漏偏差的同时,却不能cover关系重叠问题。因此,TPLinker要同时能够解决这两个问题。

2、TPLinker的标注框架

TPLinker整体标注Tag框架是基于token pair进行的,其本质上就是一个span矩阵。JayJay自己叫这种标注方式是多头标注(以区别于传统的序列标注和指针标注)。

关系数据集中一般会存在嵌套NER问题,因此需要首先解决这一问题。

这里给出一个例子:span「呼吸中枢受累」中,存在两个实体嵌套:「症状:呼吸中枢受累」和「部位:呼吸中枢」。

要想解决这一问题,可以基于token pair构建一个$N \times N \times C$的Span矩阵($N$为序列长度,$C$为实体类别总数),如上图所示,其中:

  • Span{呼}{枢}=1,代表「呼吸中枢」是一个部位实体;
  • Span{呼}{累}=2,代表「呼吸中枢」是一个症状实体。
  • 下三角矩阵为-1,是因为其不能构成一个实体、不具备真实意义;矩阵其余位置为0。

通过上述分析,我们发现多头标注(token pair方式)可以很好解决嵌套实体问题。那么能不能用统一的标注方式,单阶段就能抽取出实体关系三元组呢?

当然可以!TPLinker其实就是通过链接(linking)3种类型的Span矩阵来实现的,为方便起见,论文作者将3种标注方式画到一个图里了,如上图所示(记关系类别总数为$R$个):

  1. 紫色标注:EH to ET,表示实体的头尾关系,是1个$N \times N$矩阵;如两个实体:New York City:M(New, City) =1; De Blasio:M(De, Blasio) =1。
  2. 红色标注:SH to OH,表示subject和object的头部token间的关系,是R个$N \times N$矩阵;如三元组(New York City, mayor,De Blasio):M(New, De)=1。
  3. 蓝色标注:ST to OT,表示subject和object的尾部token间的关系,是R个$N \times N$矩阵;如三元组(New York City, mayor,De Blasio):M(City, Blasio)=1。

因此,可以得到TPLinker共有$2R+1$个矩阵。值得注意的是:为防止稀疏计算,下三角矩阵不参与计算;虽然实体标注不会存在于下三角矩阵种,但关系标注是会存在的。

为此,论文采取转换操作是:如果关系存在于下三角,则将其转置到上三角,并有“标记1”变为“标记2”。

3、TPLinker的解码过程

上图给出了一个完整的标注和编码示意图,标记有“0、1、2”三种。

编码部分实际上是将原始的Span矩阵会展开为一个$\frac {N \times (N + 1)} {2}$序列进行编码,也就是将token pair的每一个token编码拼接在一起。

TPLinker的解码过程为:

  1. 解码EH-to-ET可以得到句子中所有的实体,用实体头token idx作为key,实体作为value,存入字典D中;
  2. 对每种关系r,解码ST-to-OT得到token对存入集合E中,解码SH-to-OH得到token对并在D中关联其token idx的实体value;
  3. 对上一步中得到的SH-to-OH token对的所有实体value对,在集合E中依次查询是否其尾token对在E中,进而可以得到三元组信息。

结合上图的具体case,我们具体描述一下解码过程:

解码EH-to-ET中得到3个实体:{New York,New York City,De Blasio}; 字典D为:{New:(New York,New York City),De:(De Blasio)}

以关系“mayor”为例,

  1. 解码ST-to-OT得到集合E:{(City,Blasio)};解码SH-to-OH得到{(New,De)},其在字典D中可关联的subject实体集合为{New York,New York City};object集合{De Blasio};
  2. 遍历上述subject集合和object集合,并在集合E中查询尾token,发现只有一个实体三元组{New York City,mayor,De Blasio}

以关系“born in”为例,

  1. 解码ST-to-OT得到集合E:{(Blasio,York),(Blasio,City)};解码SH-to-OH得到{(De,New)},其在字典D中可关联的subject实体集合为{De Blasio};object集合为{New York,New York City};
  2. 遍历上述subject集合和object集合,并在集合E中查询尾token,可得到2个实体三元组:{De Blasio,born in,New York}和{De Blasio,born in,New York City}

由于关系live in与born in一样,所以我们最终可得到5个三元组:

(New York City, mayor, De Blasio), (De Blasio, born in, New York), (De Blasio, born in, New York City), (De Blasio, live in, New York), (De Blasio, live in, New York City)

其实,只要TPLinker的解码过程,对这篇论文就会有深刻的理解了!大家一定要多看哦~

4、TPLinker表现如何?

如上图所示,TPLinker也超越了之前的一众SOTA。此外,TPLinker相较于之前的SOTA——CasRel,推断速度也快3.6倍。

5、总结与展望

本文介绍的TPLinker是实体关系抽取的新范式,巧妙设计了统一的联合抽取标注框架,可实现单阶段联合抽取、并解决暴漏偏差,同时依旧可以解决复杂的重叠关系抽取。下一步,可以将这套标注框架应用到实体和事件抽取中尝试哦。


文章作者: CarlYoung
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 CarlYoung !
 上一篇
Event Time Extraction and Propagation via Graph Attention Networks Event Time Extraction and Propagation via Graph Attention Networks
Event Time Extraction and Propagation via Graph Attention Networks 作者: Background(要解决的问题)当前的事件时间抽取(temporal event gro
下一篇 
TPLinker: Single-stage Joint Extraction of Entities and Relations Through Token Pair Linking TPLinker: Single-stage Joint Extraction of Entities and Relations Through Token Pair Linking
为了解决实体关系联合抽取中存在的重叠关系和暴露偏差问题,本文提出了一个单阶段联合抽取模型——TPLinker,在2个数据集(NYT和WebNLG)上达到了SOTA。
  目录