代码

原文

摘要

文档级联合实体和关系抽取是一项难度很大的信息抽取任务,它要求用一个神经网络同时完成四个子任务,分别是:提及检测、共指消解、实体分类和关系抽取。目前的方法大多采用顺序的多任务学习方式,这种方式将任务任意分解,使得每个任务只依赖于前一个任务的结果,而忽略了任务之间可能存在的更复杂的相互影响。为了解决这些问题,本文提出了一种新的多任务学习框架,设计了一个统一的模型来处理所有的子任务,该模型的工作流程如下:首先,识别出文本中的实体提及,并将它们聚合成共指簇;其次,为每个实体簇分配一个合适的实体类型;最后,在实体簇之间建立关系。图 1 给出了一个来自 DocRED 数据集的文档示例,以及模型期望输出的实体簇图。为了克服基于流水线的方法的局限性,在模型中引入了双向的记忆式依赖机制,使得各个子任务能够相互影响和提升,从而更有效地完成联合任务。
 

模型架构

 
该方法受到了 JEREX  的启发,由四个任务特定的组件组成:提及抽取()、共指消解()、实体抽取()和关系抽取()。与原来的流水线式架构不同,这里引入了图 2 所示的记忆模块,使得各个组件的输入表示能够通过基于记忆的扩展表示模块进行更新。该模块使用 Memory Read 操作从记忆矩阵  和  中读取信息,这两个矩阵分别由实体和关系分类器写入。这样,各个组件之间就形成了双向的信息交互,从而更有效地完成联合任务。

Memory reading

该方法与 TriMF  类似,都是利用注意力机制,将输入表示与从记忆中读取的信息相结合,得到扩展的表示。如图 2 所示,本文的架构对两种输入表示进行了扩展:一种是词嵌入 ,另一种是提及候选的跨度表示 。对于每一种输入表示 ),以及每一种记忆矩阵 ),注意力机制将输入表示  作为键和值,其中  是表示向量的个数, 是嵌入的维度。
作为查询,注意力机制使用记忆矩阵 ,其中  是记忆槽的个数, 是记忆槽的维度。为了计算注意力权重向量 ,对记忆槽的维度求和,公式如下:
其中  是注意力机制的可学习参数矩阵, 是  的第  个记忆槽。然后, 向量用于对  进行加权,得到扩展的输入表示
对于每一种输入表示,记忆读取操作基于两种记忆矩阵生成两种扩展表示 。最终的扩展表示是通过对  和  求逐元素平均值得到的。

Memory writing

 和  是两个记忆矩阵,它们分别存储了不同的实体和关系类别的表示。这些表示是通过相关分类器的损失函数的梯度来更新的, 对应实体分类器, 对应关系分类器。为了提高表示的精度,损失函数取决于类别嵌入和属于该类别的实例表示之间的相似度,这个相似度是根据实例的标签来确定的。因此,实体和关系分类器都基于输入表示和相应的记忆矩阵之间的相似度函数  来进行分类。给定实体  的表示向量 ,它的实体类型的概率分布如下:
给定实体对  的表示向量 ,它的关系类型的存在概率如下:
定义  为实例表示  和记忆矩阵  之间的双线性相似度,形式如下:
其中  是一个可学习的参数矩阵。对于实体和关系分类器,分别使用了不同的双线性相似度权重矩阵:,其中  和  是实体和实体对表示的维度。 和  是实体和关系记忆矩阵的记忆槽的维度。在这里,记忆矩阵的记忆槽的数量与分类器的类别的数量相同。
 

Training

最后,模型被训练优化关节损失,该关节包含与JEREX中相同的四个子任务相关的损失,并以固定的任务相关权值加权:
本文还纳入了TriMF中提出的两阶段训练方法,在超参数搜索过程中调整记忆预热比例。
 

《Similarity-based Memory Enhanced Joint Entity and Relation Extraction》论文阅读笔记的更多相关文章

  1. 《MuseGAN: Multi-track Sequential Generative Adversarial Networks for Symbolic Music Generation and Accompaniment》论文阅读笔记

    出处:2018 AAAI SourceCode:https://github.com/salu133445/musegan abstract: (写得不错 值得借鉴)重点阐述了生成音乐和生成图片,视频 ...

  2. (转)Introductory guide to Generative Adversarial Networks (GANs) and their promise!

    Introductory guide to Generative Adversarial Networks (GANs) and their promise! Introduction Neural ...

  3. 生成对抗网络(Generative Adversarial Networks,GAN)初探

    1. 从纳什均衡(Nash equilibrium)说起 我们先来看看纳什均衡的经济学定义: 所谓纳什均衡,指的是参与人的这样一种策略组合,在该策略组合上,任何参与人单独改变策略都不会得到好处.换句话 ...

  4. 生成对抗网络(Generative Adversarial Networks, GAN)

      生成对抗网络(Generative Adversarial Networks, GAN)是一种深度学习模型,是近年来复杂分布上无监督学习最具前景的学习方法之一.   GAN 主要包括了两个部分,即 ...

  5. StackGAN: Text to Photo-realistic Image Synthesis with Stacked Generative Adversarial Networks 论文笔记

    StackGAN: Text to Photo-realistic Image Synthesis with Stacked Generative Adversarial Networks  本文将利 ...

  6. 论文笔记之:Semi-Supervised Learning with Generative Adversarial Networks

    Semi-Supervised Learning with Generative Adversarial Networks 引言:本文将产生式对抗网络(GAN)拓展到半监督学习,通过强制判别器来输出类 ...

  7. 《Self-Attention Generative Adversarial Networks》里的注意力计算

    前天看了 criss-cross 里的注意力模型  仔细理解了  在: https://www.cnblogs.com/yjphhw/p/10750797.html 今天又看了一个注意力模型 < ...

  8. Paper Reading: Perceptual Generative Adversarial Networks for Small Object Detection

    Perceptual Generative Adversarial Networks for Small Object Detection 2017-07-11  19:47:46   CVPR 20 ...

  9. SalGAN: Visual saliency prediction with generative adversarial networks

    SalGAN: Visual saliency prediction with generative adversarial networks 2017-03-17 摘要:本文引入了对抗网络的对抗训练 ...

  10. Generative Adversarial Networks,gan论文的畅想

    前天看完Generative Adversarial Networks的论文,不知道有什么用处,总想着机器生成的数据会有机器的局限性,所以百度看了一些别人 的看法和观点,可能我是机器学习小白吧,看完之 ...

随机推荐

  1. 简单进行Springboot Beans归属模块单元的统计分析方法

    简单进行Springboot Beans归属模块单元的统计分析方法 背景 基于Springboot的产品变的复杂之后 启动速度会越来越慢. 公司同事得出一个结论. beans 数量过多会导致启动速度逐 ...

  2. 银河麒麟安装nmon以及rpc.rstatd的方法

    背景说明 随着公司业务的发展,需要在ARM环境上面进行性能测试. 为了进行ARM环境的验证,需要一些组件进行资料收集. 比较好的方式是使用nmon或者是rstatd进行性能参数收集. 为了方便部署,想 ...

  3. 海量数据 vastbase G100 V2.2安装简单总结

    海量数据vastbase G100 V2.2 安装总结 背景说明 最近进行信创四期的数据库兼容性验证, 获取了海量数据的一个信创名录内的安装介质. 一直忙于出差, 今天晚上趁着冬至回家比较早在家里进行 ...

  4. Go 泛型之明确使用时机与泛型实现原理

    目录 一.引入 二.何时适合使用泛型? 场景一:编写通用数据结构时 场景二:函数操作的是 Go 原生的容器类型时 场景三:不同类型实现一些方法的逻辑相同时 三.Go 泛型实现原理 Stenciling ...

  5. C# WinForm 界面控件

    C# WinForm是一种GUI应用程序框架,它允许开发人员使用各种控件来创建丰富的用户界面.以下是一些C# WinForm中常见的界面控件:这些界面控件在C# WinForm应用程序开发中非常常见, ...

  6. C/C++ Qt 信号自定义槽函数

    Qt中实现自定义信号与槽函数,信号用于发送并触发槽函数,槽函数则是具体的功能实现,如下我们以老师学生为例子简单学习一下信号与槽函数的使用方法. 使用无参数信号与槽: 首先定义一个teacher类,该类 ...

  7. ElasticSearch-聚合、自动补全、集群、数据同步

    数据聚合 1.数据聚合 聚合(aggregations)可以让我们极其方便的实现对数据的统计.分析.运算.例如: 什么品牌的手机最受欢迎? 这些手机的平均价格.最高价格.最低价格? 这些手机每月的销售 ...

  8. 由反射引出的Java动态代理与静态代理

    写在开头 在<深入剖析Java中的反射,由浅入深,层层剥离!>这篇文章中我们讲反射时,曾提到过Java的动态代理中使用了反射技术,那么好,今天我们要就着反射的索引,来学习一下Java中的代 ...

  9. 时间减去一个小时怎么做 delphi 很方便 看代码

    procedure TfrmTongBuTid.Button1Click(Sender: TObject); begin TopStartModifiedTime_dtp.Time := TopSta ...

  10. ArrayList中的遍历删除

    ArrayList 中的遍历删除 在代码编写过程中经常会遇到这样的要求:遍历一个线性表,要求只遍历一遍(时间复杂度\(O(n)\)),删除符合指定条件的元素,且要求空间复杂度 \(O(1)\). 例如 ...