赞
踩
本文将首先介绍常见的Attention机制,然后详细解读论文《Attention is All You Need》,该论文在NIPS 2017上发表,标志着Attention机制在NLP领域的一个重要里程碑。论文中提出的Transformer模型,以其独特的架构和优异的性能,已经成为当前NLP任务中的主流模型之一。
在自然语言处理(NLP)领域,注意力机制(Attention Mechanism)已成为提升模型性能的关键技术之一。本文将深入解读2017年由Google发表的开创性论文《Attention is All You Need》,该论文提出了一种全新的神经网络架构——Transformer,它在无需循环神经网络(RNN)和卷积神经网络(CNN)的情况下,通过注意力机制显著提升了机器翻译任务的性能。
注意力机制最初在计算机视觉领域提出,用于帮助模型集中于输入数据的重要部分。2014年,Google Mind的一篇论文《Recurrent Models of Visual Attention》使这一机制流行起来。随后,Bahdanau等人在2015年将注意力机制引入NLP领域,通过Seq2Seq+Attention模型进行机器翻译,取得了显著的效果提升。
Attention机制的概念最早在计算机视觉领域被提出。2014年,Google Mind通过发表《Recurrent Models of Visual Attention》一文,使得Attention机制开始受到广泛关注。该论文采用了循环神经网络(RNN)模型,并集成了Attention机制来处理图像分类任务,开创了将注意力机制应用于深度学习模型的先河。
随后,在自然语言处理(NLP)领域,Bahdanau等人在205年的论文《Neural Machine Translation by Jointly Learning to Align and Translate》中,首次将Attention机制应用于机器翻译。他们提出的Seq2Seq+Attention模型不仅提升了翻译质量,也为后续的NLP任务提供了新的思路。Seq2Seq With Attention的模型架构在相关文献中有所介绍。
2017年,Google机器翻译团队在《Attention is All You Need》一文中,彻底放弃了传统的循环神经网络(RNN)和卷积神经网络(CNN)结构,转而完全采用Attention机制来执行机器翻译任务。这一创新不仅简化了模型结构,还显著提高了翻译的性能,使得Attention机制成为当时乃至现在研究的热点。
Transformer模型完全基于注意力机制,摒弃了传统的RNN和CNN结构。它由Encoder和Decoder两部分组成,每个部分都由多个相同的层组成,每层包括多头自注意力机制和前馈网络。
Encoder有N=6层,每层包含两个子层(sub-layers):
Decoder也有N=6层,每层包含三个子层:
基于Transformer模型的Encoder-Decoder模型示意图
Transformer使用的是缩放点积注意力(Scaled Dot-Product Attention),它通过计算Query和Key的点积,然后应用Softmax函数来获得权重,最后根据这些权重计算Value的加权和。
在《Attention is All You Need》这篇论文中,作者们提出了一种新的注意力机制,即缩放点积注意力(Scaled Dot-Product Attention),它在计算效率和性能上都具有显著的优势。以下是对Scaled Dot-Product Attention的总结:
缩放点积注意力是一种特殊形式的注意力机制,它使用点积(即乘法)来计算查询(Query)和键(Key)之间的相似度,并通过一个缩放因子来调整计算结果,然后应用softmax函数来获取权重。
缩放点积注意力机制通过引入缩放因子,有效地解决了维度较大的问题,提高了模型的稳定性和性能。它在Transformer模型中发挥了核心作用,使得模型能够高效地处理序列数据,尤其是在机器翻译等NLP任务中取得了显著的成果。
多头注意力机制通过将输入分割成多个“头”,每个头独立地计算注意力权重,然后将结果拼接起来,增加了模型的表达能力。
多头注意力机制通过将输入的queries、keys和values通过不同的线性映射分成多个“头”,然后并行地在每个映射版本上执行注意力函数。每个头生成的输出维度为d_v
,然后将这些输出拼接起来,并通过另一个线性映射生成最终的输出。
MultiHead(Q, K, V) = Concat(head_1, …, head_h) W^O
where head_i = Attention(Q W_i^Q , K W_i^K, V W_i^V)
其中,W_iQ,W_iK,W_i^V 和 W^O 是可学习的参数矩阵,h 是注意力头的数量。
实现细节
每个头的维度 d_k 和 d_v 是模型维度 d_{model} 除以头数 h。
通过减少每个头的维度,即使增加了头数,总的参数量和计算复杂度也保持在可接受的范围内。
Transformer模型中使用了三种不同的多头注意力机制:
Encoder-Decoder Attention:Decoder层的queries和encoder层的keys和values相结合,允许Decoder的每个位置都能关注到输入序列中的所有位置。
Encoder Self-Attention:Encoder层内部的self-attention,允许每个位置都能关注到前一层的所有位置。
Decoder Self-Attention:Decoder层内部的self-attention,但加入了掩码(mask)以防止信息流向左侧,保持输出的自回归特性。
除了多头注意力机制,Transformer模型的每个子层还包括一个全连接的前馈网络,该网络对每个位置的向量单独应用相同的操作。这包括两个线性变换和一个ReLU激活函数。
Transformer模型使用学习到的嵌入将输入和输出的字符转换为向量,并通过一个线性变换和softmax函数将Decoder的输出转换为下一个词的概率分布。
由于Transformer模型缺乏循环或卷积结构,它使用位置编码来捕捉序列中的顺序信息,这对于理解语言的全局结构至关重要。
与循环层和卷积层相比,自注意力层在计算复杂度、并行计算能力和学习长距离依赖方面具有显著优势。它允许模型在常数时间内处理整个序列,并且可以更容易地学习序列中的长距离依赖关系。
《Attention is All You Need》论文提出的Transformer模型已经成为NLP领域的一个里程碑。它不仅在机器翻译任务中取得了突破性进展,而且其架构和注意力机制的思想已经广泛应用于各种NLP任务中,推动了整个领域的发展。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。