0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

了解信息抽取必须要知道关系抽取

深度学习自然语言处理 来源:CSDN 作者:CSDN 2021-04-15 14:32 次阅读

本文主要详细解读关系抽取SOTA论文Two are Better than One:Joint Entity and Relation Extraction with Table-Sequence Encoders[1], 顺带简要介绍关系抽取的背景,方便完全不了解童鞋。

信息抽取

我们说的信息抽取一般是指从文本数据中抽取特定数据结构信息的一种手段。对于不同结构形式的数据如结构化文本,半结构化文本,自由文本,有各自对应的方案,其中从自由文本中抽取难度最大。总之,我们的目的是希望在海量文本中,快速抽出我们关注的事实。

了解信息抽取必须要知道关系抽取。

关系抽取

大部分情况下,我们喜欢用三元组的数据结构来描述抽取到的信息

三元组

三元组的表达能力非常丰富,几乎所有事情都可以自然或者强行的表达成三元组,比如随便一句”今天天气真冷“ 表达为天气-状态-冷。

三元组与后续的知识图谱工作非常适配,如Neo4j等图数据库就是以三元组为存储单位,图谱的查询推断等工具使用三元组比普通的关系型数据库来的方便的多。

三元组千千万,我应该怎么抽?

Schema

当我们拿到一个信息抽取的任务,需要明确我们抽取的是什么,”今天天气真冷“,我们要抽的天气的状态天气-状态-冷,而非今天-气候-冷(虽然也可以这样抽),因此一般会首先定义好我们要抽取的数据结构模式shcema, 会确定谓词以及主语并与的类型

一个三元组schema的例子,其中Subject_type代表主语类型,Predicate是谓词,Object_type指宾语类型:

Subject_type:人物 Predicate:出生地 Object_type:地点

确定了schema,我们一般如何抽取呢?

常规RE方案

目前主流关系抽取一般两种解决方法

pipline两步走:将关系抽取分解为NER任务和分类任务,NER任务标注主语或宾语,分类主要针对定义的schema中的有限个谓词进行分类。根据具体任务不同,有些可能是两步走或者三步走,pipline任务的顺序先分类还是先标注也会有差异

Pipline优势:每一步分别针对各个任务进行,表征是task-specific, 相对来说精度较高

Pipline缺陷:- 任务有顺序会存在误差传递问题,即在预测时下一步任务会受上一步误差影响,而在训练阶段没有这种误差,因此存在训练和预测阶段的gap- 分开的任务在一句话中多个实体关系时,比较难解决实体和关系的对应问题,以及重叠关系

joint learning:joint learing可以理解为采用多任务的方式,同时进行NER和关系分类任务, 在众多joint learning中最出众的是采用tabel filled 方式,即任务的输出是filled一张有text-sequence构成的表,在表中的位置表达除了词与词的连接,该位置的标注则标出了谓语(如下图)

a82e50a8-9cd8-11eb-8b86-12bb97331649.jpg

优势:1. 两个任务的表征有交互作用可能辅助任务的学习2. 不用训练多个模型,一个模型解决问题,不存在训练与预测时的gap

缺陷:1. 两个任务的表征可能冲突,影响任务效果2. 解决了主谓宾之间的对应关系,无法解决重叠问题3. Fill table本质仍然是转成sequence来fill,未能充分利用table结构信息(下文会解释)

下面重点解读table fill方式的一篇SOTA,解决了joint learning的多任务表征冲突以及为利用table结构信息

RE with Table Sequence

终于来到本篇的主题啦,为了解决一般filled table的问题, 作者提出table-sequence encoder的方法,分别对table和sequence做表征,本文的最大贡献在于

分别对table和sequence做表征(encoder),并设计了一个Table-Guided Attention来对table和sequence进行交互,这样即不会完全共享表征导致对不同的任务表征冲突,也不会丢失表征的相互指导作用

在table encoder中采用多维GRU来捕获更多的句子结构信息

在架构上table encoder和 sequence encoder多层交互

a84af794-9cd8-11eb-8b86-12bb97331649.jpg

下面仔细介绍各个部分,看看它是如何神奇做到SOTA的

Text Embedder

在上图的结构图中,Text Embedder采用类似FLAT分别做了基于lstm的char()和word(),以及基于bert的word ()作为预训练的embedding ,并拼接起来

图中

Table Encoder

整个Table Encoder部分由多个Table Encoding的单元组成,每个Encoding单元的输入分别是起始输入,对应senquence结构的输入,以及上一个Tabel Encoding单元的输出,Table Encoding 采用MDRNN结构提取输入的特征信息,作者在这选择MDGRU(多维度GRU),tabel结构本身有2维,加上前后层实际有4维,但是层的维度信息单向流动,实际上是只用到了3个方向()

a879c3bc-9cd8-11eb-8b86-12bb97331649.jpg

如图所示,是来自sequence的输入,作者分别测了使用所有方向和分别使用几个方向,发现上图中a,c效果类似,这种多维GRU全面的考虑了整个table的结构信息,即一个词的状态跟其他所有词的状态相关,并且受其他词的不同程度的影响,这种影响程度由GRU门控机制控制

Sequence Encoder

sequence Encoder 也由多个sequence encoding够成,sequence encoding结构直接采用transformer中的encoder

a88c27dc-9cd8-11eb-8b86-12bb97331649.jpg

只不过将其中的self attention替换为table-guide attention,这种attention的改造非常巧妙,能更好捕捉word-word之间的关系

a8c91868-9cd8-11eb-8b86-12bb97331649.jpg

正常的dot attention如上图

Table-Guided attention具体来说:

参数矩阵

采用加性

是table encoder中的table的隐藏节点,该节点由多个方向的经过GRU编码得到,不管是哪个方向它的来源始终是由构造而来,理论上是可以由拟合而来,因此这里直接由 来代替 ,也就是这个attention,其实是计算了table 结构中各个位置对该的权重,是一个四面八方attention

剩下就是transform中正常的LayerNorm 和残差结构了

输出和loss

输出比较常规,loss采用常规

输出:

loss:

实验 and 效果

作者在各个数据集上进行实验,对比各个目前SOTA分别有一定的提高,且时效果最佳,模型参数量不到5M,要什么自行车,附上开源地址[2],作者的代码与论文在attention计算有一丢丢不一致,但是并不影响效果

a8d23eac-9cd8-11eb-8b86-12bb97331649.jpg

责任编辑:lq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 数据库
    +关注

    关注

    7

    文章

    3855

    浏览量

    64797
  • Gru
    Gru
    +关注

    关注

    0

    文章

    12

    浏览量

    7512
  • 数据结构
    +关注

    关注

    3

    文章

    573

    浏览量

    40251

原文标题:关系抽取一步到位!

文章出处:【微信号:zenRRan,微信公众号:深度学习自然语言处理】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    AMC1210对AMC1305进行数字抽取滤波,输出后的数据是否需要用处理器进行一次平均和移位处理?

    我使用的AMC1210对AMC1305进行抽取滤波。AMC1210配置为SIN3,256倍抽取。积分器为128倍积分。AMC1210配置为中断方式SPI接口32bit输出。输出后的数据,是否需要用
    发表于 01-14 08:21

    使用AMC1210为AMC1305L25做3阶的256抽1的sinc抽取滤波器,请问是否可以呢?

    我使用AMC1305L25做1200V高压 高边电流隔离采集。想使用AMC1210为AMC1305L25做3阶的256抽1的sinc抽取滤波器,请问是否可以呢?(备注:AMC1305L25与AMC1210之间加入了LVDS转LVTTL电平的转换芯片。)
    发表于 12-27 07:37

    请问AMC1203文档中的OSC过采样率和sinc3滤波器中的抽取率是不是同一个概念?

    ,滤波器的输出结果(Dfilter) 又怎么和输入电压一一对应? 我个人理解是AMC1203输出占空比=Dfilter/DC_Gain 占空比=>输入电压(线性关系?) 输入电压 => 采样电流 不知道对不对,望解答!谢谢,十分感谢!
    发表于 12-16 06:42

    轨道交通行业 ICY DOCK硬盘抽取盒解决方案

    在当今的数据存储领域,硬盘抽取盒已成为众多应用中不可或缺的关键环节,尤其在轨道交通行业中,硬盘盒解决方案至关重要,它直接关系到数据存储的安全性、稳定性和可靠性,以及系统维护的便利性。ICYDOCK
    的头像 发表于 11-21 17:10 235次阅读
    轨道交通行业 ICY DOCK硬盘<b class='flag-5'>抽取</b>盒解决方案

    ADS1299用ADS采集数据,ADS可以不抽取看原始得数据吗?

    1.用ADS采集数据,将时域的数据进行FFT变换,得到频谱里面看似有 Sinc Filter 抽取,不需要抽取是否可以?ADS可以不抽取看原始得数据吗? 2.这个和手册上的频谱不一样? 请问这个是什么问题呢?
    发表于 11-20 06:05

    求助,关于AMC1306M25抽取率OSR的疑问求解

    我客户目前正在评估AMC1306M25,有以下疑问需要解答,可否帮忙确认一下: 图为官方的例程,两个都应该指的是抽取率OSR。但是当客户在第一个函数中填的抽取率为64,到第二张图中ratio的值
    发表于 11-14 07:09

    TLV320AIC3254内部中的ADC处理模块和minidsp到底是什么关系

    我想请问一下几个问题: 1.3254内部中的ADC处理模块和minidsp到底是什么关系,是并列的还是串行关系?还是ADC处理模块就是minidsp特殊情况下的部分? 2.minidsp的抽取因子该怎么理解,到底怎么使用?
    发表于 10-31 06:02

    有奖问卷:随机抽取 30 名用户送出快充数据线

    您好 , TI 致力于为中国客户提供出色的在线技术支持,了解您的喜好是改善用户体验的重要环节。我们希望了解您目前访问 TI 技术支持论坛的偏好,同时也希望知道在获取技术支持的过程中哪些事情对您
    发表于 10-09 08:08

    贴片电容型号除了要知道参数规格外还有哪些要知道

    在选择贴片电容型号时,除了要知道其参数规格(如尺寸、容量、电压、精度等)外,还需要考虑以下几个方面。
    的头像 发表于 09-21 14:58 381次阅读

    求助,AD7190关于Σ-Δ ADC其中的抽取滤波器的数据转换问题求解

    AD7190可以通过模式寄存器的FS[0:9]设置输出速率, 0-1023的范围;此时设置的数据速率选择位是否就是Σ-Δ ADC抽取滤波器的抽取比? 关于抽取滤波器,此时我设置的为1023,那我是否
    发表于 09-09 06:11

    防水和防振动功能2.5 英寸SAS/SATA硬盘抽取盒 非常适合车载数据存储

    首创的防水和防振动功能 2.5 英寸 SAS/SATA 硬盘抽取盒 – 非常适合车载数据存储
    的头像 发表于 08-12 19:16 514次阅读
    防水和防振动功能2.5 英寸SAS/SATA硬盘<b class='flag-5'>抽取</b>盒 非常适合车载数据存储

    学习鸿蒙必须要知道的几个名词

    HarmonyOS提供了一套UI(UserInterface,用户界面)开发框架,即方舟开发框架(ArkUI框架),用于快速搭建漂亮的用户界面。它为开发者提供应用UI开发所必需的能力,比如多种组件、布局计算、动画能力、UI交互、绘制等。
    的头像 发表于 07-06 08:04 500次阅读
    学习鸿蒙<b class='flag-5'>必须要知道</b>的几个名词

    ICY DOCK Expresscage MB038SP-B硬盘抽取盒评测

    ICYDOCK最近又推出了一款ExpressCage系列的有趣产品,适用于SoHo、服务器和工业应用。今天,我们将测试这台ExpressCageMB038SP-B全金属硬盘抽取盒,该硬盘抽取盒有8个
    的头像 发表于 05-17 16:20 517次阅读
    ICY DOCK Expresscage MB038SP-B硬盘<b class='flag-5'>抽取</b>盒评测

    用STM8做一个用于抽取频谱的东西, 如何采样128个点用于FFT数据计算?

    各位前辈和大侠们: 想用STM8做一个用于抽取频谱的东西, 采用128点的FFT运算, 采样率为16K, 这里就需要一次采样128个点用于FFT数据计算. 该如何采样这128个点的数据呢? 1.
    发表于 05-16 08:10

    企业级装机必备推荐 不用拆机的4盘位U.2 硬盘抽取

    一代的4盘位NVMeU.2/U.3SSDPCIe4.0硬盘抽取盒,其创新性的免工具安装和可抽取设计,针对企业级用户的卓越兼容性和散热性能设计,使其成为各种应用场景
    的头像 发表于 04-26 14:43 587次阅读
    企业级装机必备推荐 不用拆机的4盘位U.2 硬盘<b class='flag-5'>抽取</b>盒