《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 ...
随机推荐
- Intrusion Detection Using Convolutional Neural Networks for Representation Learning 笔记
Intrusion Detection Using Convolutional Neural Networks for Representation Learning 2.2 实验数据的预处理 为了确 ...
- 基于FPGA 的SDRAM控制器
SDRAM基本信息 储存能力计算 4X16X4=256(Mbit),注意不是MByte SDRAM控制 sdram包含两个部分:sdram_ctrl.fifo_ctrl. sdram_ctrl:其顶层 ...
- 前端三件套系例之BootStrap—— BootStrap组件、BootStrap插件
文章目录 1 BootStrap组件 1 Glyphicons 字体图标 2 下拉菜单 2.1 基本使用 2.2 对齐 2.3 标题 2.4 分割线 2.5 禁用的菜单项 3 按钮组 3.1 基本使用 ...
- 创建及管理DSW实例
机器学习PAI 产品概述 快速入门 操作指南 准备工作 工作空间管理 AI计算资源管理 AI开发 开发流程 快速开始 智能标注(iTAG) 可视化建模(PAI-Designer) 交互式建模(PA ...
- 小米手机抓取Log教程
当小米手机遇到任何系统下的较为严重的故障时(即此时系统还是基本正常运行的,只是某些功能实现出了问题),例如软件自动退出,SD卡自动卸载,电话无法拨出等等.可以请用户协助抓取log即系统运行日志,来发送 ...
- .NET周刊【10月第2期 2023-10-08】
国内文章 起风了,NCC 云原生项目孵化计划 https://www.cnblogs.com/liuhaoyang/p/ncc-the-wind-rises.html 2016年,我和几位朋友发起了. ...
- Nginx-自动漂移VIP
自动漂移VIP-1 #!/bin/bash #2020-03-16 14:24 #auto change nginx vip.sh #By Precious ##################### ...
- Unity - EditorWindow 折叠树显示(IMGUI)
仅适用于2018之前的版本,有UIElements或者UIWidgets的最好用新的 基本实现 树节点 public interface ITreeNode { ITreeNode Parent { ...
- Chromium Trace and Perfetto使用详解
1. Trace chromium 在 base 库中提供了 base::trace_event::TraceLog 类,该类是 TRACE_EVENT* , TRACE_COUNTER* 等宏的底层 ...
- JavaScript高级程序设计笔记06 集合引用类型
集合引用类型 1. Object(详见c08 p205) 适合存储,在应用程序间交换数据 创建实例: a. 显式构造函数 b. 字面量-->不会调用构造函数(代码更少.更有封装感) 函数:大量参 ...
和跨度大小嵌入
是实体提及的概率: