预备知识:
1.什么是标记索引(token indices)?
标记索引是一种用于表示文本中的单词或符号的数字编码。它们可以帮助计算机理解和处理自然语言。例如,假如有一个字典{"我": 1, "是": 2, "Bing": 3, ".": 4},那么文本"我是Bing."的标记索引就是[1, 2, 3, 4]。不同的模型或任务可能使用不同的字典或编码方式,因此标记索引也可能有所不同。
2.什么是交替段落标记索引(alternating segment token indices)?
交替段落标记索引是一种用于区分文档中不同句子的方法。它可以帮助PLM更好地理解文档的结构和语义。具体来说,就是在每个句子的开头和结尾添加一个特殊的标记,例如0或1,表示该句子属于哪个段落。这样,PLM就可以根据这些标记来分析文档中的句子之间的关系。
3.什么是Spacy?
spaCy是一个用于高级自然语言处理的开源软件库,用Python和Cython编程语言编写。
摘要
从句子级到文档级,关系抽取(RE)的研究需要处理更长的文本和更复杂的实体交互。因此,如何有效地编码关键信息源——相关上下文和实体类型,是一个挑战性的问题。然而,现有的方法在训练RE的过程中只是隐式地学习这些关键信息源的建模。这导致了它们在监督信号和模型预测的可解释性方面存在不足。为了解决这些问题,本文提出了一种显式地指导模型捕获相关上下文和实体类型的方法,即通过监督和增强中间步骤(Supervising and Augmenting Intermediate Steps ,SAIS)进行RE。本文基于一系列精心设计的任务,提出了SAIS方法,它不仅能够由于更有效的监督而提取更高质量的关系,而且能够更准确地检索出与RE实例相关的证据,从而提高模型的可解释性。此外,通过评估模型的不确定性,SAIS还能够通过基于证据的数据增强和集成推理进一步提升性能,同时降低计算成本。最终,SAIS在三个基准数据集(DocRED,CDR和GDA)上达到了RE的最新水平,并在DocRED上的证据检索任务上相对于第二名提高了5.04%的F1分数。
1 Introduction
RE:识别给定文本片段中的实体对之间的关系,将非结构化文本转化为结构化知识。
早期的RE研究主要关注句子级别的关系预测,而
Peng等人(2020)通过大量的实验发现,这些方法之所以有效,是因为它们能够利用文本中的上下文和实体类型信息。
现有的文档级关系抽取(DocRE)在训练过程中,只是隐式地学习了文本上下文和实体类型的信息,导致了结果的不理想和不可解释。
本文提出了SAIS,来显式地指导模型捕获文本上下文和实体类型信息,从而进行RE。
本文认为,从带有注释实体提及的输入文档到RE的最终输出,推理过程包含四个中间步骤。如图1所示:
(1) 共指消解(Coreference Resolution,CR):识别文档中指代同一实体的不同提及。
句子0提到了“Carl Linnaeus the Younger”的“国籍”,而句子1谈到了“Linnaeus filius”的“父亲”。其实,这两个名字都是指同一个人。因此,对于一个文档,要先用CR来确定同一实体的不同提及在上下文中的角色。
(2) 实体类型(Entity Typing ,ET):标注实体的类型信息。
例如,实体A,“Linnaeus filius”,是“PER”(人)类型。在一个实体对中,头实体和尾实体的类型信息可以帮忙排除不合理的关系。比如,“year_of_birth”关系不可能存在于两个“PER”(人)类型的实体之间。
(3) 汇总证据检索(Pooled Evidence Retrieval,PER):区分有和没有有效支持句的实体对。
(4) 细粒度证据检索(Fine-grained Evidence Retrieval,FER):为每种有效关系提供具体的证据句子。
不是所有的实体对都有有效的关系(例如,示例中的实体D和B)。有些实体对还有多种关系(例如,实体A是实体D的“educated_at”和“employee”),每种关系都有自己的证据。所以,用PER来判断实体对是否有有效的支持句子,用FER来给出每种有效关系的独特和可解释的证据。
为了进一步提高性能,本文还采用了两种基于证据的数据增强方法和集成推理方法。基于证据的数据增强方法包括使用伪文档和注意力掩码来过滤出与关系相关的上下文,集成推理方法则是在模型对原始预测不确定时,结合多个模型的输出来提高置信度。这些方法只需要很少的额外计算代价,就可以显著提升模型的效果。
SAIS在三个RE基准测试(DocRED, CDR, GDA)上都取得了最好的性能,并且在DocRED上的ER F1分数相对于第二名提高了5.04%,说明SAIS不仅提高了关系的准确性,还提高了关系的可解释性。
2 Background
2.1 Problem Formulation
给定一个文档

,它由一组句子


和一组实体

组成。每个实体

都有一个属于

的类型,并且在

中至少出现了一次,用


表示它的所有提及。对于任意一对头实体和尾实体

,DocRE的任务是根据

和

的某些提及在

中是否表达了某种属于

的关系

,来判断它们之间是否存在这种关系。这里,

和

分别是预定义的实体类型集合和关系类型集合。另外,对于

和它们之间的任意一种有效关系

,证据检索(ER)的任务是找出

中的一个子集

,它包含了表达

的足够信息。
2.2 Related Work
DocRE的两种方法:
(1)基于图的方法:通常将上下文信息融入到基于启发式的文档图中,并通过先进的神经技术进行多跳推理。
(2)基于Transformer的方法:利用预训练的语言模型的优势来编码长距离的上下文依赖。
然而,大多数之前的方法都是在训练RE模型的过程中隐式地学习上下文信息。因此,它们面临着监督不充分和模型预测不可解释的问题。
与EIDER相比,SAIS使用了更精确和可解释的FER来检索证据,并提出了两种不同的基于证据的数据增强方法,而且还通过只对不确定的关系三元组应用集成学习来节省计算成本。因此,SAIS不仅通过更有效的监督提高了RE的性能,而且还检索了更准确的证据,以提高可解释性。
3 Supervising Intermediate Steps
3.1 Document Encoding
为了利用预训练语言模型(PLM)在各种下游任务中的优势,本文使用PLM对文档进行编码。具体来说,对于一个文档

,在每个句子

的首尾分别添加一个分类器标记“[CLS]”和一个分隔符标记“[SEP]”。还用一对实体标记“*”标注出每个提及

的位置。接着,将文档,以及每个句子的交替段落标记索引(
Liu和Lapata, 2019),输入到一个PLM中,得到:
其中,

是词嵌入,

是跨词注意力。

是PLM的最后一个Transformer层中所有注意力头的平均值。

是

中的词数,

是PLM的嵌入维度。把每个提及或句子前的“*”或“[CLS]”对应的嵌入作为该提及或句子的嵌入。
3.2 Coreference Resolution (CR)
作为一个案例研究,
Yao等人(2019)报告了在DocRED数据集中,有17.6%的关系实例需要进行共指消解。因此,在对文档进行编码后,本文使用CR模块来将重复的上下文提及映射到同一个实体。具体来说,对于一对提及

,通过将它们的嵌入

和

输入一个分组双线性层来计算它们是否指代同一个实体的概率。该层将嵌入分成

个等大小的组,即

,对

同理,并在每个组内应用双线性变换,参数为

:
其中

,

是sigmoid函数。
由于在DocRED数据集中,大多数提及对应不同的实体(每个实体平均只有1.34个提及),本文使用焦点损失(
Lin等人,2017)来缓解这种极度的类别不平衡,它是在二元交叉熵的基础上增加的:
其中

表示

和

指代同一个实体,否则为0。类别权重

与

的频率成反比,

是一个超参数。
3.3 Entity Typing (ET)
在一对实体中,类型信息可以用来过滤掉不可能的关系。为了保证实体嵌入能够反映类型信息,本文通过ET模块来对实体嵌入进行正则化。具体来说,首先利用logsumexp池化来融合实体

的各个提及

的嵌入:
由于实体

可以出现在实体对的头部或尾部,本文分别用两个线性层来生成头部实体嵌入

和尾部实体嵌入

:
无论实体

出现在实体对的哪个位置,它的头部和尾部嵌入都应该包含

的类型信息。因此,通过将

(

)输入一个线性层来预测实体

的类型概率:
然后,使用多类交叉熵损失来优化类型预测:
其中

,

是softmax函数。

表示实体

属于类型

,否则为0。
3.4 Pooled Evidence Retrieval (PER)
为了更好地理解文本中的上下文信息,本文使用 PER 模块来显式地让 PLM 关注每个实体对之间的关联句子。也就是说,目标是找出文档

中对于实体对

有用的证据句子集合

,而不考虑每个句子

所表达的具体关系。在这种情况下,给定一个实体对

,首先根据公式1中的交叉词注意力机制来计算一个独特的上下文嵌入

:
上式中,

表示元素级的乘法。

是

对文档中所有词的注意力(即,

的提及级注意力的平均值)。

同理。然后通过将实体对

的上下文嵌入

和句子

的嵌入

送入一个分组双线性层来计算句子

是否属于证据句子集合

的概率:
其中

和

。
这里同样遇到了一个严重的类别不平衡的问题,因为大多数实体对(在 DocRED 中占 97.1%)没有有效的关系或证据。因此,类似于第 3.2 节,本文也使用了带有二元交叉熵的焦点损失函数:
3.5 Fine-grained Evidence Retrieval (FER)
为了进一步提高模型的可解释性,不仅要对实体对进行PER,还要对每个实体对和关系的三元组进行FER,从而恢复它们的特定上下文证据。具体来说,给定一个三元组

,首先将

和

的关系嵌入

通过一个线性层融合成一个三元组嵌入

:
其中

表示连接,而

是从 PLM 的嵌入矩阵中获取的。
然后,使用一个分组双线性层来计算一个句子

是否属于三元组的细粒度证据集合

的概率:
其中

和

。
由于 FER 只针对有有效关系的实体对,所以这里的类别不平衡问题比 PER 要小一些。因此,定义

,并使用标准的二元交叉熵损失函数:
3.6 Relation Extraction (RE)
根据上述四个互补任务,本文对每个实体对

的相关上下文

进行编码,并保留它们的实体类型信息

和

。然后,通过两个独立的线性层从

中提取出头实体和尾实体所需的上下文:
接着,将上下文信息和类型信息结合起来,得到头实体和尾实体的表示:
接下来,使用一个分组双线性层来计算头实体

和尾实体

之间是否存在关系

的对数几率:
正如前文所述,只有少数实体对之间有有效的关系,而且一个实体对之间可能有多个关系。因此,为了处理多标签不平衡分类的问题,本文参考
Zhou等人 (2021)的方法,引入了一个阈值关系类

,并采用了一个自适应阈值损失函数:
这个损失函数的目的是提高有效关系

的对数几率,降低无效关系

的对数几率,两者都相对于

。
总之,为了提高模型的 RE 性能,本文设计了四个任务来显式地监督模型在各个中间步骤的输出,从而更好地捕捉实体类型信息和文本上下文。在附录 A 中展示了整个流程

,并通过最小化多任务学习目标函数来整合所有的任务:
其中

。

是用来平衡不同任务权重的超参数。
在使用当前流程

进行推理时,通过比较其对数几率和阈值对数几率 (即

) 来判断一个三元组

是否有效 (即实体对

之间是否有关系

)。对于每个预测的三元组

,通过比较

和

来判断一个句子

是否属于证据集

,其中

是一个阈值。
4 Augmenting Intermediate Steps
4.1 When to Augment Intermediate Steps
FER 预测的证据是每个三元组

唯一的。但是,所有可能的三元组的总数太多了(在 DocRED 的开发集中约有 4000 万个),如果要用每个三元组的证据来增强推理结果,计算量太大,不现实。
具体来说,用

来衡量模型对

的置信度,然后把置信度最低的

的三元组放入不确定集

。对于

中的三元组,
放弃原来的关系预测,而是用基于证据的数据增强来提高性能(详见第 4.2 节)。
为了确定拒绝率

(注意

不是一个超参数),先按照绝对置信度

对开发集中的所有三元组进行排序。当

增加时,不在

中的三元组的风险(即不准确率)会降低,反之亦然。
本文既想降低关系预测的风险,又想降低拒绝率,这样才能减少数据增强的计算成本。为了平衡这两个目标,选择使

达到最小的

。如图 2 所示,在 DocRED 的开发集中找到

。在实践中,还可以限制每个实体对的拒绝三元组数不超过 10,这样就能把

的大小缩小到 DocRED 开发集中所有三元组的 1.5%。
4.2 How to Augment Intermediate Steps
考虑一个三元组

,它表示实体

和

之间存在关系

。为了验证这个三元组是否有效,需要根据第 3.5 节的方法,计算给定的句子

是否属于关系

的证据集合

,即计算

的值。基于这个概率,本文提出了两种基于证据的数据增强方法,分别是:
(1)基于伪文档的方法(

):从文本中选取一些满足

的句子,将它们拼接成一个伪文档,然后输入到原始的模型中,得到三元组的置信度

。
(2)基于注意力掩码的方法(

):根据

的值生成一个注意力掩码

,用它来调整上下文嵌入


,其中

是文本的隐藏状态,

和

是实体的注意力权重。保持模型的其他部分不变,得到三元组的置信度

。
为了综合这两种方法的优势,本文参考了Eider的工作,使用一个混合参数

对每个关系

的

,

和原始置信度

进行加权平均,得到:
通过最小化开发集上的

的二元交叉熵损失来训练混合参数:
其中

表示三元组

是有效的,否则为 0。在测试阶段,对于每个

,只有当它的混合置信度

大于 0 时,才认为它是有效的三元组。
这种方法可以在模型对原始预测不确定时利用证据信息提高关系抽取的性能,在模型对原始预测有信心时节省计算成本。在附录 B 中给出了基于证据的数据增强和集成推理的总体步骤

。
这些步骤只在
的训练之后执行,因此对计算成本的影响可以忽略不计。
- 《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的论文,不知道有什么用处,总想着机器生成的数据会有机器的局限性,所以百度看了一些别人 的看法和观点,可能我是机器学习小白吧,看完之 ...
随机推荐
- Python从0到1丨图像增强及运算:形态学开运算、闭运算和梯度运算
摘要:本文主要介绍图像形态学处理,详细讲解了图像开运算.闭运算和梯度运算.数学形态学是一种应用于图像处理和模式识别领域的新方法,其基本思想是用具有一定形态的结构元素去量度和提取图像中对应形状以达到对图 ...
- 云小课|RDS实例连接又失败?看我祭出杀手锏!
摘要:自从购买了RDS实例,连接失败的问题就伴随着我,我真是太难了.不要害怕,不要着急,跟着小云妹,读了本文,让你风里雨里,实例连接自此畅通无阻! 顺着以下几个方面进行排查,问题就可以迎刃而解~ 本文 ...
- 干货来了!阿里发布近300页Flink实战电子书
近300页实用干货总结,帮你解决 Flink 实战应用难题!<Apache Flink电子书合辑>收录来自bilibili.美团点评.小米.OPPO.快手.Lyft.Netflix等一线大 ...
- Nginx log 日志文件较大,按日期生成 实现日志的切割
Nginx日志不处理的话,会一直追加,文件会变得很大,所以理想做法是按天对 Nginx日志进行分割 方法1:给日志文件名加上日期 推荐 log_format access-upstream '$tim ...
- 【ToolChains】CLion(VS2019) + CMake + Vcpkg 的使用
参考博客: https://blog.51cto.com/u_15075510/4201238 http://t.csdn.cn/pADDU https://zhuanlan.zhihu.com/p/ ...
- 前端科普系列(4):Babel —— 把 ES6 送上天的通天塔
本文首发于 vivo互联网技术 微信公众号 链接: https://mp.weixin.qq.com/s/plJewhUd0xDXh3Ce4CGpHg作者:Morrain 一.前言 在上一节 < ...
- 基于 HTML5 WebGL + WebVR 的 3D 虚拟现实可视化培训系统
前言 2019 年 VR, AR, XR, 5G, 工业互联网等名词频繁出现在我们的视野中,信息的分享与虚实的结合已经成为大势所趋,5G 是新一代信息通信技术升级的重要方向,工业互联网是制造业转型升级 ...
- kafka集群七、java操作kafka(有密码验证)
系列导航 一.kafka搭建-单机版 二.kafka搭建-集群搭建 三.kafka集群增加密码验证 四.kafka集群权限增加ACL 五.kafka集群__consumer_offsets副本数修改 ...
- linux挂载磁盘和设置开机自动挂载
1.查看分区信息 root@xmgl opt]# fdisk -l ......此处省略一些信息 Disk /dev/sdb: 644.2 GB, 644245094400 bytes, 125829 ...
- kafka 集群环境搭建
本文为博主原创,未经允许不得转载: 如果搭建单机节点 kafka 可看我的这篇博客: 搭建 kafka 集群环境,只需要在搭建单机 kafka 环境的基础上,多增加几个kafka 服务实例即可. 多增 ...