Press "Enter" to skip to content

命名实体识别新SOTA:改进Transformer模型

本站内容均来自兴趣收集,如不慎侵害的您的相关权益,请留言告知,我们将尽快删除.谢谢.

 

作者 | 刘旺旺 编辑 | 唐里

 

TENER: Adapting Encoder for Name Entity Recognition

 

链接: https://arxiv.org/pdf/1911.04474.pdf

 

代码:暂无

 

一.动机

 

Transformer 模型以其良好的并行性能力以及出色的效果,被广泛应用于nlp领域的各大任务,例如机器翻译,预训练语言模型等。博客( https://zhuanlan.zhihu.com/p/54743941)也从多个方面,实验论证Transformer 模型优于CNN和RNN模型。然而,在NER任务上,Transformer的效果远不如BiLSTM。

 

二.预备知识

 

 

命名实体识别, 简称NER,是指识别文本中具有特定意义的实体,主要包括人名、地名、机构名、专有名词等,以及时间、数量、货币、比例数值等文字,通常被看做是序列标注任务,现有主流的方法是使用神经网络来做,包括三个部分:词向量层,上下文编码层,解码层。

 

Transformer

 

Transformer layer包含两个部分:Multi-Head Attention (MHA) 和Position-wise Feed-Forward Network (FFN)。

 

MHA:

 

单个attention head计算方式:

 

 

多个attention head计算方式:

 

 

FFN:

 

MHA层和FFN层之间,以及FFN层之后还包含一个残差连接和norm层。详细可见论文 https://arxiv.org/pdf/1706.03762.pdf

 

三.解决方法

 

论文分析了Transformer在NER任务上效果不好的原因,并提出了改进方法TENER (Transformer Encoder for NER)。

 

Transformer在NER任务上效果不好的原因

 

 

如Figure1所示,方向信息以及相对位置,对于NER任务是重要的。 例如,“Inc”单词之前的词很有可能就是机构组织(ORG),“in”单词之后的词,很有可能是时间地点(TIME);并且一个实体应该是连续的单词组成,标红的“Louis Vuitton”不会和标蓝的“Inc”组成一个实体。但是原始的Transformer无法捕获这些信息 。

 

针对上述问题,论文提出了两点改进:

 

(1)提出带有方向与相对位置信息的 atteniton 机制;

 

(2)丢弃了原有 Transformerself-attention 的 scale factor,scale factor的引入是为了得到分布相对均匀的attention权重,但是在NER中,并不需要关注所有词。

 

另外,除了使用 Transformer 来建模词级别的上下文信息,还使用 Transformer 来建模 character 级别信息。

 

论文改进的TENER

 

 

1. 词向量层

 

为了改善数据的稀疏性以及 oov 问题,NER任务通常使用 CNN 编码 character 序列来表示单词。与 Bilstm 相比,CNN在编码 character 序列上更有效,论文也探索了使用 Transformer 来编码 character  序列得到单词表征。最后的词向量表示,是 character  序列表征的单词与外部预训练词向量的拼接。

 

2. 带 有方向与相对位置信息的 atteniton 机制

 

原始transformer encoder使用如下公式来获得位置向量:

 

 

t是单词在文本中的位置,d是位置向量的维度,也是词向量的维度, 。根据公式,分别计算位置向量中奇数维度和偶数维度的值。 论文指出,根据公式(8)(9)得到的位置向量仅仅带有相对位置信息,而不包括方向信息 , 证明如下:

 

 

 

其中, 是一个常量 (11)到公式(12)由公式 得到。由公式(13)可知,第t个位置的位置向 与第t+k个位置的位置向量 相乘,得到的结果只与相对位置k有关。并且,令 ,可得:

 

 

公式(14)(15)更进一步说明了,根据公式(8)(9)得到的位置向量仅仅带有相对位置信息,而不包括方向信息,fingure3也证明了这个结论。

 

 

更重要的是,在计算self-attention时,仅能捕获的相对位置信息这一特性,也会消失。 由公式(1)可知,在进行self-attention时,首先需要经过矩阵 , 将H(位置向量和词向量的组合)转化到相应的空间。实际上,两个位置向量 , 进行的运算为 ( 被看成一个矩阵,可得 )。随机采样得到两个W,绘出 结果图,如fingure4所示,在没有进行矩阵转换时,位置向量可以捕获相对位置信息,经过矩阵转换后,即进行self-attention时,相对位置信息被破坏。

 

 

论文使用如下公式代替公式(1)-(3)以及公式(8)(9),来计算self-attention,同时捕获相对位置信息和方向信息:公式(16)与公式(1)相比,K不再经过 映射的;t是目标token的索引,j是上下文token的索引,公式(17)在进行位置编码时,引入了相对位置以及方向信息,距离为t(j=0)与距离为-t(j=2t)的两个位置的位置向量在奇数维度上是不同的,偶数维度上是相同的,如公式(20)所示。公式(18)在计算attention权值时,将词向量与位置向量分开计算(位置对NER任务来说时及其重要的),并且加了偏置项。公式(19)相比公式(3)去掉了 。

 

 

 

问题是,K不再是经过映射的,所以K的维度是和词向量维度一样为d,是无法与(维度为)进行矩阵相乘的运算的。论文作者也表示,这里存在一些笔误,想要表达的意思是,计算每一个attention head从K(也就是H)依次选取0到维度,到 ,依此类推。

 

3. CRF layer解码

 

同先前Bilstm,主要是为了将不同tag之间的依赖信息引入。给定输入序列: ,以及标注 。 代表所有可能的标注序列。标注y的概率计算如下公式:

 

 

其中, 计算从标注 到标注 的转移分数以及的分数,优化的目标是最大化 。解码时,使用维特比算法,选择概率最大的y。

 

四.实验结果

 

数据集

 

 

在中文数据集上的结果(table1),中文的NER是直接基于字的:

 

 

1. TENER的效果不仅优于原有的Transformer模型,而且优于基于CNN的模型和基于Bilstm的模型. 其中因为CAN_NER使用了100维的预训练的字向量和bigram向量,所以效果较好。

 

2. Weibo数据集相对较小,因此不同的模型在这个数据集上的表现效果都比较差。TENER模型相比其他模型也提高了效果,这也表明,本论文提出的改进方法,对数据集的大小具有一定的鲁棒性

 

3. 带scale factor的 self-attention 会使得结果变差。

 

在英文数据集上的效果(table2):

 

1. TENER在英文数据集上的效果不仅优于原有的Transformer模型,而且优于基于Bilstm的模型,并取得了当前最好的结果。

 

2. 同样带scale factor的self-attention会使得结果变差。

 

 

不同的character编码器和word上下文编码器的组合结果(table4):

 

 

在两个英文数据集上,比较了不同的character编码器和word上下文编码器的组合结果,由table4可看出,在conll2013数据集上,基于CNN的character编码器+基于TENER的word上下文编码器取得了最好的效果;然而在OntoNote5.0上,全部使用TENER模型取得了最好的效果。但是无论使用什幺样的character编码器甚至不使用character编码,换用TENER模型建模word上下文都可以提升效果。

 

收敛速度的比较(figure5):

 

 

TENER模型的收敛速度与Bilstm相等,比transformer和ID-CNN要快。

 

五.总结

 

1. 分析了Transformer 在NER任务上效果不好的原因

 

2. 改进了Transformer的位置编码及self-attention部分(TENER模型),用于NER,取得了较好的效果,在两个英文数据集上,达到了当前最好的效果。

 

3. 论文比较出彩的地方在于对Transformer 在NER任务上效果不好原因的分析 。对self-attention的改进有点类似Transformer XL。

Be First to Comment

发表评论

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