Attention is all you need

摘要:

  • (序列转录模型:给一个序列,生成一个序列 eg:给一个中文,生成一个英文)
  • 在主流的序列转录模型中,主要使用的是带有encoder和decoder的复杂的循环或者是卷积神经网络,表现的比较好的模型中间会使用attention的机制。
  • 但是transformer的模型只使用了attention的机制,并用实验表明模型具有更好的并行性,而且需要的训练时间更少,并且transformer模型运用在一些泛化的模型上是比较好的

结论

  • transformer模型是第一个仅仅使用注意力机制的模型,把之前的循环层换成multi-head attention 和 self-attention.(第一段);
  • 对于翻译的任务,transformer模型表现的是比较好的(第二段);
  • 同时作者认为transformer模型不仅仅运用到文字方面,可能未来会运用到图像,音频和视频等领域。

导言

  • 当前时序模型使用最多的是rnn,lstm和gru。接下来说有两个主流的模型,一个是语言模型,一个是encoder-decoder模型(如果输出的结构化的数据比较多的时候)(第一段)
  • rnn的特点,在rnn里,给他一个序列,rnn做的是从左往右一步步往前做,如果给他的是一个序列,他就一个词一个词的看,对于第t个词,会计算一个隐藏状态,ht,对于ht是由前面一个词的隐藏状态ht-1和当前第t个词共同决定的,这样就会把前面学到的历史信息方法存下;
  • rnn的问题:rnn是一个词一个词实现的过程,无法并行,计算性能比较差;历史信息是一步步向后传递的,如果时序比较长,比较早期的时序信息就可能会丢掉;如果不想要丢掉,这样就要准备比较大的ht,并且每一步都要存储历史信息,比较占用内存的开销。
  • attention在rnn上的运用
  • 最后提出transformer是一个新的模型,不再使用循环网络,只使用attention,并行度高

相关工作

  • (第一段)首先提出的是如何使用cnn来替换rnn,使得减少时序的计算,但使用cnn对于比较长的是时序难以建模,因为cnn做计算的时候使用的是一个比较小的窗口,比如3*3的像素块,如果两个像素隔得比较远,就需要很多的层进行卷积,一层层的将两个像素融合起来;
  • 但是如果使用的是transformer里面的attention,一层就可以看到整个序列。卷积比较好的地方是可以做多个输出通道,每一个通道可以识别不同的模式,如果在transformer实现这种多通道的效果,提出了一种multi-head attention,实现多输出通道的效果。
  • (第二段)self-attention并不是这篇文章的创新
  • (第三段)memory networks
  • (第四段)transformer是第一个只依赖于attention实现encoder-decoder的模型

模型架构

  • encoder-decoder:  encoder输入(x1,……xn)(可以是一个句子,如果是句子,那么xt就是句子中的第t个词),然后经过encoder之后,输出的是z=(z1……,zn),z1就是第一个词的对应的向量表示。原始的输入变成机器学习可以理解的向量。   decoder拿到encoder的输出,生成一个长为m的序列(n和m的大小可以相同可以不相同),与encoder不同的是,decoder是一个一个词生成的,而对于encoder可能是一次性看完整个句子。decoder的这种方法叫做自回归前一个输出作为下一个的输入。生成yt的时候,可以拿到y1到yt-1的信息。
  • layerNorm与batchNorm
  • Attention:attention是一个将query和key-value对进行映射输出的一个函数。输出就是value的权重的加权和,而权重就是query和key的相似度。文章中使用的是注意力是Scaled Dot-Product Attention。
  • 两种比较常用的自注意力机制,一种是additive attention,可以处理query和key不等长的情况,一种是dot-product attention,本文使用的方法和dot-product attention相似。      
  • Multi-Head Attention:  把整个query key value投影到低维,投影h次 ,再做h次的注意力函数,然后每一次的输出并在一起,再投影回来得到最终的输出。
  • 注意力在模型中有三次应用:
    1. encoder的注意力(自注意力k,q,v都是自己):输入为n,输出为n,输出是输入的加权的和(输出内容的包含序列的语义特征)
    2. decoder的注意力(带有masked 自注意力)  t时刻不会看到t后面的东西  
    3. decoder(cross attention)的注意力(这里就不是自注意力):encoder的输出作为cross-attention的k和v,decoder上一层的输出作为cross-attention的q
  • Position-wise Feed-Forward Networds,其实就是mlp。一个mlp对每一个词作用一次,mlp作用在最后一个维度   映射语义空间
  • embedding and softmax 编码器需要一个embedding,解码器也需要一个embedding,softmax前也需要一个embedding
  • positional encoding 因为attention是没有时序信息的,就是给一段话打乱顺序之后得到的attention的结果是一样的,所以需要加入时序信息。rnn中上一个的输出作为下一个的输入实际上就是一个时序的关系。attention中是在输入里加入时序信息。长为512的表示位置信息的向量加入数据中
  • why self-attention

        计算复杂度,并行度,同一个点到另一个点要走多少步 self-attention的优势

  • training
    • 做实验,英转德 英转法 运行方面使用的是gpu 参数
    • 正则化:1、residual dropout 2、label smoothing
  • 14
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值