Query-based Instance Discrimination Network for Relational Triple Extraction
本文是论文Query-based Instance Discrimination Network for Relational Triple Extraction 的阅读笔记和个人理解, 论文来自EMNLP 2022.
Basic Idea
作者认为, 现有的方法在抽取三元组时要么是通过立体透视图的方法, 要么是学到每一种关系的独立分类器来完成Tagging:

几乎之前的所有方法都可以归类到这类中, 这大类方法仍然导致有误差错误传播, 关系冗余, 以及缺少三元组之间的高级连接的问题.
作者提出了一种对三元组Instance Level的表示方法, 通过Query Embedding对Token Embedding完成一步抽取, 从而规避上述问题:

图示中的星星代表Relation Type Embedding, 而圆圈代表Query Embedding, 不难看出作者的应该要尽可能让同关系下的Query Embedding环绕在Relation Embedding周围. 这种方法在空间中可以保留关系之间的语义信息, 对比学习可以达到这种目的.
另外, 看到Query Embedding这个词的时候, 对CV略有了解的小伙伴可能会想到近年在CV中影响力很大的DETR: End-to-End Object Detection with Transformers, 事实上本文也是DETR在NLP中的应用. 如果对DETR还不了解, 建议花几分钟时间阅读一下DETR的架构(其实就是标准的Transformer)和基本思想, 非常简洁也非常简单. 如果你只知道SPN而不知道DETR, 也可以不看DETR, 因为SPN和DETR几乎完全一致.
QIDN
QIDN的概览模型图如下:

在经过Sentence Encoder编码后, 结合Query在Decoder中完成Triple Prediction. 此外, 使用Instance Discriminator在空间中用对比学习约束预测头得到的三元组表示.
Task Formulation
对于输入句子
对于关系集合
Sentence Encoder

对于输入句子
Triple Prediction

作者使用
DETR最早被用于目标检测, 每个Query都对应了图像中的一个目标(Bounding Box和物体类别). 与之类似的, 在QIDN中, 每个Query对应着一个关系三元组.
由于RTE任务需要抽取出关系特定下的头尾实体, 这意味着每个Query Embedding不但能指出对应的头尾实体, 还有头尾实体间关系, 所以在这个模块中作者需要构建对实体和关系的两种Query.
Transformer - based Decoder
Decoder是由
其中
Transformer Decoder的堆叠可以记为:
在DETR的架构中, Decoder端的Query便是Query Embedding, Key和Value则是原图信息.
在QIDN中, 作者没有直接使用Sentence Encoder中的
我认为在这里选择Span作为单位构建表示, 可以获得大量的负样本, 有利于对比学习.
前面提到过, 同一个Query需要同时能够抽取关系和实体, 因此作者将每个Query兵分两路, 变为Relation Query
其中
更直观一点的话, 作者将Decoder的结构放在附录里:

其实就是普通Transformer Decoder, 主要区别在于Query的生成拆分为了Entity Query和Relation Query两个branch, 并且在Cross Attention中采用的Key和Value是Span Level的.
综上, 如果有了成对的
Relation Head
对于Relation Query
其中
Entity Head
为了预测三元组中实体的边界, 作者将Entity Query
其中
接着用余弦相似度
根据得分, 做个Softmax就可以得到第
其中
通过Relation Head, 可以得到Instance Query
Instance Discriminator

在Instance Discriminator中, 作者希望把预测头中得到的表示进一步聚合, 当做最初的三元组表示, 并在空间中使这些三元组表示满足某种约束, 来建立三元组之间的全局链接, 并且让它们具有类别语义信息.
Aggregation
首先要用关系头的表示
这里对
做一次变换是为了和Entity Head对齐, 因为 已经是由 做了一次变换得到的.
Training Objective
对于关系集
作者希望三元组实例和关系嵌入在空间中满足下述两个特点:
- 对于三元组实例和实例之间, 应满足同关系内更近, 不同关系的更远.
- 对于三元组实例和关系之间, 应满足三元组和自身关系对应的关系嵌入更近.
对比学习就是做这个的, 所以作者使用InfoNCE来建模上述两个要求.
对于第一个特点, 同关系三元组更近, 不同关系三元组更远:
其中
与之类似的, 第二个特点要求三元组和自身对应的关系更近:
其中,
这样就建模了关系之间的语义信息, 而不是让不同关系独立学习, 并且使得不同关系的三元组之间存在全局链接.
Training and Inference
Training
在训练时, 记三元组预测Loss
如果还不清楚”最优匹配”, 可以看DETR中的Loss部分, 也可以看SPN的二部图匹配Loss部分.
最终的Loss为前面提到的对比学习Loss和三元组预测Loss之和:
Inference
在推理时:
- 三元组可以由Instance Query
得到. - 关系类型预测可以由
得到. - 头尾实体的左右边界可以由
得到. - 预测类型为
的三元组直接被滤去.
Experiments
详细的参数设置请参照原论文.
Dataset
作者选用了RTE中常用的三个数据集NYT, WebNLG*, NYT*, 和ERE中常用的数据集ACE05和SciERC, 统计信息如下:

在作者的论文中, 部分匹配数据集为是不带*的, 而精准匹配是带*的. 和RTE论文的习惯刚好相反. 也就是说, 作者写的是WebNLG, 后续实验结果实际上是WebNLG*, NYT和NYT*也要颠倒一下, 下同.
Overall Performance
QIDN在RTE三个数据集NYT, WebNLG*, NYT* 上结果如下:

QIDN相较于作者给出的Baseline有非常大的进步, 这个性能其实也挺能打的.
在ERE上两个数据集ACE05和SciERC上结果如下:

这里的RE的实验结果均为严格标准, 即要求实体类型, 关系类型, 实体边界均正确时的F1. QIDN也取得了SOTA, 相较于之前的一些Table Filling based模型比如UniRE, PFN都有明显的提升.
Analysis on Complex Scenarios
QIDN在NYT*和WebNLG*复杂场景表现如下:

根据Baseline来看, QIDN对于三元组数量比较多的情况似乎比较擅长, 有比较明显的提升, 对于一般三元组的情况抽取进步也比较大.
Ablation Study
作者尝试了以下设定:
- w/o
: 将Span Level表示替换为Token Level表示. - w/o
: 去掉对实体和关系Query的特化, 统一用同一种Query来代替. - w/o
: 去掉Instance Pair之间的对比学习Loss. - w/o
: 去掉Instance和Relation Embedding之间的对比学习Loss. - w/o
: 去掉所有对比学习Loss.
实验结果如下:

从中观察到, 影响比较大的是对比学习的两个Loss, 无论移除哪个都会产生较大的性能衰减. 将Query兵分两路也可以带来一些提升. Span Level的表示对WebNLG来说影响较大.
Topology of Relations
在NYT上对Relation Embedding经过L2正则化后用PCA的可视化如下:

语义相近的关系嵌入都比较靠近. 与person相关的几个关系, 语义差别较大, 距离也比较远.
Error Analysis
作者将错误按NER和RE任务划分:
- NER: ECE(Entity Classification Error), ELE(Entity Localtion Error).
- RE: RCE(Relation Classification Error), PCE(Entity-Pair Classification Error), PLE(Entity-Pair Location Error).
在ACE05和SciERC这两个数据集上测试集错误比例如下:

最高的是实体识别相关的ELE和PLE, 对关系分类RCE和PCE错误不明显, 证明了作者方法的有效性.
Summary
QIDN用Query based方法, 从Instance Level的角度解决了RE任务. 将Instance Query拆分为Relation Query和Entity Query两个branch从而将Query对应的三元组抽取出来, 同时在空间中用对比学习约束三元组, 使得三元组之间存在全局关联, 并捕获了关系的语义信息.
说真的, 自上次SPN以来, 已经有很长时间没有看到Query based Method在联合抽取上的模型了. 可惜代码没有开源.
我个人认为, 如果了解预训练模型ERICA, 会对理解QIDN的对比学习任务设计更有帮助. QIDN在对比学习的设计上其实与ERICA非常相似.