文档级关系抽取(DocRE)的目的是从文档中提取实体之间的关系,这对于知识图谱构建等应用非常重要。然而,现有的方法通常需要预先识别出文档中的实体及其提及,这与实际应用场景不一致。为了解决这个问题,本文提出了一种新颖的表格到图生成模型(TAG),它能够在文档级别上同时抽取实体和关系。TAG的核心思想是在提及之间构建一个潜在的图,其中不同类型的边反映了不同的任务信息,然后利用关系图卷积网络(RGCN)对图进行信息传播。此外,为了减少错误传播的影响,本文在解码阶段采用了层次聚类算法,将任务信息从提及层反向传递到实体层。在DocRED数据集上的实验结果表明,TAG显著优于以前的方法,达到了当前的最佳性能。
 
1 Introduction
关系抽取(RE):从自然语言文本中抽取实体之间的语义关系,并将其表示为结构化的三元组。
句子级RE:在单个句子的范围内,抽取句子中实体对之间的关系。
DocRE:在多个句子的范围内,利用跨句子的语义推理,抽取文档中实体对之间的关系。
 
大部分现有的DocRE方法只关注抽取关系,这些方法假设实体及其对应的提及已经预先给定。
 
流水线方法
流水线框架是一种用于DocRE的方法,该框架首先将整个任务划分为提及抽取(ME)、共指消解(COREF)和实体关系抽取(RE)三个子任务,然后使用单独的模型逐步进行每个任务(Zaporojets等人, 2021)。然而,该框架的缺点在于它忽略了子任务之间的潜在依赖性,影响了模型的性能。
 
早期的联合考虑子任务的方法
一些早期的联合考虑子任务的方法,如(Eberts等人, 2021; Xu等人,2022)仍然将COREF和RE任务分别建模,导致在编码和解码阶段可能产生的偏差。一方面,这类方法仍然存在信息共享不足的问题。它们要么完全依赖于共享的语言模型(如BERT)(Eberts等人,2021),要么只考虑从RE到COREF的单向信息流,忽略了其他跨任务的依赖性(Xu等人, 2022)。另一方面,这类方法大多采用流水线风格的解码,即先识别提及范围并形成实体簇,然后对每对实体进行关系分类。流水线风格的解码不仅耗时,而且面临着错误传播的问题。实体提及抽取的结果可能影响关系抽取的性能,并导致级联错误。Xu等人(2022)引入一个正则化项来缓解这个问题,但是问题仍然没有完全解决。
 
本文提出了TAG,将COREF和RE两个任务融合为一个表格填充任务的方法,使用一个表格填充器对原始文本进行编码,并在粗粒度上生成提及和关系的候选集合。为了表示共指和关系的信息,本文动态地构建了两个图结构,其中节点是提及,边的权重由表格填充器的置信度得分决定。此外,本文还在提及层面上建立了一个句法图,以缓解长距离依赖问题,并显式地引入句法信息。本文将这三个图视为三种不同类型的边,并利用关系图卷积网络(RGCN)来在细粒度上捕捉任务之间的隐含依赖关系。本文的粗到细的方法利用了丰富的节点表示,通过语义和句法链接传递信息,这与之前仅从语言模型中共享范围表示的多任务系统不同。本文还采用了一个直观的假设,即同一实体簇中的提及应该与其他实体形成相似的关系链接,并将层次聚类算法(HAC)应用到提及聚类中,以利用关系信息来提升共指消解的性能,从而避免错误传播的风险。本文在广泛使用的DocRE基准数据集DocRED上进行了实验,结果表明,本文提出的TAG模型显著优于现有的方法,并达到了新的最佳水平。本文还在DocRED的一个修订版本Re-DocRED上报告了联合实体和关系抽取的第一个结果,为未来的研究提供了一个新的基准。
 
2 Problem Formulation
DocRE的任务是,给定一个包含L个单词的文档D,端到端地同时提取所有实体和关系。因为某个实体可能在文档中以不同的形式多次出现,所以提取过程涉及到以下三个子任务:
  1. 提及抽取(ME):从原始文档中抽取所有可能的实体范围的任务,其中一个范围是指一个连续的单词序列。
  2. 共指消解(COREF):是将文档中的局部提及分组为实体簇,其中,
  3. 关系抽取(RE):在预定义的关系集合代表没有关系)中,预测实体对之间的关系子集,其中,实体对为
与以前的工作不同,本文将COREF和RE两个任务用表格填充框架来建模,即对每对提及进行多分类。本文维护一个表格来表示提及对,并使用一个共享的表示来处理两个任务。对于表格中的每个单元格,本文分别为其分配COREF标签和RE标签。对于COREF,用1/0表示一对提及是否属于同一个实体。对于RE,将实体级别的标签转换为提及级别的标签,其中提及对与其所属实体具有相同的关系,且
 
3 Methodology
3.1 Mention Extractor
考虑到DocRE任务中重叠提及的情况较少,本文为了提高效率,采用了一种序列标注(sequence-based)的方式来抽取提及。该方法使用BIO标签来标记提及的开始、内部和结束位置,相比于基于跨度的方法,虽然牺牲了一些表达能力,但是降低了时间复杂度,只需要线性时间就可以完成。本文借鉴了Devlin等人(2019)的工作,先用预训练语言模型(PLM)对文档中的词进行向量化,然后用一个分类器对每个词进行BIO标签的分配,用表示抽取出的所有提及。
 
3.2 Table-to-Graph Generation
3.2.1 Biaffine Table Filler
给定一个文档和相应的提及集,本文用表格的方式来表示每对提及,借鉴了实体标记策略(Baldini Soares等人,2019),在每个提及的首尾添加一个特殊符号“*”。接着用一个独立的预训练语言模型(PLM)来获取上下文表示和多头注意力:
式中,A为最后一层Transformer的多头注意矩阵。
 
将起始标记为“*”的嵌入作为提及嵌入,为了捕获提及对的相关上下文,应用本地化上下文池技术来计算上下文嵌入(Zhou等人, 2021):
式中,代表哈达玛积,分别是第k个注意力头中的注意权值,由对都有高度关注的词聚合而成,因此可能对它们都很重要。
 
定义作为PLM中的隐藏特征,首先将投影为头尾特征:
 
式中,都是可训练参数。
 
采用双仿射注意力机制将提及特征转换为表示共指消解或关系链接的标量分数表
式中,都是可训练参数,表示向量串联,分别用共享表示预测得到共指消解分数和关系抽取分数,具体来说,如果RE标记,则被标记为1,否则为0。
 
3.2.2 Latent Graph Construction
Coreference and Relational Graphs.
在得到共指消解和关系分数, 后,对每个表的列进行规范化:
本文将作为前面模块预测的共指消解和关系链接的动态加权图,每个单元格代表有向边的权值
 
Syntactic Graph.
现有的提及图模型往往忽略了句法信息,导致模型难以捕捉长期依赖关系。为了解决这个问题,本文构建了语法图,在提及图中明确地引入句法信息,使模型能够在精细的级别上学习长期依赖关系。为了构建语法图,需要考虑两个方面:一是如何将句法信息转换为图结构,二是如何在图结构上进行信息传播。本文考虑了几种可选的方法来实现这两个方面。例如,一种直观的解决方案是将单词的依赖树转移到图中,其中提及是节点,依赖关系是边。这种方法可以保留句子内部的句法结构,但是无法捕捉句子之间的句法关系。本文参考了以前的作品(Christopoulou等人, 2019;Zeng等人, 2020),并采用了一种基于共现的方法,即使用双向边将同一句子中的所有提及连接起来,从而增强句子内部的语义关联。
 
3.2.3 Propagating Information with R-GCN
COREF和RE是两个重要的信息抽取任务,它们可以从文本中识别实体和实体之间的关系。然而,现有的方法往往分别处理这两个任务,忽略了它们之间的交互和语法信息的作用。为了解决这个问题,本文提出了一个信息传播模块,它可以考虑COREF和RE任务之间的交互,并结合显式语法信息,从而改进提及表示。具体来说,本文提出了一种基于潜在图的方法,它可以将提及图上的三种不同类型的边(分别对应COREF、RE和语法)进行统一建模。本文的模型可以利用不同类型的边来聚合邻居特征,从而增强提及的语义和结构信息。为了在提及图上应用关系图卷积网络,本文设计了一个更新过程,它可以根据边的类型和权值来调整不同邻居的贡献。本文的模型可以初始化节点嵌入为提及的隐藏特征,然后通过多层的信息传播来更新提及表示。与以前的方法不同,本文的模块可以并行集成跨任务信息,并提取两个任务的相关提及特征,从而实现更有效的信息抽取。
 
 
3.2.4 Classifier
经过N次传播后,本文使用优化后的提及嵌入和上下文嵌入来预测COREF得分和RE得分
式中,都是可训练参数,n维的双仿函数定义为:
式中,是可训练参数, 在COREF任务中,;在RE任务中,。为了实现多标签分类的动态阈值,引入了一个虚拟类TH,根据Zhou等人(2021)的方法来学习它的分数。在测试阶段,将分数高于TH类的关系类型预测为输出。如果没有任何关系类型的分数高于TH类,就认为分类器没有找到任何关系,返回
 
3.3 Training
Table Encoder.
给定提及对,表格编码器预测它们之间的COREF和RE链接,用标量分数表示。对于共指消解链接,直接使用COREF标签作为金标准。对于关系抽取链接,定义,表示是否存在任何关系,其中。用sigmoid函数σ将转换为概率,并用二元交叉熵损失进行优化。
 
Coreference Resolution.
细粒度共指消解(fine-level coreference resolution)的训练目标和标签与表格编码器(table encoder)中的共指链接预测(coreference link prediction)是一致的。唯一的区别是它使用优化后的提及表示(refined mention representations)作为输入。用表示损失函数。
 
Relation Extraction.
对于提及对,本文将关系集合分为两个子集:正集包含了存在于之间的关系,负集包含了不存在于之间的关系。使用自适应阈值损失函数来学习关系抽取分类器:
对所有提及对进行求和,计算细级关系提取损失
最后,对TAG进行联合优化
其中是平衡粗级和细级损失的超参数。
 
3.4 Decoding
为了避免管道解码固有的错误传播问题,本文设计了一种解码算法,使上游任务(COREF)能够有效地利用下游任务信息(RE)。
Entity Cluster Decoding.
本文根据算法1中描述的层次聚类算法(HAC)来解码实体簇。HAC的核心是计算两个簇之间的距离。将分解为两部分:共指消解距离和关系距离。使用平均链接法来计算,公式如下:
在训练阶段,如果属于同一实体,那么对于所有的,真实的关系标签是相同的。因此,对于一个训练良好的模型,同一实体簇中的提及应该与其他实体建立相似的关系链接。本文利用这一线索作为COREF和RE之间的联系。让预测的RE标签是一个-维的0-1向量,其中每一位表示一种关系类型的存在。定义关系向量
使用每个簇中的提及对之间的平均汉明距离作为
 
4 Experiments
4.1 Setup
Dataset.
  • DocRED 
  • Re-DocRED ( 在Re-DocRED上报告了第一个联合提取结果)
 
Metrics.
......
 
4.2 Overall Performance
本文对TAG与其他一些用于联合实体和关系抽取的基线方法进行了比较。早期的方法使用LSTM作为上下文编码器。在此基础上,Verlinden等人(2021)提出了KB-IE。该方法将知识库(维基百科和维基数据)的背景信息集成到联合IE模型中。最近的方法通常对PLM进行微调,以学习更丰富的特征。Xu等人(2022)实现了标准的流水线方法,以及具有共享编码器和联合损失的联合方法。他们还提出了JointM+GPGC,实现了从RE到COREF的单向信息流。Eberts等人(2021)提出了JEREX,结合了多实例学习,提高了RE的性能。Giorgi等人(2022)开发了一种带有复制机制的序列到序列模型,seq2rel,性能较差,但效率更高。此外,本文还设计了一个强大的基线方法,TableFiller。它消除了图形模块,采用了简单的启发式解码算法。它只包含一个提及提取器,一个双仿射编码器和一个分类器。
 
表1比较了TAG与其他基线方法在DocRED上的整体性能。可以观察到,略微优于先前的方法,建立了一个有竞争力的基础。这证明了表格填充框架的有效性。进一步在所有三个子任务上一致改进了它。按照Xu等人(2022)的做法,本文用同样大小的更强大的变体替换了在测试集上相对于SOTA显著提高了1.07的COREF F1和2.54/2.85的RE F1/Ign F1。这表明TAG更能捕捉文档级上下文中的重要信息,以及跨不同子任务的信息。本文还展示了,探索了联合抽取性能的边界。它分别在测试集上达到了93.84的ME F1,86.37的COREF F1和44.97/42.88的RE F1/Ign F1。
 
表2显示了TABLEFILLER和TAG在Re-DocRED上的性能。与DocRED相比,它们在共指消解方面表现相似,但在关系抽取方面有很大的提升。这与之前的发现(Tan等人,2022)一致。关于架构上的差异,TAG在开发集和测试集上的所有子任务中都一致优于TABLEFILLER,突出了TAG对于文档级联合抽取的有效性。
 
4.3 Analysis on Reasoning Skills
 
 
文档级关系抽取需要具备丰富的推理能力,包括常识推理和逻辑推理(Yao et al., 2019)。证据句子的数量是区分不同推理类型的一个重要指标。为了展示TAG方法的优势,本文将根据证据句子的数量,将关系召回率可视化在图3中。对于没有证据句子的关系实例,只能依靠预训练语言模型的知识或训练语料库中的信息来推断。TAG方法在这种情况下比TABLEFILLER方法提高了1.8%的召回率,它们使用的是相同的编码器,这说明了TAG方法具有更强的常识推理能力。此外,TAG方法也在需要2-4个证据句子的关系上持续领先于TABLEFILLER方法,这些关系涉及到共指实体指称的区分或桥接实体的逻辑推理。这反映了图模块和解码算法对共指推理和多跳逻辑推理的有效性。最后,TAG方法在需要5个或更多证据句子的关系上显著提升了召回率(5个句子为6.0%,6个以上句子为8.3%),表现出了TAG方法在复杂逻辑推理上的优势。
 
4.4 The Impact of Graph Propagation
图4显示了不同类型的边对关系抽取F1分数的影响,其中-Coref、-Rel和-Syntax分别表示去除共指、关系和句法边。从图中可以看出,所有模型的F1分数在2/3层图时达到最高,然后迅速下降。本文认为,层数越深,有利于信息在更大范围内传播,但是梯度消失问题会削弱这一优势。此外,所有消融模型的表现都不如TAG全通道模型,说明各种类型的边都对提高推理能力有正面作用。层数和边的类型对RE F1有重要影响,而对共指消解的影响则相对较小。
 
4.5 Effectiveness of Decoding
本文提出了一种实体聚类解码算法,以提高共指消解的性能。表3展示了在不同的平衡超参数ρ下,该算法与MUC、B3和CEAFϕ4的平均F1分数和硬实体级F1分数的对比。结果表明,当ρ = 0.1时,该算法达到了最优的表现,两个指标的F1分数均比原来提高了0.3%。虽然引入关系距离Dr使得HAC解码算法的性能有所提升,但并没有达到预期的效果。同时,调整ρ的值对结果的影响也不大。这些发现说明,共指消解对于不同的设置具有较强的鲁棒性。为了探究这种现象的原因,本文对银标COREF标签和预测分数之间的相关性进行了分析,结果如表4所示。可以看出,关系惩罚和银标标签之间的相关性为-0.72,显著低于共指分数和银标标签之间的相关性。这种强烈的关联部分解释了前面的结果。它也表明,Dr只是一个较弱的优化信号,而过高的ρ值可能会降低COREF的性能。
 
5 Related Works
......
 
6 Conclusion
本文提出了一种名为TAG的表格到图生成模型,它能够从文档中同时抽取出实体和关系。与传统方法不同,本文采用了一个表格填充的框架,将共指消解和关系抽取两个任务融合在一起,并通过粗到细的策略实现了这两个子任务之间的信息共享。为了避免错误传播的问题,本文在解码阶段对HAC算法进行了改进,利用关系抽取的预测结果来提升共指消解的效果。在广泛使用的DocRED数据集上的实验表明,TAG模型显著优于现有的方法。进一步的分析也验证了本文模型中各个模块的有效性。
 

《A Novel Table-to-Graph Generation Approach for Document-Level Joint Entity and Relation Extraction》阅读笔记的更多相关文章

  1. 阅读《RobHess的SIFT源码分析:综述》笔记

    今天总算是机缘巧合的找到了照样一篇纲要性质的文章. 如是能早一些找到就好了.不过“在你认为为时已晚的时候,其实还为时未晚”倒是也能聊以自慰,不过不能经常这样迷惑自己,毕竟我需要开始跑了! 就照着这个大 ...

  2. RobHess的SIFT源码分析:imgfeatures.h和imgfeatures.c文件

    SIFT源码分析系列文章的索引在这里:RobHess的SIFT源码分析:综述 imgfeatures.h中有SIFT特征点结构struct feature的定义,除此之外还有一些特征点的导入导出以及特 ...

  3. RobHess的SIFT源码分析:综述

    最初的目的是想做全景图像拼接,一开始找了OpenCV中自带的全景拼接的样例,用的是Stitcher类,可以很方便的实现全景拼接,而且效果很好,但是不利于做深入研究. 使用OpenCV中自带的Stitc ...

  4. 阅读《RobHess的SIFT源码分析:综述》笔记2

    今天开始磕代码部分. part1: 1. sift特征提取. img1_Feat = cvCloneImage(img1);//复制图1,深拷贝,用来画特征点 img2_Feat = cvCloneI ...

  5. element-ui button组件 radio组件源码分析整理笔记(一)

    Button组件 button.vue <template> <button class="el-button" @click="handleClick ...

  6. element-ui 组件源码分析整理笔记目录

    element-ui button组件 radio组件源码分析整理笔记(一) element-ui switch组件源码分析整理笔记(二) element-ui inputNumber.Card .B ...

  7. element-ui Carousel 走马灯源码分析整理笔记(十一)

    Carousel 走马灯源码分析整理笔记,这篇写的不详细,后面有空补充 main.vue <template> <!--走马灯的最外层包裹div--> <div clas ...

  8. STL源码分析读书笔记--第二章--空间配置器(allocator)

    声明:侯捷先生的STL源码剖析第二章个人感觉讲得蛮乱的,而且跟第三章有关,建议看完第三章再看第二章,网上有人上传了一篇读书笔记,觉得这个读书笔记的内容和编排还不错,我的这篇总结基本就延续了该读书笔记的 ...

  9. element-ui MessageBox组件源码分析整理笔记(十二)

    MessageBox组件源码,有添加部分注释 main.vue <template> <transition name="msgbox-fade"> < ...

  10. element-ui switch组件源码分析整理笔记(二)

    源码如下: <template> <div class="el-switch" :class="{ 'is-disabled': switchDisab ...

随机推荐

  1. Windows上Dart安装

    过程 *1 去github上下载一个release包或者直接将flutter通过git clone下来 *2 将下载下来的flutter/bin添加到path中 *3 此时运行flutter或者flu ...

  2. Python 潮流周刊#21:如何提升及测量 Python 代码的性能?

    你好,我是猫哥.这里每周分享优质的 Python.AI 及通用技术内容,大部分为英文.标题取自其中三则分享,不代表全部内容都是该主题,特此声明. 本周刊由 Python猫 出品,精心筛选国内外的 25 ...

  3. Linux系列教程——Shell、Linux文件管理

    文章目录 Shell 1.什么是Bash shell(壳) 2.Bash Shell能干什么? 3.平时我们如何使用Shell呢? 4.Shell提示符 5.Shell基础语法 2.Bash Shel ...

  4. Python网络编程——操作系统基础、网络通信原理、.网络通信实现、DNS域名解析、 网络通信流程

    文章目录 一.操作系统基础 二.网络通信原理 2.1 互联网的本质就是一系列的网络协议 2.2 osi七层协议 2.3 tcp/ip五层模型讲解 2.3.1 物理层 2.3.2 数据链路层 2.3.3 ...

  5. ddddocr1.4.8失效的解决方法

    1. 问题描述 from selenium import webdriver from time import sleep driver = webdriver.Chrome() driver.max ...

  6. python包引用方式总结

    本文为博主原创,转载请注明出处: 在Python中,有多种引用包的方式.以下是常见的方式: 1. import语句 import语句是最常见和推荐的引用包的方式.它允许你引入整个包或包中的特定模块/子 ...

  7. 联想think服务器centos系统安装

    一.前言 本以为安装服务器是一件轻松顺利的事,没想到一安就是两天- 二.错误列表 1.硬件系统不兼容低版本centos 刚开始安装centos6.8的操作系统总是无法找到配置好的raid阵列导致无法安 ...

  8. windows文件搜索;文件预览;全文搜索,只需myso就够了

    简介   现在提到windows文件搜索,大家可能会想到Everything.Listary.AnyTXT这三款工具,它们各有自己的专长,不能相互替代,需要安装至少两款才能高效的搜索电脑文件.现在向大 ...

  9. 解决 IAR中 Warning[Pa082] 的警告问题

    这个警告不属于严重问题 在 IAR (for STM8)的编译中,经常有如下的警告: Warning[Pa082]: undefined behavior: the order of volatile ...

  10. LeetCode-Java:88合并两个有序数组

    题目: 给你两个按 非递减顺序 排列的整数数组 nums1 和 nums2,另有两个整数 m 和 n ,分别表示 nums1 和 nums2 中的元素数目. 请你 合并 nums2 到 nums1 中 ...