《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 ...
随机推荐
- 「codeforces - 1344D」Résumé Review
link. 有点狗,但还算个好题. 设定 \(f_i(x)=a_ix-x^3\),\(\Delta_i(x)=f_i(x)-f_i(x-1)\),可以洞察到 \(\Delta_i(x)\) 在正自然数 ...
- Solution Set -「CF 1525」
「CF 1525A」Potion-making Link. 显然. #include<bits/stdc++.h> typedef long long ll; template<ty ...
- Solution -「NOI 2007」货币兑换
Description Link. 一共 \(n\) 天,每天可以卖出或者买入两种股票 \(A\) 和 \(B\).这两种股票在第 \(i\) 天的价值为 \(A_i\) 和 \(B_i\). 每天可 ...
- Solution -「SP 106」BINSTIRL
Description Link. 求 \(\begin{Bmatrix}n \\ m\end{Bmatrix}\bmod2\) Solution 求 \[\begin{aligned} \begin ...
- nginx配置kibana访问用户名和密码认证、及无认证访问配置
转载请注明出处: 在nginx上配置kibana页面访问时,默认是采用kibana的认证,一般直接安装kibana后,是没有用户名和密码认证的. 如果要在负载均衡上配置反向代理和用户认证,可按以下步骤 ...
- that of
that of : 1. 代替签名的某个内容 The size of China is bigger than that of USA. (that of = the size of ) 2. 代指 ...
- CF1352D
题目简化和分析: 这题可以直接按照题意进行模拟,当然有些细节需要注意. 翻译的不足:这里的回合指任意一个人吃掉都算,而不是双方一个回合,最后一个人即使不满足也算一个回合. 我们可以采用两个指针模拟两个 ...
- Net 高级调试之三:类型元数据介绍(同步块表、类型句柄、方法描述符等)
一.简介 今天是<Net 高级调试>的第三篇文章,压力还是不小的.上一篇文章,我们浅浅的谈了谈 CLR 和 Windows 加载器是如何加载 Net 程序集的,如何找到程序的入口点的,有了 ...
- Util应用框架核心(三) - 服务注册器
本节介绍服务注册器的开发. 如果你不需要扩展Util应用框架,直接跳过. 当你把某些功能封装到自己的类库,并希望启动时自动执行初始化代码进行配置时,定义服务注册器. 服务注册器概述 服务注册器是Uti ...
- QGradient渐变填充
QGradient渐变填充 QGradient (一)简介 (二)枚举类型 1.spread 2.CoordinateMode 3.type (三)常用函数 1.coordinateMode() 2. ...
和跨度大小嵌入
是实体提及的概率: