首页 > 其他分享 >《SAIS Supervising and Augmenting Intermediate Steps for Document-Level Relation Extraction》论文阅读笔记

《SAIS Supervising and Augmenting Intermediate Steps for Document-Level Relation Extraction》论文阅读笔记

时间:2024-01-25 11:11:37浏览次数:27  
标签:关系 Supervising Level 实体 三元组 Relation 上下文 证据 句子

代码

 

原文地址

 

预备知识:

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 万个),如果要用每个三元组的证据来增强推理结果,计算量太大,不现实。 因此,本文采用了选择性预测的思想 (El-Yaniv等人, 2010),从所有的三元组中选出一个子集,这个子集里的三元组是模型对原始流程的关系预测最不确定的。 具体来说,用来衡量模型对的置信度,然后把置信度最低的的三元组放入不确定集。对于中的三元组,放弃原来的关系预测,而是用基于证据的数据增强来提高性能(详见第 4.2 节)。 为了确定拒绝率(注意不是一个超参数),先按照绝对置信度对开发集中的所有三元组进行排序。当增加时,不在中的三元组的风险(即不准确率)会降低,反之亦然。 本文既想降低关系预测的风险,又想降低拒绝率,这样才能减少数据增强的计算成本。为了平衡这两个目标,选择使达到最小的。如图 2 所示,在 DocRED 的开发集中找到。在实践中,还可以限制每个实体对的拒绝三元组数不超过 10,这样就能把的大小缩小到 DocRED 开发集中所有三元组的 1.5%。  

4.2 How to Augment Intermediate Steps

考虑一个三元组,它表示实体之间存在关系。为了验证这个三元组是否有效,需要根据第 3.5 节的方法,计算给定的句子是否属于关系的证据集合,即计算的值。基于这个概率,本文提出了两种基于证据的数据增强方法,分别是:   (1)基于伪文档的方法():从文本中选取一些满足的句子,将它们拼接成一个伪文档,然后输入到原始的模型中,得到三元组的置信度。   (2)基于注意力掩码的方法():根据的值生成一个注意力掩码,用它来调整上下文嵌入,其中是文本的隐藏状态,是实体的注意力权重。保持模型的其他部分不变,得到三元组的置信度。   为了综合这两种方法的优势,本文参考了Eider的工作,使用一个混合参数对每个关系和原始置信度进行加权平均,得到: 通过最小化开发集上的的二元交叉熵损失来训练混合参数:   其中表示三元组是有效的,否则为 0。在测试阶段,对于每个,只有当它的混合置信度大于 0 时,才认为它是有效的三元组。   这种方法可以在模型对原始预测不确定时利用证据信息提高关系抽取的性能,在模型对原始预测有信心时节省计算成本。在附录 B 中给出了基于证据的数据增强和集成推理的总体步骤这些步骤只在的训练之后执行,因此对计算成本的影响可以忽略不计。

标签:关系,Supervising,Level,实体,三元组,Relation,上下文,证据,句子
From: https://www.cnblogs.com/best-doraemon/p/17986742

相关文章

  • Binary tree traversal-- level-order traversal using queue【1月23日学习笔记】
    点击查看代码//Binarytreetraversal--level-ordertraversalusingqueue#include<iostream>#include<queue>//STLusingnamespacestd;structnode{intdata;node*left,*right;};node*getnewnode(intx){node*temp=newnode;t......
  • OPENJSON requires Compatibility Level 130
    ParseandTransformJSONDatawithOPENJSONOPENJSONrequiresCompatibilityLevel130TheOPENJSONfunctionisavailableonlyundercompatibilitylevel130.Ifyourdatabasecompatibilitylevelislowerthan130,SQLServercan'tfindandruntheO......
  • 《DREEAM Guiding Attention with Evidence for Improving Document-Level Relation E
    代码 原文地址 预备知识:1.什么是K-L散度(Kullback-LeiblerDivergence)?K-L散度,是一种量化两种概率分布P和Q之间差异的方式,又叫相对熵。在概率学和统计学上,我们经常会使用一种更简单的、近似的分布来替代观察数据或太复杂的分布。K-L散度能帮助我们度量使用一个分布来近似另......
  • Adaptively sharing multi-levels of distributed representations in multi-task lea
    期刊:InformationSciences”(Wang等,2022,p.226)计算机科学1区top。2022年题目:“多任务学习中自适应共享多级分布式表示”(pdf)“Adaptivelysharingmulti-levelsofdistributedrepresentationsinmulti-tasklearning”(Wang等,2022,p.226)(pd......
  • [论文阅读 ] Domain generalization via feature variation decorrelation
    Domaingeneralizationviafeaturevariationdecorrelation3METHOD在本节中,我们首先在第3.2节解释我们的动机。然后,在第3.3节中,我们介绍特征变化的解缠和讨论方差转移的想法。最后,在第3.4节中,我们提出了我们的新颖特征变化解相关损失。图2显示了所提出方法的框架。3.1Prob......
  • 《RAPL: A Relation-Aware Prototype Learning Approach for Few-Shot Document-Level
    代码 原文地址 预备知识:1.什么是元学习(MetaLearning)?元学习或者叫做“学会学习”(Learningtolearn),它是要“学会如何学习”,即利用以往的知识经验来指导新任务的学习,具有学会学习的能力。由于元学习可帮助模型在少量样本下快速学习,从元学习的使用角度看,人们也称之为少次......
  • jarvisoj_level3_x64
    jarvisoj_level3_x6464位libc泄露漏洞函数中存在溢出使用溢出泄露libc构造payload获得shellrbppadding0x800x8pop_rdiret0x00000000004006b30x1poppop_rsiret0x00000000004006b1write_gotpop_rsielf.got['write']没......
  • jarvisoj_level3
    jarvisoj_level3函数参数劫持32位泄露libc32位程序的传参是栈的后四位开始,要注意的是,32位下write,put的ret位置是紧跟函数后面的payload1=b'A'*(0x88+0x4)+p32(elf.plt['write'])+p32(elf.sym['main'])+p32(1)+p32(elf.got['write'])+p32(4)这段代码中的p32(elf.sy......
  • C++ Qt开发:SqlRelationalTable关联表组件
    Qt是一个跨平台C++图形界面开发库,利用Qt可以快速开发跨平台窗体应用程序,在Qt中我们可以通过拖拽的方式将不同组件放到指定的位置,实现图形化开发极大的方便了开发效率,本章将重点介绍SqlRelationalTable关联表组件的常用方法及灵活运用。在上一篇文章中详细介绍了SqlTableModle组......
  • RestHighLevelClient脚本更新设置waitForCompletion属性
    UpdateByQueryRequest参数没有直接设置wait_for_completion的属性通过使用客户端封装的submitUpdateByQueryTask方法调用:TaskSubmissionResponsetaskSubmissionResponse=writeHighLevelClient.submitUpdateByQueryTask(request,RequestOptions.DEFAULT);publicfinalT......