Attention Is All Y ou Need_2017
1.介绍:
它避免了递归,而是完全依赖于一种关注机制来绘制输入和输出之间的全局依赖关系。
2.背景:
减少到恒定的操作次数,尽管代价是由于平均注意力加权位置而降低了有效分辨率,我们用多头注意力抵消了这种影响。自我注意,有时称为内部注意,是一种将单个序列的不同位置联系起来的注意机制,以计算该序列的表示
3.模型架构:
模型都是自回归的,在生成下一个符号时,使用先前生成的符号作为附加输入。编码器和解码器采用堆叠式自关注层和点状全连接层。如下图一
3.2.1 Scaled Dot-Product Attention
对于较大的dk值,点积的大小会变大,从而将softmax函数推到梯度极小的区域。为了抵消这种影响,我们将点积缩放√dk。【图二左】
3.2.2
用不同的学习过的线性投影分别对dk、dq和dv维进行h次线性投影到查询、键和值是有益的,而不是用dmodel维键、值和查询执行单一的注意力功能。【图二右】
Attention结构图*图二
3.2.3 Applications of Attention in our Model:
三种不同的方式使用多头注意力,1,在“编码器-解码器注意”层中,查询来自前一个解码器层,内存键和值来自编码器的输出。2.在自注意中,所有的键、值和查询都来自同一个地方,在这种情况下,是编码器中前一层的输出。编码器中的每个位置可以关注编码器的前一层中的所有位置。3.解码器中的自关注层允许解码器中的每个位置关注解码器中直到并包括该位置的所有位置。
3.3 Position-wise Feed-Forward Networks:
该网络单独且相同地应用于每个位置,包括两个线性转换,1.ReLU激活 FFN(x) = max(0, xW1+ b1)W2+ b2 2.另一种描述方式是内核大小为1的两个卷积。输入输出维度为dmodel = 512,内层维度df f= 2048。
3.4 Embeddings and Softmax:
使用学习嵌入将输入标记和输出标记转换为维度dmodel的向量。我们还使用通常学习的线性变换和softmax函数将解码器输出转换为预测的下一个令牌概率。
3.5 Positional Encoding:
由于我们的模型不包含递归和卷积,为了让模型利用序列的顺序,我们必须注入一些关于的相对或绝对位置的信息,序列中的标记。为此,我们在编码器和解码器堆栈底部的输入嵌入中添加了“位置编码”。位置编码与嵌入具有相同的维度dmodel,因此两者可以相加。有许多位置编码的选择,学习的和固定的。
4 Why Self-Attention:
我们将自关注层的各个方面与通常用于映射一个可变长度符号表示序列(x1,…xn)到另一个相等长度的序列(z1,…,zn),具有xi、zi∈ Rd等典型序列转导编码器或解码器中的隐藏层。激发我们对自我关注的使用,我们认为有三个迫切需要。一个是每层的总计算复杂度。另一个是可以并行化的计算量,以所需的最小顺序操作数来衡量。第三个是网络中长距离依赖之间的路径长度。