PRGC: Potential Relation and Global Correspondence Based Joint Relational Triple Extraction

2023-05-16

标题:PRGC:基于潜在关系和全局对应的联合关系三元组抽取


摘要

联合抽取实体和关系的局限性:关系预测的冗余性,基于span抽取泛化能力差和效率低

本文从新角度将此任务分解为三个子任务:

  1. 关系判断

  1. 实体抽取

  1. 主客体对齐

提出了一个基于潜在关系和全局对应的联合关系三元组抽取框架。

具体内容:

  1. 设计了一个预测潜在关系的组件,它将后续的实体抽取约束到预测的关系子集而不是所有关系

  1. 应用关系特定的序列表及组件来处理主语和宾语之间的重叠问题

  1. 设计了全局对应组件,以低复杂度将主语和宾语对其为三元组


1. 介绍

本文从新角度将此任务分解为三个子任务:

  1. 关系判断,其目的在于识别句子中的关系

  1. 实体抽取,其目的在于提取句子中的所有主语和宾语

  1. 主客体对齐,其目的在于将主语-宾语对对齐成三元组

CasRel问题:

关系三元组提取在两个阶段中执行,其将对象提取应用于所有关系

显然,关系识别方法冗余的,包含大量无效操作,而基于跨度的抽取方案只关注实体的开始/结束位置,导致泛化能力差。

同时,由于其主体-对象对齐机制,导致同一时间只能处理一个主体,这是十分低效的。

TPLinker问题:

TPlinker是单阶段框架,它为了避免在s-o对齐中的曝光偏差,使用了相当复杂的解码器,这导致系数标记和低收敛速度,而基于span的提取的关系荣誉和泛化能力差的问题仍然没有得到解决。

为了解决上述问题,文章提出了一个end-to-end框架,其中包括三个部分:潜在关系预测、关系特定序列标记和全局对应,它们和表一所示的三个子任务相对应

  1. 关系判断:使用潜在关系预测组件来预测潜在关系,而不是保留所有荣誉关系,这降低了计算复杂度,并获得了更好的性能,特别是当数据集中有许多关系时

  1. 对于实体提取,我们使用了更健壮的关系特定序列表及组件(简称Rel-Spec Sequence Tagging)分别提取主体和客体,自然地处理主体和客体之间的重叠

  1. 对主客体对齐,与TPLinker使用基于关系的标记对矩阵不同,本文设计了一个独立于关系的全局对应矩阵来判断一个特定的主客体对在三元组中是否有效

过程

  1. 给定一个句子,PRGC首先预测一个潜在关系子集和一个包含所有主客体之间对应度的全局矩阵

  1. 然后对每个潜在关系进行序列标注,并行提取主客体

  1. 最后,枚举所有预测实体对,然后通过全局对应矩阵对预测实体进行修剪

值得注意的是,实验(在第5.2.1节中描述)表明PRGC的潜在关系预测组件总体上是有益的,即使它引入了在先前的单阶段方法中通常提到的暴露偏倚以证明其优势。

本文主要贡献

  1. 我们从一个新颖的角度来处理关系三元组抽取任务,该角度将任务分解为三个子任务:关系判断、实体抽取和主客体对齐,以及以前的工作在表1所示的提出的范例的基础上进行了比较。

  1. 基于上述观点,提出了一种新的端到端框架,并针对子任务设计了三个组件,分别解决了冗余关系判断、基于跨度抽取泛化能力差和主客体对齐效率低的问题.

  1. 我们在几个公共基准上进行了大量的实验,实验表明我们的方法达到了最先进的性能,特别是对于重叠三元组的复杂场景。进一步的消融研究和分析证实了我们模型中每个组件的有效性。

  1. 实验结果表明,该方法不仅具有较高的精度,而且在复杂度、参数个数、浮点运算次数和推理时间等方面都具有明显的优势.

2. 相关工作

3. 方法

3.1 问题定义

输入是一个有n个字的句子。期望的输出是一个这样的关系三元组,其中E和R是实体集和关系集。在本文中,这个问题被分为三个子任务。

  1. 关系判断:对给定的句子S,这个子任务预测它包含的潜在关系。该任务的输出是,其中m是潜在关系集的数量

  1. 实体抽取:对给定的句子S和一个预测的潜在关系ri,该子任务用BIO识别每个标记的标签(即Begin,Inside,Outside)标记方案。设tj表示标记,此任务的输出为

  1. 主客体对齐:对于给定的句子S,该子任务预测主语和宾语的开始标记之间的对应性得分。这意味着只有真三元组的起始标记对得分高,而其他标记对得分低。设M表示全局对应矩阵。该任务的输出为

3.2 PRGC编码器

PRGC编码器的输出为,其中d是嵌入维数,n是标记数。我们使用预先训练的BERT模型(Devlin等人,2019)来编码输入句子以进行公平比较,但理论上其可扩展到其它编码器,例如Glove(彭宁顿等人,2014)和RoberTa(刘等人,2019年)。

3.3 PRGC解码器

本节将描述由三个组件组成的PRGC解码器的实例化

图1:PRGC的总体结构。给定句子S,PRGC预测潜在关系Rpot的子集和指示主语和宾语之间的对准的全局对应M。然后针对每个潜在关系,构造一个关系特定的句子表示进行序列标注。最后,我们枚举所有可能的主体-客体对,并为这个特定示例获得四个候选三元组,但在应用全局对应性约束之后,只剩下两个三元组(标记为红色)。

3.3.1 潜在关系预测

此组件在图1中显示为橙色框,其中是电位关系。与以往冗余地对每个关系进行实体提取的工作不同,给定一个句子,作者首先预测句子中可能存在的潜在关系的子集,然后只需要根据这些潜在关系进行实体提取。给定具有n个标记的句子嵌入,改成份的每个元素如下:

其中Avgpool是平均池化操作,是一个可训练的全职,σ表示sigmoid函数

作者将其建模为一个多标签二分类任务,如果概率超过某个阈值,对应关系被分配为标签1,否则将被分配为标签0(如图1所示),因此接下来只需要对预测的关系而不是所有关系应用关系特定序列标记

3.3.2 关系特定序列标记

如图1所示,我们得到了3.3.1节中描述的潜在关系的几种关系特异性句子表示。然后,我们执行两个序列标记操作,分别提取主语和宾语。我们之所以将主语和宾语分开提取,是为了处理主语宾语重叠这种特殊的重叠模式。如果数据集中没有SOO模式,我们也可以将其简化为一个带有两种类型实体的序列标记操作。

为了简单公平起见,作者放弃了传统的LSTM-CRF网络,而采用简单的全连接神经网络。该组件对每个标记的详细操作如下:

其中是可训练嵌入矩阵中的第j个关系表示,其中是关系集的大小,是第i个标记的编码表示,是标记集{B,I,O}的大小为3的可训练权重

3.3.3 全局通信

在序列标注之后,我们获取句子中所有可能的关于某一关系的主语和宾语,然后使用全局对应矩阵来确定正确的主语和宾语对。应当注意,由于全局对应矩阵独立于关系,因此可以与潜在关系预测同时学习全局对应矩阵。具体流程如下:

  1. 首先我们列举所有可能的主宾对;

  1. 然后,我们检查全局矩阵中每对的对应分数,如果值超过某个阈值λ2,则保留它,否则将其滤除

如图1中的绿色矩阵M所示,给定一个有n个标记的句子,全局对应矩阵的形状将是。该矩阵的每个元素是关于配对的主体和客体的开始位置,其表示主体-客体对的置信水平,值越高,该对属于三元组的置信水平越高。例如,如果第1行第3列的“Tom”和“Jerry”在正确的三元组中,如“(Tom,like,Jerry),"则关于它们的值将为高.矩阵中每个元素的值如下所示:

其中是输入句子中形成潜在主语和宾语对的第i个标记和第j个标记的编码表示,是可训练权重,σ是sigmoid函数。

3.4 训练策略

我们联合训练模型,在训练期间优化组合目标函数,并共享PRGC编码器的参数。总损失可分为以下三部分:

其中是句子的全关系集的大小,是句子的潜在关系子集的大小。总损失是这三部分的总和,

通过仔细地调整每个子损失的权重,性能可能会更好,但是为了简单起见,我们仅分配相等的权重(即,α = β = γ = 1)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PRGC: Potential Relation and Global Correspondence Based Joint Relational Triple Extraction 的相关文章

  • Python3 globals() 和 locals() 内容

    在我的Python3学习中 在尝试globals 和locals 时 我做了一个非常基本的 独立的Python程序并收到了结果为此我请求专家解释 然后 我在我的 Python 程序 任何 中执行了相同的 2 个函数 并在我的程序中收到了许多
  • utf8_bin 与 utf_unicode_ci

    我的餐桌网站 Website Name column name Google Facebook Twitter Orkut Frype Skype Yahoo Wikipedia 我使用 utf8 bin 排序规则 然后我在网站中搜索维基百
  • 使用 jna 进行 keyhook 和消费

    我正在制作一个自动点击器 它使用 jna 来挂钩来自键盘和鼠标的全局输入 对于我使用的键盘挂钩http code google com p goldriver source browse trunk king src jnacontrib
  • iOS 应用程序中全局常量存储在哪里?

    我的 iOS 应用程序中的大多数模型都会查询 Web 服务器 我想要一个存储服务器基本 URL 的配置文件 它看起来像这样 production static NSString const baseUrl http website exam
  • php 框架中的全局变量开销

    我目前正在开发一个框架 它使用一个对象Core类 此类具有巨大的功能并使框架正常工作 该框架遵循 MVC 架构并具有松散耦合的模型 控制 视图类 这些类需要引用Core课重 到目前为止我所做的是 创建单个对象Core类并通过 PHP 关键字
  • PHPUnit 和全局变量

    我正在学习和探索 PHPUnit 与 PHP 5 2 9 的应用程序 并遇到了全局问题 我已将 backupGlobals 设置为 FALSE 包括文档 backupGlobals 已禁用 这似乎不会影响 PHPUnit 备份全局变量的行为
  • 全局“npm ERR!peer dep丢失”可以修复吗?

    寻找明确的直接答案 我已经安装了全局的 包A 假设 aws amplify 例如 aws amplify 包A 有 包B 想要 包C 例如aws amplify 具有需要询问者的询问者自动完成提示 npm ERR peer dep miss
  • 帮助理解 javascript 全局消除技术

    来自 DailyJS 让我们构建一个 JavaScript 框架 http dailyjs com 2010 02 25 djscript part 1 structure 我不太确定以下代码 显然用作全局抑制技术 到目前为止 我的理解对
  • 如何在 Windows 窗体应用程序中创建全局错误处理程序?

    我认为有一个组件允许创建全局错误处理 例如 当发生不好的事情时 我自己会抛出异常 例如 throw new ArgumentNullException playlist is empty 我怎样才能在全球范围内捕捉到它 您可以通过以下方式完
  • 如何查看另一个 php 文件中定义的变量?

    我在所有 php 文件中使用相同的常量 我不想在我的所有文件中分配此变量的值 因此 我想创建一个 parameters php 文件并在那里进行分配 然后在所有其他文件中我include parameters php 并使用 paramet
  • Firebird 全局临时表(GTT),触摸其他表吗?

    我有一个 Firebird 数据库 v 2 5 由于失去支持 我不允许在数据库中创建过程 视图或表 我的观点太长了 Too many Contexts of Relation Procedure Views Maximum allowed
  • SQL ON DELETE CASCADE,删除以哪种方式发生?

    如果我在数据库中有两个关系 如下所示 CREATE TABLE Courses CourseID int NOT NULL PRIMARY KEY Course VARCHAR 63 NOT NULL UNIQUE Code CHAR 4
  • 如何在 VIM 中递归使用 Global?

    g 2 g 3 中是否有问题 或者全局中的递归是否丢失 我无法理解错误的原因 E147 无法执行 全局递归 如何在 VIM 中进行递归全局搜索 尼尔对操作员的初步建议 g 1 2 2 1 缺点是组合会扩展为 n 个数字 对于三个数字 组合数
  • 如何使用 NSArray 作为全局常量?

    我正在使用一组Constant m文件 每个目标一个 用于为每个目标定义特定的内容 例如 Constants h extern NSString const kDatabaseFileName Constants m NSString co
  • Rails 模型范围内的关联数据

    我有一个名为Post 博客文章 和一个名为Category 每个帖子belongs to一个类别 每个类别都有一个名为retainer指定帖子 过期 之前的时间量 例如movies category retainer 30 days 我想做
  • 在视图之间传递变量 SwiftUI

    再次基本问题 我想让变量 anytext 对于我要添加的所有未来视图都可见且可访问 在我的例子中 变量将是String 如果是的话 程序会改变吗 Float 我怎样才能将其另存为全局变量 如果我重新启动应用程序 变量会自行删除吗 如何保存即
  • 我应该担心“窗口未定义”JSLint 严格模式错误吗?

    这不会在严格模式下通过 JSLint use strict function w w alert w window 来自 jslint com 的错误如下所示 第 4 行第 3 行字符出现问题 window 未定义 window 隐含全局
  • JavaScript 中的全局函数

    我是 js 新手 试图了解全局和私有函数 我了解全局变量和局部变量 但是如果我有一个名为test html和 2 个名为test1 js and test2 js 现在我包括test1 js and test2 js in test htm
  • 带有 UnboundLocalError 的本地和全局引用

    我不太明白为什么代码 def f print s s foo f 运行得很好但是 def f print s s bar s foo f 给我 UnboundLocalError 我知道我可以通过声明来解决这个问题s作为函数内的全局变量或简
  • 如何全局安装 Python(开发)依赖项,以便我不必在每个 venv 中重新安装它们?

    我希望在为每个项目创建的每个 venv 虚拟环境 中都可以使用一些 Python 依赖项 例如 black flake8 和 pytest 这可能吗 如果可以 如何实现 我想安装这三个once在我的主要 Python 安装下 我必须在启动新

随机推荐