【笔记】Three Sentences Are All You Need Local Path Enhanced DocumentRelation Extraction

【笔记】Three Sentences Are All You Need: Local Path Enhanced DocumentRelation Extraction

看前预备知识

信息抽取的三个最重要的子任务:

  • 实体抽取 也就是实体识别,包括实体的检测(find)和分类(classify)
  • 关系抽取 通常是三元组(triple)抽取,一个谓词带两个形参
  • 事件抽取 相当于一种多元关系的抽取。

摘要

在本文中,作者提出了一种简单但有效的方法来启发式地选择证据句子进行文档关系抽取,它可以很容易地与BiLSTM结合,在基准数据集上获得良好的性能,甚至比基于图神经网络的方法更好。

代码: https://github.com/AndrewZhe/Three-Sentences-Are-All-You-Need

本文的目的是抽取文档的实体间关系,在给定的文档中,实体对是怎么生成的?

给定的DocRED数据集中,实体是已经生成好的。

一、Introduction

关系抽取(RE)的任务是提取文本中实体对之间的关系。

文档抽取中对于 给定实体,抽取它们的关系可能只需要几句话而不是整个文档,反而阅读整篇文章会引入不相关的信息。

【笔记】Three Sentences Are All You Need Local Path Enhanced DocumentRelation Extraction

图1:从DocRED数据集中提取的一个案例。虽然文件有6句话,但每个关系实例只有1到2句话作为证据。

如图1所示: S[1]足可以承认Finland是Espoo的国家,识别其余两个实例也只需要两句话作为支持证据。虽然该文档包含6句话,证据可能来自S[1]∼S[6],但可以通过只读1个或2个相关的句来识别每个关系实例。

由上例引出问题:给定一个实体对,需要多少个句子来确定它们之间的关系?

【笔记】Three Sentences Are All You Need Local Path Enhanced DocumentRelation Extraction

表1:3个数据集中确定关系对之间关系需要句子数的统计;#Sent表示文档平均多少句子。

作者发现:超过95%的实例需要不超过3句句子作为支持证据,87%的实例甚至只需要2句或更少。

作者在研究实体对在带注释的支持证据中,是如何与上下文相关的?发现注释一般选择连接两个实体的句子。因此,作者设计3个启发式规则来从文档中提取一个路径集,看做支持证据的近似值。

(1) Consecutive Paths:两个实体很近的时候,在3个句子以内;

(2) Multi-Hop Paths:对应于在遥远的句子中的实体对,它可以通过其他在不同的句子中与头实体和尾实体同时出现的实体来桥接。例如,图1中的第3个示例:实体对the EC Parish和Finland就是通过实体The Espoo Cathedral来桥接的。

(3) Default Paths:当前两个规则都不适用时,收集所有包含头实体或尾实体的句子对作为默认路径。

; 二、路径

2.1 Consecutive Paths

先前研究表明,大多数居间关系往往出现在附近的文本中。因此, 当头实体和尾实体在附近的句子中时,选择连续的句子来形成一个路径:如果在句子S i S_i S i ​中有一次提到头实体,在句子S j S_j S j ​中有一次提到尾实体,这两个句子以及中间的句子如S i + 1 , . . . , S j − 1 ( 或 S j + 1 , . . . , S i − 1 当 i ≥ j ) S_{i+1},…,S_{j-1}(或 S_{j+1},…,S_{i-1}当i≥j)S i +1 ​,…,S j −1 ​(或S j +1 ​,…,S i −1 ​当i ≥j )形成了连接这两个实体的可能路径。

只要不超过3句话,就可以进行推理,即∣ i − j ∣ ≤ 2 |i-j|≤2 ∣i −j ∣≤2。这个定义可以自然扩展到句子内情况(j=i)。因此,句内情况看成Consecutive Paths 的一种。一对实体可以对应于多个consecutive paths,因为它们可以被多次提及。

2.2 Multi-Hop Paths

在这种情况下, 头实体和尾实体在文档中彼此相距很远,但可以通过桥实体(bridge entities)连接。例如,图1中的第3个示例:实体对the EC Parish和Finland就是通过实体The Espoo Cathedral来桥接的。

对于这些情况,我们从头实体开始,浏览所有的桥实体,到达尾实体,并选择这条路径中所有对应的句子作为路径。

概念:对于头实体e h e_h e h ​和尾实体e t e_t e t ​,multi-hop 关系表示有一系列桥实体e b 1 , . . . , e b k e_{b_1},…,e_{b_k}e b 1 ​​,…,e b k ​​使得( e h , e b 1 ) , ( e b 1 , e b 2 ) , . . . , ( e b k , e t ) (e_{h},e_{b_1}),(e_{b_1},e_{b_2}),…,(e_{b_k},e_t)(e h ​,e b 1 ​​),(e b 1 ​​,e b 2 ​​),…,(e b k ​​,e t ​)在句子S p 1 , . . . , S p k + 1 S_{p1},…,S_{pk+1}S p 1 ​,…,S p k +1 ​分别形成k+1个句内关系。

注:由于前面所说,表明实体对的关系最多三个句子,所以作者将k限制为最多2,即只有1或2个桥实体。一个实体对可以有多个multi-hop paths。

2.3 Default Paths

如果上述两种规则都不适用,作者将考虑对具有最相关的句子的证据的粗略估计。 作者收集所有的句子对,其中一个包含头部实体,另一个包含尾部实体作为默认路径。

概念:{ S h 1 , . . . , S h p } 和 { S t 1 , . . . , S t q } {{S_{h_1},…,S_{h_p}}}和{{S_{t_1},…,S_{t_q}}}{S h 1 ​​,…,S h p ​​}和{S t 1 ​​,…,S t q ​​}分别表示包含头实体e h e_h e h ​和尾实体e t e_t e t ​的句子集合。对于这些实体对,将有p×q的默认路径{ S h 1 , S t 1 } , . . . , { S h p , S t q } {S_{h_1},S_{t_1}},…,{S_{h_p},S_{t_q}}{S h 1 ​​,S t 1 ​​},…,{S h p ​​,S t q ​​}。

请注意,只有在前两种模式没有路径时,才提取这种类型的路径。

三、作者方法的优点

作者提取的每条路径代表一个可能的最小句子集。理想情况下,如果路径集足够,则应该成功捕获实体对之间的所有连接句子。换句话说,它们将通过我们的路径集中的各种路径来呈现。因此,路径的并集有望成为支持证据的超集。作者使用支持证据的覆盖范围来衡量他们路径集的充分性,这代表我们的路径完全涵盖支持证据的实例百分比。同时,路径总数(#Path)和路径的并集大小(#Sent)也应保持在较低的标准水平,以免冗余。

【笔记】Three Sentences Are All You Need Local Path Enhanced DocumentRelation Extraction

表2:C代表连续路径、M代表多跳路径、D代表默认路径;#Path是平均路径数,#Sent是平均句子数

如表2所示,作者的启发式规则能达到最高87.5%的实体覆盖率。而平均句子数则只有2.69,远低于文档平均句子数8。平均路径数也只有2.27不超过3条。

; 四、实验

通过将路径输入到 RE模型来对DocRED进行评估。 不同的是以前是将整个文档作为输入,但作者改为关于给定实体对的选定路径。(这三种路径怎么实现?)

计划:给定一对实体对,首先如2节描述的提取所有路径。因为每个路径对应于头实体和尾实体的一个可能连接,作者独立的预测与每一条路径的关系,并在之后汇总结果。

对于每一条路径c,作者将其中的所有句子连接为一个段[ w 1 c , . . . , w m c ] [w_1^c,…,w_m^c][w 1 c ​,…,w m c ​],其中句子的顺序和原文顺序相同。这个段将输入到 BiLSTM获得上下文特征[ h 1 c , . . . , h m c ] [h_1^c,…,h_m^c][h 1 c ​,…,h m c ​]。

一个实体语言片段的表示(从第s个单词到第t个单词)定义为:
m k c = 1 t − s + 1 ∑ j = s t h j c m_k^c = \frac{1}{t-s+1}\sum_{j=s}^th_j^c m k c ​=t −s +1 1 ​j =s ∑t ​h j c ​
e i c e_i^c e i c ​表示K个实体语言片段的平均值:
e i c = 1 K ∑ k m k c e_i^c = \frac{1}{K}\sum_km_k^c e i c ​=K 1 ​k ∑​m k c ​
然后,作者使用一个两层感知器,基于当前路径c,计算每个关系r的概率:
P i j c ( r ) = σ ( F ( [ e i c ; e j c ; ∣ e i c − e j c ∣ ; e i c ∗ e j c ] ) ) P_{ij}^c(r) = \sigma(F([e_i^c;e_j^c;|e_i^c-e_j^c|;e_i^c*e_j^c]))P i j c ​(r )=σ(F ([e i c ​;e j c ​;∣e i c ​−e j c ​∣;e i c ​∗e j c ​]))
其中σ ( ⋅ ) \sigma(·)σ(⋅)是Sigmoid函数,F(·)表示两层感知器。

​ 在获得给定实体对之间的每个路径的预测后,我们选择最有可能的预测:
P i j ( r ) = m a x c P i j c ( r ) P_{ij}(r)=max_cP_{ij}^c(r)P i j ​(r )=m a x c ​P i j c ​(r )
对隐藏大小为256的BiLSTM编码器使用Glove-100嵌入。根据之前的研究(Nanetal.,2020b),作者报告了句内和句间实体对的f1以及总体f1得分作为评价指标。

Original: https://blog.csdn.net/sun_yi_gui/article/details/121639593
Author: sun_yi_gui
Title: 【笔记】Three Sentences Are All You Need Local Path Enhanced DocumentRelation Extraction

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/531562/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • Linux下安装Nginx1.9.3

    操作系统:CentOS6.5 64bit Nginx: 1.9.3 1、下载Nginx 2、安装依赖的库 3、安装pcre,用于重写rewrite 将pcre安装到 /usr/lo…

    大数据 2023年6月3日
    067
  • [Golang]Gorm使用汇总

    Gorm使用汇总 资料 安装 数据库配置 数据库连接 * sqlite3 mysql 模型定义 * tag:gorm 表名 基础操作 * 新增 – NewRecord主…

    大数据 2023年11月11日
    038
  • Android关于VideoView的一些思考和总结

    Android关于VideoView的一些思考和总结 原创 Stven_King2022-08-22 16:29:08博主文章分类:Android ©著作权 文章标签 androi…

    大数据 2023年5月24日
    068
  • Kafka从入门到放弃(二) —— 详说生产者

    上一篇对Kafka做了简单介绍,还没看的朋友可以点击下方链接。 Kafka从入门到放弃(一) —— 初识别Kafka 消息中间件必须与生产者和消费者一起存在才有意义,这次先来聊聊K…

    大数据 2023年6月3日
    075
  • 附011.常见Linux镜像站点大全

    开源系统镜像站点 推荐指数从上往下依次递减。 推荐指数从上往下依次递减。 推荐指数从上往下依次递减。 推荐指数从上往下依次递减。 主流软件国内站点 官方默认仓库 国内加速仓库 使用…

    大数据 2023年5月27日
    051
  • 673. 最长递增子序列的个数、Leetcode的Go实现

    ​​673. 最长递增子序列的个数​​ 给定一个未排序的整数数组,找到最长递增子序列的个数。 示例 1: 输入: [1,3,5,4,7]输出: 2解释: 有两个最长递增子序列,分别…

    大数据 2023年5月26日
    066
  • JuiceFS 在数据湖存储架构上的探索

    大家好,我是来自 Juicedata 的高昌健,今天想跟大家分享的主题是《JuiceFS 在数据湖存储架构上的探索》,以下是今天分享的提纲: 首先我会简单的介绍一下大数据存储架构变…

    大数据 2023年6月3日
    092
  • BERT如何解决一词多义问题

    知乎上有一个这样的问题: Bert 在pretrain的时候 每个字的输出都是经过一个分类层后去预测自己 由于分类层中的权重是固定的 所以不管输入和中间的encoding有多么的复…

    大数据 2023年5月28日
    078
  • docker镜像打tar包

    因为服务器A不能访问外网,连不上镜像仓库,只能通过指定的文件服务器进行文件的传输,所以需要将镜像打成tar包间接上传到服务器A。 本机拉取镜像 将镜像打包成tar文件,且将tar文…

    大数据 2023年5月29日
    061
  • Scala基础

    一、概述 Scala是一门多范式的编程语言,一种 类似java的编程语言 ,设计初衷是实现可伸缩的语言 、并集成面向对象编程和函数式编程的各种特性。 Spark就是使用Scala编…

    大数据 2023年5月25日
    085
  • 【HDFS】一个RPC的生命周期,从服务端接收到响应的各个阶段的统计指标

    注:本文参考的hadoop版本是:3.3.2 ; RPC生命周期 在ProcessingDetails.Timing枚举类里: public enum Timing { ENQUE…

    大数据 2023年11月13日
    049
  • Linux Cgroup v1(中文翻译)(6):Memory Resource Controller

    注意:这份文件完全过时了,需要整体重写。但它仍然包含有用的信息,所以我们将把它保存在这里,但如果您需要深入了解它,您需要确保检查当前的代码。 [En] This document …

    大数据 2023年5月27日
    050
  • Windows/Ubuntu 双系统完美教程

    此处假定你已经安装好Windows,并且能够看懂英语。 不同于一般推荐于英文官网下载,此处建议在中文官网下载。这样可以利用Ubuntu在国内架设的镜像,也方便日后使用 apt-ge…

    大数据 2023年5月26日
    072
  • redis是干什么的

    大数据 2023年11月14日
    038
  • hdfs的使用

    今天学习了hdfs的使用,下面介绍我学习的如何使用hdfs: 本文档的目标是为Hadoop分布式文件系统(HDFS)的用户提供一个学习的起点,这里的HDFS既可以作为​​Hadoo…

    大数据 2023年5月26日
    078
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球