专栏首页AI科技评论命名实体识别新SOTA:改进Transformer模型

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

作者 | 刘旺旺 编辑 | 唐里

TENER: Adapting Transformer 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

命名实体识别, 简称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。

本文分享自微信公众号 - AI科技评论(aitechtalk),作者:刘旺旺

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-11-26

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 从头开始了解Transformer

    编者按:自2017年提出以来,Transformer在众多自然语言处理问题中取得了非常好的效果。它不但训练速度更快,而且更适合建模长距离依赖关系,因此大有取代循...

    AI科技评论
  • 计算机视觉"新"范式: Transformer | NLP和CV能用同一种范式来表达吗?

    自从Transformer出来以后,Transformer便开始在NLP领域一统江湖。

    AI科技评论
  • 学界 | Google Brain提出基于固定尺寸记忆表示的注意力模型,翻译任务推理速度提高20%

    AI科技评论按:Attention模型是近些年来自然语言处理领域重要的进展之一。注意力模型是从认知心理学中人脑注意力模型中引入的概念,在人观察世界时,对不同对象...

    AI科技评论
  • 校门外的树(C语言)

    Hope is a good thing, maybe the best of things。And no good thing ever dies。期望是一件...

    小Bob来啦
  • 从0打卡leetcode之day 5 ---两个排序数组的中位数

    最简单粗暴的就是把这两个数组头尾连接起来,然后重新给他们排序一下,冒泡排序相信你信手拈来,当然,你也可以装逼用快速排序。

    帅地
  • Java双属性枚举使用

    最近有小伙伴问我,双枚举类该怎么写,还得包括根据key取值方法。 于是就手写一个案例如下:

    执笔记忆的空白
  • 无法解析服务器的DNS地址

    背景: 打开浏览器突然之间发现无法上网了,提示说无法解析服务器的DNS地址 ? 原因: DNS,就是将域名转换为IP地址功能的服务器 DNS解析不了,是由于...

    运维小白
  • scrapy进阶开发(一):scrapy架构源码分析

    其子类有HtmlResponse,TextResponse,XmlResponse

    Meet相识
  • 《Python基础教程》 读书笔记 第九章 魔法方法、属性和迭代器 (上)

    在Python中创建一个构造方法很容易。只要把init方法的名字从简单的init修改为魔法版本__init__即可:

    统计学家
  • 常用正则表达式

    gaozihang-001@gmail.com 只允许英文字母、数字、下划线、英文句号、以及中划线组成

    vivec

扫码关注云+社区

领取腾讯云代金券