TPLinker: Single-stage Joint Extraction of Entities and Relations Through Token Pair Linking
@article{zhang2020unsupervised,
title={Unsupervised Label-aware Event Trigger and Argument Classification},
author={Zhang, Hongming and Wang, Haoyu and Roth, Dan},
journal={arXiv preprint arXiv:2012.15243},
year={2020}
}
- 作者:
Background(要解决的问题)
重叠关系(overlapping relation)。关系与关系之间可能共享1个或者2个实体,这种现象称为重叠关系(overlapping relation)问题。目前,有些实体关系抽取方法可以有效地解决这个问题,例如上上周学的多头标注的机制。例如下面的例子:
- Normal:两个关系之间无重叠的情况;
- SEO(Single Entity Overlap):两个关系之间重叠了一个实体,例如上图中的两个关系共享了
Atlanta
这个实体; - EPO(Entity Pair Overlap):两个关系的实体完全重合,例如上图中的
California
和Sacramento
;
暴露偏差(exposed bias)。实体关系抽取的解决范式包括Pipeline和Joint两种,上上周阅读了两篇Joint的论文,它们的本质是多任务学习,1个任务是实体抽取,1个任务是给定gold实体的情况下,进行实体对的关系预测。这种方式存在着暴露偏差的问题。暴露偏差是指在
training stage
时gold实体输入进行关系预测,而在inference stage
是上一步的预测实体输入进行关系判断;导致训练和推断存在不一致的问题;目前为了解决SEO,EPO的问题,有两种方法:decoder-based and decomposition-based。但是它们却有暴露偏差的问题。
Contributions(创新点)
- 提出了一个单阶段的实体关系联合抽取方法——TPLinker,该框架将实体关系联合抽取任务看作是Token Pair Linking Problem,能够同时解决重叠关系和暴露偏差问题;
Method
TPLinker的标注框架
TPLinker的标注框架采用的是多头标注,之前说过这种方式就是暴力的构造了一个$N \times N$的Span矩阵($N$是句子的长度)。那么,为了完成单阶段的联合实体关系抽取,作者是按照如下方式进行的:
TPLinker中涉及到了三种矩阵:
- Entity Head to Entity Tail(EH-to-ET)
- Subject Head to Object Head(SH-to-OH)
- Subject Tail to Object Tail(ST-to-OT)
作者为了表示方便,所以在Figure 2左图中将3个矩阵压缩到一起,并用不同的颜色进行区分:
紫色标记:Entity Head to Entity Tail(EH-to-ET),表示构成一个实体的头尾。是一个$N\times N$的矩阵。
例如,
(New,City)=1
,表示New York City是一个实体;(De,Blasio)=1
,表示De Blasio是一个实体。红色标记:Subject Head to Object Head(SH-to-OH),表示构成一个关系的subject的起始token和object的起始token。由于关系抽取中涉及$R$中不同的关系,所以有$R$个这样的矩阵。
例如,
(New,De)=1
,表示以New
开头的实体和以De
开头的实体可能构成关系mayor
;蓝色标记:Subject Tail to Object Tail(ST-to-OT),表示构成一个关系的subject的终止token和object的终止token。由于关系抽取中涉及$R$中不同的关系,所以也有$R$个这样的矩阵。
例如,
(City,Blasio)=1
,表示以City
结尾的实体和以Blasio
结尾的实体可能构成关系mayor
。
因此,TPLinker模型涉及到了$2R+1$个$N \times N$的矩阵。为了避免稀疏运算,作者摒弃了每个矩阵的左下三角,再将矩阵flatten成单个序列(下图Figure 3中的橘色部分):
- 对于EH-to-ET的实体矩阵,它的左下三角可以直接摒弃,不会影响结果;
- 对于每个关系对应的SH-to-OH和ST-to-OT矩阵,它们的左下三角是不可以直接摒弃的,如Figure 2右图所示,对于关系
born in
,在文本中,subject De Blasio是出现在object New York/New York City之后的(灰色的1)。为了既能够压缩矩阵,又能够保留信息,作者将数字2
用作反向关系,如Figure 2右图所示,于是(New,De)=2
表示以De
开头的实体和以New
开头的实体可能构成关系born in
;
于是,之前的$2R+1$个$N \times N$矩阵标注问题,转换成了$2R+1$个$\frac {N^2+N} 2$序列标注问题。
TPLinker的解码方法
在上一小节中讲解了标注框架,得到了EH-to-ET、SH-to-OH、ST-to-OT三种不同的标注序列之后,如何将它们组合到一起,得到最后的关系三元组呢?
其实解码的方式非常简单,说白了就是三个标注序列能对上就行!
以关系“mayor
”为例:
- 通过EH-to-ET得到实体集合$E$:
{New York, New York City, De Blasio}
; - 通过ST-to-OT得到subject和object终止token对集合$T$:
{(City,Blasio)}
; - 通过SH-to-OH得到subject和object起始token对$H$:
{(New,De)}
,根据$E$,遍历以New
开头的实体和以De
开头的实体的所有可能组合,看是否出现在$T$中,出现则说明是一个关系三元组。
实现细节
Token Pair的表示方式
很简单,公式如下:
$$
h_{i,j}=tanh(W_h,[h_i;h_j]+b_h)
$$
其中,$h_{i,j}$表示token pair$(i,j)$对应的特征向量。
损失函数
就是分类任务的交叉熵损失函数,公式倒是写得很高大上。。。
Experiments
数据集
采用NYT和WebNLG。这两个数据集在人工标注时,有两种方式:
- 只标注每个实体的最后一个word;
- 标注整个实体span;
在本文中,第一种方式用NYT$^\star$,WebNLG$^\star$表示。第二种方式用NYT,WebNLG表示。
数据集的划分如下:
实验结果
如上图所示,TPLinker达到了SOTA的水平。
此外作者对TPLinker在testset上不同类型的句子上的抽取能力进行了分析,句子的类型包括:
- 出现Normal的句子
- 出现SEO的句子
- 出现EPO的句子
- 出现1个、2个、3个、4个、5个及5个以上个关系的句子
结果如下表所示:
通过上表可以发现,TPLinker的确能够在避免暴露偏差的情况下,有效地解决了重叠关系问题,这也达到了论文最初的motivation!
Thinking
有价值的参考文献
- A Novel Cascade Binary Tagging Framework for Relational Triple Extraction
- Joint Entity and Relation Extraction with Set Prediction Networks
不懂的地方
- NYT、WebNLG数据集的组成
- 代码部分
可以借鉴的地方
- 本文最大的亮点就是解决了传统联合实体关系抽取方法的暴漏偏差问题。能够很好地解决训练和预测时的误差。