Attention Is All You Need

Attention Is All You Need

12分钟 ·
播放数5
·
评论数0

在这一期节目中,我们将深入探讨一篇具有里程碑意义的论文——"Attention Is All You Need",并解析其中提出的创新模型:Transformer。这个模型完全抛弃了传统的循环神经网络(RNN)和卷积神经网络(CNN),仅依靠注意力机制,就在机器翻译等序列转导任务上取得了当时最先进的成果,并且训练效率更高。加入我们,一起了解注意力机制为何如此强大,以及Transformer模型如何构建它的世界。

本期要点:

  • Transformer 模型的诞生背景: 传统的序列转导模型主要基于复杂的循环神经网络(如 LSTM 或 GRU)或卷积神经网络,表现最优的模型也会结合注意力机制。然而,循环模型计算固有的序列性限制了训练的并行化,尤其在处理长序列时。为了减少这种顺序计算的限制,ByteNet 和 ConvS2S 等模型采用了卷积神经网络,可以在所有输入和输出位置并行计算隐藏表示,但它们在捕捉远距离依赖时需要更多操作层。
  • 核心创新:完全依赖注意力: Transformer 模型提出了一种新的简单网络架构,完全基于注意力机制,完全摒弃了循环和卷积。它依赖于一个注意力机制来捕捉输入和输出之间的全局依赖关系,而无需考虑它们在序列中的距离。
  • 模型架构概览: Transformer 遵循大多数有竞争力的神经序列转导模型的编码器-解码器结构。编码器: 由一个由 N=6 个相同层组成的堆栈构成。每层包含两个子层:多头自注意力机制位置维度的全连接前馈网络。每个子层周围都采用了残差连接,并紧跟着层归一化
    解码器: 也由一个由 N=6 个相同层组成的堆栈构成。除了编码器层中的两个子层外,解码器还插入了第三个子层,该子层对编码器堆栈的输出执行多头注意力。与编码器类似,解码器也使用了残差连接和层归一化。此外,解码器的自注意力子层经过修改,防止位置关注后续位置,以保留自回归属性。
  • 注意力机制详解:注意力函数可以描述为将一个查询(query)和一个键-值对(key-value pairs)集合映射到输出。输出是值的加权和,权重由查询与相应键的兼容性函数计算得出。
    缩放点积注意力 (Scaled Dot-Product Attention): 这是 Transformer 使用的特定注意力机制。输入包括维度为 dk 的查询和键,以及维度为 dv 的值。计算查询与所有键的点积,除以 √dk,然后应用 softmax 函数获得值的权重。缩放因子 1/√dk 用于抵消大型 dk 值导致点积幅度过大,从而将 softmax 函数推向梯度极小的区域的问题。
    多头注意力 (Multi-Head Attention): 与使用单一 dmodel 维度的键、值和查询执行单个注意力函数不同,多头注意力将查询、键和值进行 h 次不同的线性投影到 dk、dk 和 dv 维度,并在这些投影版本上并行执行注意力函数。这些输出值被连接起来并再次投影。多头注意力使模型能够共同关注来自不同表示子空间的信息。Transformer 中使用了 h=8 个并行注意力头。

    Transformer 中注意力的应用:编码器-解码器注意力:查询来自前一个解码器层,键和值来自编码器堆栈的输出。这使得解码器中的每个位置都可以关注输入序列中的所有位置。
    编码器自注意力:键、值和查询都来自编码器中前一层的输出。编码器中的每个位置都可以关注编码器中前一层的所有位置。
    解码器自注意力:允许解码器中的每个位置关注解码器中直到当前位置(包括当前位置)的所有位置。通过在缩放点积注意力中掩码掉非法连接(后续位置)来实现。
  • 位置感知前馈网络 (Position-wise Feed-Forward Networks): 编码器和解码器中的每个层除了注意力子层外,还包含一个全连接前馈网络。它独立且相同地应用于每个位置。包含两个线性变换,中间使用 ReLU 激活函数。线性变换在不同位置是相同的,但在不同层使用不同的参数。
  • 词嵌入和 Softmax: 使用学习到的词嵌入将输入和输出 token 转换为 dmodel 维度的向量。使用学习到的线性变换和 softmax 将解码器输出转换为预测的下一个 token 概率。
  • 位置编码 (Positional Encoding): 由于模型没有循环和卷积,需要注入关于 token 在序列中相对或绝对位置的信息。通过在编码器和解码器堆栈底部将“位置编码”添加到输入嵌入中来实现。Transformer 使用不同频率的正弦和余弦函数来生成位置编码。这种方法可能使模型能够外推到比训练时更长的序列长度。
  • 为何选择自注意力:计算复杂度:在序列长度 n 小于表示维度 d 时(机器翻译中常见),自注意力层比循环层更快。
    并行性:自注意力层通过恒定数量的顺序操作连接所有位置,而循环层需要 O(n) 的顺序操作。这使得 Transformer 可以显著提高并行化能力。
    长距离依赖路径长度:自注意力层将任意两个输入或输出位置之间的路径长度减少到常数数量的操作。相比之下,卷积网络需要堆叠多层才能连接所有位置,从而增加路径长度。
    可解释性:自注意力可能产生更具可解释性的模型,不同的注意力头似乎学习执行不同的任务,并且与句子的句法和语义结构相关。
  • 实验结果:在 WMT 2014 英德和英法机器翻译任务上,Transformer 模型在质量上优于现有最佳模型(包括集成模型),同时训练成本显著降低。
    Transformer 模型也成功应用于英语句法分析任务,证明了其泛化能力。

训练细节简述:

  • 使用了包含数百万句子对的数据集进行训练。
  • 在多 GPU(如 8 个 NVIDIA P100 GPU)上进行训练,训练时间相对较短(如基础模型 12 小时,大型模型 3.5 天)。
  • 使用了 Adam 优化器,学习率采用先升高后降低的策略。
  • 使用了残差 Dropout 和标签平滑等正则化技术来防止过拟合和提高性能。

结论: Transformer 是第一个完全基于注意力的序列转导模型,在机器翻译等任务上实现了更快的训练速度和新的最先进性能。研究人员对基于注意力的模型的未来感到兴奋,并计划将其应用于其他任务和数据模态。