[论文解读]EMNLP2019: A Boundary-aware Neural Model for Nested NER

简介

Motivation

[论文解读]EMNLP2019: A Boundary-aware Neural Model for Nested NER
在 NER 任务中,有一类特殊的 nested entity, 即两个不同的实体相互嵌套,如Figure1中的 protein 实体 和 RNA 实体。在这种情况下,同一个 token (例如图中的 “1” ), 就会具备不同的实体标签。

传统方法会通过人工提供特征来解决这里问题,但却受限于特征工程的繁重工作。在今年的方法中,有两类方法解决nested NER问题:

  • Layered Sequence Labeling model: 通过层级的序列标注,先识别内层的实体,然后基于此通过下一层的序列标注来识别外层的实体;然而这一方法的受限于错误传递
  • Region Classification Model: 发现序列中所有可能的实体位置区间(span), 将他们输入分类层来发现具体的实体;然而这一方法的缺点是由于缺乏精确的边界信息,会抽取出很多并非 target entity 的 entity mention.

基于以上两种方法的优缺点,本文考虑将他们结合起来: 用序列标注模型来发现实体的位置,用 region classification model 对序列标注发现的 entity span candidate 进行实体类型的分类; 同时,由于 实体标签预测 和 边界发现 是在同一区间范围内的,因此引入多任务学习对它们进行优化

Contributions

  • 本文设计了边界感知的神经网络模型来预测实体的类别信息,它可以首先定位出实体的位置(span), 然后在对应的位置区间内进行实体类型的预测;

  • 引入多任务学习来捕实体边界与事件标签之间的依赖关系;

  • 在公开的 nested NER 数据集上,本文模型取得了超越 SOTA 的效果,并在inference取得了更快的速度。

相关工作

在相关工作中,作者指出了如下几点:

  • 在现有的 NER 相关工作中,对 nested NER 进行研究的工作相对较少;

  • 现有的 nested NER 工作提出的方案,可能是考虑了太多冗余的 span/region 信息, 或是 将边界预测和标签分类两个字任务太过于隔离,没有很好地利用现有的上下文信息。

  • 本文提出的模型,则是用 更少、更精确的实体边界信息,来提高实体分类的性能

模型

[论文解读]EMNLP2019: A Boundary-aware Neural Model for Nested NER
本文模型具体包括以下部分:

Token Representaiton

对于包含 nn 个tokens的句子 (t1,t2,...,tn)(t_1, t_2, ..., t_n), 通过如下三个步骤得到初始的表示:

  • 通过 lookup table 获取 tit_i 的 word embedding:
    xiw=ew(ti) x_i^w = e^w(t_i)

  • 若一个token tit_i 包含若干个 characters xicx_i^c, 则先通过 ec(xic)e^{c}(x_i^c) 得到其对应的词向量,然后通过 BiLSTM 得到每个字符的表示:

xic=[hic;hic] x_i^c = [ \overleftarrow{h_i^c}; \overrightarrow{h_i^c}]

  • 最后将 token 和 对应字符的表示进行拼接:

xit=[xiw,xic] x_i^t = [x_i^w, x_i^c]

Shared Feature Extractor

在得到 xitx_i^t 的表示后,通过 BiLSTM 再次进行特征抽取:

[论文解读]EMNLP2019: A Boundary-aware Neural Model for Nested NER

Entity Boundary Detection

在边界检测阶段,对于句子 (t1,t2,...,tn)(t_1, t_2, ..., t_n), 我们将其包含的 entity 表示为 R(i,j)R(i,j), 表示 (ti,ti+1,...,tj)(t_i, t_{i+1}, ..., t_j) 构成一个实体。具体地,将 tit_itjt_j 标注为 BE, 区间内的token标注为 I, 非实体的token标注为 O

对于每个token, 通过如下计算预测其对应的边界标签:
[论文解读]EMNLP2019: A Boundary-aware Neural Model for Nested NER
并通过下式定义 boundary detection 的 loss:

Lbcls=(dit^log(dit)) L_{bcls} = -\sum{(\hat{d_i^t} \log(d_i^t))}

Entity Categorical Label Prediction

基于 boundary detection 得到 R(i,j) 的基础上,首先计算得到 R(i,j) 部分对应的表示:

Ri,j=[1ji+1k=ijhkt] R_{i,j} = [ \frac{1}{j-i+1} \sum_{k=i}^j{h_k^t}]

然后对 R(i,j) 进行实体类别的分类,并定义loss:
[论文解读]EMNLP2019: A Boundary-aware Neural Model for Nested NER

Multitask Training

多任务的 loss 如下定义, 其中 α\alpha 是控制各子任务重要性的超参

alphaLbcls+(1α)Lecls alpha \sum{ L_{bcls} }+ (1-\alpha) \sum{L_{ecls}}

实验

实验部分主要介绍了所用的数据集、Baseline、参数设置 和 评价函数。

结果与讨论

  • 分析总体实验结果。结果显示,本文模型的实验结果超越了现有的SOTA模型,且作者认为由于本文方法能更准确地发现entity边界以及 end2end 多任务抽取模式带来的提升,并在下文进行了分析。

  • 分析Boundary Detection上的实验结果。从文中表5,6 看出本文在Boundary Detection 上就取得了比其他模型更好的效果,作者将这归因于multiLoss 同时考虑了 实体边界与实体类型间依赖; 同时,正是因为Boundary Detection 上更好的实验效果,整个 nested NER 任务才取得了更好的效果

  • 分析本文模型与现有模型在 Inference Time 上的区别。本文模型取得了更高的效率,作者将这归因于 本文发现的 entity boundary 是更精确的,较之前人工作,non-entity boundary 更少。

  • 分析多任务学习的影响。作者将本文的 Boundary Detection 与 EntityLabel Prediction 用 Pipiline 的方式进行了运行,发现仍旧是ene2end取得了较好的结果。作者将这归因于,** Multi-task Learning 能够捕捉到 实体边界和实体类型标签间隐含的依赖信息**。

  • 分析本文模型在** Flat NER** 任务上的结果。作者用本文模型在 JNLPBA DataSet 进行了 Falt NER 的实验,仍旧取得了较好的效果。

  • 实例分析。作者通过一则实例对不同方法的特点进行分析,例句中 human TATA binding factor 是内嵌于 transcriptionally active human TATA binding factor的实体,Layered model 都只检出了 outer entity, 这说明相比之下本文模型能更加准确地发现 entity 的区间范围; 而本文方法的 PipiLine 模式只检测出了 inner entity, 这说明 Multitask 的方法能够在边界检测模块和实体类型预测模块间进行信息共享,这有助于结果的提升。

[论文解读]EMNLP2019: A Boundary-aware Neural Model for Nested NER


了解更多深度学习相关知识与信息,请关注公众号深度学习的知识小屋
[论文解读]EMNLP2019: A Boundary-aware Neural Model for Nested NER