2020_Joint Entity and Relation Extraction with Set Prediction Networks


论文

Abstract

  • 联合实体和关系抽取任务的目标是从一个句子中抽取所有关系三元组。本质上,句子中包含的关系三元组是无序的。以前的基于seq2seq的模型进行关系抽取时,受限于自回归的解码器(auto-regresive decoder),需要固定关系三元组的顺序,模型不仅要学习抽取关系,还要避免顺序错误。
  • 所以从生成顺序无关的关系三元组、并行生成三元组集合出发提出了以非自回归并行解码器为特征的变压器网络(networks featured by transformers with non-autoregressive parallel decoding),它可以一次直接输出所有关系三元组。
  • 此外,设计了基于集合的损失函数:二部图匹配损失函数(Bipartite Matching Loss)通过二部图匹配来强制进行唯一的预测。
  • 实验证明提出的方法优于当前最新方法。

Introduction

关系三元组由通过语义关系连接的两个实体组成,语义关系的形式为(主题,关系,对象)。主要方法如下:

  • pipeline:采用流水线的方式抽取实体和关系,首先识别实体,然后预测抽取的实体之间的关系。忽略了实体识别和关系预测的相关性,且易受到错误传播问题的困扰。
  • 为了明确地为交叉任务的依赖关系建模并防止pipeline方法中的错误传播,提出了实体关系联合抽取。大致可归纳为三种范式:①将实体关系联合抽取任务看做end2end的表填充问题。编码层共享参数,解码层独立解码。尽管此在单个模型中使用共享参数表示实体和关系,但它们分别提取实体和关系并且产生冗余信息。②将实体关系联合抽取任务转化为序列标记问题,需要设计复杂的标记方案,每个标签需要同时表示实体和关系的信息(之前的方法无法解决嵌套、重叠实体)。③将实体关系联合抽取任务转化为seq2seq问题,解码时生成关系三元组,多次生成可解决嵌套、重叠实体。

本文遵循基于seq2seq的模型进行联合实体和关系提取。现有的基于seq2seq的模型取得了成功,但仍受到自回归解码器和交叉熵损失的限制。原因如下:

  • 句子中的关系三元组没有顺序。但是为了适应输出为序列的自回归解码器,在训练阶段必须对无序的目标三元组按一定的顺序进行排序。
  • 交叉熵是一个对排列敏感的损失函数,其中预测从该位置向外预测的每个三元组都会受到惩罚。

本文主要贡献:

  • 将实体关系联合抽取任务表述为集合预测问题。
  • 将非自回归并行解码与二分匹配损失函数相结合避免考虑关系三元组顺序问题。
  • 提出集合预测网络(SPN)在两个基准数据集上产生了最新的结果,并且实验证明该方法的有效性。

Method

联合实体和关系提取的目的是识别给定句子中所有可能的关系三元组。形式上,给定原始句子X,非自回归解码器目标三元组的条件概率为:
在这里插入图片描述

  • 其中,PL(n|X;θ)表示目标三元组的大小,n为关系三元组的个数,本文设为常数m(一般远超过句子真实包含关系三元组的数目),p(Yi|X,Yj≠i;θ)表示目标三元组Yi不仅与给定句子X有关,而且与其它三元组Yj≠i有关。
  • 非自回归解码器:不仅可以避免学习多个三元组的抽取顺序,而且可以基于双向信息(不是从左到右)生成三元组。

在这里插入图片描述

Sentence Encoder

句子编码模块:获得句子中每个token的上下文表示。

  • BPE(byte pair encode):将输入的句子用字节对编码的token分割,然后输入到Bert;
  • BERT:输出token的上下文感知(context-aware)编码,记为He,大小为l×d,l为句子长度(包括[CLS]和[SEP]开始和结束标记),d为Bert隐藏单元数量。

Non-Autoregressive Decoder for Triple Set Generation

Input.

  • 在开始解码之前,解码器需要知道目标集的大小,换句话说,首先需要对等式1中的pL(n | X)进行建模。在这项工作中,我们通过要求非自回归解码器为每个句子生成固定大小的m个预测集来将pL(n | X)简化为一个常数(m>>n)。
  • 解码器的输入不是从编码器端复制的token,而是由m个可学习编码初始化,称之为三重查询(Triple Querise)。注意,所有的句子都共享相同的三重查询。
  • 非自回归解码器由N个相同的Transformer层组成,在每个Transformer层中都有多头self-attention机制可得到三元组之间的关系以及多头inter-attention机制融合给定句子的信息。

Architecture.

  • 将初始化的m个Triple Queries输入到非自回归解码器,得到m个输出编码记为Hd,大小为m×d。
  • 通过前馈神经网络(FFN)将Hd解码为关系类型和实体,得到m个最终的预测三元组。

获得预测的关系类型:
在这里插入图片描述
类比对sentence做span,融合了句子信息He和三元组信息Wr,分别使用四个l-class分类器来得到预测的实体(subject和object)的star和end位置索引:
在这里插入图片描述
其中,Wr,Wi,Vi为可学习参数,t为关系类型的总数(包括一个特殊关系类型∅,表示没有关系三元组),l为句子长度,He为Bert的输出。

Bipartite Matching Loss

训练的主要困难就是根据事实对预测的三元组打分。本文提出了集预测损失(set prediction loss),该损失函数可以在预测和真实的三元组之间产生最佳的二分匹配。

  • 二部图匹配损失函数(Bipartite Matching Loss):在预测的三元组集合和ground truth三元组集合间计算损失。
  • 两个集合的元素进行最优匹配:预测的集合大小为m,如果ground true集合小于m则补充∅至大小为m。
  • ground truth triples 表示如下:
    在这里插入图片描述
    第i个元素Yi可表示为:
    在这里插入图片描述
    其中,ri为目标关系类型,可为∅。
  • predicted triples 表示如下:
    在这里插入图片描述
    第i个元素表示为:
    在这里插入图片描述

计算二分匹配损失的过程分为两个步骤:找到最佳匹配和计算损失函数。

  • 第一步
    为了找到真实三元组集合和预测三元组集合之间的最佳匹配,以最低成本搜索置换元素:
    在这里插入图片描述
    其中π (m)是所有m长度排列的空间。Cmatch(Yi,Y^π(i))是真实Yi和索引为π(i)的预测三元组之间成对的匹配代价。
    通过考虑关系类型的预测和实体范围的预测,将定义代价函数如下:
    在这里插入图片描述

寻找最优匹配的过程,实际上相当于对m个人分配m个任务,第i个人做第j个任务的代价为Cij,寻找最优方式将这m个任务分配给m个人,使得总代价最小,这就是二部图匹配问题,可以利用匈牙利算法求解,时间复杂度为O(m^3)。

  • 第二步
    为上一步中匹配的所有对计算损失函数。将损失定义为:
    在这里插入图片描述
    其中π*是第一步计算得到的最优分配,即对最优匹配得到的m个三元组对计算loss,如果关系为∅,则关系中的头尾实体不参与loss计算。

Experiments

SPN模型在NYT和WebNLG数据集上进行实验,数据如下:
在这里插入图片描述
实验结果

  • Q1:联合抽取模型SPN的整体性能如何?
    在这里插入图片描述
    在这里插入图片描述
    对比CasRel F1在NYT上提升2.9%,在 WebNLG上提升1.6%。
  • Q2:SPN模型中每个设计对结果的影响?
    在这里插入图片描述
    通过消融实验,对比了交叉熵loss和二部图匹配loss,以及非自回归解码层数对结果的影响,得到了NAT层数为3时最优,二部图匹配Loss优于交叉熵Loss 。
  • Q3:数据中存在不同数量的三元组对性能的影响:
    在这里插入图片描述
    数据中三元组数量越多(信息越复杂),对比其他方法SPN的效果越显著。
  • Q4:该方法在解决重叠模式问题上性能如何(EPO, SEO)?
    在这里插入图片描述
    和其他方法对比了Normal、SEO、EPO三种triple类型下效果,在复杂问题上(SEO, EPO),相比与其他方法SPN效果显著。

Conclusion

先判断关系,再抽取subject和object

  • 本文提出了实体关系联合抽取SPN模型。与基于seq2seq模型相比,将实体关系联合抽取任务定义为集合预测问题,避免考虑三元组顺序问题。
  • 为了解决集合预测问题,将非自回归并行解码器与二部匹配损失函数相结合。
  • 在两个广泛使用的数据集上进行了大量的实验,证明所提出的SPN模型的有效性。
  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

All in .

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值