【学习笔记】Attention Is All You Need

摘要

之前的序列转录模型(sequence transduction models)多用CNN、RNN架构,结合encoder-decoder。在这篇文章中,提出了一个新的、简单的架构:Transformer。
Transformer仅依赖于注意力机制,而没有用CNN或者RNN。
Transformer最初是针对机器翻译任务所提出的,在实验中的优势有: ①并行好。②训练时间短。③能泛化、性能好。

结论

Transformer仅使用Attention注意力机制,构建了multi-head self-attention层。
Transformer可以用在文本以外的数据上。

导言Introduction

在17年,主流是使用RNN。在RNN中,是一个词一个词地看,能够处理时序信息。
但RNN的问题是:①难以并行。在处理第t个时,要求前t-1个都完成。②在一步步地传递历史信息的过程中,如果序列很长,早期信息可能丢失。③如果t较大,内存开销也会增大。
在提出Transformer之前,Attention机制的思想已经被应用到encoder-decoder中。也有Attention机制结合RNN,考虑如何将信息有效地传给decoder。
在Transformer中:①不再循环,纯注意力。②可并行,短时间内效果好。

相关工作background

1.卷积神经网络,对长序列难以建模,比如想要获取两个距离较远的就需要好多层。而好处是能够做多个输出通道,每个输出通道可以识别不同的模式。
在Transformer中,一层就可以看到全部的整个序列。并且,Transformer采用multi-head attention实现多输出通道。
2.self-attention
3.memory networks
4.Transformer是第一个仅依赖self-attention来构建transduction model的encoder-decoder模型。

模型架构 Model Architecture

1.encoder-decoder
在encoder部分,一次看到全部句子。
在decoder部分,做自回归,一个词一个词地生成。

2.encoder and decoder stacks
encoder:6层。第一层multi-head self-attention机制。MLP ( Multi layer Perception )多层感知机。对每个子层用残差连接。子层中,采用layer Norm,每层维度d_model=512,调参简单。

3.Attention
attention function是将query和key-value对映射成输出的函数,二者的相似度作为value的权重。

4.scaled dot-product attention
对queries和keys作内积,得到相似度,除以向量长度开根号,再用softmax得到权重。把权重作用于value,得到输出。
在实际中,把query矩阵表示。经过两次矩阵乘法,就能完成全部的计算。–>并行性好。

5.Multi-head Attention
把quaries、keys、values投影到低维,投影h次,然后再做h次的注意力函数。每个函数的输出并在一起再投影回来,能够得到一个最终的输出。
为什么做多头?为了识别不一样的模式。给机器h次机会,希望他能够学到不同的投影方法,使得在投影进去的那个度量空间中,能够匹配不同模式需要的相似函数。
最终输出的结果是多个head的合并。另外,由于残差连接的存在,使输入和输出的维度是一样的。

6.在Transformer中如何使用Attention?三种:
①编码器的Multi-head Attention
②解码器的Masked Multi-head Attention
③解码器的Multi-head Attention

7.Position - wise Feed - Forward Networks
a fully connected feed-forward network
position:每个词在序列中的那个点。把一个MLP对每一个词作用一次,作用在最后一个维度。
MLP:多层感知机 Multi Layer Perception,也叫人工神经网络ANN(Artificial Neural Network)。除了输入输出层,中间可以有多个隐藏层。
在RNN中,把上个时刻的信息(历史信息)输出传入下一个时刻作为输入。二者的共同点是关注如何有效地使用序列之间的信息。

8.Embedding and softmax
Embedding:给任何一个词学习一个长为d(d_model=512)的向量来表示它。在学习embedding时,维度一大,权重就变小了,所以要乘以一个根号下d_model。

9.Positional Encoding
Attention没有时序信息(权重是距离,与序列信息所处的地方无关)。
任何一句话,打乱顺序后输入Attention,其结果都一样(值不变)。
但对于自然语言处理任务,损失了时序信息后语义肯定会有所改变,所以还需要在Transformer中加入时序信息。
在RNN中,上个输出作为输入,已经是时序化了。
在Transformer中,在Attention的输出里加入时序信息positional encoding,也用512的向量存储。具体值用sin/cos求出,与嵌入层相加,完成添加时序信息的作用。

其他

1.Transformer几乎能用到所有的NLP任务上,BERT、GDP能训练很大的模型,提升NLP的性能。
Transformer在图片、video也有很大进展。

2.在Transformer中,除了Attention的作用,还需要残差连接、MLP等,缺一不可。

3.Attention采用了一个更广泛的归纳偏置,使得它能处理一个更一般化的东西。Attention没有空间上的假设,效果也能够大于等于RNN的效果。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值