RealFormer:Real 简单,Real 有效
来自 Google Research 一篇关于 Transformer 改进的论文,提出方法 real 简单,论文也写得 real 简洁,可以说是最近读得最没难度的论文了。但虽然方法简单,效果却很好。
RealFromer 中的 Real 表示 Residual Attention Layer,这三个词其实已经介绍完了这篇论文的方法。所以如果只介绍方法的话,那写到这里就可以结束了。
真的很简单,论文里都能看到作者们努力凑页数的辛苦。
为了不辜负这份辛苦,还是看看吧。
Residual Attention Layer:嗯,就改一行代码
First,将上面 Residual Attention Layer 展开讲一下,如字面意思,相比原来的 Transformer 模型,RealFormer 模型只是在相邻 Attention 模块间加入了残差连接。所以需要改的代码可能都才一两行。
模型示例图如下
只是在每层 Attention Score 计算时,加上前一层的 Attention Score.
用方程表示的话,先写出原 Transformer 注意力计算方程
而 RealFormer 只是在过 Softmax 前,加上前一层的 Attention Score
注意这里加的是 Attention Score,而不是过 softmax 后的 Attention.
至于第一层,当然没 Prev.
Benchmark 对比:Real 好哇
可能为了增加实(cou)验(ye)量(shu),所以对比的 Transformer 模型再分成 Post-LN 和 Pre-LN 模型,就是 Layer Normalization 放 Attention 前还是后的区别,前者是最原始的,应用也比较广,而后者则在 GPT,Megatron 这样的单向语言模型应用比较多。
两者区别如下
Pre-LN 的话相当于在各层 Token Embedding 直接打了条通道。
主要在预训练模型 BERT 上进行实验,分别在预训练和精调实验上进行了对比,首先预训练实验
发现 RealFormer 表现都最好,有稳定提升,特别是最大的 xLarge 提升最大。
之后在 GLUE 上精调对比,用的 Large 模型
发现 RealFormer 的整体分最好的,大部分任务优于其他两个,而凑数的 Pre-LN 当然也是垫底。
接着在 SQuAD 问答数据集上进行精调,因为该任务的复杂性,SQuAD 能比较好反应预训练模型的整体性能,也是在 Large 模型进行的精调。
可以看出 RealFormer 仍然是优于其他两个。
因为真的很简单,Reddit 上的热心网友也马上改了行代码后,在 CIFAR-10 图像识别上做了实验
发现 RealFormer 比 Transformer 确实有比较好的提升。
所以整体来说,RealFormer 是 Real 有效。
细节分析:零零碎碎
首先,RealFormer 的算力利用有效性
和 Post-LN 模型对比,只用一半训练步数就能在 GLUE 上取得相近表现。
然后,之前有发现,Pre-LN 模型对大学习率会有收益,那 RealFormer 怎么样
实验发现 RealFormer 也有类似性质,对大学习率有较大收益。
最后,作者还对各个头的输出分布进行了分析,包括各个头内部,以及跨层之间同一个头,这里画了两幅超大的图,直接占了差不多两页的篇幅。
而得出的结论是,相比起 Post-LN 和 Pre-LN,RealFormer 获得的 Attention 会更稀疏,特别是后几层。而且中间几层之间的 JS-散度比较低,说明可能 RealFormer 有效的原因是提供了一定的 Regularityzation(嗯,万物都可正则)。
结语
这篇论文感觉内容可能就一篇 short paper 吧,但还蛮有意思的,提出一个很简单的方法,然后规规矩矩地进行了实验分析。看完之后拍自己脑袋,咋没想这样试过呢。
但不足之处也很明显,只是提出了这个方法,对方法为什么有效的分析还是有点少,只是单纯做实验然后陈述结果。
所以看完后还是挺疑惑,为什么给 Attention Score 加个残差连接就有效呢,还是不懂。分析发现可以让 Attention 更稀疏,那为什么稀疏带来的提升更好呢,感觉这一块再多做些理论分析会更好些。