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

文 | 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)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/478800.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LeetCode 652. 寻找重复的子树(DFS)

1. 题目 给定一棵二叉树,返回所有重复的子树。对于同一类的重复子树,你只需要返回其中任意一棵的根结点即可。 两棵树重复是指它们具有相同的结构以及相同的结点值。 示例 1:1/ \2 3/ / \4 2 4/4 下面是两个重复的子树&#xff1a…

论文浅尝 - CIKM2020 | Relation Reflection Entity Alignment

论文笔记整理:谭亦鸣,东南大学博士生。来源:CIKM 2020链接:https://arxiv.org/pdf/2008.07962.pdf研究背景与任务描述:实体对齐旨在基于已有对齐实体标注的情况下,确定不同KG中未知的对等实体,其本质是mult…

SQL解析在美团的应用

数据库作为核心的基础组件,是需要重点保护的对象。任何一个线上的不慎操作,都有可能给数据库带来严重的故障,从而给业务造成巨大的损失。为了避免这种损失,一般会在管理上下功夫。比如为研发人员制定数据库开发规范;新…

无内鬼,来点ICML/ACL审稿人笑话

文 | Sheryc_王苏最近,如果你的小伙伴突然没时间陪你出来玩了,请不要担心,ta可能正在与ICML/IJCAI/ACL的审稿人斗智斗勇。过去的一周里,机器学习顶会ICML、人工智能顶会IJCAI和NLP顶会ACL扎堆放出审稿人意见,有人欢喜有…

Docx:docx.opc.exceptions.PackageNotFoundError: Package not found at

Docx:docx.opc.exceptions.PackageNotFoundError: Package not found at:https://blog.csdn.net/python__reported/article/details/106318330 Docx:docx.opc.exceptions.PackageNotFoundError: Package not found at 一、报错内容二、解决方法 一、报错内容 报错&a…

LeetCode 148. 排序链表(归并排序、快速排序)

文章目录1. 题目2. 解题2.1 归并排序2.2 快速排序1. 题目 在 O(n log n) 时间复杂度和常数级空间复杂度下,对链表进行排序。 示例 1:输入: 4->2->1->3 输出: 1->2->3->4 示例 2:输入: -1->5->3->4->0 输出: -1->0->3->4-&…

论文浅尝 | 基于对抗学习的弱监督知识图谱对齐

论文笔记整理:郭凌冰,浙江大学研究助理,研究方向为知识图谱的表示学习。绝大部分现有的知识图谱对齐方法都要求足够的已对齐三元组作为监督数据,但在现实世界中,获取大量的对齐三元组的代价十分高昂。本文提出一种同时…

美团数据平台Kerberos优化实战

背景 Kerberos 是一种网络认证协议,其设计目标是通过密钥系统为客户端、服务器端的应用程序提供强大的认证服务。 作为一种可信任的第三方认证服务,Kerberos是通过传统的密码技术(如:共享密钥)执行认证服务的&#xff…

Android官方开发文档Training系列课程中文版:如何避免ANR?

原文地址:http://android.xsoftlab.net/training/articles/perf-anr.html#anr 尽管你写代码可能通过了世界上所有的性能测试,但是它还是可能会让人感觉到卡顿。当应用卡的不成样子时,系统会给你弹一个”Application Not Responding”的对话框…

预训练语言模型真的是世界模型?

文 | 子龙自GPT、BERT问世以来,预训练语言模型在NLP领域大放异彩,刷新了无数榜单,成为当前学界业界的心头爱,其主体结构——Transformer——也在逐步的运用于其他领域的任务中,常见的如与CV的跨界,也有相对…

monk js_对象检测-使用Monk AI进行文档布局分析

原文链接:https://blog.csdn.net/weixin_26752075/article/details/108494230 monk js 计算机视觉 (Computer Vision) 介绍 (Introduction) This is an article on how Object Detection can help us in predicting various regions of a document. It can be usefu…

LeetCode 2019 力扣杯全国秋季编程大赛

文章目录1. 比赛结果2. 题目解析2.1 猜数字 Easy2.2 分式化简 Esay2.3 机器人大冒险 Medium2.4 覆盖 Hard2.5 发 LeetCoin Hard1. 比赛结果 2019.9.24晚,第一次参加线上比赛 比赛排名结果:582/1541,做出了2道题。。。 我证明了:…

美团广告实时索引的设计与实现

背景 在线广告是互联网行业常见的商业变现方式。从工程角度看,广告索引的结构和实现方式直接决定了整个系统的服务性能。本文以美团的搜索广告系统为蓝本,与读者一起探讨广告系统的工程奥秘。 领域问题 广告索引需具备以下基本特性: 层次化的…

论文浅尝 - AAAI2020 | 多通道反向词典模型

论文笔记整理:朱珈徵,天津大学硕士,自然语言处理方向。链接:https://arxiv.org/pdf/1912.08441.pdf动机反向词典将一段描述作为输入,并一起输出与该描述匹配的其他词,具有重要实用价值和自然语言处理研究价…

拒绝暴力调参!推荐一个模型Debug神器!

近些年深度学习在视觉、自然语言处理、语音等各个技术方向都诞生了不少创新应用,如智能识别医疗图像中的病灶,辅助医生做病情诊断;智能判别生产线上有质量问题的产品,减轻人工质检压力;对政务、金融等流程中的证件票据…

论文浅尝 - IJCAI2020 | Mucko:基于事实的多层跨模态知识推理视觉问答

论文笔记整理:陈卓,浙江大学计算机科学与技术系,博士研究生。论文链接:https://arxiv.org/pdf/2006.09073代码:https://github.com/astro-zihao/mucko发表会议:IJCAI 2020任务定义及背景VQA(视觉…

LeetCode 40. 组合总和 II(排列组合 回溯)

1. 题目 给定一个数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。 candidates 中的每个数字在每个组合中只能使用一次。 说明: 所有数字(包括目标数)都是正整数。 解集不能包含重…

质量运营在智能支付业务测试中的初步实践

背景 毋庸置疑,质量是决定产品能否成功、企业能否持续发展的关键因素之一。对于“质量时代”下的互联网企业,如何在快速迭代的节奏中兼顾质量,真正落地“人人重视质量、人人创造质量、人人享受质量”,这是对QA的要求,也…

新手手册:Pytorch分布式训练

文 | 花花机器学习算法与自然语言处理单位 | SenseTime 算法研究员目录0X01 分布式并行训练概述0X02 Pytorch分布式数据并行0X03 手把手渐进式实战A. 单机单卡B. 单机多卡DPC. 多机多卡DDPD. Launch / Slurm 调度方式0X04 完整框架 Distribuuuu0X05 Reference文中所有教学代码和…

Hotel booking酒店预订——数据分析与建模

Hotel booking酒店预订——数据分析与建模:https://zhuanlan.zhihu.com/p/196757364?utm_sourcewechat_session 写文章Hotel booking酒店预订——数据分析与建模(转载翻译自kaggle)海上泊舟数据分析师数据源:https://www.science…