Loading...
墨滴

萤窗小语

2021/10/08  阅读:20  主题:全栈蓝

适用于命名实体识别的改进Transformer(下)

适用于命名实体识别的改进Transformer(下)

细节一:改进的Transformer编码器

针对Transformer在NER任务上表现不好,提出两个改进点: 1.方向和距离感知的注意力 2.非缩放的点乘注意力 原始的Transformer采用缩放的点乘注意力机制对softmax函数的输出进行平滑处理。 实验表明,去掉缩放因子,注意力会更锐利。 句子中少数字可以组成实体,大部分非实体。

Vanilla Transformer位置编码方式有什么问题
猜想:不能捕捉相对位置信息
实验证明: 基于正弦函数的位置嵌入是距离感知的,但缺乏方向性;中间加入线性变换以后,没有相对位置信息

相对位置编码的自注意力

1.作者假定在一定距离之外,再精确的相对位置信息也是没有用的。
2.限制住最长距离能够提升模型对未在训练阶段出现过的长度的序列的泛化能力。 sequence length:10
clipping distance:3->[-3,3]
0:-3
1:-2
2:-1
3:0
4:1
5:2
6:3

分子左半部分的大小为(batch_siz,h,seq_length, seq_lengh)。这个张量的行例上的元素代表了词的query向量和词j的key向量的点积的结果。因此,我们的目标是产生另一个和这个张量大小相同的张量,而这个张量的各个元素应该是词的query向量和词与词之间的RPR嵌入的点积的结果(译者注:也就是分子右半部分)。

首先,我们使用查表的形式为一个给定的输入序列生成RPR嵌入张量A,A的形状是(seq_length,seq_lengh,da)。然后,我们对A进行转置,使它的形状变成(seq_length,da, seq_length),写成AT。

接下来,我们计算输入序列所有元素的query向量,得到一个(batch_size, h, seq_length,dz)形状的张量。然后对其进行转置,形状变为(seq_length,batch_size, h, dz),然后变形为(seq_length,batch_size*h,dz)的张量。这个张量现在就能与AT相乘了。这个乘法可以视为矩阵(batch_size *h,dz)和矩阵(da,seq_length)的乘法。基本上就是计算每个位置的query向量和对应的RPR嵌入的点积。

上面的乘法得到一个形状为(seq_ength, batch_size*h, seq_length)的张量。我们只需要将其变形为(seq_length,batch_size,h, seq_length)的形状,然后再转置得到形状为(batch_size.h.seq_length,seq_length)的张量,这样我们就能将它和分子左半部分进行相加了。

细节二:改进Transformer应用与NER任务

英文NER:Character Embedding+ Extracted Character Features + Word Embedding
中文NER:Character Embedding FLAT- Chinese NER Using Flat-Lattice Transformer

实验分析

1.设计方向、距离感知与非缩放的注意力机制
introduce the direction-aware, distance-aware and un-scaled attention.
2. Transformer可从字符中提取复杂模式,非常适合做英文字符编码器
The adapted Transformeris suitable for being used as the English character encoder, becauseit has the potentiality to extract intricate patterns from characters

萤窗小语

2021/10/08  阅读:20  主题:全栈蓝

作者介绍

萤窗小语