信息抽取两大难题:
一、暴露偏差
二、实体重叠、关系重叠
联合抽取的结构化预测双头标注才能同时解决上述两个问题,百度的联合抽取的结构化预测但是序列标注,能解决暴露偏差的问题,不能解决实体重叠和关系重叠的问题。
TPLinker标注,实体的头尾,主客实体的头,主客实体的尾。
目标:从给定的非结构化文本中识别实体之间的关系,组成关系三元组(ei, rk, ej)。如图所示,关系可能会有重叠,
SEO:一个实体可能出现在多个关系中。
EPO:同一个实体对可能属于不同的关系。
方法 | 缺点 | 相关论文 |
---|---|---|
Traditional pipelined method | 忽视了实体抽取和关系预测之间的关系 | (Zelenko et al., 2003; Chan and Roth, 2011) |
Feature-based | 过程过于复杂 | (Yuand Lam, 2010; Miwa and Sasaki, 2014) |
Neural model | 忽视了重叠关系 | (Gupta et al., 2016; Zheng et al., 2017) |
为了提取overlapping relations,之前有如下尝试
相关方法 | 思路 | 论文链接 |
---|---|---|
Dai et al. (2019) | 利用位置感知注意机制,在一个句子中多次标记提取三联句 | |
Tan et al. (2019) | 通过翻译排序机制解决了这个问题 | |
Takanobu et al. (2019) | 首先确定关系,然后通过强化学习识别实体对 | |
Li et al. (2019) | 将联合抽取转换为多转qa问题,并通过特定关系的模板来生成问题 | |
Sun et al. (2019) | 构造本体-关系二部图,对实体类型和关系类型进行推理 | |
Yu et al. (2020) | 提出了一种基于新的分解策略的统一序列标记框架 |
这些方法只能识别出句子中的SEO关系,无法提取出EPO
为了解决EPO,之前的工作有以下尝试
相关方法 | 思路 | 论文链接 |
---|---|---|
Zeng et al. (2018) | 一种序列到序列模型来解码重叠关系,但未能生成多词实体 | |
Nayak and Ng (2020) | 编码器-解码器模型,其中解码器一次提取一个单词,就像机器翻译模型一样。 | |
Wei et al. (2020) | 提出了一种新的级联二进制标记框架,该框架首先识别句子中所有可能的主语实体,然后识别每个主语实体的所有可能关系和宾语实体。 |
但都有exposure bias,即:涉及连续的相关步骤:ner和re存在依赖关系;在训练时,模型使用gold(ground truth)进行预测;而在推理时,模型必须从头开始提取,导致误差累计。
本文提出的TPlinker是用于实体和重叠关系联合提取的one-stage方法,弥合了训练和推理之间的gap。将联合提取任务转换为Token Pair Linking链接问题
如图,给定一个句子,我们枚举所有可能的token pair,并用矩阵标记token link。
左边是一个标记矩阵。将所有标记显示在一个矩阵中,其中每种颜色对应一种特定的标记。在形式上,有三种类型的link定义如下:
EH-ET 实体头到实体尾:矩阵中的紫色标签表示对应的两个位置分别是实体的开始标记和结束标记。例如,“New York City”和“De Blasio”是句子中的两个实体,因此Token对(“New”,“City”)和(“De”,“Blasio”)被分配为紫色标签。
SH-OH 主体头到客体头:红色标记表示两个位置分别是成对的主体和客体的开始标记。例如,“New York City”和“De Blasio”之间存在“mayor”关系,因此Token对(“New”和“De”)被分配为红色标记。
ST-OT 主体尾到客体尾: 蓝色标记表示两个位置分别是成对的主体和客体的结束标记。例如,“New York City”和“De Blasio”之间存在“mayor”关系,Token对(“City”,“Blasio”)被分配为蓝色标记。
图2的左边面板看到,矩阵是相当稀疏的,尤其是下三角区域。因为实体尾部不可能出现在实体头部之前,所以下三角区域的标签都是零,这是对内存的巨大浪费。然而,对象实体可能出现在相应的主体实体之前,这意味着直接放弃下三角区域是不合理的。在这样做之前,我们把下三角区域的所有标签1映射到上三角区域的标签2,然后丢弃下三角区域。这样做之后,就不是一个完整的矩阵了,在实际运算中,为了张量计算的方便,我们把剩下的项目平铺成一个序列(图3中的橙色序列),用地图来记忆原矩阵中的位置。这个序列就像是所有标注的握手,这也是我们把这个方案称为握手标注方案的原因。
上图右边即是握手标记方案的例子,阴影区域不包含在标签序列中。
这样做之后,它不再是一个完整的矩阵了,在实际操作之中,把剩余的项平摊成一个序列,如下图所示:
模型的结构比较简单,整个句子过一遍encoder,然后将token两两拼接输入到一个全连接层,再激活一下输出作为token对的向量表示。最后对token进行分类即可。
通过这种标记方案,这三个实体和两个三元组都可以很容易地解码。然而,由于不同的关系不能被标记在同一矩阵中,因此该方法不能处理实体对的实体重叠问题。为了解决这个问题,我们对每个关系类型执行相同的矩阵标记工作。
EH-ET实体头 -实体尾的标记被所有关系共享,因为它关注于一般的实体提取,而不局限于特定的关系类型。
总的来说,如图3所示,将联合提取任务分解为2N+1序列标记子任务,其中N表示预定义关系类型的数量,每个子任务构建一个长度为(n2 + n)/2的标签序列,其中N为输入语句的长度。我们的标记方案似乎是非常低效的,因为标记序列的长度随着句子长度的增加呈平方数增加。幸运的是,我们的实验表明,利用编码器顶部的轻量级标记模型,TPLinker比起目前的SOTA很有竞争力。因为编码被所有标记共享,并且只需要一次产生n个token的表示。
对于每个relation,1)从EH-to-ET序列中提取所有的实体span,并通过一个字典D将每个头部位置映射到从这个位置开始的相应实体。2)对于每个关系,从ST-to-OT序列中解码(subject尾部位置,object尾部位置)元组并将它们加入到一个集合E中,3)从SH-to-OH序列中解码(subject头部位置,object头部位置)元组并在字典D中查找所有可能的以头部位置开始的实体。4)遍历所有候选subject-object对,检查其尾部位置是否在E中。
对句子[w1,···, wn],通过一个基本的encoder(实验中使用了bert和lstm)将每个token映射到一个低维的contextual vector hi中。然后为token对(wi;wj)生成一个表示hi,j 如下:
对于EH-ET,SH-OH,ST-OT,使用统一的标注架构。对于token对 (wi, wj)
TPLinker在注释了最后一个词的数据集和注释了整个跨度的数据集上都表现良好。支持这一点的是,TPLinker在NYT和NYT★上取得了几乎相同的分数,这也表明只标注最后一个词的数据集并不总是比标注整个跨度的数据集容易。甚至相反,它可能更难,因为不同的实体可能共享相同的最后一个词,这使得重叠的案例数量增加。在WebNLG和WebNLG★上的表现有很大的差距,这可能反证了上述观点。然而,我们也发现,在WebNLG中有127个错误的三元祖,包含一个无意义的空实体。另外,WebNLG有216个关系,但WebNLG★只有171个。因此,我们把性能差距归结为这两个原因。为了在这个数据集上与最先进的模型进行公平的比较,我们在实验中没有修复这些问题。
还可以看到,TPLinkerBERT在WebNLG★上取得了与CasRelBERT相似的F1 Score。我们认为这是因为(1)在WebNLG★上的表现已经饱和,因为提取带有171个预定义关系的三元祖非常困难,尤其是训练数据非常小(5019个句子)。这些取得90分以上F1成绩的方法可能已经超过了人类水平的表现。换句话说,提升的空间太有限了。(2) WebNLG★中的许多关系具有相同的含义,例如LeaderName和Leader,affiliation和affiliations,这对模型来说是混乱的。在很多情况下,我们的模型会同时提取它们,但通常情况下,在测试集中只有其中一个被标注了。没有这些正确的标注会严重损害TPLinkerBERT的精度,因为我们的模型在提取重叠关系方面有更大的能力,并能达到更好的召回率
关于不同句型的分析
结果表明,TPLinker在处理具有重叠关系或多重关系的句子方面具有优势。如表3所示,大多数基线随着句子复杂性的增加呈现出明显的下降趋势。然而,TPLinker在处理较难的句子、有重叠关系的句子或有两个以上关系的句子时有明显的改进。尽管CasRel也呈现出增长的趋势,但除了一些没有重叠或少于三个关系的简单句子,TPLinker在所有的子集上都优于CasRel。特别是在具有大于或等于5个关系的句子上,TPLinker比CasRel高出6.3个百分点。
关于计算效能的分析
推断的速度快,因为CasRelBERT被限制在一次处理一个句子,这意味着它的效率很低,难以部署。相反,TPLinkerBERT能够以批次模式处理数据,因为它是一个单阶段模型。
1.提出了one-stage的新范式来解决联合抽取在训练阶段和推理阶段标签不一致可能导致错误累积的问题;
2.提出了有效解决SEO(multiple relations)、EPO(overlapping relations)、nested NER问题的方法;
TPLinker 实体关系抽取代码解读_weixin_42001089的博客-CSDN博客_实体关系抽取代码
关系抽取之TPLinker解读加源码分析 - 知乎
TPLinker_愚昧之山绝望之谷开悟之坡的博客-CSDN博客_tplinker
论文精读|TPLinker: Single-stage Joint Extraction of Entities and RelationsThrough Token Pair Linking