Tic商业评论

关注微信公众号【站长自定义模块】,定时推送前沿、专业、深度的商业资讯。

 找回密码
 立即注册

QQ登录

只需一步,快速开始

微信登录

微信扫码,快速开始

  • QQ空间
  • 回复
  • 收藏

Attention Is All You Need (Transformer)

lijingle 图像分类 2021-12-17 21:39 1989人围观

使用Transformer,Attention  性能优于ByteNet、Deep Att、GNMT和CONVS2

Attention Is All You Need 


在本文中,Attention Is All You Need,(Transformer),由谷歌大脑,谷歌研究院,和多伦多大学审查。在本文中:

  • 提出了一种新的简单网络结构,即完全基于注意机制的Transformer,它完全消除了重复和卷积。提出了一种新的简单网络结构,即完全基于注意机制的Transformer,它完全消除了重复和卷积
这是2017年NeurIPS的一篇论文,引文超过31000篇。Transformer是一种非常著名的深度学习体系结构和技术,因为Transformer后来扩展到文本以外的模式,如图像、视频和音频:NL:非局部神经网络、图像Transformer、SAGAN。

概述
  • Transformer:模型架构
  • 多头 Attention 
  • 在Transformer中Attention的应用
  • 位置前馈网络
  • 其他细节
  • 实验结果
1.Transformer:模型架构

    Transformer:模型架构


1.1. 框架

  • 左图:编码器将符号表示的输入序列(x1,…,xn)映射到连续表示的序列z=(z1,…,zn)
  • 右图:给定z,解码器然后一次生成一个元素的符号输出序列(y1,…,ym)。在每一步中,模型都是自回归的,在生成下一步时,使用先前生成的符号作为额外输入。
Transformer遵循这种整体架构,使用堆栈的self-attention 和 point-wise,编码器和解码器的全连接层。

1.2. 编码器
编码器由N=6个相同层的堆栈组成
每层有两个子层。第一种是多头自我注意机制,第二种是简单的、位置相关的全连接前馈网络。
  • 在两个子层的每个层周围使用res连接,然后对每层进行normalization。
  • 即,每个子层的输出是LayerNorm(x+Sublayer(x))。
  • 模型中的所有子层以及嵌入层都会生成维度为dmodel=512的输出。
1.3. 解码器
解码器也由N=6个相同层的堆栈组成。
除了每个编码器层中的两个子层之外,解码器还插入第三个子层,该子层对编码器堆栈的输出执行多头注意。
  • 与编码器类似,在每个子层周围使用res连接,然后对层进行normalization。
  • 修改解码器堆栈中的 self-attention子层,防止位置涉及后续位置。这种masking,结合输出嵌入偏移一个位置,确保位置i的预测只能依赖于位置小于i的已知输出。

2.多头Attention 


2.1. Scaled Dot-Product Attention

Scaled Dot-Product Attention (1-Head,Mask layer可选,仅用于解码器)


2.1.1.程序

输入包括维度dk的queries 和keys 以及维度dv的values 。

计算 query与所有keys的点积,每个点积除以√(dk),并应用softmax函数来获得这些values的权重。

  • 实际上,注意力函数可以同时在一组queries上计算,并打包成矩阵Q。keys和values也打包成矩阵K和V。输出矩阵为:

2.1.2.使用Dot Product Attention而非Addition Attention的原因

  • 两个最常用的Attention函数是加法Attention和点积(乘法)Attention 。
  • 加法Attention使用带有单个隐藏层的前馈网络计算兼容性函数。
虽然两者在理论复杂性上相似,但由于可以使用高度优化的矩阵乘法代码来实现,因此在实践中,点积注意速度更快,空间效率更高。
  • 而对于较小的dk值,这两种机制的性能相似。
  • 对于较大的dk值,点积的增长幅度较大,将softmax函数推到梯度非常小的区域。为了抵消这种影响,我们将点积缩放1/√(dk)。

2.2. 多头Attention

Multi-Head Attention


与使用dmodel维度keys, values和queries执行单一注意功能不同,我们发现使用不同的学习线性投影将keys, values和queries线性推断h次,分别投影到dk、dk和dv维度是有益的。

  • 在keys, values和queries的每个推断版本上,attention函数并行执行,产生dv维输出值。它们被连接并再次预测

  • 其中推断为参数矩阵WQi、WKi、WVi。
  • 在这个模型中,h=8个并行的attention层或头部。
  • 对于其中的每一个,dk=dv=dmodel/h=64。由于每个头部的维数减小,因此总的计算成本与全维单头部attention的计算成本相似。

3.在Transformer中Attention的应用

Left: Encoder-Decoder Attention, Middle: Self-Attention at Encoder, Right: Masked Self-Attention at Decoder


回到整体框架,Transformer以三种不同的方式使用了多头注意(3个橙色块):

  1. 在“encoder-decoder attention”层中,queries来自前一个解码器层,记忆keys 和 values来自编码器的输出。这允许解码器中的每个位置都参与输入序列中的所有位置。这模仿了sequence-to-sequence模型中典型的编码器-解码器注意机制。
  2. 编码器包含self-attention层。在self-attention层中,所有 keys, values和queries都来自同一个位置,在本例中,是编码器中前一层的输出。编码器中的每个位置都可以关注编码器前一层中的所有位置。
  3. 类似地,解码器中的self-attention层允许解码器中的每个位置关注解码器中直到并包括该位置的所有位置。为了防止解码器中的信息向左流动以保持自回归特性,通过通过masking(设置为-∞)softmax输入中与非法连接相对应的所有值来修改缩放 dot-product attention。

4.位置前馈网络

位置前馈网络


除了attention 子层之外,编码器和解码器中的每一层都包含一个全连接的前馈网络,该网络由两个线性变换和一个ReLU激活层组成:

  • 另一种描述方法是将其描述为kernel大小为1的两个卷积。
  • 输入和输出的维度为dmodel=512,内层的维度为dff=2048,这是一个bottleneck 结构。

5.其他细节

5.1. Embeddings and Softmax

学习的Embeddings用于将输入tokens和输出tokens转换为维度dmodel的向量。
  • 通常学习的线性变换和softmax函数用于将解码器输出转换为预测的下一个tokens概率。
  • 在Transformer中,两个嵌入层和pre-softmax线性变换之间共享相同的权重矩阵。
  • 在Embeddings层中,这些权重乘以√(dmodel)。
5.2. 位置编码

Positional Encoding at Encoder (Left) and Decoder (Right)


  • 因为Transformer不包含递归和卷积,所以需要注入一些关于序列中tokens的相对或绝对位置的信息。
  • “位置编码”被添加到编码器和解码器堆栈底部的输入Embeddings中。位置编码与Embeddings具有相同的维度dmodel,因此可以将两者相加
使用不同频率的正弦和余弦函数:

  • 其中pos是位置,i是尺寸。位置编码的每个维度都对应于一个正弦波,这是一个假设,它将允许模型通过相对位置参与学习。

5.3. 为什么Attention

Maximum path lengths, per-layer complexity and minimum number of sequential operations for different layer types


有三个因素促使self-attention的使用:

  1. 每层的总计算复杂度。
  2. 可并行化的计算量。
  3. 网络中长距离依赖项之间的路径长度。
一个self-attention层用一个恒定数量的顺序执行的操作连接所有位置,而一个recurrent层需要O(n)个顺序操作。
在计算复杂度方面,当序列长度n小于表示维数d时,self-attention层比recurrent层快
kernel宽度k<n的单个卷积层不能连接所有输入和输出位置对。在连续kernel的情况下,这样做需要O(n=k)个卷积层的堆栈,或者在扩展卷积的情况下需要O(logk(n))个卷积层的堆栈。

6.实验结果
6.1. 数据集
  • WMT 2014英语-德语数据集由大约450万个句子对组成。句子是用字节对编码的,它有一个大约37000个tokens的共享源-目标词汇表。
  • WMT 2014英语法语数据集包含3600万个句子,并将标记拆分为32000个单词词汇量。每个训练批次包含一组句子对,包含大约25000个源tokens和25000个目标tokens。
6.2. SOTA比较

English-to-German and English-to-French newstest2014 tests


使用Beam尺寸为4的Beam搜索,长度惩罚α=0.6。

在WMT 2014年英语到德语翻译任务中,big transformer模型(big transformer)的BLEU分数超过了之前的最佳模型(包括ensembles),达到了28.4分。在8个P100 GPU上进行训练需要3.5天。

即使是基本模型也超过了之前发布的所有模型,如ByteNet、Deep Att、GNMT和Convs2。

在WMT 2014英法翻译任务中,提出的大模型的BLEU分数为41.0,优于之前发布的所有单一模型,训练时间不到之前最好模型的1/4。

6.3. 模型变体

Variations on the Transformer architecture on the English-to-German translation development set, newstest2013 (Unlisted values are identical to those of the base model)


A.单头注意力比最佳设置差0.9个BLEU,质量也会随着头部过多而下降。
B.减少注意键大小dk会影响模型质量。
C.和D.模型越大越好,dropout对于避免过度拟合非常有帮助。
E.在[9]中,正弦位置编码被学习的位置嵌入所取代,并且观察到与基本模型几乎相同的结果

English Constituency Parsing on Wall Street Journal (WSJ)


在这项任务中,输出强烈受到结构约束,并且显著长于输入。

一个dmodel=1024的4层 transformer在 Penn Treebank[25]的Wall Street Journal(WSJ)部分训练,大约有40K个训练句子。

该Transformer可以很好地推广到英语候选分析。

6.5. Attention可视化

An example of the attention mechanism following long-distance dependencies in the encoder self-attention in layer 5 of 6


许多 attention heads注意到动词“making”的一个较远的依赖关系,完成短语“making…more difficult”。这里显示的attention仅针对“making”一词。不同的颜色代表不同的头部。


Two attention heads, also in layer 5 of 6, apparently involved in anaphora resolution


顶部:Full attentions for head 5

底部:对于attention heads5和6,仅从“its”一词中分离出attentions。






路过

雷人

握手

鲜花

鸡蛋
我有话说......
电话咨询: 135xxxxxxx
关注微信