RealFormer: 残差式 Attention 层的Transformer 模型
原创作者 | 疯狂的Max
01 背景及动机
Transformer是目前NLP预训练模型的基础模型框架,对Transformer模型结构的改进是当前NLP领域主流的研究方向。
Transformer模型结构中每层都包含着残差结构,而残差结构中最原始的结构设计是Post-LN结构,即把Layer Norm (LN) 放在每个子层处理之后,如下图Figure 1(a)所示;而其他的一些预训练模型如GPT-2,则将LN改到每个子层处理之前,被定义为Pre-LN,如下图Figure 1(b),有论文[5]结果表明“Pre-LN”对梯度下降更加友好,收敛更快,更易于超参优化,但其性能总差于“Post-LN”。
为解决这个问题,本文作者提出 RealFormer 模型(Residual Attention Layer Transformer),如下图Figure 1(c)所示,将残差结构运用到attention层,使得模型对训练超参更具鲁棒性的同时,保证模型性能的提升。
而残差结构来源于图像领域经典的Resnet模型[6],可以有效解决深层神经网络中的梯度弥散/扩散和网络退化的问题[7],NLP领域Transformer经典结构[2]同图像领域模型一样,也拥有“窄而深”的模型,因此也当然可以通过残差结构来达到优化网络的目的,这也是Transformer结构中本身就设计了残差结构的原因。
具体来说,RealFormer相较于前面提到的两种结构(“Pre-LN”和“Post-LN”)不同在于,模型在每层中计算所有头的attention score时,加上了残差结构,即本层的attention score加上之前层的attention score。
值得注意的是,直接在attention计算时增加跳连连接并不会增加指数级的运算量,因此其效率是相对可观的。
本文的主要贡献在于:
1)RealFormer是一种在原始Transformer结构上的简单改进,只需要修改几行代码并且不需要过多的超参调整;
2)RealFormer的表现在不同规模的模型上都优于Post-LN和Pre-LN结构的模型;
3)RealFormer在包括GLUE在内的各种下游任务中提升了原始BERT的表现,并且当训练轮数只有一半时也可以到达相应的最强基线模型标准;
4)作者通过量化分析的方式证明了RealFormer与基线BERT模型相比,每层的attention更为稀疏和强关联,这样的正则化效果也有利于模型的稳定训练,并使得模型对超参调节更具有鲁棒性。
02 模型方法
1.标准Transformer模型结构
Transformer由encoder和decoder组成,两者的结构相似,以其encoder中一层来进行说明。Transformer层由2个子层构成,第一个子层包含多头注意力模块和对应的残差连接,第二个子层包含一个全连接的前向网络模块和对应的残差链接。Post-LN和Pre-LN的区别在于,Layer Norm在残差连接之前或之后。
2.残差式Attention层的Transformer结构
RealFormer沿用了Post-LN的模型设计,只是在每个Transformer层计算多头注意力事,加入前一层的Attention Scores矩阵。即计算第n层的注意力矩阵时,从公式(1)变为了公式(2)。
实现以上计算方式的改变只需要在Transformer的模型代码中做很少的代码改动,并且网络中不止一种类型的attention模块时也适用。
比如,在机器翻译模型中的encoder-encoder self-attention,encoder-decoder attention,decoder-decoder self-attention的模块都可以直接运用这样的计算改进方案。
作者特别提到,之所以沿用Post-LN的结构,是因为在同等合理算力的限制下,Post-LN比Pre-LN表现更好,这也正如本文[1]Section 4部分阐述实验结果时所论述的一样。
03 实验结果
作者将RealFormer模型,Post-LN结构模型、Pre-LN结构模型在预训练任务和下游任务的表现进行了对比分析。
1.预训练任务实验结果
首先,从预训练任务的表现结果来看,在不同规模的模型之下,RealFormer模型表现都优于其他两种结构。而随着模型规模的扩大,RealFormer结构的优势表现的更为明显,如下表Table 2所示。
另外,作者推测越大的模型更难以训练,而Post-LN的结构存在不稳定性。并且在xLarge的规模之下甚至会不收敛。RealFormer结构有助于模型的正则化和使得训练更加稳定,如下图Figure 2所示。
2.下游任务实验结果
三种模型在下游任务实验结果如下表Table 4所示:
在GLUE的各项下游任务和SQuAD下游任务的实验结果来看,RealFormer的表现是最佳的。
3.研究问题
1)在只有一半预训练算力预算的基础下,RealFormer效果如何?
在1M训练步数的情况下,RealFormer的表现超越了Post-LN和Pre-LN。那么在训练算力限制更为严格的情况下,RealFormer表现是否也会更佳,因此作者进行了相关对比实验,结果如下图所示。
结果表明,在训练步数被限制为500K时,RealFormer在GLUE下游任务上的甚至优于训练1M的Post-LN模型,而SQuAD下游任务上的表现也相差不多。
2)使用更大的学习率,RealFormer表现如何?
之前的一些论文表明Pre-LN相较Post-LN,更能从增加学习率中受益。受此启发,作者沿用之前预训练的步骤训练BERT-Large,只是将学习率增加到2e-4,并用3种模型结构进行实验。模型在MLM预训练任务上的准确率如下图所示:
可以看出:一方面,使用更大的学习率,Pre-LN和RealFormer表现都略有提升;另一方面,比起Pre-LN从73.21%提升到73.64%,RealFormer从73.94%提升到74.31%,提升获益更为明显。
3)如何量化RealFormer和基线Transformers的不同?
作者通过量化计算RealFormer结构中每层attention矩阵的交叉熵分布,并与Pre-LN和Post-LN进行了对比,得出结论:1)RealFormer 在所有层中都比另外两个模型方差更小,这就意味着其attention density更加不依赖于输入;2)在RealFormer第9-11层的顶层中的attentions更为稀疏。作者推测正是以上两点不同带来了RealFormer结构的稳定性和更受益于微调训练。
4)为正则化大模型,dropout是否会比RealFormer中的残差式注意力更为有效?
作者实验了在提高dropout率的情况下,三种模型的表现,其结果如下图所示,RealFormer仍然表现优于另外两种结构。但模型表现并不会随着dropout的增加而提升,因此RealFormer的残差结构的正则效果并不能被dropout所取代。
04 实验结果
RealFormer模型在预训练任务和GLUE和SQuAD两个下游任务上的表现都超越了Post-LN和Pre-LN两种模型结构。另外,在下游任务的表现上,RealFormer超越了训练轮数2倍预训练基线模型。通过量化分析,RealFormer无论是相比邻的层之间的attention还是不同头的attention,都更为稀疏。此外,RealFormer相对能从超参调整中更大程度提升模型效果。
参考文献
[1] He R , Ravula A , Kanagal B , et al. RealFormer: Transformer Likes Residual Attention[J]. 2020.
[2] Ashish Vaswani, Noam Shazeer, Niki Parmar, Jakob Uszkoreit, Llion Jones, Aidan N Gomez, Łukasz Kaiser, and Illia Polosukhin. 2017. Attention is all you need. In Advances in Neural Information Processing Systems, pages 5998–6008.
[3] Jacob Devlin, Ming-Wei Chang, Kenton Lee, and Kristina Toutanova. 2019. BERT: Pre-training of deep bidirectional transformers for language understanding. In Proceedings of the 2019 Conference of the North American Chapter of the Association for Computational Linguistics: Human Language Technologies, Volume 1 (Long and Short Papers), pages 4171–4186.
[4] Rewon Child, Scott Gray, Alec Radford, and Ilya Sutskever. 2019. Generating long sequences with sparse transformers. arXiv preprint arXiv:1904.10509.
[5] Xiong R , Yang Y , He D , et al. On Layer Normalization in the Transformer Architecture[J]. 2020.
[6] He K , Zhang X , Ren S , et al. Deep Residual Learning for Image Recognition[J]. 2016 IEEE Conference on Computer Vision and Pattern Recognition (CVPR), 2016.
[7]残差网络解决了什么,为什么有效?
https://zhuanlan.zhihu.com/p/80226180
私信我领取目标检测与R-CNN/数据分析的应用/电商数据分析/数据分析在医疗领域的应用/NLP学员项目展示/中文NLP的介绍与实际应用/NLP系列直播课/NLP前沿模型训练营等干货学习资源。
RealFormer: 残差式 Attention 层的Transformer 模型的更多相关文章
- 详解Transformer模型(Atention is all you need)
1 概述 在介绍Transformer模型之前,先来回顾Encoder-Decoder中的Attention.其实质上就是Encoder中隐层输出的加权和,公式如下: 将Attention机制从Enc ...
- Transformer模型---encoder
一.简介 论文链接:<Attention is all you need> 由google团队在2017年发表于NIPS,Transformer 是一种新的.基于 attention 机制 ...
- 文本分类实战(八)—— Transformer模型
1 大纲概述 文本分类这个系列将会有十篇左右,包括基于word2vec预训练的文本分类,与及基于最新的预训练模型(ELMo,BERT等)的文本分类.总共有以下系列: word2vec预训练词向量 te ...
- transformer模型解读
最近在关注谷歌发布关于BERT模型,它是以Transformer的双向编码器表示.顺便回顾了<Attention is all you need>这篇文章主要讲解Transformer编码 ...
- transformer模型简介
Transformer模型由<Attention is All You Need>提出,有一个完整的Encoder-Decoder框架,其主要由attention(注意力)机制构成.论文地 ...
- Transformer模型---decoder
一.结构 1.编码器 Transformer模型---encoder - nxf_rabbit75 - 博客园 2.解码器 (1)第一个子层也是一个多头自注意力multi-head self-atte ...
- Transformer模型总结
Transformer改进了RNN最被人诟病的训练慢的缺点,利用self-attention机制实现快速并行. 它是由编码组件.解码组件和它们之间的连接组成. 编码组件部分由一堆编码器(6个 enco ...
- NLP与深度学习(四)Transformer模型
1. Transformer模型 在Attention机制被提出后的第3年,2017年又有一篇影响力巨大的论文由Google提出,它就是著名的Attention Is All You Need[1]. ...
- Transformer模型详解
2013年----word Embedding 2017年----Transformer 2018年----ELMo.Transformer-decoder.GPT-1.BERT 2019年----T ...
随机推荐
- webservice websocket socket http rpc
HTTP: HTTP 是基于请求响应式的,即通信只能由客户端发起,服务端做出响应,无状态,无连接. webSocket: 服务器可以主动向客户端推送信息,客户端也可以主动向服务器发送信息,是真正的双向 ...
- Webpack有哪些常见的Loader?他们是解决什么问题的?
先来了解一下Loader,webpack是属于模块化方案,他能让任意类型的文件都能运行在浏览器中,怎么做到呢?这时就有了loader 定义: loader 用于对模块的源代码进行转换.loader 可 ...
- 使用.NET 6开发TodoList应用(16)——实现查询排序
系列导航及源代码 使用.NET 6开发TodoList应用文章索引 需求 关于查询的另一个需求是要根据前端请求的排序字段进行对结果相应的排序. 目标 实现根据排序要求返回排序后的结果 原理与思路 要实 ...
- eDiary电子日记本
1.简介 eDiary是一款小巧的本地电子日记本, 也可以用来管理资料文档, 支持常用的文字编辑排版功能, 也支持插入图片功能. 支持多用户,可以设置登录用户名和密码, 每个用户可拥有多个日记文件, ...
- 把rocksdb配置成leveldb
将rocksdb配置成leveldb 1.配置方法 配置方式有三种: 第一种适合进行性能测试对比:是以参数形式在运行db_bench或ycsb-c的时候以参数形式将rocksdb将其配置成leveld ...
- 实践剖析.NET Core如何支持Cookie和JWT混合认证、授权
前言 为防止JWT Token被窃取,我们将Token置于Cookie中,但若与第三方对接,调用我方接口进行认证.授权此时仍需将Token置于请求头,通过实践并联系理论,我们继续开始整活!首先我们实现 ...
- Swoole 中使用 PDO 连接池、Redis 连接池、Mysqli 连接池
连接池使用说明 所有连接池的实现均基于 ConnectionPool 原始连接池: 连接池的底层原理是基于 Channel 的自动调度: 开发者需要自己保证归还的连接是可重用的: 若连接不可重用,需要 ...
- monkey怎么做APP自动化?
前言: monkey是andriod平台自动化测试的一种手段,通过monkey程序模拟触摸屏幕.滑动,滚屏,按键来对设备进行压力测试,检测程序多久会出现异常第一种:设置好命令,做随机自动化 什么时候可 ...
- VirtualBox虚拟机安装win8/10
你可能会遇到过,需要win8来做一些操作,不过自己的本机是win7,难道要重装系统吗?操作好了后,想用回win7怎么办?这个时候,如果旁边有人的系统刚好符合你对系统的要求,那可以借用,如果使用时间太长 ...
- access注入 - 联合查询
1.access数据库简介 简介:Microsoft Office Access是由微软发布的关系数据库管理系统.它结合了 MicrosoftJet Database Engine 和 图形用户界面两 ...