ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

长文本知识抽取:基于语义分割的文档级三元组关系抽取《Document-level Relation Extraction as Semantic Segmentation》

2021-12-18 20:05:28  阅读:453  来源: 互联网

标签:关系 抽取 Semantic 实体 三元组 文档 left


《Document-level Relation Extraction as Semantic Segmentation》
img

分享的是最新发布在IJCAI2021的有关针对复杂文档知识抽取的论文:长文本知识抽取:基于语义分割的文档级三元组关系抽取。

​ 接下来,我将一下四部分去介绍这篇论文。

​ 第一部分为论文总述。

1. 总述

​ 关系抽取(Relation Extraction, RE)是从纯文本中提取未知关系事实,是自然语言处理领域非常重要的一项任务。过去的关系抽取方法主要将注意力集中于抽取单个实体对在某个句子内反映的关系,大都忽略了识别句子之间实体之间的关系,然而单句关系抽取在实践中受到不可避免的限制,如下图,在真实场景如医疗、金融文档中,它们有许多关系事实是蕴含在文档中不同句子的实体对中的,且文档中的多个实体之间,往往存在复杂的相互关系。事实上,根据从维基百科采样的人工标注数据的统计表明,至少 40% 的实体关系事实只能从多个句子联合获取。因此,研究文档级关系抽取具有很高的应用价值。

image-20211216120129592

​ 因此本文提出基于语义分割的文档级三元组关系抽取,代码开源在Github,同时集成到了DeepKE上,DeepKE 是一个支持低资源、长篇章的知识抽取工具,支持命名实体识别关系抽取属性抽取功能。互补了我上一次介绍轻量级的知识图谱抽取工具的OpenUe

image-20211209123323960

但目前,文档级关系抽取主要面临以下三个挑战:

  1. 相同关系会出现在多个句子。在文档级关系抽取中,单一关系可能出现在多个输入的句子中,因此模型需要依赖多个句子进行关系推断。
  2. 相同实体会具有多个指称。在复杂的文档中,同一个实体具有各种各样的指称,因此模型需要聚合不同的指称来学习实体表示。
  3. 不同三元组之间需要信息交互。文档包含多个实体关系三元组,不同的实体关系三元组之间存在逻辑关联,因此模型需要捕捉同一篇文档中三元组之间的信息交互。

​ 可以举一个例子,像图中包括了文章中的三个关系事实,这个是从文档标注的诸多关系事实中采样得到,其中涉及这些关系事实的命名实体用彩色着色,其它命名实体用下划线标出。与句子级相比,文档级关系抽取中的文本要长得多,并且包含更多的实体, 这使得文档级关系抽取更加困难。其中(Maryland, country, US)(Baltimore, located_in, Maryland)(Eldersburg, located_in, Maryland)这三组triples中的实体在同一个句子中的出现,这种句内关系相对容易识别。

Maryland:马里兰

Baltimore:巴尔的摩

eldersburg :埃尔德斯堡

image-20211206164053006

然而,跨句实体之间的关系识别更具有挑战性, 例如,关系事实tripe4(Baltimore,country,U.S.)和tripe5(Eldersburg,country,U.S.)中的相关实体并没有出现在同一个句子中,它们之间需要长距离依赖,但是这两个三元组确实存在。 具体来说,多个三元组之间的相互依赖是有利的,可以为实体多的情况下的关系分类提供指导。例如

  • 根据{Eldersburg} 位于{Maryland}{Maryland} 属于{US} 的三元组,可以推断{Eldersburg}也是属于{US} ,也就是说这里面的tripe1,tripe2,tripe3是有关系的,对于tripe4,tripe5的抽取是有一定帮助的;
  • 同时,如果句内关系 (Maryland, country, US) 已被识别,则{US} 不可能处于任何人际社会关系中,例如"is the father of." 。

​ 这是以前很多模型没有去显示建模的这类信息, 如上所述,每个关系三元组可以向同一文本中的其他关系三元组提供信息。

image-20211215015118548

​ 如何通过建模三元组之间的这种关联信息,他们之间的一个交互信息来隐式的帮助促进文档级别的关系抽取能力呢?这篇论文反思了一下文档级别关系抽取这个问题,本质是再干什么样的事情,如这张图所示, 文档级关系抽取本质上是它是再对一个实体的一个实体与实体矩阵做一个矩阵填充,也就是判断每个实体与实体之间到底存不存在一个关系,需要对其进行一个分类,然后这里的这个填充实体矩阵那个事情,其实有点像计算机视觉里边的一个语义分割的过程,每个实体与实体之间的这个中间这个小方块其实就是一个像素点,然后很直觉的就能想到可以以用这种卷积的操作(上采样,下采样)来去建模实体实体之间三元组之间的这种复杂的这种相互的关联信息,并通过实证验证效果十分好。

​ 综上所述,先前的模型,无论是基于graph还是基于transformer的模型仅单独地使用实体对,而未考虑关系三元组之间的全局信息。本文创新性地提出DocuNet模型,首次将文档级关系抽取任务类比于计算机视觉中的语义分割任务。DocuNet模型利用编码器模块捕获实体的上下文信息,并采用U-shaped分割模块在image-style特征图上捕获三元组之间的全局相互依赖性,通过预测实体级关系矩阵来捕获localglobal信息以增强文档级关系抽取效果。实验结果表明,方法可以在三个基准数据集DocREDCDRGDA上获得SOTA性能。

2. 方法

img

接下来详细介绍模型细节,DocuNet模型整体框架图如图所示,分为三个模块:首先是

(1)Encoder Module

​ 将triple抽取视为sequence-to-sequence的任务,以更好地对实体和关系之间的交叉依赖进行建模。将输入文本和输出三元组定义为源和目标序列,主要借助transormerbert这种自身的注意力机制捕获实体对上下文信息的一个感知。源序列仅由输入句子的标记组成,例如“[CLS] The United States President Trump was raised in the borough of Queens ...[SEP]”。连接由特殊标记 ”< e >” 和 ”< /e >”分隔的每个实体/关系的三元组作为目标序列。

\[\begin{gathered} H=\left[h_{1}, h_{2}, \ldots, h_{L}\right]=\operatorname{Encoder}\left(\left[x_{1}, x_{2}, \ldots, x_{L}\right]\right) \\ \mathbf{e}_{i}=\log \sum_{j=1}^{N_{e_{i}}} \exp \left(\mathbf{m}_{\mathbf{j}}\right) \\ \mathbf{F}\left(e_{s}, e_{o}\right)=W_{2} H a^{(s, o)} \\ a^{(s, o)}=\operatorname{softmax}\left(\sum_{i=1}^{K} A_{i}^{s} \cdot A_{i}^{o}\right) \\ \mathbf{F}\left(e_{s}, e_{o}\right)=\left[e_{s} \odot e_{o} ; \cos \left(e_{s}, e_{o}\right) ; e_{s} W_{1} e_{o}\right) \end{gathered} \]

对于具体公式来说,

  1. 第一个公式表示采用BERT等预训练模型作为编码器获取实体与关系的嵌入embedding,即每一个单词得向量表示。
  2. 第二个公式因为有些文件的长度超过512,于是利用动态窗口对整个文件进行编码。对不同窗口的重叠标记的嵌入进行平均,以获得最终的表示,文中采用的方法为最大池的平滑版本:logsumexp pooling,以获得最后的实体嵌入\(e_i\)。这种池化操作好处是积累了实体在文件中所有出现位置的信号。
  3. 需要根据实体与实体之间的相关性来计算实体层面的关系矩阵,对于矩阵中的每个实体,两两之间的相关性由一维特征向量 \(F\left(e_{s}, e_{o}\right)\) 捕获,文章提出两种计算相关性的策略:
    • 第三个公式和第四个公式:基于实体感知的注意力机制和仿生变换的策略来获得特相关性征向量,其中 \(a^{(s, o)}\)表示 实体感知注意力的注意力权重,H是文档嵌入,ktransformer模型头部的数量
    • 第五个公式: 基于相似性和背景的方法策略,主要指标为元素相似性、余弦相似性和双线性相似性。

(2)U-shaped Segmentation Module

三元组之间存在局部语义依赖,语义分割中的CNN可以促进感受野中实体对之间的局部信息交换,类似于隐性推理。文档级 关系抽取还需要全局信息来推断三元组之间的关系,语义分割模块中的下采样和上采样可以扩大当前实体pair对嵌入 \(F\left(e_{s}, e_{o}\right)\) 的感受野,在一定程度上能够增强全局隐式推理:

\[\mathbf{Y}=U\left(W_{3} \mathbf{F}\right) \]

具体公式来看,输入为实体级关系矩阵 \(F \in R^{N^{*} N^{*} D}\) ,可以看作为D-channel图像,将文档级关系预测公式化为像素级掩码, U代表计算机视觉中一个著名的语义分割模型U-Net,其中 \(N\) 是从所有数据集样本中统计出的最大实体数。

(3)Classification Module

给定实体pair的特征表示\(e_s\)和\(e_o\)和实体级关系矩阵Y,使用前馈神经网络将它们映射到隐藏表示z,就是下面的第一个和第二个公式。然后,通过双线性函数获得实体pair之间关系预测的概率表示:

\[\begin{gathered} z_{s}=\tanh \left(W_{s} \mathbf{e}_{\mathbf{s}}+Y_{s, o}\right), \\ z_{o}=\tanh \left(W_{o} \mathbf{e}_{\mathbf{o}}+Y_{s, o}\right), \\ \mathrm{P}\left(r \mid e_{s}, e_{o}\right)=\sigma\left(z_{s} W_{r} z_{o}+b_{r}\right), \end{gathered} \]

由于观察到 关系抽取存在不平衡关系分布(即许多实体对具有 NA 的关系),引入了一种平衡的 softmax 方法进行训练,具体来说,我们引入一个额外的类别0,希望目标类别的得分都大于s0,而非目标类别的得分都小于s0。形式上:

\[L=\log \left(e^{s_{0}}+\sum_{i \in \Omega_{n e g}} e^{s_{i}}\right)+\log \left(e^{-s_{0}}+\sum_{j \in \Omega_{p o s}} e^{-s_{j}}\right) \]

为简单起见,文中将阈值设为0,即最后一个公式:

\[L=\log \left(1+\sum_{i \in \Omega_{n e g}} e^{s_{i}}\right)+\log \left(1+\sum_{j \in \Omega_{p o s}} e^{-s_{j}}\right) \]

实验

目前文档级关系抽取有三个公开的学术的数据集,分别是 CDRGDA 以及清华大学团队发布的 DocRED

  • CDR(Chemical Disease Relation):生物医学领域的人类标注数据集,任务是预测化学和疾病概念之间的二元相互作用,包含500篇训练文章。
  • GDA(Gene Disease Association):生物医学领域的一个大规模数据集,任务是预测基因和疾病概念之间的二元相互作用由29192篇训练文章组成。
  • DocRED(Document-Level Relation Extraction Dataset):是一个大规模的众包数据集,原始语料基于维基百科,包含3053份文章,其中存在大约7%的实体对具有多种关系。该数据集在CodaLab上开放有benchmark

这里CDR 是生物领域的一个人工标注的一个数据集,其任务是预测化学和疾病概念之间的二元相互作用,包含了 500 多篇训练文章;GDA 也是一个生物医学领域的大规模数据集,其任务主要是预测基因和疾病概念之间的二元相互作用,由 2 万~3 万篇训练文档组成;相对而言,DocRED 是一个比较新的大规模的众包数据集。其原始语料主要基于维基百科,包含了 3053 份文章,其中大约存在 7% 的实体,DocRED 还提供了公开的 leaderboard,用户可将模型预测的结果上传,评估文档级关系抽取的各种性能。

为了验证模型的效果,文章在上述三个文档级关系抽取数据集上进行评测,如图所示,DocuNet 模型在 DocRED 上取得了一定程度的提升。另外,在两个医疗领域的数据集上,该模型也取得了显著的提升。

采用 sci-bert base 作为初始化的预训练模型,进行了 ablation study。可以发现,如果去掉该分割模型,整个模型性能显著下降,说明了语义分割模块在文档级关系抽取模型中是有效的。

同时,发现对比模型中有语义分割模块和没有语义分割模块的实验结果,我们发现随着实体的个数越多,它们之间的性能差异越大。这也说明,在实体个数很多的文档中,建模全局的实体三元组之间的关联,对于文档级的关系抽取是有一定帮助的。但是,对于实体个数相对较少的文档,其性能提升是有限的,甚至几乎没有提升。

关于文档级关系抽取的未来畅想:

一、设计文档实体结构相关的预训练。现有的 MLM 预训练目标并不能很好的建模实体及实体间的隐式关联,因此,一个能够显式建模实体及其包含的语义关系的预训练目标可以增强文档的实体的表达能力。目前已经有工作开始尝试基于对比学习设计更好的实体关系预训练模型。

二、减轻关系标签分布不平衡。文档级关系抽取中的关系存在明显的长尾分布,且大量的实体间不存在关系,因此类别分布不平衡在一定程度上影响模型效果。已经有工作针对这一问题提出了动态阈值的方法,然而对于长尾部分的关系仍然缺乏较好的模型进行抽取。

三、引入外部知识。语言模型缺乏对实体知识的认知,先前的工作表明注入实体等事实类型知识可以显著提升知识敏感的任务性能,AAAI2021 上有个工作提出了一个注入 Probase 知识库的关系抽取模型,然而知识库存在稀疏性和噪音,更加高效可靠的知识注入方法仍然值得研究。

四、设计更好的实体交互模型。目前关系抽取中仅考虑实体对之间的一阶交互,缺乏对多个实体对之间的高阶交互建模。尽管基于文档图的模型在一定程度上使得模型得学习了实体与实体之间的交互信息,然而对于实体图中相聚较远的节点,实体之间缺乏足够的信息流通,制约模型的逻辑推理能力。

标签:关系,抽取,Semantic,实体,三元组,文档,left
来源: https://www.cnblogs.com/pxlsdz/p/15705815.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有