论文阅读:使用集合预测网络进行联合实体和关系提取

news/2024/9/18 8:51:43/文章来源:https://www.cnblogs.com/zinger/p/18303496

github代码:http://github.com/DianboWork/SPN4RE

目的

  • 从本质上讲,句子中提到的关系三元组是集合的形式,它没有元素之间的内在顺序,并表现出排列不变的特征。(多个三元组的抽取顺序,对抽取结果没有影响)
  • 然而,以前基于 seq2seq 的模型需要事先使用一些启发式全局规则将关系三元组的集合排序为一个序列,这破坏了自然集合结构。
  • 为了打破这一瓶颈,我们将联合实体和关系抽取视为直接集合预测问题,这样抽取模型就不会有预测多个三元组顺序的负担。

引言

  • 早期的研究,使用管道技术,先识别实体,再预测实体之间的关系,忽略了实体识别和关系预测的相关性,并存在严重的错误传播问题。
  • 因此出现了联合抽取,可以分为三类。
  1. 将联合实体和关系提取任务视为端到端的表填充问题。(尽管使用了共享参数,但实体和关系的提取是单独提取的,且会产生冗余信息)
  2. 将联合实体和关系提取转化为序列标记。(需要设计复杂的标注框架)
  3. 序列到序列模型驱动,以直接生成关系三元组。

本模型沿用序列到序列的思想。当前基于seq2seq的模型不仅需要学习如何生成三元组,还需要考虑多个三元组的提取顺序。本文将联合实体和关系抽取的任务表述为一个集合预测问题,避免考虑多个三元组的顺序。

集合预测模型(SPN)

  • SPN由三部分组成:句子编码器集合生成器基于集合的损失函数
  • 使用BERT作为编码器,以获得给定句子的上下文感知表示。
  • 利用基于transformer的非自回归解码器作为集合生成器,它可以一次预测所有三元组并避免对三元组进行排序。
  • 提出了受运筹学中的分配问题启发的二分匹配损失函数

句子编码器

  • 此组件的目标是获取输入句子中每个标记的上下文感知表示。
  • 输入:在BERT编码器中,输入句子通过字节对编码与标记进行分割,然后输入编码器。
  • 输出:BERT模型的输出是标记的上下文感知嵌入

集合生成器

  • 将联合实体和关系提取视为一个集合预测问题,并使用基于transformer的非自回归解码器直接生成三元组集。
  • 输入:解码开始前,解码器需要知道目标集的大小,设为统一的m个(其中m设置为明显大于句子中中典型的三元组数)。解码器的输入不是从编码器端复制令牌,而是通过m个可学习的嵌入进行初始化,称之为三元组查询
  • 解码器架构:非自回归解码器由N个相同的Transformer模块组成。(在每个 transformer 模块中,都有一个多头自注意力子层,用于建模三元组之间的关系,还有一个多头交叉注意力子层,用于融合给定句子的信息。)
  • 通过非自回归解码器,将 m 个三元组查询转化为 m 个输出嵌入。然后,通过前馈网络将输出嵌入独立解码为关系类型和实体,从而产生 m 个最终预测的三元组。

基于集合的损失函数

论文中提出的基于集合的损失函数,即二分匹配损失,是为了解决关系三元组提取任务中的一个核心问题:三元组的顺序不应影响模型的性能。在传统的使用交叉熵损失函数的模型中,如果预测的三元组顺序与目标顺序不一致,即使三元组是正确的,模型也会受到惩罚。这种情况在关系三元组的提取中是不理想的,因为三元组的顺序本质上是不重要的。

  • 工作原理:二分匹配损失是基于最优匹配算法(如匈牙利算法或KM算法),它在模型预测的输出集合和真实标签集合之间寻找最佳的一一对应关系。这种对应关系的目标是最小化整体的匹配成本,即最小化预测三元组与真实三元组之间的差异。
  • 计算步骤:

1. 成本矩阵计算:首先,构建一个成本矩阵,其中矩阵的每个元素代表一个预测三元组和一个真实三元组之间的匹配成本。这个成本通常是基于某种距离度量(如欧氏距离、汉明距离等)计算的。
2. 寻找最佳匹配:使用匈牙利算法或其他算法在成本矩阵中找到成本最小的匹配方式。这意味着算法会试图找到一种方式,通过这种方式,每个预测的三元组都与一个真实的三元组相匹配,且总体匹配成本最小。
3.损失计算:一旦确定了最佳匹配,模型的损失就是这些匹配对应的成本之和

  • 优势:
  1. 排列不变性:由于损失计算不依赖于三元组的顺序,模型可以自由地预测任何顺序的三元组,只要这些三元组是正确的。
  2. 关注关键信息:这种方法强制模型专注于预测正确的三元组内容(实体和关系),而不是它们的排列顺序。

实验

  • 数据集:纽约时报(NYT)WebNLG
  • 评估指标:采用micro-average precision, micro-average recall, and micro-average F1 scores来评估。

@ARTICLE{10103602,
author={Sui, Dianbo and Zeng, Xiangrong and Chen, Yubo and Liu, Kang and Zhao, Jun},
journal={IEEE Transactions on Neural Networks and Learning Systems},
title={Joint Entity and Relation Extraction With Set Prediction Networks},
year={2023},
volume={},
number={},
pages={1-12},
keywords={Decoding;Task analysis;Predictive models;Feature extraction;Training;Pipelines;Transformers;Bipartite matching;joint entity and relation extraction;non-autoregressive decoder;set prediction},
doi={10.1109/TNNLS.2023.3264735}}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/744171.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

打造个人贴身助理-小白必备AI技能

打造个人贴身助理-小白必备AI技能 将你的公众号接入AI智能体 登录后台开启开发者功能coze 后台创建 bot 登录 Coze 国内官网地址:https://www.coze.cn。点击右上角【开始使用】。 创建智能体 点击左上角【创建Bot】配置选择模型配置人设和插件发布到自己的公众号成功发布进入公…

免费可视化工具如何打造动态销售管理看板?

在这个数据驱动的时代,销售管理不再仅仅依赖于传统的报表和口头汇报,而是越来越倾向于直观、动态的可视化展示。可视化工具的出现,无疑为中小企业乃至大型企业提供了强大的助力,帮助销售团队构建高效、直观的销售管理看板,让数据说话,决策有据可依。今天要说的是,如何利…

jmeter分布式实战

一、原理(jdk和jmeter版本必须一致)二、配置执行机slave 修改配置文件:JMETER_HOME/bin/jmeter.properties 中如下信息即可完成配置执行机远程启动端口(默认为 1099) server_port=1029 server.rmi.localport=1029 server.rmi.ssl.disable改为true 启动执行机服务器: 管理…

Microsoft Office 自定义安装部署工具 | Mocreak

软件简介: Mocreak 是一款一键自动化下载、安装、部署正版 Office 的办公增强工具。该工具完全免费、无广告、绿色、无毒、简约、高效、安全。 软件特点: 一键快速下载、安装、部署最新版 Microsoft Office 软件。提供简约、高效,且可自定义的图形界面,提升部署效率。支持将…

旋转相册

做自己的太阳,成为别人的光!

Spring MVC 中的拦截器的使用“拦截器基本配置” 和 “拦截器高级配置”

1. Spring MVC 中的拦截器的使用“拦截器基本配置” 和 “拦截器高级配置” @目录1. Spring MVC 中的拦截器的使用“拦截器基本配置” 和 “拦截器高级配置”2. 拦截器3. Spring MVC 中的拦截器的创建和基本配置3.1 定义拦截3.2 拦截器基本配置3.3 拦截器的高级配置4. Spring M…

docker化 spring boot 项目参数传入

例如有如下参数: spring.rabbitmq.host = localhost spring.rabbitmq.port = 5672 spring.rabbitmq.username = guest spring.rabbitmq.password = guest resolute.rabbitmq.publishQueueName = resolute-run-request resolute.rabbitmq.exchange = resolute通过环境变量传入,…

vscode --- 编辑框禁止差异对比

如上图,编辑框差异对比太花哨,可关闭

[极客大挑战 2020]Greatphp 1

原生类反序列化 <?php error_reporting(0); class SYCLOVER {public $syc;public $lover;public function __wakeup(){if( ($this->syc != $this->lover) && (md5($this->syc) === md5($this->lover)) && (sha1($this->syc)=== sha1($this-…

mysql备份还原——binlog查看工具之show binlog的使用

(4.8)mysql备份还原——binlog查看工具之mysqlbinlog及show binlog的使用 关键词:show binlog,mysql binlog查看,二进制文件查看,binlog查看工具,binlog查看方法0、使用show master status; 使用它可以直接查看binlog日志信息;总结:指定文件:show binlog events in b…

网络流 二分图

重拾网络流,真正感受了它的妙处。 二分图 二分图是什么 简单来说,你可以把一个图分成两部分点,两部分点间有边相连,但是每部分点两两间没有边相连。 二分图判定的充要条件 一个图是二分图的充要条件是不存在奇环。 充分性:对于任意一个二分图,由于每个部分内部都没有边,…