[论文阅读笔记02]Nested Named Entity Recognition via Second-best Sequence Learning and Decoding

题目

Nested Named Entity Recognition via Second-best Sequence Learning and Decoding
通过次优序列学习和解码嵌套命名实体识别
Shibuya T , Hovy E . Nested Named Entity Recognition via Second-best Sequence Learning and Decoding[J]. 2019.

摘要

在训练神经模型上,设计了一个目标函数去处理嵌套实体的标签序列作为在双新实体跨度的次优路径;
在解码预测上,使用从外部到内部的迭代提取实体的方式;
效果为目前领先。

问题背景

[论文阅读笔记02]Nested Named Entity Recognition via Second-best Sequence Learning and Decoding_第1张图片

这个句子来自GENIA dataset。主体中包含了三个实体。也从很多文献得到,实体嵌套是一个很普遍的现象。如果默认为实体命名不带嵌套这个假设,会造成很多信息损失,同时,如果有下游任务的情况下,也会对下游有很大影响。

相关方法

列出与评价所有可能的子spans:
Wang and Lu (2018): 基于超图(hypergraph)方法去考虑所以可能的spans;
Sohrab and Miwa (2018):提出一个神经网络模型去枚举与分类出所有可能的spans;
缺点:在时间复杂度为代价来获取得更高的性能。
Muis and Lu (2017): 提出序列标注方法把标注赋值到词之间的空隙上,可以有效使用了Viterbi解码去处理。可是,在推理时有结构歧义。
Katiyar and Cardie (2018):也是基于超图的方法以贪婪的方法去学习这个结构。可是,这里增加了额外的超参作为threshold, 这个超参的设置是一个麻烦的问题。

具体模型

1. 基于CRF模型,两个关键点

  • 关键点1:对于NER的每个分类,使用相应的单独CRF;主要用来解决同样一个mention span被分类成多个实体类型;
  • 关键点2:每个CRF的转移矩阵的第个元素有一个固定值与合法转移与否相对应;这个主要用来保证外部的实体比较内部实体分数要高;
    定义实体类型K的分类形式化:
    [论文阅读笔记02]Nested Named Entity Recognition via Second-best Sequence Learning and Decoding_第2张图片

Z是一个序列在神经网络最后隐含层的输出表达,在多CRF中,

2. 解码(预测)

算法过程
[论文阅读笔记02]Nested Named Entity Recognition via Second-best Sequence Learning and Decoding_第3张图片

1) 在每个实体类型k中的解码过程中,我们首先对整个句子计算CRF分数;
2) 使用传统标准的线性链CRF的1-best Viterbi解码算法去解码序列,如果找到了,则加入到M的集合中;
查看例2,“Ca2+ -dependent PKC isoforms” 是在第一层抽取出来的,也就是1-best解压的结果。
3) 对于之前抽取的实体span,通过寻找第二优路径的方法,递归解码抽取嵌套实体;例如从“Ca2+ -dependent PKC isoforms” 中去找子实体,对于最优化的路径,计算出来的与之前计算的一样,所以去寻找第二优的CRF输出,这个例子中找到了PKC isoforms为实体;这个实现是detectNestedMentions()函数;
4)按这种递归的方法去重复3),即在detectNestedMentions函数中递归调函数直到结束(结束条件为没有实体被预测或单个Token被检测到);
[论文阅读笔记02]Nested Named Entity Recognition via Second-best Sequence Learning and Decoding_第4张图片

3. 训练

  • 损失函数
    在这里插入图片描述

Z表示神经网络的隐含层输出,
[论文阅读笔记02]Nested Named Entity Recognition via Second-best Sequence Learning and Decoding_第5张图片

  • 更具体的算法实现
  • 2nd-算法
    这里把最优路径(Best path)删除掉了.
    [论文阅读笔记02]Nested Named Entity Recognition via Second-best Sequence Learning and Decoding_第6张图片

算法开始的初衷:
[论文阅读笔记02]Nested Named Entity Recognition via Second-best Sequence Learning and Decoding_第7张图片

算法的正式化:
[论文阅读笔记02]Nested Named Entity Recognition via Second-best Sequence Learning and Decoding_第8张图片

实验–数据集

  • ACE-2005
  • GENIA
  • 具体情况
    [论文阅读笔记02]Nested Named Entity Recognition via Second-best Sequence Learning and Decoding_第9张图片

实验–baseline

BiLSTM-CRF(2 BiLSTM hidden layers)
模型1:BiLSTM-CRF的输入基于字符级与词级的embbedding级联;如GloVe(ACE-2005/100维)
模型2:模型与BERT预测训练相组合;BiLSTM层是在BERT模型的顶部输出;
模型3:BiLSTM-CRF的输入词嵌套,字符级的嵌套,BERT嵌套,FLAIR嵌套;

  • 相关参数设置
    [论文阅读笔记02]Nested Named Entity Recognition via Second-best Sequence Learning and Decoding_第10张图片

  • 优化器—AdaBound

  • 策略–Early stopping;

  • 重复实验五次,取平均值与标准差。

实验–结果

[论文阅读笔记02]Nested Named Entity Recognition via Second-best Sequence Learning and Decoding_第11张图片

实验–ablation研究

[论文阅读笔记02]Nested Named Entity Recognition via Second-best Sequence Learning and Decoding_第12张图片

总结

总的来说,这是一篇很不错的论文,对于写论文在形式上是比较标准的,思路很清晰。对于内容,提出一种从外入里的解决方案,另外,在讲述在训练的损失函数计算算法过程,试图通过最通俗的方法去说明它的算法流程,在算法设计上,重点是对2nd算子的细节描述。对于实验分析方面也是比较全面的,先是实验设计,实验流程,主要的效果,ablation研究,错误结果分析,运行时间效率分析等等。还是比较接地气的方法,是一篇很值得借鉴的文章。另外还有代码,细节可以从代码上进行深入去学习。

参考

[1] Shibuya, Takashi, and Eduard Hovy. “Nested Named Entity Recognition via Second-best Sequence Learning and Decoding.” arXiv preprint arXiv:1909.02250 (2019).
[2] github:https://github.com/yahshibu/nested-ner-tacl2020-transformers

[happyprince]https://blog.csdn.net/ld326/article/details/108236901

你可能感兴趣的:(NER,NLP)