TENER: Adapting Transformer Encoder for Named Entity Recognition

2021-03-17 04:25

阅读:514

标签:transform   序列   product   position   src   基础   处理   作用   algo   

论文地址:https://arxiv.org/abs/1911.04474

Abstract

BiLSTMs结构在NLP的任务中广泛应用,最近,全连接模型Transformer大火,它的 self-attention 机制和强大的并行计算能力使其在众多模型中脱颖而出,但是,原始版本的 Transformer 在命名体识别(NER)中表现却不像在其他领域中那么好,本文将介绍一种叫 TENER 的模型,是在 Transformer 的基础上为 NER 任务改进的,既可以应用在 word-level,也可以应用在 character-level。通过使用位置感知的编码方式和被削减的attention,我们让 Transformer 在 NER 中达到了在其他任务中那样好的效果。

Introduction

命名体识别是指,在一个句子中找到一个命名体的开始与结束位置,并且标注其特性,比如人名、地名、机构名等。NER 在问答、关系抽取和共指消解(coreference resolution)中都发挥了重要的作用。

NER 通常被视为序列标注任务,其网络结构一般包含三层:word-embedding层、编码层和解码层。NER 各种模型的不同之处主要在这些网络层中。

循环神经网络(RNNs)高度契合语言特性,所以在NLP的任务中使用广泛,其中,BiLSTM因为其对上下文的强大观察能力在NER中广泛使用。

最近,Transformer 模型也在NLP 任务中大放异彩,机器翻译、预训练模型中都可以看到它。Transformer 的编码器实现了一个大范围基于自注意力机制的全连接神经网络,这恰好是RNNs的局限,并且在并行计算上也远超过RNNs。然而,在NER任务中,Transformer 的表现并不好,本文将会探讨为什么有这样的结果,并提出一种改进方法。

  • 原始版本的 Transformer 中,由于自注意力机制的影响,模型是不会计算位置信息的,所以原始论文为了加入位置距离信息,在word-embedding时加入了基于余弦函数的位置编码,但是,对于NER任务来说,距离信息和相对位置信息同样重要。比如,‘in’ 后面的词通常是地点或时间,‘Inc.’前面通常是机构名,而机构名也常常是一组词,所以距离也很重要。为了同时保留对距离和相对位置的感知能力,我们舍弃原本的绝对位置编码而采用相对位置编码,使用参数更少,在NER中效果更好。
  • 原始的 Transformer 的注意力矩阵非常大,我们将其换成稀疏矩阵。因为在一个句子中,给出少量的单词就足以判断命名体,数值规模大的注意力矩阵反而会引入噪声,所以,我们在这里缩小注意力的参数规模。
  • 除了用 Transformer 训练词级别的文本,还用它来做字母级别的编码任务。在以前的工作中,我们已经知道字符编码对于 NER 捕捉字符特征和解决超出字典问题(OOV)不可或缺,以前常用CNN,但我们认为CNN不够好,因为它考虑的上下文是有限的,尽管我们可以通过改变卷积核的大小来处理,但是它依然无法解决不连续的特征,比如’un…ily’。基于 Transformer 的编码器不仅可以利用GPU加速运算,而且能够处理相邻连续的字符甚至非相邻字符,因此我在本文中的 character encoder 也是用Transformer encoder 实现的。

总的来说,为了提高 Transformer 在NER 中的表现,我们使用了相对位置的位置编码,减少了注意力参数,将其变得相对稀疏。经过这些处理之后,模型表现甚至好过基于 BiLSTM 的模型,在六个NER数据集中,改模型在不考虑预训练的模型中达到了前所未有的效果。

Neural Architecture for NER

BiLSTM-CRF常用在序列标注问题中,尽管其取得了巨大成功,每个单词还是要按顺序算,为了利用上 GPU 并行计算的能力,CNN也常常使用,为了解决CNN感知范围不足的问题,该领域使用了ID-CNN。BiLSTM和CNN都广泛应用在字符编码中。

NER中大部分也使用了与训练的word-embedding,使用ELMO等 contextual word embedding 后,模型有了更大程度的提高。

Transformer

Transformer 是基于self-attention的sequence模型,由若干个编码器和解码器组成,每个编码器为全连接的self-attention 层接 Add & Layer Normalization,解码器与编码器基本相同,前面还有一个对已经得到的输出序列作 masked attention。相关内容可以看我在这里写的笔记。

Proposed Model

本文中,我们使用Transformer的编码器来应对复杂的NER任务,其结构如下图所示。

技术图片

Embedding Layer

为了解决数据稀疏和OOV,我们需要一个 character encoder,以前常用的是CNN和BiLSTM,现在我们选择使用Transformer的encoder结构来代替,这样既可以有效利用GPU,又能考虑上下文,甚至非连续的字符。

最终的word embedding 是将字符编码和预训练的词嵌入拼接在一起的。

Encoding Layer with Adapted Transformer

下面提出对编码层做修改。

Directional-and Distance-Aware Attention

相比于Transformer,BiLSTM可以轻松知道两个词的左右顺序关系,但是Transformer 却不容易判断。下面我们证明 sinusoidal position embedding 的两条性质,从而说明这种编码方式缺乏对方向的认识。

  1. 对于偏置\(k\)和位置\(t\)\(PE_{t+k}^TPE_t\)只取决于\(k\),这说明两个位置向量的点积可以反映单词间距离。

    证明:

    \[PE_t = \begin{bmatrix} \sin (c_0 t)\\cos (c_0 t)\\vdots\\sin (c_{\frac{d}{2} - 1}t)\\cos (d_{\frac{d}{2} - 1}t) \end{bmatrix} \]

    其中\(d\)是位置编码的维度,\(c_i = \frac{1}{1000^{\frac{2i}{d}}}\)。因此

    \[PE_t^TPE_{t+k}^T = \sum_{j=0}^{\frac{d}{2} - 1} [\sin(c_j t) \sin(c_j (t +k))+ \cos(c_j t) \cos (c_j (t + k))]\= \sum_{j=0}^{\frac{d}{2} - 1} \cos(c_j (t - (t+k)))\= \sum_{j=0}^{\frac{d}{2} - 1} \cos (c_j k) \]
  2. 对于偏置\(k\)和位置\(t\)\(PE_t^T PE_{t-k}=PE_t^T PE_{t+k}\),这说明原本的位置编码是不能分别方向的。

    证明:

    \(j=t-k\),由性质1,我们有

    \[PE_t^T PE_{t+k} = PE_j^T P E _{j+k}\\= PE_{t-k}^T PE_t \]

然而,当引入\(Q,K\)矩阵之后原本的距离感知也被削弱了,因为这时位置编码变成了\(PE_t^T W_q^TW_kPE_{t+k}=PE_t^T W PE_{t+k}\),这使得他们的距离不像原来那么明确。

因此,为了提高对距离和方向的认知能力,我们用下面的公式给注意力打分。

\[Q,k,V = HW_q,HW_k,HW_v\\R_{t-j} = [\cdots \sin(\frac{t-j}{10000^{\frac{2i}{d_k}}}) \cos (\frac{t-j}{10000^{\frac{2i}{d_k}}}) \cdots]^T\\A_{t,j}^{rel} = Q_t K_j ^T + Q_t R_{t-j}^T + u K_j^T + v R_{t-j}^T\\Attn(Q,K,V) = softmax(A^{rel})V \]

式中\(u,v\)为可学习的参数。通过计算我们有

\[R_t,R_{-t} = \begin{bmatrix}\sin c_0 t\\\cos c_0 t\\\vdots\\\sin (c_{\frac{d}{2}-1} t)\\\cos (c_{\frac{d}{2}-1} t)\end{bmatrix},\begin{bmatrix}- \sin (c_0 t)\\\cos(c_0 t)\\\vdots \\-\sin (c_{\frac{d}{2}-1} t)\\\cos (c_{\frac{d}{2}-1} t)\end{bmatrix} \]

通过观察可以看出,\(R_t\)\(R_{-t}\)是不一样的。这样我们就能够表现距离和相对位置关系了。

Un-scaled Dot-Product Attention

在原始的模型中,\(K\)\(Q\)的点积有一个\(\sqrt{d_k}\)作为分母,在NER任务中我们发现没有这个系数效果会更好。猜测原因是不加这部分会让注意力矩阵更加锐化,对于NER来说减小了噪声干扰,提高了准确率。

CRF Layer

为了充分利用不同 tag 间的依赖关系,我们的模型中使用了条件随机场(CRF)。给定一个序列\(S=[s_1,s_2,\cdots s_T]\),对应的标签序列是\(y=[y_1,y_2,\cdots,y_T]\)\(Y(s)\)表示所有合法的标签序列。则序列为\(y\)的概率可以这样计算

\[P(y|s) = \frac{\sum_{t=1}^T e^{f(y_{t-1}, t_t, s)} }{\sum_{y‘}^Y(s) \sum_{t=1}^T e^{f(y_{t-1}^{‘}, t_t^{‘}, s)}} \]

其中\(f(y_{t-1}, y_t,s)\)计算转移概率。目标是最大化\(P(y|s)\),解码时可以使用 Viterbi Algorithm。

TENER: Adapting Transformer Encoder for Named Entity Recognition

标签:transform   序列   product   position   src   基础   处理   作用   algo   

原文地址:https://www.cnblogs.com/TABball/p/12790362.html


评论


亲,登录后才可以留言!