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 ...
随机推荐
- wordpress中遇到的问题
在博客园申请了账号,也已经开始写了两篇内容,但还是想要有属于自己的小站.于是将域名续费了几年,又在我之前买的vps上搭建了一个wordpress博客站点,这样以后我就可以同时发布到两个地方. 根据教程 ...
- 第四十三个知识点:为AES描述一些基础的(可能无效)的对抗侧信道攻击的防御
第四十三个知识点:为AES描述一些基础的(可能无效)的对抗侧信道攻击的防御 原文地址:http://bristolcrypto.blogspot.com/2015/07/52-things-numbe ...
- 去除input标签点击时的默认样式
去除input标签点击时的默认样式的方法 outline:none; //去除点击时的边框 border : none; //去除input框的边框
- Deepin20系统安装Nvidia驱动
Deepin20系统安装Nvidia驱动 系统设备配置信息如下: 电脑型号:华硕天选air[ASUS-FX516P] 显卡型号:RTX 3070 移动版独显 处理器型号: 11th Gen Intel ...
- MySQL数据库报错 > 1366 - Incorrect string value: ‘\xE6\xB1\x9F\xE6\x96\x87‘ for column ‘Teacher‘ at row 1
数据库报错这个多半是数据库在创建的时候没有选择字符编码,导致输入中文的时候出现报错. > 1366 - Incorrect string value: '\xE6\xB1\x9F\xE6\x96 ...
- 编写Java程序_输入本部门五位员工的薪资,并根据用户输入的序号为指定员工进行提薪。若用户输入序号出现越界,则提示错误。
要求说明: 输入本部门五位员工的薪资,并根据用户输入的序号为指定员工进行提薪.若用户输入序号出现越界,则提示错误. 运行效果如图: 实现代码: import java.util.Scanner; pu ...
- Java初学者作业——编写Java程序,在控制台中输入一个数字,要求定义方法实现找出能够整除该数字的所有数字。
返回本章节 返回作业目录 需求说明: 编写Java程序,在控制台中输入一个数字,要求定义方法实现找出能够整除该数字的所有数字. 实现思路: 定义方法findNums(),用于实现查找所有能够整除指定数 ...
- nuxt服务端渲染
<template> <div class="page"> page is search <ul> <li v-for="(it ...
- MySQL索引失效之隐式转换
常见索引失效: 1. 条件索引字段"不干净":函数操作.运算操作 2. 隐式类型转换:字符串转数值:其他类型转换 3. 隐式字符编码转换:按字符编码数据长度大的方向转换,避免数据截 ...
- 移动端调试 - UC浏览器开发者版 - WIFI
Chrome 功能特性 支持PC或Pad设备,实时调试手机网页 DOM.CSS.JS调试 多功能面板满足多种调试需求 1 准备工作 保证手机与PC处于同一个无线网段. 下载Android平台的U ...