EIDER: Evidence-enhanced Document-level Relation Extraction

2023-10-07 19:20

本文主要是介绍EIDER: Evidence-enhanced Document-level Relation Extraction,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

http://arxiv.org/abs/2106.08657

要了解本论文,最好先看一下ATLOP论文和E2GRE论文,本文提出的EIDER模型是在这两个模型上进行改进的模型。

目录

1 摘要

2 动机

3 Joint Relation and Evidence Extraction

3.1 Encoder

3.1.1 目的

3.1.2 步骤

3.2 Relation Prediction Head

3.2.1 目的

3.2.2 步骤

3.3  Evidence Prediction Head

3.3.1 目的

3.3.2 步骤

3.4 Optimization

3.4.1 目的

3.4.2 步骤

3.5 Inference

3.5.1 目的

3.5.2 步骤

4 Evidence-centered Relation Extraction

4.1 目的

4.2 步骤

5 Fusion of Extraction Results

5.1 目的

5.2 步骤

6 模型结果

 7 结论


1 摘要

在文档关系抽取任务中,文档中某一部分句子可以称为证据句,它们可以充分地预测实体对之间地关系,而不需要其他的非证据句。因此,为了更好地使用证据句,我们提出了一个三阶段的证据增强模型-EIDER。三个阶段分别是:joint relation and evidence extraction,evidence-center relation extraction,and fusion of extraction results.我们首先联合训练一个RE模型和一个简单且内存高效的证据提取模型。然后,我们根据提取的证据语句构造伪文档,并再次运行RE模型。

一方面,如果提取的证据完全准确,直接使用提取的证据进行预测可以简化原始文档的结构,从而使模型更容易做出正确的预测。另一方面,提取证据的质量并不完美。此外,原始文件中的非证据句也可能提供实体的背景信息,并可能有助于预测。因此,仅仅依靠这些预测出的证据句子可能会导致信息丢失,并导致次优性能。因此,我们将原始文档和提取的证据上的预测结果结合起来。

2 动机

为了充分地利用证据句,使模型更容易做出正确的预测。但同时避免信息的丢失,仍然可以访问整个文档。因此既从原文档中提取关系,也从伪文档中中提取关系。

模型设计

三个阶段:

阶段一:

训练关系提取模型和证据提取模型

在两个模型中都采用了局部上下文池化,得到实体对的上下文表示

阶段二:

把真正的证据句按照原文档中出现的顺序连接起来,然后用阶段一中提取到的证据句替换真正的证据句,把该文档视为伪文档,阶段一的关系提取模型上进行关系的预测,得到关系预测的分数即概率值(无需再训练关系提取模型,因为阶段一已经训练过了)

阶段三:

将阶段一得到的关系预测分数和阶段二得到的关系预测分数进行融合,得到最终的关系预测分数。 

3 Joint Relation and Evidence Extraction

3.1 Encoder

3.1.1 目的

得到文档的上下文表示,实体的embedding,实体对的上下文信息(局部上下文池化)

3.1.2 步骤

  1. 在提及前后插入"*"
  2. 将文档序列送入Encoder中,得到文档的上下文表示embedding
  3. 将提及前的一个“*”的embedding作为该提及的embedding
  4. 我们对一个实体的所有提及采用logsumexp池化得到该实体的embedding
  5. 从预训练模型中得多头的attention,将每个提及的token的attention求平均,得到提及的attention,再将提及的attention求平均,得到实体的attention
  6. 然后,将头实体和尾实体的attention的注意力相乘,并累加多头的结果,放入softmax函数中,得到最终的实体对entity pair的attention
  7. 将文档的上下文表示乘以实体对的attention,得到最终的实体对的上下文表示

3.2 Relation Prediction Head

3.2.1 目的

通过Encoder模块的信息,利用自适应阈值技术训练出关系预测模型。从而去预测实体对的之间存在的关系

3.2.2 步骤

  1. 根据上面得到的实体对(e_{h},e_{t})的上下文表示c,我们将其同实体的embedding一起,经过全连接层,和tanh函数,得到头实体和尾实体的隐藏状态
  2. 根据实体对的隐藏状态,通过下面的公式计算出该实体对存在关系 r 的概率值
  3. 训练时期的损失函数我们直接使用ATLOP论文中自适应阈值损失函数作为我们该关系抽取模型的损失函数,来计算损失值

3.3  Evidence Prediction Head

3.3.1 目的

证据预测模型是用来预测每个句子是不是实体对(e_{h},e_{t})的证据句子

3.3.2 步骤

  1. 对一个sentence中的所有token运用mean pooling ,得到sentence embedding即s_{i}
  2. 得到通过Encoder已经求得的实体对的上下文表示
  3. 将句子的表示和实体对的表示一起放入公式,计算s_{i}是实体对(e_{h},e_{t})的证据句的概率
  4. 定义交叉熵损失函数,来求得证据预测的损失值 

3.4 Optimization

3.4.1 目的

最终,在训练阶段,我们通过将关系抽取损失和证据抽取损失结合起来去优化我们的模型

3.4.2 步骤

  1. 将两个损失函数值以一定的比例结合起来,一起训练

3.5 Inference

3.5.1 目的

在模型训练结束后,我们输入原始文档作为关系抽取的输入。对于每个实体对,我们将获得每种关系的分数,大于阈值类为预测的标签,若没有大于阈值类的logit,则预测的关系为NA

另外,我们也将得到证据预测模型中预测出的概率值,若P>0.5,则该sentence就是证据句

3.5.2 步骤

  1. 根据Relation Prediction Head中的步骤一步一步得到关系预测的概率值logit
  2. 将得到的概率值用下面的公式,大于阈值类为预测的标签,若没有大于阈值类的logit,则预测的关系为NA,得到模型预测出的实体对的预测分数
  3. 根据Evidence Prediction Head中的步骤,得到预测证据的概率值,若大于0.5,则判断为证据句,记为

4 Evidence-centered Relation Extraction

4.1 目的

假设我们在推理阶段得到的证据句基本正确,那么这些证据句就已经包含了与关系有关的全部信息,那我们就不用使用整个文档进行关系抽取了。以证据句为中心的关系抽取,使模型能够更容易地进行关系抽取工作

4.2 步骤

  1. 制作伪文档,也就是用Inference阶段预测出的证据句,组成一个新的文档,作为Relation Prediction Head关系抽取模型中的输入,得到预测分数
  2. 将原始文档和伪文档得到的预测分数分别记为S^{(o)},S^{(e)} 

5 Fusion of Extraction Results

5.1 目的

一方面,如果提取的证据完全准确,直接使用提取的证据进行预测可以简化原始文档的结构,从而使模型更容易做出正确的预测。另一方面,提取证据的质量并不完美。此外,原始文件中的非证据句也可能提供实体的背景信息,并可能有助于预测。因此,仅仅依靠这些预测出的证据句子可能会导致信息丢失,并导致次优性能。因此,我们将原始文档和提取的证据上的预测结果结合起来。

5.2 步骤

  1. 在从原始文档和伪文档中获得两组关系预测结果后,我们通过混合层聚合它们的预测分数S^{(o)},S^{(e)}来融合结果:

  2. 将原始文档和伪文档的预测分数融合,再定义损失函数计算损失值

6 模型结果

 7 结论

在这项工作中,我们提出了一个包含联合关系和证据提取、以证据为中心的关系提取和提取结果融合的三阶段DocRE框架。联合训练阶段采用简单的模型结构,记忆效率高。关系提取和证据提取模型相互提供额外的训练信号,并相互增强。我们将原始文档和提取的证据的预测结果结合起来,这鼓励了模型在减少信息损失的同时关注重要句子。实验结果表明,我们的模型在DocRED上的性能明显优于现有的方法,尤其是在句间关系上。

这篇关于EIDER: Evidence-enhanced Document-level Relation Extraction的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/159890

相关文章

JavaScript中document.cookie

“某些 Web 站点在您的硬盘上用很小的文本文件存储了一些信息,这些文件就称为 Cookie。”—— MSIE 帮助。一般来说,Cookies 是 CGI 或类似,比 HTML 高级的文件、程序等创建的,但是 javascript 也提供了对 Cookies 的很全面的访问权利。       每个 Cookie 都是这样的:<cookie名>=<值>   <cookie名>的限制与 javasc

MiniCPM-V: A GPT-4V Level MLLM on Your Phone

MiniCPM-V: A GPT-4V Level MLLM on Your Phone 研究背景和动机 现有的MLLM通常需要大量的参数和计算资源,限制了其在实际应用中的范围。大部分MLLM需要部署在高性能云服务器上,这种高成本和高能耗的特点,阻碍了其在移动设备、离线和隐私保护场景中的应用。 文章主要贡献: 提出了MiniCPM-V系列模型,能在移动端设备上部署的MLLM。 性能优越:

Spring源码学习--获取Document

Spring在容器的基本实现流程中会涉及到关于xml文件操作,在这里跟踪一下源码,看一下spring在解析xml文件之前,对xml的Document是怎么获取的。 一、DefaultDocumentLoader 在Spring中XmlBeanFactoryReader类对于文档的读取并没有亲自去做加载,而是委托给DocumentLoader去执行,其中DocumentLoader只

PAT (Advanced Level) Practice——1011,1012

1011:  链接: 1011 World Cup Betting - PAT (Advanced Level) Practice (pintia.cn) 题意及解题思路: 简单来说就是给你3行数字,每一行都是按照W,T,L的顺序给出相应的赔率。我们需要找到每一行的W,T,L当中最大的一个数,累乘的结果再乘以0.65,按照例子写出表达式即可。 同时还需要记录每一次选择的是W,T还是L

mongodb document使用的数据结构中存在List结构导致查询速度异常缓慢

最近使用的mongodb 数据库,项目中查询某个列表异常缓慢,甚至造成cpu突然上升,后经过排查,发现  ,因为文档中存在List结构的数据,所以造成查询异常缓慢,以后使用mongodb数据库的项目,慎用list结构,一部小心就是一个大坑

org.springframework.beans.factory.xml.XmlBeanDefinitionStoreException: Line 24 in XML document from

org.springframework.beans.factory.xml.XmlBeanDefinitionStoreException: Line 24 in XML document from class path resource [bean1.xml] is invalid; nested exception is org.xml.sax.SAXParseException; lineN

$(document).ready(function(){})和$().ready(function(){})和$(function(){})的区别

$(document).ready(function(){}) 和$().ready(function(){}) 和$(function(){})的区别有那些呢???? 以上三个语法全部是等价的: 还有$(document).bind("ready", handler)。该方法在从 jQuery 1.8 开始不再建议使用。这种用法的行为和 ready 方法类似,只有一点不同

function 报错 Uncaught ReferenceError: fuzzySearch is not defined用$(document).ready(function(){ })里面的

这个情况就有点坑了 ,小胖哥看了都说写法没大问题,后面觉得把 function 函数弄出去的话试下,果然可以了!!!  $(document).ready(function(){ })里面的 function 报错 Uncaught ReferenceError: fuzzySearch is not defined 先来图看看,第一张图跟 第二张图 看起来代码写的很规矩?

$(document).ready()与$(window).load()的区别

1.执行时间不同: 从字面的意思上理解,$(document).ready()就是文档准备好了。也就是浏览器已经解析完整个html文档,dom树已经建立起来了,这时就可以通过class属性或者id属性等等对dom进行操作等。而$(window).load()就是整个页面已经加载完毕。与前者的区别是dom树虽然已经建立起来了,但页面不一定加载完毕,如一些大的图片等,加载完成就需要一定的时间;但是页

Segmentation简记5-AuxNet: Auxiliary tasks enhanced Semantic Segmentation for Automated Driving

创新点 1.分割网络为主任务,深度估计网络为辅任务 2.loss的设计 总结如图所示 网络结构如图所示 其实很容易理解。 backbone是基于ResNet50 分割网络是基于FCN8 深度估计网络与分割网络类似,最后一层是回归深度层。 最有意思的是两种任务的loss的合并。 分割的loss很常见:cross entropy 深度loss:mean absolute error 算法一: