文 | Sherry

自从17年Attention is all you need发出,继而18年BERT刷新各大榜单,大型预训练Transformer似乎已经成为自然语言处理的标准基准模型,甚至进一步渗透到图像领域。各路大神基于Transformer提出了海量改进方法。这些改变是否对大多数任务有效?谷歌的研究人员对大量的设定在统一的代码库和硬件环境下进行了实验比较。出乎意料的是,大多数“高大上”的改进都不能拓展到所有数据集,反而是一些简单或细节的改动则可以“大力出奇迹”。

论文题目:
Do Transformer Modifications Transfer Across Implementations and Applications?

论文链接:
https://arxiv.org/pdf/2102.11972.pdf

Github:
https://github.com/google-research/google-research/tree/master/transformer_modifications

也可以在 【夕小瑶的卖萌屋】订阅号后台回复关键词 【0329】 下载论文PDF~

为什么要比较不同版本的BERT?

一个真正有效的方法应该可以推广到其他任务。比如说一个改动是针对Transformer编码器的,那么无论下游任务是简单的分类还是NER都应该有效,你不能说我有一把牛刀但它不能用来杀鸡吧。这也是为什么在CNN的各类改进被提出之后图像研究者们总是会用一个最新的版本作为基准实验。然而,即使BERT已经提出了近3年,在实验中大家普遍使用的基准仍然是和一开始的BERT设定非常相似的实验设定。难道最初提出的Transformer是完美的?或者这些魔改都不是本质的,各路大神只是调参让实验刷榜,之后再想办法圆故事发文章。

于是谷歌大佬们就做了一个实验,把所有针对Transformer的变化放到同一个实验环境下进行比较,看看谁才是最强王者。有了这份实验结果,我们在拿到一个全新的任务的时候,再也不用纠结辣么多高级的Transformer变种到底应该用哪一个好了。

回顾Transformer结构

首先我们回顾同时包含编码器-解码器的Transformer结构,输入输出分别是长度为T和U的词序列。

嵌入词向量

输入序列




















经过嵌入词向量的映射矩阵

































同时加上位置嵌入向量



























构成了编码器的输入,









是正弦绝对位置嵌入。我们分别用




















表示编码器和解码器的第




层的输出,同时也是






层的输入。

编码器

编码器的每一层从一个多头自注意力网络(Multi-headed Self-attention)开始, 第




层第




位的第




个头的注意力机制由以下方式构成:



















































































其中Q,K,V是权重矩阵。

然后我们将所有头得到的向量连接在一起,并且通过残差连接(Residual connection)和层规范化(Layer Normalization):

这里 LayerNorm具体可以展开为:

然后多头注意力的输出通过使用ReLU激活函数的全连接网络(dense feedforward network)和残差以及LayerNorm层:

解码器

解码器和编码器结构类似,区别在于:

  1. 自注意力机制是因果的--后面的词只能关注到前面的词。通过注意力的下三角掩码(mask)实现。

  2. 解码器中还包含一个交叉注意力机制--在每一层解码器的自注意力机制之后,我们将最后一层编码器的K和V,以及前一层解码器的Q做一次多头注意力。

解码器的最后一层输出通过一个解码嵌入映射

































得到最后的输出。

开启疯狂实验

本文的实验以T5为基础,全都采用同时包含编码器和解码器的网络。因而所有任务都采用T5中的格式转化为了序列输入输出。不同于最原始的Transformer结构,由于前置LayerNorm层和使用相对位置编码已经得到学术界的广泛认可,实验中默认采用这两个设定。

下面实验性能结果分为四个部分:

  1. 模型效率:分别用参数量(Params),运算单例所需操作数(Ops),训练速度(Step/s).

  2. 预训练效果:在预训练65,536步(Early loss)之后的困惑度(Perplexity)和训练完全524,288步之后(Final loss)的困惑度。

  3. 在SuperGLUE, XSum 和 WebQuestion上微调后的得分。

  4. 用WMT-14 EnDe从头训练后测试的得分。

现在让我们看看到底Transformer技术哪家强。

激活函数

对于全连接层的激活函数ReLU,我们可以替换成GeLU, Swish, ELU, SeLU, Sigmoid, Softplus和若干GLU(Gated Linear Unit)的变种(ReGLU, GeGLU, LiGLU)。实验结果显示,GeGLU和SwiGLU获得了最大的效果提升。

正则化

对于LayerNorm的正则化方法我们可以替换成RMS(root mean square) norm, 或者使用带有正则化效果的Rezero或者Fixup初始化方法。实验结果发现高大上的初始化方法并不起效,反而是RMS--直接把LayerNorm中对均值的偏置去除有更好的效果。

模型深度

那么全连接网络的宽度和深度哪个更重要呢?实验中我们保持总参数量不变,探究












的关系。从表格中可看出,总体上更深的全连接层更有效。

词向量嵌入和参数共享

模型中一共在编码器的输入,解码器的输入和输出3次用到了
























维的词向量嵌入矩阵,原始Transformer中共享了这三个嵌入矩阵的参数。这里分别实验了只共享两个输入端、只共享解码器两端,或者不共享所有词向量的参数。

另外,作者还研究了将词向量嵌入分解成低维矩阵的影响:将
























维的分解为

















































的两个矩阵。在这个实验中固定编码器和解码器输入端共享参数。

最后,作者还探究了适应性输入嵌入(Adaptive input embeddings)的作用。他们将词根据频率排序,常见词使用更高维的嵌入向量。

除了词向量嵌入可以共享之外,实验中还分析了共享编码器和解码器其他参数的作用。

实验表明,参数共享或者是分解词向量嵌入矩阵对模型效果有损伤,但是将编码器和解码器的词向量嵌入解绑可以对效果有略微提升。

Softmax

在解码器最后生成序列的时候需要经过Softmax函数,实验中将其替换为其他激活函数:Adaptive softmax利用词表的不均匀分布形成的聚类分级选词从而提高运算速度。Mixture of Softmaxes:则把多个softmax函数通过不同的比例加起来,从而提高softmax部分的表达能力。实验表明Mixture of softmaxes可以提高效果但是比正常的Transformer慢了40%。

模型结构

重头戏来了,除了上述的简单改进之外,本文还对多种模型结构的改变进行了在统一环境下的实验,我们在此简略地给出各种模型的介绍,对细节感兴趣的读者可以参考原论文。

Transparent Attention18年Google AI提出,在编码器深度方向建立带权重的残差连接,从而使促进梯度的流动。

Evolved Transformer19年,Google Research提出用自动算法搜索最佳Transformer结构。本文也将搜索出的最佳结构加入实验。

Synthiesizer20年5月,Google Research又提出Synthiesizer: 用学习的方法获得注意力权重。在Synthiesizer(Random)的设定下,他们直接学习注意力权重然后用来做值向量的线性组合。

Funnel Transformer 则采用类似卷积池化的方式,逐层减少编码器中的序列长度从而更有效地得到句子编码。

Lightweight and Dynamixc convolutions 使用简化的网络代替Transformer,Lightweight Convolutions的本质可以看作是在深度维度上的卷积网络,只不过每m个频道会共享参数。而Dynamic Convolutions则是核会根据当前步输入改变的卷积网络。

Sparse Expert TransformersMixture of Experts (MoE) Transformer 和 Switch Transformer 都将全连接层替换成了多个小网络组成的专家们,对于不同的输入,模型会自动选择最终通过哪个网络进行最后的预测。

Product Key Memory 同样用可选的多个小网络替换全连接层,区别在于这里最后的预测函数是k-近邻的带权平均得到。

Universal Transofrmer 中为了处理更长的序列,设计了类似序列级别循环网络

但出乎所有人意料的是,这些花里胡哨的改动很少有显著提高模型效果的。在这些实验中,Synthesizer,对模型效果有显著提高。Switch Transformer, mixture of experts 和 Product Key memory虽然有效但都增加了更多的模型参数。

总结一下

文章中尝试了Transformer的许多变种,他们发现这里面最有效的变化反而是那些简单而细节的变化:比如替换成GeGLU激活函数,使用RMS正则化等。而反观模型上的改进,很少的方法可以推广到所有任务中

但当然,还有许多模型改进本文没有涉及,比如Longformer,Linformer, Performer, Nystromformer等等,那又是针对提升Transformer运算效率的另外一个故事了...

萌屋作者:Sherry

本科毕业于复旦数院,转行NLP目前在加拿大滑铁卢大学读CS PhD。经历了从NOIer到学数学再重回CS的转变,却坚信AI的未来需要更多来数学和自认知科学的理论指导。主要关注问答,信息抽取,以及有关深度模型泛化及鲁棒性相关内容。

作品推荐:

  1. Facebook刷新开放域问答SOTA:模型训模型!Reader当Teacher!

  2. 谷歌、CMU发文:别压榨单模型了!集成+级联上分效率更高!

  3. 无需人工!无需训练!构建知识图谱 BERT一下就行了!

后台回复关键词【入群

加入卖萌屋NLP/IR/Rec与求职讨论群

后台回复关键词【顶会

获取ACL、CIKM等各大顶会论文集!

 

[1] Training Deeper Neural Machine Translation Models with Transparent Attention. (https://arxiv.org/pdf/1808.07561.pdf)

[2] The Evolved Transformer. (https://arxiv.org/pdf/1901.11117.pdf)

[3] SYNTHESIZER: RETHINKING SELF-ATTENTION FOR TRANSFORMER MODELS. (https://arxiv.org/pdf/2005.00743.pdf)

[4] Funnel-Transformer: Filtering out Sequential Redundancy for Efficient Language Processing. (https://arxiv.org/pdf/2006.03236.pdf)

[5] PAY LESS ATTENTION WITH LIGHTWEIGHT AND DYNAMIC CONVOLUTIONS. (https://arxiv.org/pdf/1901.10430.pdf)

[6] SWITCH TRANSFORMERS: SCALING TO TRILLION PARAMETER MODELS WITH SIMPLE AND EFFICIENT SPARSITY. (https://arxiv.org/pdf/2101.03961.pdf)

[7] Large Memory Layers with Product Keys. (https://arxiv.org/pdf/1907.05242.pdf)

[8] Universal transformers. (https://arxiv.org/pdf/1807.03819.pdf)

[9] GLU Variants Improve Transformer. (https://arxiv.org/pdf/2002.05202.pdf)

谁才是Transformer家族中的最强王者?谷歌告诉你答案相关推荐

  1. 用友t+畅捷通使用方法_北用友 南金蝶,谁才是中国财务软件的最强王者

    天龙八部中有北乔峰.南慕容的江湖传说,而在中国财务软件行业中也有北用友.南金蝶的传言. 小说中,无论是北乔峰,还是南慕容均不是天龙八部世界中的最强王者,扫地僧才是.但在现实生活中,中国财务软件的最强王 ...

  2. 指纹、面部、虹膜,谁才是AI手机身份识别最强王者?

    世界上没有两片相同的叶子,也没有相同的人,生物识别技术的用武之地非常多. 三点机遇让生物识别技术成为智能手机新宠 生物识别并不是什么新技术,它是利用人体固有的生理特征来进行个人身份鉴定的技术,在上世纪 ...

  3. StampedLock 读写锁中的最强王者

    StampedLock 简介 我们前面介绍了 ReentrantReadWriteLock可重入读写锁详解,不过 jdk1.8 引入了性能更好的 StampedLock 读写锁,我愿称之为最强! 一种 ...

  4. 一文细数Vision transformer家族成员

    可以看作是vision transformer的idea集,查漏补缺使用.需要精读的文章前面加了*号,均附有文章链接及代码链接. 下面这个链接基本上有所有的ViT的论文地址:https://githu ...

  5. 【自然语言处理】从词袋模型到Transformer家族的变迁之路

    从词袋模型到Transformer家族的变迁之路 模型名称 年份 描述 Bag of Words 1954 即 BOW 模型,计算文档中每个单词出现的次数,并将它们用作特征. TF-IDF 1972 ...

  6. 关于“只有静态常量整型数据成员才可以在类中初始化”

    关于"只有静态常量整型数据成员才可以在类中初始化" 关于类中的静态成员变量, 在类中只能声明,不能定义 注意在类的内部只是声明,不是定义 类中的静态变量是属于类的,不属于某个对象! ...

  7. 【工大SCIR笔记】浅谈Transformer模型中的位置表示

    作者:哈工大SCIR 徐啸 0. 何为位置信息 首先简单谈一下位置信息.一般将位置信息简单分为绝对位置信息和相对位置信息,并且前者对句子语义的影响不大,更为重要的是后者. 以情感分析 (Sentime ...

  8. Transformer家族5 -- 推理加速(Faster-Transformer、TurboTransformers)

    系列文章,请多关注 Transformer家族1 – Transformer详解和源码分析 Transformer家族2 – 编码长度优化(Transformer-XL.Longformer) Tra ...

  9. 智能开关家族中人体红外感应开关的应用领域

    所谓智能开关,既是指能够根据周围环境中的某一个或多个条件的变化,智能开启或关闭的开关.因此,智能开关家族中品种众多,只要不是机械开关,都可以归为智能开关.根据功能和控制的设备不同,分为智能家居开关和智 ...

最新文章

  1. 24、Cocos2dx 3.0游戏开发找小三之网格动作:高炫酷的3D动作
  2. 2021年春季学期期末统一考试 组织行为学 试题
  3. js 中对于 css 的变量操作(React也可)
  4. Fedora/CentOS7/RedHat7关闭图形桌面开启文本界面
  5. Codeforces 55D Beautiful numbers (数位DP)
  6. 在虚拟机中安装红旗桌面7.0 Linux操作系统的详细图文教程
  7. 腾讯云服务器ftp部署及文件上传
  8. 使用mingw编译log4cpp--问题整理
  9. 2012年1月51CTO壁纸点评活动获奖名单【已结束】
  10. 电脑调节屏幕亮度快捷键失灵の解决方案
  11. 简述 MQTT协议概念
  12. RSA的dp泄露 —— 【WUST-CTF2020】leak
  13. java中的double 类型数据相加问题
  14. 硅谷一万清华人,为何打不过印度人?
  15. Unity3d挂载脚本时报错“Can't add script behaviour TMP_CoroutineTween. ...”
  16. 格式工厂 php接口,格式工厂 V2.60 (FormatFactory)免费的多媒体格式转换软件
  17. 3D视觉缺陷检测:理论与实战!
  18. new操作符的实现原理
  19. P1071 [NOIP2009 提高组] 潜伏者
  20. Terraformation启动全球首个专注于生物多样性的碳融资森林加速器,以创建更多的全球土地恢复项目

热门文章

  1. Spring的@Scheduled任务调度
  2. 付忠庆的练习小笔记-Codeforces #277 Div2 C
  3. GridView 中添加删除确认提示框
  4. 突然发现被点名(理想恋人游戏)
  5. GARFIELD@10-07-2004
  6. 跟一个大佬前辈交流了一下
  7. STM32F7xx —— 输出
  8. Linux下Samba服务器搭建
  9. linux 文件系统 簇 浪费空间,Linux rm -rf删除文件不释放空间的解决办法
  10. java长连接例子_java实现长连接