《RAPL: A Relation-Aware Prototype Learning Approach for Few-Shot Document-Level Relation Extraction》阅读笔记
- 为了构建目标关系类型的原型,它们将所有具有该关系的实体对的表示聚合在一起,但这些实体对可能同时具有其他关系,导致原型的混淆。
- 它们在所有任务中使用同一组通用的非上述(none-of-the-above,NOTA)原型,忽视了不同任务中目标关系类型对NOTA语义的影响。

- 一个实体对在一个文档中可能有多个关系,如果用支持集中的实体对表示来聚合生成关系原型,那么原型就会混杂了其他无关的关系信息,导致度量空间中的关系难以区分,如图2(a)所示。
- 由于大部分查询实体对并不涉及任何目标关系,因此 NOTA也被当作一个类别。考虑到不同任务的目标关系类型有所差异,如果只是用一组可学习的向量作为 NOTA 原型,并且在所有任务中通用,这种“一刀切”的策略可能会使 NOTA 原型偏离理想的 NOTA 语义,从而导致分类的混淆。如图 2(a) 所示,一组通用的 NOTA 原型在任务 1 中看起来还可以,但是在任务 2 中就不太合适。

的设定下,从少量的文档中抽取出实体之间的关系。每个FSDLRE任务(task,也称为一个episode)包含
篇支持文档
和一篇查询文档
,并且每篇文档中提到的实体都进行了预注释。对于每篇支持文档
,还给出了一个三元组集合
,其中包含了文档中所有有效的关系三元组
。这里
和
分别是关系实例的头实体和尾实体,而
是一种关系类型,
是本任务要抽取的关系类型集合。支持文档的标注是完备的,也就是说,任何没有对应关系类型的实体对都被视为NOTA。在给定这些输入的情况下,FSDLRE任务的目标是预测查询文档
中的三元组集合
,它包含了
中所有属于
中关系类型的有效三元组。
中采样出支持文档和查询文档,构成一系列的训练任务。每个训练任务的
集合是
的一个子集,
是元训练阶段的关系类型集合。模型的目的是从这些训练任务中学习通用的知识,以便能够更好地适应新的任务。
中采样出的测试任务组上进行评估,
和
是互斥的。每个测试任务的
集合是
的一个子集,
是元测试阶段的关系类型集合,它和
也是互斥的。
,首先在实体提及的首尾位置插入特殊标记“∗”,以便识别实体的边界。然后将文档送入编码器,得到标记的上下文嵌入
和交叉标记注意力
: 
,
是
中标记的个数,
是编码器的输出维度,
是编码器最后一层的注意力头的平均值。用实体提及前的“*”标记的嵌入作为对应的提及嵌入。对于文档中的每个实体
,它有
个提及
,对它们的嵌入应用logsumexp池化(Jia等人, 2019),得到实体嵌入
,其中
是
的第
个提及的嵌入。
是一个实体级注意力,通过对每个实体
的每个提及
前的标记“∗”的提及级注意力
取平均得到:
,对于
也同样如此,而
是哈达玛积。
,覆盖所有的标记,以捕捉与关系
相关的上下文。使用另一个预训练的语言模型作为关系编码器,并将关系
的名称和描述拼接成一个序列,然后将序列输入到编码器中。将
标记的输出嵌入作为关系嵌入
:
为:
是可学习参数。
和
,进一步计算所有标记上的实例级注意力分布
,以捕获与实例相关的上下文。具体来说,在
的第
维上的值
可以由下式求得:
返回
中最大的
元素的索引,
是一个超参数,
是指示函数。接着对
进行归一化,以恢复注意力分布。在这里,不使用
作为实例级注意力,因为对于一个实例,关系是基于实体对来表达的。直接相乘可能会错误地增加与实体对无关的标记的权重。相反,本文利用关系级注意力来放大与实例最相关的上下文的实体对级权重。
:


为可学习参数。
的实例表示通过连接头和尾实体表示获得,表示为
。
的所有实例集合记为
,通过对
中关系实例的表示取平均值,计算关系原型
:
表示支持文档中所有关系实例的集合,即
。对于一个关系实例
,定义集合
,它包含了支持集中所有其他也表达了关系
的实例,以及集合
,它简单地包含了支持集中所有其他的实例。然后将关系间的相似性融入到一个对比目标中,并定义关系加权对比损失
为:
是一个超参数,
表示余弦相似度。这种对比损失考虑了两个方面:- 首先,以前的方法很难与对比目标相结合,因为它们只能得到成对的支持向量。实体对的多标签性质使得合理地定义正负对很困难。
- 其次,通过引入关系间的相似性,这种对比损失更加注重将语义上接近的关系的实例向量分开,从而有助于更好地区分相应的关系原型。
,其中
是一个超参数。与之前的工作不同,本文不直接将这组向量作为NOTA原型,而是将它们视为需要在每个任务中进一步修正的基础NOTA原型。由于支持文档的标注是完整的,可以得到一个支持NOTA分布,它隐含地表达了NOTA的语义。因此,可以利用支持NOTA实例来捕捉每个特定任务中的NOTA语义。对于一个支持NOTA实例
,使用等式2作为实例级别的注意力,并根据等式6~8得到实例表示 
。将所有的支持NOTA实例的集合记为
,为每个基础NOTA原型
自适应地选择一个NOTA实例:
融合,得到最终的NOTA原型
:
是一个超参数。通过这种方式,可以获得一组特定于任务的NOTA原型,这些原型不仅包含了元学习的一般知识,而且隐含地捕获了每个特定任务中的NOTA语义。
,使用等式2作为实体对级别的注意力,并采用类似于等式6~8的方法得到实体对的表示
。对于每个目标关系类型
,计算
的概率为:
。然后,将查询文档中的所有实体对的集合记为
,计算分类损失为:
之间存在关系
,则
;否则
。总的损失定义为:
是一个超参数。在推理过程中,如果
,就提取查询文档中的关系实例
。- FREDo:包含两种主要的任务,一种是同域任务,一种是跨域任务。对于同域任务,训练集和测试集的文档语料来自同一个领域。对于跨域任务,测试集的文档语料来自不同的领域,导致训练集和测试集之间的文本风格、文档主题和关系类型有较大的差异。每种任务都有一个1-Doc 和一个3-Doc 的子任务,用来衡量模型的可扩展性。FREDo 使用 DocRED的训练集作为训练和开发的文档语料,使用 DocRED 的开发集作为同域测试的文档语料,使用SciERC的整个集合作为跨域测试的文档语料。DocRED的关系类型集合被划分为三个不相交的集合,用于FREDo的训练 (62)、开发 (16) 和同域测试 (18)。FREDo为同域评估采样了15k个情景,为跨域评估采样了3k个情景。
- ReFREDo:是FREDo的修订版。由于FREDo使用了DocRED作为底层的文档语料,而DocRED存在不完整的标注问题,因此FREDo构建的情景也可能存在这些标注错误。为了解决这个问题,本文构建了 ReFREDo 作为 FREDo 的修订版本。在ReFREDo中,用Re-DocRED替换了训练、开发和同域测试的文档语料,Re-DocRED是DocRED的修订版本,具有更完整的标注。然后沿用 FREDo的关系类型划分,为同域评估采样了15k个情景。跨域测试的情景与 FREDo 保持一致。还遵循 Popovic 和 Färber (2022) 的方法,计算了 ReFREDo 中测试情景的平均类别数
和每个类别的平均支持实例数
,如表 1 所示。

是一个初始的基线方法,它使用预训练的语言模型而不进行微调。
是一个基于度量的方法,它建立在最先进的有监督的 DocRE 方法和少样本句子级关系抽取方法的基础上。
在推理时使用所有的支持实体对,而不是将它们的嵌入平均成一个原型,以提高
在跨域任务上的性能。
在训练时使用 NOTA 实例作为额外的 NOTA 原型,并且在推理时只使用 NOTA 实例,以进一步提高
在跨域任务上的性能。

- RAPL 相比于基线方法,在两个基准数据集上都取得了显著更好的平均结果(在 FREDo 上的 F1 值为 2.50%,在 ReFREDo 上的 F1 值为 2.72%)。
- RAPL 在每个任务设置中都一致地超过了最好的基线方法(不同任务设置中的最好基线方法可能不同),使得它比以前的方法更具通用性。
- RAPL 在同域任务上相比于跨域任务有更多的提升。这进一步反映了跨域设置所带来的更大的挑战。
- RAPL 在 3-Doc 任务上的性能一致地高于 1-Doc 任务上的性能,而这一点并不总是能够被最好的基线方法保证,证明了 RAPL 的更好的可扩展性。
- 所有方法在 ReFREDo 上的同域性能显著高于在 FREDo 上的同域性能,而这一性能差距在跨域设置下并没有体现在两个基准数据集之间。这表明,一个更高质量的训练集可能并不能有效地解决域适应问题。
- KDDocRE 的性能不令人满意,表明有监督的 DocRE 方法可能不能很好地适应少样本场景。
- 对于“−RCL”,去掉了基于关系加权的对比学习方法。
- 对于“−IBPC−RCL”,进一步去掉了基于实例的关系原型构建方法,并且只用与查询实体对相同的方式获取每个支持实体对的对级嵌入。
- 对于“−IBPC−RCL+SCL”,在“−IBPC−RCL”模型中加入了一个有监督的对比学习目标(Khosla et al., 2020; Gunel et al., 2021),其中把那些共享相同关系的实体对作为正样本,否则作为负样本。
- 对于“−TNPG”,去掉了任务特定的 NOTA 原型生成策略,并且直接把基础的 NOTA 原型作为最终的 NOTA 原型。


- 对于控制实例级注意力导出的超参数
,针对领域内任务的最佳值比跨领域任务的大,这可能与领域内语料中的文档更长有关。 - 在对比目标中的温度超参数
(约 0.4)对于与分类目标的协同以及整体模型性能至关重要。 - 盲目地降低超参数
以增加支持 NOTA 实例在 NOTA 原型中的权重可能会对 NOTA 原型的学习产生负面影响。 - 与其他超参数相比,模型对于一定范围内的 NOTA 原型数量
不是很敏感。

进行可视化 (Van der Maaten和Hinton, 2008),如图 5 所示。除了消融实验中的两种模型变体,本文还尝试了
,它用有监督的对比损失 (Khosla等人, 2020; Gunel等人, 2021) 替换了实例级的关系加权对比损失。由于一些实体对同时表达了“部分”和“成员”关系,或者“部分”和“子类”关系,本文只在图 5(a) 中可视化了
的“部分”关系。可以观察到,由 RAPL−RCL 学习的支持实例嵌入改善了
学习的支持对嵌入,证明了实例级嵌入对于关系原型构建的有效性。此外,尽管引入实例级的有监督对比目标形成了更紧凑的聚类,但三种关系类型之间的区分度仍然不足。如图 5(d) 所示,本文提出的关系加权对比学习方法更好地区分了三种关系类型。

《RAPL: A Relation-Aware Prototype Learning Approach for Few-Shot Document-Level Relation Extraction》阅读笔记的更多相关文章
- 阅读《RobHess的SIFT源码分析:综述》笔记
今天总算是机缘巧合的找到了照样一篇纲要性质的文章. 如是能早一些找到就好了.不过“在你认为为时已晚的时候,其实还为时未晚”倒是也能聊以自慰,不过不能经常这样迷惑自己,毕竟我需要开始跑了! 就照着这个大 ...
- RobHess的SIFT源码分析:imgfeatures.h和imgfeatures.c文件
SIFT源码分析系列文章的索引在这里:RobHess的SIFT源码分析:综述 imgfeatures.h中有SIFT特征点结构struct feature的定义,除此之外还有一些特征点的导入导出以及特 ...
- RobHess的SIFT源码分析:综述
最初的目的是想做全景图像拼接,一开始找了OpenCV中自带的全景拼接的样例,用的是Stitcher类,可以很方便的实现全景拼接,而且效果很好,但是不利于做深入研究. 使用OpenCV中自带的Stitc ...
- 阅读《RobHess的SIFT源码分析:综述》笔记2
今天开始磕代码部分. part1: 1. sift特征提取. img1_Feat = cvCloneImage(img1);//复制图1,深拷贝,用来画特征点 img2_Feat = cvCloneI ...
- element-ui button组件 radio组件源码分析整理笔记(一)
Button组件 button.vue <template> <button class="el-button" @click="handleClick ...
- element-ui 组件源码分析整理笔记目录
element-ui button组件 radio组件源码分析整理笔记(一) element-ui switch组件源码分析整理笔记(二) element-ui inputNumber.Card .B ...
- element-ui Carousel 走马灯源码分析整理笔记(十一)
Carousel 走马灯源码分析整理笔记,这篇写的不详细,后面有空补充 main.vue <template> <!--走马灯的最外层包裹div--> <div clas ...
- STL源码分析读书笔记--第二章--空间配置器(allocator)
声明:侯捷先生的STL源码剖析第二章个人感觉讲得蛮乱的,而且跟第三章有关,建议看完第三章再看第二章,网上有人上传了一篇读书笔记,觉得这个读书笔记的内容和编排还不错,我的这篇总结基本就延续了该读书笔记的 ...
- element-ui MessageBox组件源码分析整理笔记(十二)
MessageBox组件源码,有添加部分注释 main.vue <template> <transition name="msgbox-fade"> < ...
- element-ui switch组件源码分析整理笔记(二)
源码如下: <template> <div class="el-switch" :class="{ 'is-disabled': switchDisab ...
随机推荐
- Redis系列24:Redis使用规范
Redis系列1:深刻理解高性能Redis的本质 Redis系列2:数据持久化提高可用性 Redis系列3:高可用之主从架构 Redis系列4:高可用之Sentinel(哨兵模式) Redis系列5: ...
- Go通道机制与应用详解
本文深入探讨了Go语言中通道(Channel)的各个方面,从基础概念到高级应用.文章详细解析了通道的类型.操作方法以及垃圾回收机制,更进一步通过具体代码示例展示了通道在数据流处理.任务调度和状态监控等 ...
- 使用Spring Integration接收TCP与UDP请求
1. 简介 Spring Integration 是一个开源的项目,它是 Spring 生态系统的一部分,旨在简化企业集成(Enterprise Integration)的开发.它提供了一种构建消息驱 ...
- Nodejs环境打包前端项目
Node.js 在Linux下安装和环境搭建/编译项目 安装nodejs:1.下载nodejs源码包 wget https://nodejs.org/dist/v14.16.0/node-v14.16 ...
- QT(3)-QTableView
@ 目录 0 相关文章 1 说明 2 常用函数 2.1 clearSpans 2.2 setSpan 2.3 columnAt 2.4 rowAt 2.5 columnSpan 2.6 rowSpan ...
- 关于.net4.0使用WhenAny实现Task超时机制
.net4.0想要使用await/async语法糖必须要引用: Microsoft.Bcl Microsoft.Bcl.Async Microsoft.Bcl.Build 可以从nuget引用此三个包 ...
- C# 压缩PDF文件
PDF 文件可以包含文本.图片及各种媒体元素,但如果文件太大则会影响传输效果同时也会占用过多磁盘空间.通过压缩PDF文件,能够有效减小文件大小,从而提高传输效率并节省存储空间.想要通过C#代码快速有效 ...
- Excel 数据处理
博客地址:https://www.cnblogs.com/zylyehuo/ 2023 年高教社杯全国大学生数学建模竞赛题目 -- B 题 多波束测线问题 图表格式 import numpy as n ...
- 怎样阅读 h2 数据库源码
阅读 h2 数据库的源码是一项复杂的任务,需要对数据库原理.Java 语言和操作系统有深入的理解.可以从以下几方面入手来完成. 环境准备 首先,你需要在你的机器上安装和配置好开发环境,包括 JDK.M ...
- Python+Yolov8+ONNX实时缺陷目标检测
相比于上一篇Windows10+Python+Yolov8+ONNX图片缺陷识别,并在原图中标记缺陷,有onnx模型则无需配置,无需训练. 优化了程序逻辑,降低了程序运行时间,增加了实时检测功能 目录 ...
,覆盖文档中的所有标记,以捕捉与实体对
相关的上下文