NLP

信息抽取-关系抽取

ACL2020, CASREL [1]

Motivation

  1. 早期的工作,将关系抽取视为pipeline的任务:先做一个NER,识别出sentence中所有的entity;然后再对每个实体pair做relation classification(RC)
    • 这种pipeline的方式存在错误传递,即NER出现错误,那么显然RC任务也必然出错
  2. 也出现了一些做entity和关系联合抽取的任务,但是针对关系抽取中overlapping(Entity Pair Overlap和Single Entity Overlap)问题做的不是很好,如下图
    • 存在overlap的问题,很难用唯一的tag来标注一个token
    • 将关系抽取视作分类问题,会导致数据严重不平衡: 绝大多数实体pair都不存在关系,这相当于对关系抽取增加了过多的负例

本文的观点是将关系抽取视作一个映射函数:从subject 到 (object, relation)

  • 先做实体识别,再做关系抽取:f(s, o) \rightarrow r
  • 本文的工作: f_{r}(s) \rightarrow o

Method

模型如下:

由图(从下至上):

  1. 通过BERT编码sentence H=(h_1,h_2,\cdots,h_n)
  2. subject抽取:这里是对subject做了一个span抽取,即两个独立的二分类器:当前token是否是subject的开始/结尾
  3. object抽取:因为是希望做f_{r}(s) \rightarrow o,那么做object抽取时需要融入subject信息
    • subject信息编码:取subject span起始位置(训练时,用的是gold label的span区间)两个token对应的embedding,按位加之后求平均得到\mathbf{v}_{s u b}^{k},那么token i对应的embedding变为h_i^{‘}=h_i+\mathbf{v}_{s u b}^{k} (这里代码和论文有出入,介绍以代码为准)
    • object抽取:这里对每个token做relation\ num\ *\ 2独立的二分类, 即对每种relation,都做一次独立的object span抽取

    note:对于一个样本,存在多个subject的情况,生成训练数据时一个只会随机取一个subject做对应的object抽取,猜测的原因如下: (可以理解为当epoch数足够的时候,模型也会见到所有的训练数据)

    • 多个subject的信息不容易融合(当然这不是根本问题,比如可以用attention来解决)
    • 不容易将subject和object对应 & 因为subject的数目是动态变化的,不易处理

整体来看:

  • 对于一个训练样本,模型会尝试预测所有的subject,只会预测一个subject对应的(relation, object)
    • 在模型做预测时,一个样本预测得到n个suject,则对做n词object的预测,从而得到全部的关系三元组
  • span抽取的结果转label时,采取最近原则,即选取最近的(start, end) pair

Result

  • 模型在NYT和WebNLG相较于之前的工作,有明显的提升,如Table 2
  • 同时作者对结果做了更细致的分析:
    • 将所有样本根据overlap情况分成三类:1) normal: 不存在overlap, 2) EntityPairOverlap: 存在subject和object同,relation不同的情况, 3) SingleEntityOverlap: 存在subject和object仅有一个overlap

    这三种情况抽取关系的难度递增,但CASREL表现均较好,如Figure 3

    • 探究模型在样本中关系三元组数目不同情况下的表现,从结果来看(如table 4)三元组数目对结果基本没有影响, 这里我的理解是:
      • 做span抽取的时候,是多个独立的二分类器,本身分类器独立 & 模型结构也能处理overlap的情况,那么结果自然不受样本关系三元组数目的影响



Reference

1. A Novel Cascade Binary Tagging Framework for Relational Triple Extraction

发表评论

电子邮件地址不会被公开。 必填项已用*标注