Pyramid: A Layered Model for Nested Named Entity Recognition
ACL 2020 Jue Wang 浙江大学CAD&CG实验室
Source: Pyramid: A Layered Model for Nested Named Entity Recognition
Abstract
我们干了什幺:提出了一个分层嵌套实体抽取模型。
我们大概怎幺做 首先,我们把词or文本区域embedding循环喂给L层flat NER层。从底到高,堆成一个金字塔型。一个embedding每一次通过金字塔到一层,长度会减1。它的l层隐藏层表示输入的l-gram,它会在其对应的文本区域是一个完整实体时被标注。 其次,我们设计一个反向金字塔来实现层之间的双向交互。
我们的实验效果 我们提出的模型在嵌套NER数据集,ACE2004,ACE2005,GENIAl,NNE上获得最佳的F1值,分别为80.27, 79.42, 77.78, 93.70, 加上语义模型后取得87.74, 86.34, 79.31, 94.68。
此外 我们的模型可以用于更多常规的重叠命名实体抽取。一个初步的实验验证了我们的方法在重叠实体的有效性。
Introruction
首先 由命名实体抽取过于简化问题,并且基于一个假设:实体不会互相嵌套或者重叠。这并不是真实情况。引出在真实情况下,实体可能会存在深层嵌套或重叠,需要用更复杂的模型来解决嵌套实体抽取问题。
那幺嵌套实体抽取问题,有什幺做法?
传统做法:
许多之前的方法注重的是直接识别嵌套实体。少部分工作采用专有模型如:选区图or超图来直接抓取嵌套实体。然而这类方法效果并不令人满意。
对于我们的baseline存在什幺问题?
一些其他的工作通过分层模型来处理嵌套实体,通过使用多个flat NER层,每一层负责预测一组相同嵌套级别的嵌套实体。
但是传统的分层模型无法处理更普通的重叠情况,而且受到层迷失的影响。层消失就是模型在错误的嵌套层输出嵌套实体。这导致得到一个FP预测,其中实体的span和class是正确的,但是在错误的层输出,这会导致模型趋向于不预测正确的实体,最后破坏召回率。这是一个很常见的问题。同时在2018年的一篇分层模型论文上提出了错误传播问题。
我们怎幺做
本文提出一种金字塔模型,模型由一堆内部连接层组成,其中每一层预测长度为L的实体,即每一层解码层需要干的事情就是确认当前的文本域(长度为L,但在embedding的长度为1)是否是一个完整实体。高层实体的embedding通过卷积操作聚合来自底层两个邻近实体隐藏状态。这里的金字塔源来就是高层句子长度比底层句子小一。经过这类卷积操作,模型会遍历所有的文本span,同时不改变句子结构。
由running example可以得知每一层解码层依赖于底层解码层,因此设计一个反向金字塔结构来接受来自高层的信息,实现信息反向流动。
模型解决了什幺问题以及贡献
解决了三个问题:
1. 它可以用于更多普遍的嵌套实体抽取任务
2. 通过长度为L的实体仅在层L预测来防止层迷失的产生
3. 减缓错误传播,因为一个层的预测不会表示其他层
贡献:
1. 提出一种金字塔模型,实现嵌套实体抽取问题且解决层迷失和错误传播问题,同时模型还能解决更普遍的重叠实体问题。
2. 除了常规的金字塔模型,还设计了反向金字塔模型实现邻层的信息交互。
3. 分别在四个数据集上实验。模型在没有添加语言模型情况下,相比之前的方法,均取得了最佳的性能。
4. 构建一个小的包含重叠但不嵌套的数据集,数据集上的初步结果展示了模型处理重叠实体的潜力。
Related work
首先讲了flat NER发展,接着讲nested NER的发展,分为直接抓住嵌套实体和分层模型两类讲。然后讲域分类模型,最后讲语义模型
Model
Input and Output
输入是一个长度为T的句子,经过编码后,递归输入到解码层,生成L个标注序列。这里仅仅标注B(这里认为n-gram是一个实体)。对于上面给出的例子,下面是标注结果。
但是上面的结构只能预测长度不超过L的实体,当长度超过L时则,无法预测。因此在最后一层同时预测B和I,来解决这个问题,这是一种贪心解法。变为下面结果。
Encoder
字符编码有利于模型处理OOV问题。
添加预训练编码信息,线性层维度还原。
Pyramid
LSTM:识别长度为l的实体 CNN:聚合两个邻接隐藏层的状态,同时使得句子长度减1,并传递给更高层解码。
这里注意输入的bias和scale不同于其他层的输入,这对训练不利,因此用layer normalization来解决。LN:模型更加稳定,反正模型过拟合,加快训练速度
Inverse Pyramid
通过另一个CNN加Padding来重建低层文本域embedding。对于中间层,串联上一层的normal和inverse隐藏层来作为CNN的输入。对于最后一层,由于没有inverse的隐藏层,用0替代。
两个好处: 1. 获取高层编码层的反馈,允许邻接编码层之间的信息交互
2. 由于需要重建低层句子embedding,这需要模型尽可能保持原始信息。从而减轻长实体的信息损失。
用前向传播层来预测类别
Experiment
Datasets
使用ACE-2004, ACE-2005, GENIA, NNE四份数据集。
其中,ACE系列和GENIAl采用这篇论文Joint mention extraction and classification with mention hypergraphs. NNE采用原始数据集和预处理
Training Detail
Basic:单向金字塔 FULL:双向金字塔
下面是超参数设置
预训练模型: Flair,char embedding(提供参考文章),BERT word embedding(提供参考文章),ALBERT
Result
实验结果表面模型性能取得最佳
下图是对L和推理速率对比较,可以看到L越小推理速率越快,这也是符合实际情况的。同时当L越大,模型的效果会变好。大于L模型预测使用一种贪心方法,这对模型的性能是有影响的。而且L在大于16后,略微出现一点过拟合效果。但是即使L取8或4,模型的性能仍比大多baseline要好。
Ablation
下面是对charembs,layernorm,lstm,reducelength实验。
Char Embedding:抓取拼写和形态特征,同时有利于解决OOV问题
Layer Normalization:对输入做一个归一化,消除输入bias和scale的影响。
Share LSTM:最大化利用训练数据,防止过拟合。
Method of Reducing Length:CNN有效的保留原始语义信息和抓取边界信息
Pyramid:L=1时,退化为常规NER
Overlapping Entity Recognition
这里作者自己创建了一个仅存在重叠实体,而不包含嵌套实体的数据集,实验结果表明模型能够有效的处理重叠NER问题。
Conclusion
本文提出来一个双向分层模型用于嵌套实体抽取。模型可以考虑低层到高层,高层到低层的全局信息,且不受到层迷失,错误传播影响。同时该模型适用普通的重叠实体任务。
个人认为的创新:
1. 提出一种金字塔模型,实现嵌套实体抽取问题且解决层迷失和错误传播问题。
2. 设计了反向金字塔模型实现邻层的信息交互。
Be First to Comment