2017年,Google等人提出了Vaswani提出了一种新颖的纯注意力序列到序列架构,闻名学术界与工业界的Transformer架构横空出世,它的可并行化训练能力和优越的性能称为自然语言处理领域和计算机视觉领域研究人员的热门选择,本文将重点讨论transformer架构一个不可或缺的部分,——位置编码。
位置编码是什么,其为什么这么重要?
在人类语言中,单词的位置和顺序定义了语法,也影响着语义,无法捕获单词的顺序,会导致我们很难理解一句话的含义。
因此,在NLP任务中,对于任何神经网络架构,能够有效识别每个词的位置与词之间的顺序是十分关键的,传统的循环神经网络RNN,本身通过自回归的方式考虑了单词之间的顺序,然后Transformer架构不同于RNN,
T
r
a
n
s
f
o
r
m
e
r
Transformer
Transformer使用纯粹的自注意力来捕获词之间的联系,纯粹的自注意力具有置换不变的性质,换句话说,Transformer中的自注意力无法捕捉输入元素序列的顺序,因此我们需要一种方法将单词的顺序合并到Transformer架构中,于是位置编码应运而生。
位置编码的作用形式
目前,主流的位置编码方式主要用绝对位置编码和相对位置编码两大类,其中绝对位置编码的作用方式是告知Transformer架构每个元素在输入序列的位置,类似于为输入序列的每个元素打一个位置标签标明其绝对位置,而相对位置编码作用于注意力机制,告知Transformer架构两两元素之间的距离。
绝对位置编码
最早的绝对位置编码起源于 2017年Jonas Gehring等人发表的Convolutional Sequence to Sequence Learning
该工作使用可训练嵌入的形式作为位置编码,随后Google等人的Vaswani等人在Attention is ALL You Need 文章中使用正余弦函数生成位置编码,关于Transformer架构为什么选择正余弦函数去生成绝对位置编码以及正余弦函数的一些特性,笔者安利大家阅读kazemnejad老师的博文《Transformer Architecture: The Positional Encoding》,该文详细叙述了正余弦绝对位置编码的原理,诞生于2018年末的BERT也采用了可训练的嵌入形式作为编码,实际上,这三项工作的共性都是在每个词的嵌入上加上位置编码之后输入模型,形式上,如下公式所示:
x
=
(
w
1
+
p
1
,
⋯
,
w
m
+
p
m
)
x = (w_1 + p_1,\cdots,w_m + p_m)
x=(w1+p1,⋯,wm+pm)
其中
x
x
x表示模型的输入,
w
m
w_m
wm表示第m个位置的词嵌入,
o
m
o_m
om表示第m个位置的绝对位置编码。
今年了关于绝对位置编码的工作,大多数以不同的方法去生成绝对位置编码为主,下面列出一些关于绝对位置编码的一些工作。
Learning to Encode Position for Transformer with Continuous Dynamical Model
该文提出了一种基于连续动态系统的绝对位置编码,从数据中学习神经微分方程递归生成位置编码,在机器翻译中,自然语言理解和问答等任务获得了不错的性能提升,由于递归机制本身具有出色的外推性质,所以FLOATER基本不受文本长度的限制。并且作者说明了正余弦绝对位置编码就是FLOATER的一个特解。该工作在WMT14 En-De和En-Fr分别进行了实验,分别对比Transformer Base模型有着0.4和1.0 BLEU值的涨幅。但与此同时,这种递归形式的位置编码也牺牲了原本模型的并行输入,在速度上会有一定影响。
Encoding Word Order in Complex Embeddings
该工作提出一种复值词向量函数生成绝对位置编码,巧妙地将复值函数的振幅和相位与词义和位置相联系,在机器翻译、文本分类和语言模型任务上获得了不错的性能提升。。
该复值词向量函数以位置为变量,计算每个词在不同位置的词向量。由于该函数对于位置变量而言是连续的,因此该方法不光建模了绝对位置,也建模了词之间的相对位置。该工作在WMT16 En-De机器翻译任务数据集上进行了实验,复值词向量对比Transformer Base模型有1.3 BLEU值的涨幅。
SHAPE: Shifted Absolute Position Embedding for Transformers
该工作提出了一种绝对位置编码鲁棒性训练方法,作者认为现有的位置编码方法在测试不可见长度时缺乏泛化能力,,并提出了平移绝对位置编码(SHAPE)来解决这两个问题。SHAPE的基本思想是在训练过程中对绝对位置编码随机整体平移一段距离来实现泛化能力,该工作在WMT16 En-De机器翻译任务数据集上进行训练,将newstest2010-2016作为校验集和测试集,对比正余弦绝对位置编码,该方法有着一定的性能提升。
相对位置编码
论文集介绍
Self-Attention with Relative Position Representaion
Transformer-XL: Attentive Language Models Beyond a Fixed-Length Context
Exploring the Limits of Transfer Learning with a Unified Text-to-Text Transformer
Rethinking Positional Encoding in Language Pre-training
DeBERTa: Decoding-enhanced BERT with Disentangled Attention
RoFormer: Enhanced Transformer with Rotary Position Embedding
Improve Transformer Models with Better Relative Position Embeddings
总结
会自己沿着一个方向大幅度的看论文,至少需要一年一百篇文章,慢慢的将其研究彻底,研究透彻。慢慢的将其搞透彻,搞明白,争取将一篇文章,全部都看懂,看会,了解彻底。将其研究透彻。