《SagDRE: Sequence-Aware Graph-Based Document-Level Relation Extraction with Adaptive Margin Loss》论文阅读笔记
代码
原文地址
关键参考文献:
摘要
1 INTRODUCTION
- 在一个文档中,同一个实体可能有多次提及,但并非所有的提及都与目标关系有关,这就要求RE模型能够筛选出文档中最相关的信息。
- 文档中的实体提及可能分布在不同的句子中,这就要求RE模型能够有效地捕捉长距离的语义信息。
- 采用基于图的模型来表示文档,这些方法使用了双向边的规则图结构来传递特征,而忽视了原始文本中的序列特征。由于图结构的置换不变性,这些方法无法编码序列信息,这可能限制了文档级RE任务的性能。
- 同一实体对在文档中可能涉及多个不同的关系,导致多标签的问题。
- 将多标签问题拆分为多个二分类问题,根据预测概率是否超过一个全局阈值来确定是否赋予相应的标签。但是,这个全局阈值往往是基于经验或在验证集上调节的,可能并不适用于所有的情况。另外,多标签问题还存在一个常见的现象,就是标签的长尾分布。有些关系的训练样本很少,而有些关系的训练样本很多。基于常规概率分布的损失函数容易使模型对热门的关系过拟合,而对冷门的关系欠拟合。
2 RELATED WORK
- Tang等人构建了一个分层推理网络,利用BERT的输出来从实体、句子和文档三个层面进行推理。
- Ye等人在BERT的基础上引入了共指信息,以提升其共指推理的能力。
- Zhou等人设计了一种自适应阈值损失函数,它能够动态地调整正负样本的划分阈值。
- Sahu等人首次在文档级关系抽取任务中引入了图结构,它通过语言工具构建了包括共指边在内的各种边,从而捕获句间和句内的依赖关系,并使用图卷积神经网络进行特征学习。
- Guo等人利用注意力机制来自动构建图中的边,并关注图中与关系推理相关的子结构。
- Zeng等人提出了一种双图模型,分别构建提及级和实体级的图,来预测文档中的关系,而不是简单地使用词级的图。
- Christopoulou等人构建了一个包含不同类型节点和边的图,并采用了一种面向边的图神经网络来进行文档级关系抽取。
- Nan等人则应用了一种迭代细化策略来聚合多跳信息进行推理。
- Zhou等人提出了一种全局上下文增强的图卷积网络,能够考虑全局上下文信息进行关系推理。
3 PRELIMINARY
3.1 Graph Convolutional Networks
,其中
和
分别表示图中的节点集和边集。每个节点
有一个特征向量
。邻接矩阵
用于表示图中的连接。图神经网络 (GNNs) 从图结构和节点特征中学习节点和图的特征表示。大多数现有的图神经网络遵循一种邻域聚合学习策略,即每个节点迭代地从其邻域聚合特征并更新其特征。特别地,对于图卷积网络 (GCN),第
层的 GCN 定义为:
是邻接矩阵,
是度矩阵,
是第
层的输入特征矩阵,
是可训练的参数矩阵,
表示一个激活函数。3.2 Relation Extraction Task Formulation
个句子
的文档
,以及文档中的一对实体
,其中
是头实体,
是尾实体,目标是预测这对实体在文档中的关系。这里预先定义了一组关系标签
,其中
是第
种关系。一个关系抽取模型应该根据文档的内容,为每对实体输出一个空集或者一个关系标签的子集。如果两个实体的任意一对提及之间存在某种关系,那么这两个实体就具有这种关系。在测试阶段,需要对文档中的所有实体对进行关系抽取。(详细见原文)4 SAGDRE

4.1 Sequence-Aware Graph Construction

是文档中第
个句子的第
个词的词嵌入,
是同一个词的编码特征表示。这个编码器可以是预训练的 BERT 模型或 LSTM 模型。
和
,根据它们的特征向量计算从节点
到节点
的有向边的权重
:
和
是词
和
的编码。利用这些学习到的边的权重,关系抽取模型可以自动识别文档中从前面的句子到后面的句子的重要逻辑流。注意,如果
和
是相邻句子的根节点,那么
和
都是1,因为它们之间已经有一条双向边了。4.2 Local and Global Feature Encoding
和邻接矩阵
构建了文档图,然后从局部和全局两个层面提取图形特征。使用图卷积网络层 (GCN) 来对特征进行聚合和编码。GCN 层只能从相邻节点聚合信息,所以它得到的特征是局部特征编码,反映了局部上下文的信息。本文还在 GCN 编码得到的上下文嵌入上使用多头自注意力层 。多头自注意力层能够对输入图中的所有节点进行注意力计算,所以它得到的特征是全局特征编码,反映了整个文档图的信息。将局部和全局的特征嵌入相加,得到图中每个节点的更新后的特征。将第
层的局部和全局特征提取过程公式化为:
是第
层的输入特征矩阵,
是可训练的权重。
和
分别表示一个 GCN 层和一个注意力层。4.3 Sequence-Aware Path Encoding
,首先从
到
的图中选择前
条最短路径作为候选路径,定义第
条最短路径为
,其中,
表示第
条最短路径上的第
个节点。然后,在每条候选路径上为每个节点添加附加词节点,以丰富路径的信息量,得到扩充后的路径
。接着,按照文本中的原始顺序对每条扩充后的路径上的节点进行排序,得到顺序感知路径
。为了编码顺序感知路径的特征,本文应用一个方向 LSTM 层,并用一个最大池化层来获得每条路径的特征表示:
表示
中第
个节点的LSTM的隐藏层表示。

是可训练参数,
代表注意力层。4.4 Relation Prediction Head
,两个实体编码的绝对值差
,两个实体编码的逐元素乘积
,以及序列感知的路径编码
拼接起来,得到这对实体的总体编码:
:
是可训练的参数,
是逐元素的激活函数。另外,预测一个分隔类
来分离正类和负类:
是可训练的参数,
是逐元素的激活函数。在预测时,对于每一对实体,SagDRE输出一组类别
,其中
。注意,如果没有一个类别的值大于
,SagDRE 输出一个空集,表示给定的实体对
之间没有关系。4.5 Adaptive Margin Loss

作为实体对
之间存在第
个关系
的概率。为了将概率转换为关系标签,需要一个预先确定的全局阈值。一些方法使用启发式阈值或者在验证集上学习一个能够达到最高 F1 分数的全局阈值。然而,全局阈值可能并不适合所有的实例,而且可能导致错误的判断。为了解决这个问题,周等人 提出了一个额外的阈值类,用来将正类和负类分开。然而,这样的基于概率分布的方法在面对长尾问题时可能会遇到困难,即大部分的标签只与少量的训练样本有关。即使预测是正确的(高于阈值),基于概率分布的损失函数,如交叉熵损失,仍然会造成很大的损失。占据主导地位的类别有更多的训练样本,会对整个模型产生更大的影响,导致对主导类别的过拟合。
,根据它们之间是否存在关系,将关系标签划分为正类
和负类
。正类
是指两个实体之间实际存在的关系,如果两个实体之间没有任何关系,那么正类
就是空集。负类
是指两个实体之间不存在的关系。图 2 给出了一个示例。本文定义了一个新的标签向量
,其中的元素
的取值为:
,适应性边缘损失函数是所有关系类别的损失之和,具体如下:
是一个控制边缘大小的超参数。注意,当关系抽取任务是二元的时候,适应性边缘损失函数就退化为 Hinge 损失函数。
和
同号)且预测值超过分离类的边缘(即
)时,损失为 0。否则,损失与
成正比。这样,模型就不会追求“完美”的预测,而是“合理”的预测。因此,模型可以避免对任何类别的过拟合,尤其是对占优势的类别的过拟合。5 EXPERIMENTS
5.1 Experiments on the General Domain Dataset

- DocRED。
- Ign F1和 F1 scores,两个指标都是值越高越好。
- 基于序列的模型: CNN-GloVe、BiLSTM-GloVe、BERT、ATLOP-BERT、CorefBERT和HIN-BERT。
- 基于图的模型: AGGCN-GloVe、EoGGloVe、LSR-GloVe/BERT和GAIN-GloVe/-BERT。
- 使用 Huggingface 的 Transformers来实现 BERT 模型,并在最后的预测层加入了保留率为 0.6 的 dropout。采用 AdamW 优化器对 SagDRE 模型进行优化,学习率设置为 1e-3。在使用 BERT 编码器的训练过程中,对前 6% 的步骤采用线性预热,然后逐渐降低学习率至 0。在使用 Glove 嵌入的情况下,根据验证集上的 F1 值是否提升来调整学习率。所有的超参数都是在验证集上调节得到的。使用一块 Tesla V100 GPU 来训练所有的 RE 模型。

5.2 Experiments on Biomedical Datasets
- CDR和CHR。
- F1 scores。
- CNN-BioGloVe、BiLSTM-BioGloVe、EoGBioGloVe、GAIN-GloVe、ATLOP-SciBERT和SciBERT。
- 实验设置基本沿用了第 5.1 节的方法,但也有一些不同之处。这里编码器采用了 SciBERT,它是在大量科学领域的标注语料上预训练得到的语言模型。用 AdamW 算法优化了 SagDRE 模型,初始学习率设置为 1e-3。在训练过程中,先对前 6% 的步骤进行线性预热,然后再将学习率逐渐降为 0。为了节省计算资源,在评估 SagDRE 模型时只使用了 K = 1 的设置。

5.3 Ablation Study of SagDRE

5.4 Parameter Study in Adaptive Margin Loss

用于调节边距大小。为了探究
值对模型性能的影响,本文在 DocRED 数据集的验证集上,用不同的
值(0.0,0.5,和 1.0)来测试SagDRE 模型。表 5 展示了实验结果。从表中可以看出,当
= 1时,SagDRE 模型取得了最好的效果,这也是基于边距的损失中常见的边距选择。另外,本文发现较大的边距能够提高模型的精确度,因为这要求模型给出更高的分数才能预测出一个标签。5.5 Error Analysis


6 CONCLUSION
《SagDRE: Sequence-Aware Graph-Based Document-Level Relation Extraction with Adaptive Margin Loss》论文阅读笔记的更多相关文章
- 《MuseGAN: Multi-track Sequential Generative Adversarial Networks for Symbolic Music Generation and Accompaniment》论文阅读笔记
出处:2018 AAAI SourceCode:https://github.com/salu133445/musegan abstract: (写得不错 值得借鉴)重点阐述了生成音乐和生成图片,视频 ...
- (转)Introductory guide to Generative Adversarial Networks (GANs) and their promise!
Introductory guide to Generative Adversarial Networks (GANs) and their promise! Introduction Neural ...
- 生成对抗网络(Generative Adversarial Networks,GAN)初探
1. 从纳什均衡(Nash equilibrium)说起 我们先来看看纳什均衡的经济学定义: 所谓纳什均衡,指的是参与人的这样一种策略组合,在该策略组合上,任何参与人单独改变策略都不会得到好处.换句话 ...
- 生成对抗网络(Generative Adversarial Networks, GAN)
生成对抗网络(Generative Adversarial Networks, GAN)是一种深度学习模型,是近年来复杂分布上无监督学习最具前景的学习方法之一. GAN 主要包括了两个部分,即 ...
- StackGAN: Text to Photo-realistic Image Synthesis with Stacked Generative Adversarial Networks 论文笔记
StackGAN: Text to Photo-realistic Image Synthesis with Stacked Generative Adversarial Networks 本文将利 ...
- 论文笔记之:Semi-Supervised Learning with Generative Adversarial Networks
Semi-Supervised Learning with Generative Adversarial Networks 引言:本文将产生式对抗网络(GAN)拓展到半监督学习,通过强制判别器来输出类 ...
- 《Self-Attention Generative Adversarial Networks》里的注意力计算
前天看了 criss-cross 里的注意力模型 仔细理解了 在: https://www.cnblogs.com/yjphhw/p/10750797.html 今天又看了一个注意力模型 < ...
- Paper Reading: Perceptual Generative Adversarial Networks for Small Object Detection
Perceptual Generative Adversarial Networks for Small Object Detection 2017-07-11 19:47:46 CVPR 20 ...
- SalGAN: Visual saliency prediction with generative adversarial networks
SalGAN: Visual saliency prediction with generative adversarial networks 2017-03-17 摘要:本文引入了对抗网络的对抗训练 ...
- Generative Adversarial Networks,gan论文的畅想
前天看完Generative Adversarial Networks的论文,不知道有什么用处,总想着机器生成的数据会有机器的局限性,所以百度看了一些别人 的看法和观点,可能我是机器学习小白吧,看完之 ...
随机推荐
- gitlab安装,移库,升级
概述 最近因为机房原因,需要把我们的本地代码库做移库操作. 针对gitlab的安装升级操作重新进行了梳理,记录一下. 环境 CENTOS6 CENTOS7 gitlab-ce-8.14.2 GITLA ...
- java进阶(20)--final/fianlly/fianlize区别
1.final关键字.表示最终的.不变的 final修饰的类无法继承 final修饰的方法无法覆盖 final修饰的变量不能重新赋值 举例: final double weight; 2.finall ...
- context 从入门到深入了解
1. 前言 在 Go 语言中,上下文 context.Context 用来设置截止日期,同步信号,传递值的功能,它与 goroutine 关系密切,被用来解决 goroutine 之间 退出通知,元数 ...
- WPF|如何在 WPF 中设计漂亮的社交媒体信息仪表板
1. 效果展示 先来直接欣赏效果: 2. 准备 创建一个WPF工程,比如站长使用 .NET 7 创建名为 Dashboard3 的WPF项目,添加一些图片资源,项目目录如下: 2.1 图片资源 可在网 ...
- Maven项目手动配置依赖项
1.问题 很多时候,我们依靠其本身的识别功能,并不能很好的识别依赖项(尤其是指定版本),且对于一些位于 <\build>不能自动去下载,这时候我们就要去手动配置依赖项 2.解决 2.1 首 ...
- 【C++】为什么含有纯虚函数的类无法定义对象
纯虚函数的地址为空,无法分配内存,纯虚成员函数对类是没有意义的,失去了普通类的数据和方法绑定于同一对象中的意义,因此无法构造对象,只能由其派生类继承这些成员函数并实现,才能构造派生类对象. 纯虚成员函 ...
- canal报错nosuchmethod ..bytebuffer
解决方法:更新jdk版本与es一致
- [转帖]INSERT IGNORE INTO 与 INSERT INTO
INSERT IGNORE INTO 会忽略数据库中已经存在 的数据,如果数据库没有数据,就插入新的数据,如果有数据的话就跳过当前插入的这条数据.这样就可以保留数据库中已经存在数据,达到在间隙中插入数 ...
- [转帖]坑:jmeter代理服务器录制脚本出现target controller is configured to "use recording Controller" but no such controller exists...
配置好代理服务器后,运行代理服务器 run 报错: target controller is configured to "use recording Controller" bu ...
- [转帖]Jmeter 参数化
一.Jmeter参数化概念 当使用JMeter进行测试时,测试数据的准备是一项重要的工作.若要求每次迭代的数据不一样时,则需进行参数化,然后从参数化的文件中来读取测试数据. 参数化是自动化测试脚本的一 ...