Attention is All you need

发布时间 2023-06-28 00:16:12作者: Sanny.Liu-CV&&ML

转载:https://zhuanlan.zhihu.com/p/46990010

Attention机制最早在视觉领域提出,2014年Google Mind发表了《Recurrent Models of Visual Attention》,使Attention机制流行起来,这篇论文采用了RNN模型,并加入了Attention机制来进行图像的分类。

205年,Bahdanau等人在论文《Neural Machine Translation by Jointly Learning to Align and Translate》中,将attention机制首次应用在nlp领域,其采用Seq2Seq+Attention模型来进行机器翻译,并且得到了效果的提升,Seq2Seq With Attention中进行了介绍。

2017 年,Google 机器翻译团队发表的《Attention is All You Need》中,完全抛弃了RNN和CNN等网络结构,而仅仅采用Attention机制来进行机器翻译任务,并且取得了很好的效果,注意力机制也成为了大家近期的研究热点。
本文首先介绍常见的Attention机制,然后对论文《Attention is All You Need》进行介绍,该论文发表在NIPS 2017上。

1. Attention机制

Attention用于计算"相关程度", 例如在翻译过程中,不同的英文对中文的依赖程度不同,Attention通常可以进行如下描述,表示为将query(Q)和key-value pairs

映射到输出上,其中query、每个key、每个value都是向量,输出是V中所有values的加权,其中权重是由Query和每个key计算出来的,计算方法分为三步:

第一步:计算比较Q和K的相似度,用f来表示

 第二步:将得到的相似度进行Softmax操作,进行归一化

 第三步:针对计算出来的权重 ,对V中所有的values进行加权求和计算,得到Attention向量

 

通常第一步中计算方法包括以下四种:

  • 点乘 dot product

  • 权重 General

  • 拼接权重 Concat

  •  

    感知器 Perceptron

    2. Transformer Architecture

     

     图1 基于Transformer模型的Encoder-Decoder模型示意图

 

2.1 Encoder

Encoder有N=6层,每层包括两个sub-layers:

  1. 第一个sub-layer是multi-head self-attention mechanism,用来计算输入的self-attention
  2. 第二个sub-layer是简单的全连接网络。

在每个sub-layer我们都模拟了残差网络,每个sub-layer的输出都是

 

 

那么Scaled Dot-Product Attention的示意图如下所示,Mask是可选的(opt.),如果是能够获取到所有时刻的输入(K, V), 那么就不使用Mask;如果是不能获取到,那么就需要使用Mask。使用了Mask的Transformer模型也被称为Transformer Decoder,不使用Mask的Transformer模型也被称为Transformer Encoder。

图2 Scaled Dot-Product Attention示意图

 

 

 

 

在其他NLP论文中,大家也都看过position embedding,通常是一个训练的向量,但是position embedding只是extra features,有该信息会更好,但是没有性能也不会产生极大下降,因为RNN、CNN本身就能够捕捉到位置信息,但是在Transformer模型中,Position Embedding是位置信息的唯一来源,因此是该模型的核心成分,并非是辅助性质的特征。

也可以采用训练的position embedding,但是试验结果表明相差不大,因此论文选择了sin position embedding,因为

  1. 这样可以直接计算embedding而不需要训练,减少了训练参数
  2. 这样允许模型将position embedding扩展到超过了training set中最长position的position,例如测试集中出现了更大的position,sin position embedding依然可以给出结果,但不存在训练到的embedding。

 

结果如下所示

 

 

Reference

[1]

[2]Vaswani, Ashish, et al. "Attention is all you need."Advances in Neural Information Processing Systems. 2017.