【关系抽取】TPLinker:单阶段联合抽取,并解决暴漏偏差

news2024/12/23 15:39:49

     🔎大家好,我是Sonhhxg_柒,希望你看完之后,能对你有所帮助,不足请指正!共同学习交流🔎

📝个人主页-Sonhhxg_柒的博客_CSDN博客 📃

🎁欢迎各位→点赞👍 + 收藏⭐️ + 留言📝​

📣系列专栏 - 机器学习【ML】 自然语言处理【NLP】  深度学习【DL】

 🖍foreword

✔说明⇢本人讲解主要包括Python、机器学习(ML)、深度学习(DL)、自然语言处理(NLP)等内容。

如果你对这个系列感兴趣的话,可以关注订阅哟👋

文章目录

信息抽取的两种工作模式

TPLinker

Token Pair的表示


信息抽取的两种工作模式

Pipeline(流水线)形式

把关系抽取拆分为多个子任务。每个子任务都依赖前面的任务结果作为输入,该种工作形式存在着曝光偏差和误差传播的问题。

Joint(联合)模式

不同任务间共享编码层,通过编码层参数共享来实现实体抽取和关系抽取的信息交互。

不同任务间没有相互输入依赖。One-Stage形式。

error accumulation 误差传播 前序任务的误差(如: 识别遗漏)的错误结果,会传递给后续任务而导致的误差。由于前后任务间结果传递的依赖性,所以错误传播是不可逆的。

exposure bias 曝光偏差 后序任务模型训练时,使用真实标签作为模型的输入。而后序任务在推理时则是重新开始推理。和前序任务缺少直接的关联性。

联合抽取主要分为2种范式:

  • 多任务学习:即实体和关系任务共享同一个编码器,但通常会依赖先后的抽取顺序:关系判别通常需要依赖实体抽取结果。这种方式会存在暴漏偏差,会导致误差积累。
  • 结构化预测:即统一为全局优化问题进行联合解码,只需要一个阶段解码,解决暴漏偏差。
暴漏偏差:指在训练阶段是gold实体输入进行关系预测,而在推断阶段是上一步的预测实体输入进行关系判断;导致训练和推断存在不一致。

 TPLinker要解决什么问题?

 基于结构化预测的联合抽取方法,最早出现在17年论文《Joint extraction of entities and relations based on a novel tagging scheme》中,这篇论文用一个统一的序列标注框架抽取实体关系,如上图所示:直接以关系标签进行BIOES标注,subject实体序号为1,object实体序号为2。

 

Single Entity Overlap (SEO) 单实体重叠

Entity Pair Overlap (EPO) 实体对重叠

Subject Object Overlap (SOO) 主体、目标重叠

也就是说:结构化预测不能在解决暴漏偏差的同时,却不能cover关系重叠问题。因此,TPLinker要同时能够解决这两个问题。

TPLinker

TPLinker 是中科大2020年的一篇论文。提出了一种实体和重叠关系联合提取的单阶段(one stage)解决方案。

其思想是把联合抽取任务转化成一个Token对链接 (Token Pair Linking) 问题。

具体实现就是:把每种spo关系标注转换成为3个token链接矩阵,然后第1个矩阵用于抽取subject和object,另外两个矩阵分别对应着subject头部与object头部,subject尾部与object尾部,这两对组合在当前关系下是否成立。最后利用handshaking tagging scheme来做一个实体关系之间的对齐,从而解码出三元组。

左图是一个Token链接矩阵,其中每种颜色对应一种特定的token。

给定一个句子的链接矩阵用来表示特定的关系r,其中使用行列位置p_1,p_2来进行标记:

  • p_1和p_2标记实体的起始和结束位置
  • p_1和p_2标记属于关系r的两个实体的起始位置
  • p_1和p_2标记属于关系r的两个实体的结束位置

问题:

在关系非常多的情况下,每个关系都会映射一个Token链接矩阵。矩阵非常多,同时也非常稀疏。

由于实体的尾部不可能出现在头部之前,所以矩阵的下三角区域全部都是0值,本身对内存的浪费也非常大。

关键是在原始语料中,object实体的出现位置很有可能出现在subject之前,所以直接放弃下三角区域也是不合理的。

为此,设计者提出的解决的方案是把下三角区域中的所有标记1映射到上三角区域的标记2中,然后再删除下三角区域。

这样虽然解决了合理性问题,但矩阵的内存的浪费问题并没有得到彻底的解决。

右图是一张handshaking tagging scheme矩阵,阴影部分标记的就是object和subject位置倒置的问题和解决方案。

为了张量计算的方便。在实际操作中,上三角区域被展平成了一个序列。序列中的每个元素映射原矩阵中的位置关系。

序列的这种映射方式类似于token之间的 handshaking,设计者称这种序列为 handshaking tagging scheme

这种标记方案可以解决实体重叠(SEO)和实体嵌套问题,但是却不能解决实体对重叠(EPO)问题,因为在一个矩阵中,不能标记不同关系的同一个实体对。

解决方案就是——为每个关系独立标记,创建多个 handshaking tagging 序列来分别标记实体对的首尾。

  • EH(Entity Head) to ET(Entity Tail)矩阵

    用来标记Subject实体和Object实体的起始和结束位置

  • SH(Subject Head) to OH(Object Head)矩阵

    用来标记某种特定关系情况下的Subject和Object实体的起始位置

  • ST(Subject Tail) to OT(Object Tail)矩阵

    用来标记某种特定关系情况下的Subject和Object实体的结束位置

这里的 EH to ET序列是所有关系对序列共享的,因为它只关注的实体的提取。

Token Pair的表示

通过把给定长度为n的句子[w_1,\cdots,w_n],先抽取出每个token的w_i映射成一个低维的向量h_i,把它作为编码器。

之后再为每个 token pair (w_i,w_j) 生成一个对应的 h_{i,j} 表示 

其中W_h是参数矩阵,b_h 是偏置。该公式表示的就是上图中的 Handshaking Kernel 。

TPLinker 代码实现:TPLinker-joint-extraction

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

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

相关文章

车载GNSS/INS/LiDAR坐标系定义与理解

目录一、基本坐标系1.1 地心惯性坐标系(Inertial coordinate system,i系)1.2 地心地固坐标系(Earth-Centered, Earth-Fixed,e系)1.3 导航坐标系(Navigation,n系)1.4 车体…

[附源码]计算机毕业设计springboot疫苗药品批量扫码识别追溯系统

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

一、领域驱动设计核心思想与设计过程

一、软件发展的必然规律 1、软件是对真是世界的模拟,但真实世界软件十分复杂。 2、人在认识真实世界的时候总是有一个从简单到复杂的过程 3、软件需求的变更成为一种必然的事情,并且总是由简单向复杂转变 4、初期软件的业务逻辑十分简单清晰命令&#x…

C语言画直方图

前言 最近在看K&R的《C语言程序设计语言》这本书,第一单元的练习13要求画一个统计单词长度的直方图,这里忽略了计算单词长度的代码,假设已知单词长度存入一个digit数组中,根据这个数组画水平直方图和垂直直方图。实话说&…

C++11新特性-原始字面量

当我们书写文件路径的时候,会发现,文件路径无法正确输出,如下: 这是因为反斜杠本身就是转义的意思,如果想要输出反斜杠则需要两个反斜杠,如下: 当然这只是其中一种解决方法,还有一种…

实战项目如何抵御即跨站脚本(XSS)攻击

一、XSS攻击的危害 XSS攻击通常指的是通过利用网页开发时留下的漏洞,通过巧妙的方法注入恶意指令代码到网页,使用户加载并执行攻击者恶意制造的网页程序。这些恶意网页程序通常是JavaScript,但实际上也可以包括Java、VBScript、ActiveX、Flash或者甚至是…

思派健康通过上市聆讯:F轮估值17亿美元 腾讯是大股东

雷递网 雷建平 12月3日思派健康科技日前通过聆讯,准备在香港上市。思派健康早在2021年8月就已经递交招股书,这是时隔一年多后,这之前第三次递交招股书。这也意味着,时隔一年多后,思派健康终于要上市了。上半年亏损3.5亿…

SpringSecurity(八)【会话管理】

八、会话管理 简介 当浏览器调用登录接口登录成功之后,服务端会和浏览器之间创建一个会话(Session),浏览器在每次发送请求时都会携带一个 SessionId,服务端则根据这个 SessionId 来判断用户身份。当浏览器关闭之后&…

从硬件角度看服务器性能调优

bios整体配置bios系统设置Hyper Thread开启超线程,设置后lscpu命令Thread(s) per core 值显示为 2。超线程可以理解为CPU的虚拟化,一颗物理CPU并行执行两条流水线指令。确认处理器基本频率及睿频频率,部分处理器基础频率低,但是睿…

看完了你还能不懂JAVA内存模型(JMM),我输了

前言 开篇一个例子,我看看都有谁会?如果不会的,或者不知道原理的,还是老老实实看完这篇文章吧。 Slf4j(topic "c.VolatileTest") public class VolatileTest { static boolean run true; public static void main(S…

基于Java+Swing实现《扫雷》游戏

基于JavaSwing实现《扫雷》游戏一、系统介绍二、功能展示三、其他系统一、系统介绍 windows自带的游戏《扫雷》是陪伴了无数人的经典游戏,本程序参考《扫雷》的规则进行了简化,用java语言实现,采用了swing技术进行了界面化处理,设…

基于蚁群算法求解运钞车路径规划问题(Matlab代码实现)

🍒🍒🍒欢迎关注🌈🌈🌈 📝个人主页:我爱Matlab 👍点赞➕评论➕收藏 养成习惯(一键三连)🌻🌻🌻 🍌希…

[附源码]JAVA毕业设计桔子酒店客房管理系统(系统+LW)

[附源码]JAVA毕业设计桔子酒店客房管理系统(系统LW) 目运行 环境项配置: Jdk1.8 Tomcat8.5 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目…

vue app开发调用原生方法实现权限访问授权处理(一)

vue app开发调用原生方法实现权限访问授权处理 前提:在写代码之前应该想清楚调用原生安卓、ios的方法,就应该遵循双端的方法规则,调用方法时应该注意,在这里先主要介绍一下注意事项: 根据App发布应用市场的要求&…

【sciter】安全应用列表控件总结

一、效果图 二、功能点 实现电脑文件拖拽进入到安全桌面,读取文件路径,生成应用。可以配置允许拖拽进入安全桌面的文件应用。点击添加图标,可以添加应用到安全桌面中。在安全桌面列表中每一个应用实现双击、失去焦点,获取焦点、右键事件在安全桌面列表中每一个应用可以实现…

[附源码]计算机毕业设计springboot疫情防控平台

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

HTML5期末大作业:用DIV+CSS技术设计的网页与实现(剪纸传统文化网页设计主题)

🎉精彩专栏推荐 💭文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 💂 作者主页: 【主页——🚀获取更多优质源码】 🎓 web前端期末大作业: 【📚毕设项目精品实战案例 (10…

二本土木工程管理毕业5年,零基础转型大数据开发,收割长沙深圳多个大数据offer...

点击上方 "大数据肌肉猿"关注, 星标一起成长点击下方链接,进入高质量学习交流群今日更新| 1052个转型案例分享-大数据交流群分享一位学习群同学的转型经历,他是二本土木类工程管理专业,17年毕业,毕业后在长沙工地从事了…

Java基于springboot+vue的汽车饰品销售购物商城系统 前后端分离

开发背景 随着我国科技和经济的发展,我国的汽车数量也越来越多,基本家家户户都拥有了自己的汽车,为了让汽车用起来更加的舒心,于是各类琳琅满目的汽车饰品也出现了。大多数时候人们在购买汽车饰品的时候都回到这些专卖店购买&…

C++之面向对象

目录 对象与类 类的语法: C中class与struct的区别: 通过类实例化对象的方式 具体案例 类作用域与分文件编写 创建circle.h头文件 创建源文件circle.cpp 创建all.cpp来作为程序的入口 封装 封装的意义 访问权限符 成员属性私有化 优点 具体…