关系抽取(三)实体关系联合抽取:TPlinker

news2024/9/23 7:24:41

参考:

  • NLP系列之封闭域联合抽取:CasRel、TPLinker、PRGC、PURE、OneRel,实在是太卷了! - 知乎 (zhihu.com)
  • NLP 关系抽取 — 概念、入门、论文、总结 

TPlinker

论文:PLinker: Single-stage Joint Extraction of Entities and Relations Through Token Pair Linking

代码:https://github.com/131250208/TPlinker-joint-extraction

论文解读(作者):关系重叠?实体嵌套?曝光偏差?这个模型统统都搞得定! (qq.com)

 关系抽取之TPLinker解读加源码分析

TPLinker的创新
        (1)TPLinker是一种关系抽取的新范
        (2)TPLinker是单阶段抽取模型,
        (3)TPLinker实体和关系公用同一个解码,同时避免偏差暴露,同时抽取实体和关系,并不是先抽实体再抽关系,累加实体抽取错误的误差,保证了训练和预测的一致性。
        (4)TPLinker模型可以处理SingleEntityOverlap (SEO), and EntityPairOverlap (EPO) ,同时可以处理实体嵌套问题 

基本思想 

        Pipeline 的方法一般先做实体识别,再对实体对进行关系分类。这类方法忽略了实体与关系之间的联系,而且存在误差累积的问题。

        为了充分利用实体与关系的交互信息和依赖关系,联合抽取的思路应运而生,即在一个模型中同时对实体和关系进行统一抽取。较早的联合抽取方法,如 NovelTagging,没法解决关系重叠的问题。当一个或一对实体同时出现在多个关系时,单纯的序列标注就不再管用了,例如:

文本

关系

单实体重叠

周星驰主演了《喜剧之王》和《大话西游》。

周星驰,演员,喜剧之王)(周星驰,演员,大话西游)

实体对重叠

由周星驰导演并主演的《功夫》于近期上映。

周星驰,演员,功夫)(周星驰,导演,功夫)

        后来提出的一些方法已经可以解决重叠问题,如 CopyRE、CopyMTL、CasRel(HBT)等,但它们在训练和推理阶段存在曝光偏差。即在训练阶段,使用了 golden truth 作为已知信息对训练过程进行引导,而在推理阶段只能依赖于预测结果。这导致中间步骤的输入信息来源于两个不同的分布,对性能有一定的影响。

        虽然这些方法都是在一个模型中对实体和关系进行了联合抽取,但从某种意义上它们“退化”成了“pipeline”的方法,即在解码阶段需要分多步进行。这也是它们存在曝光偏差的本质原因。

        TPLinker提出了一种新的实体关系联合抽取标注方案,可在一个模型中实现真正意义上的单阶段联合抽取,不存在曝光偏差,保证训练和测试的一致性。并且同时可解决多关系重叠多关系实体嵌套的问题。

标注方案

具体的标注方案如下图所示:

初始标注方案示例

        其中紫色标签代表实体的头尾关系红色标签代表 subject 和 object 的头部关系蓝色标签代表 subject 和 object 的尾部关系。至于为什么用颜色区分,是因为这三种关系可能重叠,所以三种标签是存在于不同矩阵的,这里为了便于阐述,才放在一起。

        因为实体尾部不可能出现在头部之前,所以紫色标签是不可能出现在下三角区的,那么这样标就有点浪费资源。能不能不要下三角区?但要注意到,红标和蓝标是会出现在下面的。所以我们把红蓝标映射到上三角区对应位置,并标记为 2,然后弃了下三角区,如下图:

最终标注方案 

模型框架

        模型比较简单,整个句子过一遍 encoder,然后将 token 两两拼接输入到一个全连接层,再激活一下输出作为 token 对的向量表示,最后对 token 对进行分类即可。换句话说,这其实是一个较长序列的标注过程。

 上图的例,可以解码出5种关系:

  • (New York City, mayor, De Blasio),
  • (De Blasio, born in, New York),
  • (De Blasio, born in, New York City) ,
  • (De Blasio, live in, New York),
  • (De Blasio, live in, New York City)

 

解码

解码过程抽取出实体和实体间对应的关系,过程如下:
(1)构建实体EH-TO-ET字典D,其中字典D的key是实体头,value为实体
(2)解码ST-to-OT,构建字典E;再解码SH-to-OH且在字典D中尽可能查找满足实体头的所有实体subject和object
(3)验证上述找到的subject 和object实体对儿的尾部是否在E中,如果在E中,得到实体subject,objdect和关系三元组

handshaking decoder (tplinker plus)

解码过程包括抽取实体和关系,这里考虑了实体的type,解码过程如下:

        (1) 根据handshaking kernel的结果得到所有handshaking tagging的结果,即[(start, end, idstag)]

        (2) 根据得到的handshaking tagging的结果解码得到EH-TO-ET,即(entity_start, entity_end, entity_type),同时构建head_ind2entities字典,字典的key是entity_head index,value 是entity token span
        (3) 根据得到的handshaking tagging的结果解码得到ST-TO-OT或者OT-TO-ST,即(sub_tail, obj_tail, rel_type)

        (4) 根据handshaking tagging的结果解码得到SH-TO-OH,ST-TO-OT, sub_head, obj_head, rel_type,验证sub_head,obj_head是否在head_ind2entities中,如果sub_head, obj_head在head_ind2entities中,验证(sub_tail, obj_tail, rel_type)是否在(3)中的结果,如果在,则返回关系三元组。

实验

数据集

        NYT 和 WebNLG,这两个数据集都给出了实体标记, 而关系,包括了普通关系 Normal,Entity Pair Overlap (EPO,多个subject对单个object),Single Entity Overlap (SEO,两个实体间存在多种关系) ,具体例子请看本文章中的第二张图。

实验结果

与各种模型作对比的主要成绩:

        当输入的句子复杂度增加,各种模型的成绩呈下降趋势,然而 TPLinker 表现出显著的提高:

        在计算性能上,TPLinker 也表现出巨大的优势:

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

乐观锁思想在 JAVA 中的实现——CAS

前言 生活中我们看待一个事物总有不同的态度,比如半瓶水,悲观的人会觉得只有半瓶水了,而乐观的人则会认为还有半瓶水呢。很多技术思想往往源于生活,因此在多个线程并发访问数据的时候,有了悲观锁和乐观锁。 悲观锁认为…

FinClip11月产品更新:FIDE 插件开发功能优化;开发者文档英文版上线

不知不觉 22 年进入尾声,通过一年的不断打磨,FinClip 也在不断成长,现在,让我们看看过去的 11 月,FinClip 又有了哪些新的变化。 产品方面的相关动向👇👇👇 FIDE 插件开发功能优化…

【LeetCode每日一题:1775. 通过最少操作次数使数组的和相等~~~贪心+思维题】

题目描述 给你两个长度可能不等的整数数组 nums1 和 nums2 。两个数组中的所有值都在 1 到 6 之间(包含 1 和 6)。 每次操作中,你可以选择 任意 数组中的任意一个整数,将它变成 1 到 6 之间 任意 的值(包含 1 和 6&a…

另一种在ARM/x86架构处理器上部署WebDAV服务器的方法

引言 最近搞了个矿渣,处理器是国产的RK3328,四核A53架构,64位的,性能太好了,装了个OpenWRT,想用来当nas用,但是我发现,竟然没有合适的文件服务器,局域网内用SMB确实可以…

Java并发编程—CompletableFuture的常用方法(建议收藏)

在过去的一段时间里,博主一直在给大家分享多线程并发编程里面的关键CompletableFfuture类的各种技术点,并发编程作为java开发里面关键点之一,也是大家向上提升重要的一点;对于CompletableFuture的学习一定要学到位,前面…

盘点 JDK 中基于 CAS 实现的原子类

前言 JDK 中提供了一系列的基于 CAS 实现的原子类,CAS 的全称是Compare-And-Swap,底层是lock cmpxchg指令,可以在单核和多核 CPU 下都能够保证比较交换的原子性。所以说,这些原子类都是线程安全的,而且是无锁并发&…

第4季5:图像sensor的驱动源码的编译

以下内容源于朱有鹏嵌入式课程的学习与整理,如有侵权请告知删除。 本文演示如何修改sensor的驱动源码,修改之后如何编译与运行。 一、sensor的注册接口分析 这部分内容见第4季4:图像sensor的驱动源码解析。 二、黑电平 关于黑电平的概念&a…

[附源码]计算机毕业设计抗疫医疗用品销售平台Springboot程序

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

【电巢】电源管理芯片:国产化替代厂家竞逐千亿黄金赛道

前言 整个2022年三季度,全国新能源电动车的起火已高达600多起,同比上升了30%多,如果具体到每天来看,平均每天都有超过7起新能源电动车火灾发生。 7月22日,台湾省专业赛车手林某颖驾驶着一辆白色特斯拉Model X&#xff…

es与mysql之间的数据同步

常见的数据同步方案有三种: 同步调用 异步通知 监听binlog 方案一:同步调用(基本不会用,问题太多) 基本步骤如下: hotel-demo对外提供接口,用来修改elasticsearch中的数据 酒店管理服务在完成…

活动预告 | DataFunSummit 2022-MLOps 及 AI 工程化落地论坛

11月19日 13:30-17:30,OpenMLDB 项目发起人、第四范式技术副总裁 郑曌作为出品人发起 DataFunSummit 2022 MLOps 及 AI 工程化落地论坛。OpenMLDB PMC、第四范式资深系统架构科师 卢冕,将在论坛中为大家带来议题为《开源机器学习数据库 OpenM…

吃透阿里P8推荐424页Java服务端研发知识图谱后,直接入职蚂蚁P6

前言 蓦然回首自己做开发已经十年了,这十年中我获得了很多,技术能力、培训、出国、大公司的经历,还有很多很好的朋友。但再仔细一想,这十年中我至少浪费了五年时间,这五年可以足够让自己成长为一个优秀的程序员&#…

看场景、重实操,实时数仓不是“纸上谈兵”

本文转载自阿里云Hologres产品负责人合一在ITPUB的访谈,谈谈他眼中的实时数仓, 原文链接: https://mp.weixin.qq.com/s/RZMWf9r4fKV9mNoGGUtaVw 这两年,企业IT领域掀起实时数仓热潮。然而,只要稍做梳理就会发现&#…

【笔试强训】Day 6

🌈欢迎来到笔试强训专栏 (꒪ꇴ꒪(꒪ꇴ꒪ )🐣,我是Scort目前状态:大三非科班啃C中🌍博客主页:张小姐的猫~江湖背景快上车🚘,握好方向盘跟我有一起打天下嘞!送给自己的一句鸡汤&#x…

Redis - Redis为什么这么快?

1. Redis为什么这么快? 数据结构简单,对数据操作也简单,Redis 中的数据结构是专门进行设计的;基于内存实现,读写速度快;Redis 是单线程的,避免了不必要的上下文切换和竞争条件,也不…

卖座网站影院界面:优化长列表的滑动流畅度方案

关键点1:优化长列表的滑动流畅度 问题:在长列表中,向下滑动时,为了提高用户的使用感受,这个滑动一般都会做的很流畅。但是在网速不快的情况下,它自然会卡顿,所以为了优化网速慢带来的卡顿现象&…

好用的国产远程控制软件,我只推荐这款!

近年来,越来越多的人需要远程办公,远程为用户提供服务或支持等,导致人们对远程控制软件的需求不断增加。 但现在市面上远程控制软件参差不齐,有的远程控制软件功能不齐全,有的操作步骤过于繁琐,有的使用起…

vue 组件封装——可自由拖拽移动的盒子

最终效果 完整代码 关键性要点&#xff0c;详见注释 组件封装 superBox.vue <template><divref"box_Ref"class"box"mousedown"moveStart"mousemove"moving"mouseup"moveEnd":style"{width: (nodeInfo.width…

js模块化

第1章:模块化入门 1.1.理解什么是模块 将一个复杂的程序依据一定的规则拆分成单个文件&#xff0c;并最终组合在一起这些拆分的文件就是模块&#xff0c;模块内部数据是私有的&#xff0c;只是向外部暴露一些方法与外部其它模块通信 1.2.为什么要模块化? 降低复杂度&#…

2023最新SSM计算机毕业设计选题大全(附源码+LW)之java网络游戏虚拟交易平台8rfnp

计算机毕业设计的编程真的不会, 应该怎么办啊, 平时学了3年都没学懂&#xff0c;然而还有一个月就要答辩了&#xff0c;一点东西都没做出来&#xff0c;不知道该怎么办了&#xff1f;好迷茫&#xff0c;如果毕不到业怎么办, 有没有快速的学习方法 毕设毕设&#xff0c;最终的是…