当前位置:   article > 正文

Paper小计:Attention Is All You Need_注意力机制编码器和解码器与qkv

注意力机制编码器和解码器与qkv
Abstract
        传统的序列模型是编码器,解码器由递归或循环网络构成,解码器编码器之间由attention连接传递;transformer的编码解码器主体都是attention构成。
        各效果更好:并行,需要的训练更少。

Introduction

        循环:并行能力差,长距离时序的信息保存要么耗费内存,要么无法保存需要的信息。

transformer(attention):并行,绘制输入输出的全局依赖关系。

Background
        GPU、ByteNet和ConvS2S这些模型虽然增加了并行计算,但操作数量随着位置距离增长都会大幅度上涨。而transformer固定为恒定的操作次数。
        自注意力的使用。
        只使用注意力机制的思想,并且效果好。
Model Architecture
        自回归,堆叠
        编码器:编码器由N堆=6个相同的层组成。每个层都有两个子层。第一种是一个多头自注意机制,第二种是一个简单的、位置上完全连接的前馈网络。我们在两个子层周围使用残差连接,然后进行层归一化。也就是说,每个子层的输出是LayerNorm(x+子层(x)),其中子层(x)是由子层本身实现的函数。为了方便这些剩余的连接,模型中的所有子层以及嵌入层都会产生尺寸数据模型=512的输出。
        解码器:解码器也由N=6个相同的层组成。除了每个编码器层中的两个子层外,解码器还插入第三个子层,该子层对编码器堆栈的输出执行多头注意。与编码器类似,我们在每个子层周围使用剩余连接,然后进行层归一化。我们还修改了解码器堆栈中的自注意子层,以防止位置关注后续的位置。这种掩蔽,加上输出嵌入被一个位置偏移的事实,确保了对位置i的预测只能依赖于小于i的位置的已知输出。
        注意力机制:注意函数可以描述为将一个查询和一组键-值对映射到一个输出,其中查询、键、值和输出都是向量。输出计算为值的加权和,其中分配给每个值的权重由查询与相应键的兼容性函数计算。
        

1.点积注意力便于矩阵乘法,更快。

2.而对于较小的dk值,这两种机制的表现相似,在dk[3]值较大的情况下,附加注意优于点积注意。我们怀疑,对于dk的大值,点积的幅度越来越大,将softmax函数推到梯度极小的区域4。为了抵消这种效应,我们用√1dk来缩放点积

3.多头注意允许模型共同关注来自不同位置的不同表示子空间的信息。用一个注意力头,平均抑制这个

4.我们通过屏蔽(设置为−∞)softmax输入中对应于非法连接的所有值来在缩放点积注意内部实现这一点

5.交互多头的KQV,Q来自解码,KV来自编码。

        前馈神经:没什么好说的

        Positional Encoding:正余弦实现,具体细节略。

复杂度表格:

Why Self-Attention

        1.是每层的总计算复杂度。

        2.是可以并行化的计算量,通过所需的最小顺序操作数量来衡量。

        3.是网络中长期依赖关系之间的路径长度。学习长期依赖关系是许多序列转导任务中的一个关键挑战。影响学习这种依赖关系能力的一个关键因素是信号在网络中必须经过的向前和向后的路径的长度。在输入和输出序列中的任何位置组合之间的这些路径越短,就越容易学习长期依赖关系。因此,我们也比较了由不同层类型组成的网络中任意两个输入和输出位置之间的最大路径长度。 

Training
        优化:使用了adam和warmup-steps。        
        正则化:每个子层的输出有一个dropout,我们还将辍学法应用于编码器和解码器堆栈中的嵌入和位置编码的和。对于基本模型,我们使用Pdrop=0.1的速率。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Gausst松鼠会/article/detail/342501
推荐阅读
相关标签
  

闽ICP备14008679号