《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 ...
随机推荐
- DDMS查看Threads情况
有时候程序运行出现死锁或者信号量卡死是很纠结的问题,单看代码很难分析定位问题,这时候可以借助DDMS来查看threads的运行情况,一目了然. 手机连接上USB,确保adb连通,然后启动Eclipse ...
- element ui的多个表格复选框,展开列显示错误
今天在公司写页面的时候碰到一个bug,我们的那个页面上有多个表格. 用v-if来判断显示,然后再使用复选框和展开列的时候出了问题.先是复选框,第二个表格的复选框下一列不显示,我试了试,在下面的一列都会 ...
- C、C++函数和类库详解(GCC版)(2014-4-23更新)
C.C++函数和类库详解(GCC版)(未完成) 整理者:高压锅 QQ:280604597 Email:280604597@qq.com 大家有什么不明白的地方,或者想要详细了解的地方可以联系我,我会认 ...
- Ansible与Ansible部署
Ansible与Ansible部署 Ansible简介: Ansible是一个基于Python开发的配置管理和应用部署工具,现在也在自动化管理领域大放异彩.它融合了众多老牌运维工具的优点,Pubbet ...
- BFF层提升业务性能实际解决方案,以及nodeJs和KOA框架介绍
本文干货满满,介绍了用BFF层(Back-end For Front-end)中间层提升性能的整体解决方案和思路,涉及前期技术调研,聚合业务分析,聚合方法,验收,最后向同学们普及node.koa基础知 ...
- QLabel自己总结(常用接口)
继承关系:QLabel->QFrame->QWidget void setText(const QString &) [slots] 设置标签显示的内容,也可以使用构造函数设置. ...
- 基于.NET、Uni-App开发支持多平台的小程序商城系统 - CoreShop
前言 小程序商城系统是当前备受追捧的开发领域,它可以为用户提供一个更加便捷.流畅.直观的购物体验,无需下载和安装,随时随地轻松使用.今天给大家推荐一个基于.NET.Uni-App开发支持多平台的小程序 ...
- jap复制一条数据插入数据库,报:identifier of an instance of com.kxkd.shop.entity.goods.GoodsSpu was alt
因为修改了jpa实体id 可以先使用springframework的BeanUtils复制一个相同的对象 BeanUtils.copyProperties(source, target); //复制属 ...
- 两个对于电影片段的情绪研究(中国&国外)
1.国内的研究(A new standardized emotional film database for Asian culture) 测试片使用了8种情绪类型,每部片子有4个维度的分数,分数是从 ...
- 一键整合,万用万灵,Python3.10项目嵌入式一键整合包的制作(Embed)
我们知道Python是一门解释型语言,项目运行时需要依赖Python解释器,并且有时候需要安装项目中对应的三方依赖库.对于专业的Python开发者来说,可以直接通过pip命令进行安装即可.但是如果是分 ...
,覆盖文档中的所有标记,以捕捉与实体对
相关的上下文