《An End-to-end Model for Entity-level Relation Extraction using Multi-instance Learning》阅读笔记
- 从句子级层面的抽取转向了从长文本段落(文档级)的抽取,这样可以利用更多的上下文信息,提高关系抽取的准确性和鲁棒性。
- 从使用单独的模型解决实体提及检测和关系提取转向了使用联合模型解决这些任务,这样可以避免错误传播,提高模型的效率和泛化能力。

。在推理阶段,JEREX不需要任何实体或提及的先验知识,而是自动地从文档中识别和聚类它们。- 通过基于跨度的方法定位文档中的所有实体提及。
- 通过共指消解将检测到的提及聚类为实体。
- 通过对局部提及表示的融合(实体分类)对每个实体簇的类型(如人或公司)进行分类。
- 通过对提及对的推理提取实体之间的关系。


,本文根据 Eberts 和 Ulges (2020) 的方法,通过最大池化操作来获取跨度的 token 嵌入的表示:

表示向量串联,
是一个包含 ReLu激活函数的两层前馈神经网络。本文对所有长度不超过 L 的 token 跨度进行分类,并根据一个阈值
过滤出概率高于
的跨度,作为最终的实体提及集合
。
是否共指。本文的方法是将两个提及的跨度表示
和
与它们之间的编辑距离嵌入
结合起来。然后计算两个提及的跨度之间的 Leven-shtein 距离
,并使用一个学习的嵌入
。接着,通过连接得到一个提及对的表示:

的架构与
相同。本文构造一个相似度矩阵
(其中 m 是文档的总提及数),包含每一对提及之间的相似度得分。通过应用一个过滤阈值
,使用完全链接(Mullner , 2011)对提及进行聚类,得到一个包含实体提及簇的集合
,并把这些簇称为实体或实体簇。
进行最大池化,得到一个实体的表示:
进行实体分类,让模型能够综合文档中不同位置的提及信息。本文将实体表示
输入到一个 softmax 分类器中,得到一个实体类型的概率分布:
。本文的关系分类器对每一对实体
进行分析,判断它们之间是否有
中的某种关系。具体来说,对每个候选三元组
计算一个分数,表示
(作为头) 和
(作为尾) 之间有关系
的可能性。本文提出了两种关系分类器:一种是全局关系分类器,它作为基线方法,直接使用实体簇的表示
作为输入;另一种是多实例关系分类器,它考虑了某些实体提及对对特定关系的支持程度,并将这些信息融合成一个实体对级别的表示。
的最大池化实体簇表示
和
来进行训练。本文还将实体类型
嵌入到实体表示中,这在 Yao等人(2019) 的工作中已经证明了其有效性。然后,将两个实体的表示和类型连接起来,得到一个实体对表示:
(与
类似) 中,将其映射到
个关系类型上。最后一层使用 sigmoid 激活函数进行多标签分类,并将超过阈值
的关系类型标记为正类:
和
,本文计算任意
的提及对表示。这个表示是由全局实体嵌入(公式(5))和提及的局部跨度表示(公式(1))拼接而成的:
的元嵌入,分别在句子
和词
层面上。另外,根据 Eberts 和 Ulges (2020) 的工作,本文还添加了两个提及之间的最大池化上下文
。这个局部化的上下文提供了一个更聚焦的文档视角,并且对于长而嘈杂的输入特别有益:


与实体类型嵌入
连接起来,并应用一个两层的
(类似于
)。注意,对于两种分类器(GRC/MRC),需要对
和
都进行评分,以推断非对称关系的方向。
和
是跨度、共指和关系分类器的二元交叉熵损失,
是实体分类器的交叉熵损失。
,
,
和
是平衡不同子任务的超参数。本文从每个文档中采样正负样本来构成一个批次,发现这种单遍处理的方法可以显著提高学习和推理的效率。具体来说,多任务学习框架包括以下四个子任务:- 实体提及定位:使用文档中所有的真实实体提及
作为正样本,从预定义长度
内的随机非提及跨度中采样
个负样本。本文只在数据集的分词方式下对完整的词进行训练和评估,不对字节对编码的词进行操作,以降低计算复杂度。另外,只采样句内跨度作为负样本。由于句内提及跨度具有较高的挑战性(如“纽约”和“纽约市”),本文采样至多
个句内提及跨度作为负样本。 - 共指消解:在所有真实实体簇
中抽取的跨度对上训练共指分类器,作为正样本。本文还从不同簇的随机真实实体提及对中采样
个负样本。 - 实体分类:在所有真实实体簇上训练实体分类器。由于实体分类器在推理时只接收假定的实体簇,因此不需要采样负样本。
- 关系分类:使用真实实体簇之间的关系作为正样本,从
中抽取与真实标签无关的
个负样本。

(Devlin等,2019)作为编码器,它是一个基于注意力的语言模型,在大量英文文本上进行了预训练。本文根据端到端的开发集调整了超参数。本文沿用了(Devlin等,2019)的一些设置,例如使用Adam优化器,采用线性预热和线性衰减的学习率调度策略,设置峰值学习率为5e-5,以及在模型的各个部分应用0.1的dropout。本文将元嵌入的维度
设置为25,将训练轮数设置为20,每轮训练后在开发集上评估模型的性能,选择性能最佳的模型在测试集上进行最终评估。本文对提及、共指和关系的过滤阈值
进行了网格搜索,步长为0.05。手动调整了负样本的数量
和子任务的损失权重
。另外,注意到DocRED中的一些文档长度超过了
的最大输入长度(512 BPE tokens)。对于这些文档,本文重新训练了
的位置嵌入。




(公式5)和局部上下文表示
(公式10)。结果显示,当没有全局实体表示时,F1 分数下降了约 0.66%,说明多实例推理需要结合实体级的上下文信息。当没有局部上下文表示时,F1 分数下降了约 0.90%,表明模型需要关注输入中的相关部分。最后,让模型只考虑句内的提及对。如果一个实体对没有句内的实例,就选取最近的(按词距离)提及对。这样做虽然可以降低计算复杂度和内存消耗,尤其是对于大型文档,但是发现句内的提及对并不能覆盖所有的相关信号,而把一个实体对的所有提及都配对起来可以提高 0.67% 的性能。body, td { font-family: 微软雅黑; font-size: 10pt }
《An End-to-end Model for Entity-level Relation Extraction using Multi-instance Learning》阅读笔记的更多相关文章
- 阅读《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 ...
随机推荐
- 浅谈Code Review
1. 什么是Code Review Code Review(CR)即代码评审,又名代码走查,是指对软件开发过程中编写的代码进行检查和评估的一种实践.它通常由其他团队成员.同事或专门的质量保证团队成员来 ...
- 【动画进阶】神奇的背景,生化危机4日食 Loading 动画还原
最近,在 Steam 玩一款老游戏(生化危机 4 重置版),其中,每当游戏转场的过程中,都有这么一个有趣的 Loading 动画: 整个效果有点类似于日食效果,中间一圈黑色,向外散发着太阳般的光芒. ...
- 9.12 多校联测 Day2 总结
还是有不少不该挂的分. 开考看了 T1 约 40min 仍然毫无思路,试着推 mod=2 无果.吸取昨天经验教训,赶紧扔掉看 T2. 在 9:00 想到了 dp 的可能性,苦于设计不出状态.9:20 ...
- JS逆向实战25——某壳找房模拟登录+百度喵星人指纹加密破解.
声明 本文章中所有内容仅供学习交流,抓包内容.敏感网址.数据接口均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关,若有侵权,请联系我立即删除! 目标 目标网站 aHR0c ...
- QT(3)-QTableView
@ 目录 0 相关文章 1 说明 2 常用函数 2.1 clearSpans 2.2 setSpan 2.3 columnAt 2.4 rowAt 2.5 columnSpan 2.6 rowSpan ...
- JAVA类的加载(5)——总结
总结一下:1.类加载(初始化) 包括加载(类的class文件读入内存,并为之创建一个java.lang.Class对象,由类加载器完成).连接(把类的二进制数据合并到JRE中).初始化(对静态属性进行 ...
- CSS必学:元素之间的空白与行内块的幽灵空白问题
作者:WangMin 格言:努力做好自己喜欢的每一件事 CSDN原创文章 博客地址 WangMin 我们在开发的过程中,难免会出现一些难以预料的问题.那么其中,CSS空白现象就是非常常见的问题之一.虽 ...
- JUC并发编程学习笔记(十六)Volatile
Volatile 保证可见性 private volatile static Integer num = 0; 使用了volatile关键字,即可保证它本身可被其他线程的工作内存感知,即变化时也会被同 ...
- How to write a proposal?
Most students and beginning researchers do not fully understand what a research proposal means, nor ...
- KMeans算法全面解析与应用案例
本文深入探讨了KMeans聚类算法的核心原理.实际应用.优缺点以及在文本聚类中的特殊用途,为您在聚类分析和自然语言处理方面提供有价值的见解和指导. 关注TechLead,分享AI全维度知识.作者拥有1 ...
和跨度大小嵌入
是实体提及的概率: