文章目录
1 简介
论文题目:Single-stage Joint Extraction of Entities and Relations Through Token Pair Linking
论文来源:COLING 2020
论文链接:https://aclanthology.org/2020.coling-main.138.pdf
代码链接:https://github.com/131250208/TPlinker-joint-extraction
1.1 动机
- 在关系抽取中,通常存在一些关系具有共享的实体,分为EntityPairOverlap(实体对重叠)和SingleEntiyOverlap(单个实体重叠)
- 目前的关系抽取模型存在曝光偏差(exposure bias)问题,即在训练阶段使用真实的结果数据,导致训练和推理阶段不一致。
1.2 创新
- 提出了一个联合抽取实体和关系的模型,可以解决实体重叠问题和曝光偏差问题,保证训练和推理阶段的一致性。
- 提出了一个新的标签方法,将关系抽取转换为一个实体对的连接问题。
2 背景知识
为了解决EntityPairOverlap和SingleEntiyOverlap问题,目前的模型可以分为基于解码和基于分解的模型,但这些模型全都存在曝光偏差问题。
- 基于解码的模型,使用编码-解码器结构,解码器一次抽取一个词或者元组类似机器翻译。在训练阶段真实的token通常被用来当作上下文,而在推理阶段,这些上下文由模型生成。
- 基于分析的模型,首先定义全部的候补主体(subject),然后根据这些主体抽取客体(object)和关系。在训练阶段,此类模型将真实的主体作为输入,指引抽取客体和关系,而在推理阶段,这些实体由模型生成。
3 方法
Handshaking Tagging Scheme
3.1.1 Tagging
对于一个三元组(s,r,o)的信息包括主体s和客体o的边界范围和关系r的类型,使用三种token链接表示三元组,如下图。
- entity head in entity tail(EH-to-ET),如下图矩阵中的紫色部分,表示一个实体的头部到尾部的链接。
- subject head to object head(SH-to-OH),如下图矩阵中的红色部分,表示主体头部到客体头部的链接。
- subject tail to object tail(ST-to-OT),如下图矩阵中的蓝色部分,表示主体尾部到客体尾部的链接。
同时可以发现,实体的尾部是不可能出现在头部前面,因此矩阵的下三角区域为全0,浪费很大内存,但是客体是可以出现在主体的前面。因此可以将下三角区域为1的标签放到上三角区域,标记为2。可以节省一半的内存。然后将这个上三角区域转换为一个序列,使用一个map记录原始矩阵的位置,以方便计算。
这个标注方法可以解决SingleEntiyOverlap和实体嵌套问题,但是不能处理EntityPairOverlap问题,因为它们具有不同的关系。为了解决这个问题,使用关系类型数量个矩阵表示全部的关系,即一个矩阵表示一种关系。如果句子的长度为n,则矩阵转换为序列的长度为
n
2
+
n
n
{n^2+n\over n}
nn2+n 。尽管序列的长度和句子的长度是平方关系,但实验证明该标注策略是高效的。
3.1.2 Decoding
解码的过程即从矩阵中解码出三元组,第一步抽取出全部的实体,以实体的头部为key,记录到字典D中,然后抽取出全部的ST-OT链接记录到set E中,然后根据实体集D,解码出全部的SH-OH链接,最后判断该SH-OH链接是否有对对应的ST-OT链接,如果有,即抽取出一个三元组,解码的过程如下图。
Token Pair Representation
对于一个长度为n的句子[w1, ……,wn],将wi编码为一个低维的上下文向量hi,一个token对(wi,wj)的表示为hi,j,公式如下。
Handshaking Tagger
对于一个token对被表示为hi,j,它们的类型由下面公式计算,其中P(yi,j=l)为链接(wi,wj)为类型l的概率。
Loss Function
loss函数为三种类型链接的交叉熵之和,公式如下。
4 实验
数据集使用NYT和WebNLG,注解指标分为两种。
- 注解每个实体的尾部。
- 注解整个实体的区间。
为了观察TPLinker在抽取重叠和多个关系的效果,按照重叠和三元组的数量对测试集进行划分,结果如下表。
评测指标也分为两种局部匹配和完全匹配,其中局部匹配中只要求关系、主体头部、客体头部正确,即视为正确的三元组。
实验结果如下图所示。
在NYT和WebNLG的不同子集上做实验,验证模型在重叠和多个关系情况下的能力,结果如下表。
下图比较TPLinker的计算效率。
5 总结
- 提出了一个标签策略,将三元组转换为token对,解决了实体的重叠问题。
- 提出了一个联合抽取模型,没有曝光偏差的问题,保持训练和推理阶段的一致性。