恒源云 (Gpushare)_UNIRE:一种可以共享标签空间的方法
https://github.com/Receiling/UniRE
Abstract
(Zhong and Chen,ACL2020 Two are better than one: Joint entity and relation extraction with table sequence encoders) 使用 pipeline 方法为实体检测和关系分类设置了两个独立的标签空间,并取得了 SOTA。由于 pipeline 方法不能共享实体抽取和关系抽取的信息,因此作者为了促进两个任务的交互提出了一种可以共享标签空间的方法。
作者采用表填充的方法实现,具体来说:输入一张大小的表,这张表包含一个句子中所有的单词对,实体和关系由表格中的正方形和矩形表示(实体:实体内部所有字符都是相同的实体类型标签例如 PER;关系:有关系的两个实体所有的字符之间都有相同的关系标签),实体都在对角线,关系在非对角线。作者实现了 SOTA 并且只用了一半的参数,就达到了与最好的提取器相当的准确率,而且速度更快
Figure 1:联合实体关系提取表的示例。每个单元格对应一个单词对。实体是对角线上的正方形,关系是对角线外的矩形。请注意,PER-SOC 是无向(对称)关系类型,而 PHY 和 ORG-AFF 是有向(非对称)关系类型。
该表准确地表示重叠的关系,例如:PER 实体参与两个关系,and
对于每个 units,一个相同的双仿射模型预测其标签。联合解码器被设置为寻找最佳正方形和矩形
1 Introduction
人们认为联合模型可能会更好,因为它们可以减轻子模型之间的误差传播,具有更紧凑的参数集,并且统一地编码关于两个任务的先验知识。本文将已有的单独的标签空间转化为统一的标签空间,存在的难点:两个子任务通常被表述不同的学习问题(例如:作为序列标签的实体检测,作为多类分类的关系分类),并且它们的标签被放置在不同的事物上(例如,词与词对)。
先前的一次尝试( Joint Extraction of Entities and Relations Based on a Novel Tagging Scheme - ACL Anthology )是用一个序列标记模型处理这两个子任务。 设计了一个复合标签集来同时对实体和关系进行编码。然而,该模型的表现力被牺牲了:它既不能检测重叠关系(即,参与多个关系的实体),也不能检测孤立的实体(即,没有出现在任何关系中的实体)。
作者定义一个新的统一标号空间的关键思想:将实体检测看作关系分类的特例。输入空间是一个二维表,每个条目对应于句子中的一个词对(图 1)。联合模型从统一的标签空间(实体类型集和关系类型集的并集)为每个单元指定标签。在图形上,实体是对角线上的正方形,关系是对角线外的矩形。该公式保留了关于现有 entity−ralationentity-ralationentity−ralation 提取场景(例如,重叠关系、有向关系、无向关系)的完整模型表达能力。
基于表格形式,联合实体关系提取器执行两个操作:填充和解码。首先,填表是预测每个词对的标签,类似于依存句法分析中的弧形预测任务。采用双仿射注意机制(Dozat 和 Manning,2016)来学习词对之间的互动。本文还对表施加了两个结构约束。然后,给出带有标签日志的表填充,本文设计了一种近似联合解码算法来输出最终提取的实体和关系。基本上,它高效地在表中找到分割点来识别正方形和矩形(这也与现有的表填充模型不同,现有的表填充模型仍然应用某些顺序解码并递增地填充表)。
在三个基准测试(ACE04,ACE05,SciERC)上的实验结果表明,与目前最先进的提取器(zhong 和 Chen,2020)相比,该联合方法取得了与之相当的性能:在 ACE04 和 Science ERC 上性能更好,在 ACE05.1 上更具竞争力;同时,我们的新联合模型在解码速度上更快(比确切的流水线实现快 10 倍,与近似流水线相当,但性能较低)。它还有一个更紧凑的参数集:与单独的编码器相比,共享编码器只使用一半的参数。
2 Approach
2.1 TASK DEFINITION
给定一个句子(是 word),目的是提取一组实体和一组关系。对于关系三元组,其中是预定义的关系类型,表示预定义的实体类型和关系类型的集合。
对于句子维护一个表格,其中表示句子长度。对于表中的每个单元格,为其分配一个标签,其中,(表示没有关系)
对于每个实体 e:对应的标签应填写成
对于每个关系:对应的标签应填写成
对于其他的单元格填写
本文将解码实体和关系转化为一个矩形查找问题,查找问题采用联合译码方法来解决。
2.2 BIAFFINE MODEL
通过 BERT 获取上下文表示如下所示
为了捕获长范围依存关系,将句子扩展成固定的窗口大小(本文设为 200),为了更好的编码表中单词的方向信息,本文采用了深度双仿射注意力机制,其操作如下:
start 和 end 的 span 如下所示:
计算每个词 span 的得分:
其中,
2.3 TABLE FILLING
将馈送到 Softmax 中预测相应标签,从标签空间上产生概率分布:
实验中发现对利用 dropout 可以进一步提高性能,作者称为
使用交叉熵最小化目标函数:
其中是 gold label
2.4 CONSTRAINTS
目标函数简化了训练过程,实际上还存在一些结构上的约束,实体和关系对应于表中的正方形和矩形,但是目标函数没有显示该约束,本文提出了两个直观的约束:对称和隐含。
使用记号表示句子 sss 中所有单词对的堆叠
**Symmetry(对称)**与实体对应的正方形必须在对角线上,对于对称关系如和是等价的,因此在表格上对称关系也是关于对角线对称的(Figure 1 所示and矩形关于对角线对称)。
标签集分为对称标签集和非对称标签集
对于矩阵应该关于每个标签的对角线对称,损失为:
Implication 蕴含、包含一个关系存在,那么一定存在两个实体,反之就是,没有两个对应的实体,那么一定不可能存在。从概率的角度看,关系的概率大于每个实体的概率。通过蕴含思想,本文对 P\mathcal{P}P 施加如下约束:对于对角线上的每个单词,其在实体类型空间 上的最大可能性不得低于关系类型空间上同一行或同一列中的其他单词的最大可能性。
蕴含损失表示为:
其中是 hinge loss.
总的损失:
2.5 DECODING
在测试阶段,给定句子 s 的概率张量,从中解码实体的正方形和关系的矩形。受到 sun et al 2019 的启发,本文提出了一个三步解码算法:
1. 解码 span(实体或实体间 span)。
2. 解码每个 span 的实体类型。
3.解码实体对的关系类型。
span decoding 一个实体包含的词的行列是相同的,如果相邻的两行/列不同,说明在此处一定有实体边界
从行的角度出发将展平为,然后计算行的欧几里得距离
类似的,从列的角度出发根据,然后计算列的欧几里得距离
将两个距离的平均值作为最终距离
如果距离大于默认的阈值则此位置为分割位置(实体边界),span 解码的时间复杂度变成了
2.Entity Type Decoding 通过 span encoding 得出,将得到的生成正方形来解码实体类型:
如果则解码为一个实体,如果则不是实体。
可以理解为:在表格中是一个正方形,利用取出正方形中所有分数的最大值作为当前 span 的分数。
3.Relation Type Decoding 在实体类型解码后,给定一个实体和另一个实体,解码一个关系,如果,表示没有关系。
形式上表现为:
如果,解码为一个关系,如果,则没有关系。
可以理解为:将得到的 span 两两匹配,得到实体对之间的关系矩形,将矩形中最大的那个位置对应的关系标签作为最终的关系标签。
3 Experiments
句子长度设置为 200,对于 MLP 层,将隐藏大小设置为 d=150,并使用 Gelu 作为激活函数。使用了=0.9 和=0.9 的 AdamW 优化器。批大小为 32,学习率为 5e-5,权值衰减为 1e-5,线性预热学习率调度器,预热率为 0.2。用最多 200 个 epochs(对于 SciERC 为 300 个纪元)训练模型,并采用提前停止策略。在 Intel Xeon W-3175X CPU 和 NVIDIA Quadro RTX 8000 GPU 上进行所有实验。
劝退型模型
总的来说,UNIRE 在 ACE04 和 SciERC 上取得了最好的性能,在 ACE05 上取得了可比的结果。与之前最好的联合模型(Wang and Lu,2020)相比,该模型在 ACE04 和 ACE05 上显著提高了实体和关系的性能,即实体的绝对 F1 分别为+0.9 和+0.7,关系的绝对 F1 分别为+3.4 和+1.7。
对于最好的流水线模相比,该模型在 ACE04 和 SciERC 上取得了优异的性能,在 ACE05 上取得了相当的性能。与 ACE04/ACE05 相比,SciERC 的规模要小得多,因此在 SciERC 上的实体性能大幅下降。由于(钟和陈,2020)是一种流水线方法,其关系绩效受到较差的实体绩效的严重影响。然而,我们的模型在这种情况下受到的影响较小,并且获得了更好的性能。此外,在 ACE04 上,即使实体结果较差,我们的模型也能获得较好的关系性能。
3.1 ABLATION STUDY
具体地说,本文实现了一种朴素的比较解码算法,即“硬解码”算法,它以“中间表”作为输入。“中间表”是双仿射模型输出的概率张量 P 的硬形式,即选择概率最高的类作为每个单元的标签。
为了找到对角线上的实体正方形,它首先尝试判断最大的正方形()是否为实体。标准只是计算出现在正方形中的不同实体标签的数量,并选择出现频率最高的一个。如果最常用的标签是⊥,我们将正方形的大小缩小 1,然后在两个()正方形上执行相同的工作,
依此类推。为避免实体重叠,如果实体与标识的实体重叠,则将丢弃该实体。为了找到关系,每个实体对都用对应矩形中最频繁的关系标签进行标记。
从消融研究中,我们得到了以下观察结果:
1. 移除其中一个额外损失后,性能将随不同程度下降(第 2-3 行)。具体地说,对称性损失对 SCERC 有显著影响(实体和关系绩效分别下降 1.1 分和 1.4 分)。而去除蕴涵损失会明显损害 ACE05(1.0 分)的关系绩效。它表明,这两种损失所包含的结构信息对这项任务是有用的。
2. 与“Default”相比,“w/o logit Dropout”和“w/o CrossStatement Context”的性能下降幅度更大(第 4-5 行)。logit dropout 可以防止模型过度拟合,而跨句上下文为这项任务提供了更多的上下文信息,特别是对于像 SciERC 这样的小型数据集。
3. “hard decoding”的性能最差(其关系性能几乎是“default”的一半)(第 6 行)。最主要的原因是“硬解码”将实体和关系分开解码。
结果表明,该译码算法综合考虑了实体和关系,对译码具有重要意义
3.2 ERROR ANALYSIS
我们进一步分析了用于关系提取的其余错误,并给出了五种错误的分布情况:
跨度拆分错误(SSE)、实体未找到(ENF)、实体类型错误(ETE)、关系未找到(RNF)、和关系类型错误(RTE)
SSE 所占的比例相对较小,这证明了我们的跨度解码方法的有效性。
此外,无论是实体还是关系,“未发现错误”的比例都明显大于“类型错误”的比例。最主要的原因是填表存在类不平衡问题,即⊥的数量远远大于其他类。
评论