【论文笔记】Attention is all you need

本文详细解读了论文《Attention is All You Need》中的Transformer模型,该模型摒弃了传统RNN和CNN,仅依靠注意力机制,提高了序列转换模型的性能。Transformer包含Encoder和Decoder,使用多头自注意力机制、位置编码以及残差连接,实验显示其在机器翻译等任务上表现出优越的效率和效果。
摘要由CSDN通过智能技术生成

原文作者:Ashish Vaswani,Noam Shazeer,Niki Parmar,Jakob Uszkoreit

原文标题:Attention is all you need

原文来源:NIPS 2017

原文链接:https://papers.nips.cc/paper/2017/file/3f5ee243547dee91fbd053c1c4a845aa-Paper.pdf

Attention is all you need

主流序列转导模型基于复杂的CNN或RNN,包括编码器和解码器。有的模型使用注意力机制连接编码器和解码器,达到了最优性能。本文提出了一个仅基于注意力机制的网络架构,Transformer。实验表明,该模型需要的训练时间明显减少,性能更好。

模型架构

文中使用了经典的encoder-decoder架构。Encoder将输入序列转化成一个固定维度的稠密向量。decoder将之前生成的固定向量再转化成输出序列。

encoder

文中的encoder由n个相同层组成。每层有两个子层:第一个子层是一个多头自注意力机制,第二子层是一个简单的位置全连接前馈网络。另外在每个子层间使用残差连接,然后进行层归一化。每个子层的输出为

LayerNorm ( x + Sublayer ( x ) ) \text{LayerNorm}(x + \text{Sublayer}(x)) LayerNorm(x+Sublayer(x))

模型中的所有子层,包括嵌入层的维度为512。

decoder

Decoder同样由n个相同层组成。除了encoder中的两个子层外,decoder还增加了一个子层:对encoder层的输出执行多头注意力。另外对自注意力子层进行修改(Mask),防止某个position受后续的position的影响。确保位置i的预测只依赖于小于i的位置的已知输出。

请添加图片描述

Attention机制

注意力函数将query(Q)和一组键值对(K、V)映射为输出,Q、K、V都是向量。对V进行加权求和得到输出,每个V的权值通过Q和K的相似度得到。

请添加图片描述

如图2所示为本文提出的attention机制。输入为 d k d_{k} dk维的Q和K, d v d_{v} dv维的V。计算Q和K的点积,除以 d k \sqrt{d_{k}} dk ,再使用一个softmax得到V的权重。

Attention ( Q , K , V ) = softmax ( Q K T d k ) V \text{Attention}(Q,K,V) = \text{softmax}\left( \frac{QK^{T}}{\sqrt{d_{k}}} \right)V Attention(Q,K,V)=softmax(dk QKT)V

值得注意的是本文中的注意力函数有一个缩放因子 1 d k \frac{1}{\sqrt{d_{k}}} dk 1。文中提到,最常见的注意力函数有两种,一种是additive,一种就是上述的点积。Additive attention使用前馈网络来作为兼容性函数得到V的权重。当 d k d_{k} dk比较小时,两种注意力机制的表现差不多,随着 d k d_{k} dk的增大,additive注意力比点积注意力表现要好。由于点积可以使用高度优化的矩阵乘法代码来实现,因此更快,空间效率更高,这也是作者选择点积的原因。作者认为,当 d k d_{k} d

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值