论文标题:ConvBERT: Improving BERT with Span-based Dynamic Convolution
论文链接:https://arxiv.org/abs/2008.02496
论文来源:NeurIPS 2020
一、概述
- 简介
本文提出了一种新的预训练语言模型ConvBERT,这个模型是在BERT的基础上进行改进,最终极大地提升了训练的速度,节约了训练成本,同时提升了模型效果,具体的,ConvBERT用 1/10 的训练的时间和 1/6 的参数,就能获得跟原来的模型获得一样的精度。
该模型引入了以下几个新的机制:
①mixed attention;
②span-based dynamic convolution;
③bottleneck structure for self-attention;
④grouped linear operator。
- BERT中的冗余
提出该结构的具体出发点是该团队发现BERT结构中存在大量的冗余,具体包括以下两点:
①虽然self-attention是一种非局部(non-local)的operator,但是通过观察attention map可以发现很大比例的attention head主要学习的是文本局部的依赖关系(local dependency)。
这一点可以通过观察BERT的平均attention map来确认:
average attention mapSelf-attention使用所有的token来生成attention weight来捕捉全局的依赖关系,但通过观察其平均attention map可以看到BERT更多的学习到了局部的依赖关系。这个事实是很容易理解的,对于语言来说,一句话中的一个词更多地依赖于其附近的词,这也是语言的内在属性。
②在微调时移除一些attention head并不影响模型的性能。
以上两点表明BERT的架构中存在大量的冗余。于是该团队考虑使用一种local operator来替换一些attention head来减少BERT中的冗余。在处理局部依赖关系时我们很自然地会想到卷积操作,于是在结合前人有关语言模型的卷积操作的研究的基础上,该团队提出了基于区间的动态卷积(span-based dynamic convolution)。
- 相关工作
一些其他的研究会使用一些方法来压缩预训练模型,比如:
①weight pruning;
②weight sharing;
③knowledge distillation;
④quantization。
另外一些研究会扩展预训练模型,比如:
①incorporate knowledge;
②multiple languages;
③multiple modalities。
但是通过修改模型架构来提升语言模型性能的研究相对较少。
二、不同方法的对比
NLP中的卷积的方式也有很多种,比起使用传统的被所有token分享参数的卷积核,动态卷积(dynamic convolution)对于捕捉局部依赖关系显然更有灵活性。
对比上图展示了self-attention、dynamic convolution和span-based dynamic convolution共3种不同的方法。
dynamic convolution使用一个kernel generator来为每个词的embedding生成自己的卷积核,但是它的局限性在于会为不同上下文的同一个词生成相同的卷积核,难以学习一词多义的情况(比如下图b中多个“can”)。
而span-based dynamic convolution的kernel generator会输入当前词以及该词周边一个区间内的词来生成卷积核,对解决上述一词多义的问题很有帮助。
另外,由上图可以看出,随着序列长度的增加,self-attention的复杂度呈现二次增长。
三、NLP中的卷积
首先需要说明在NLP任务中,卷积的channel指的是embedding的每一维。
- 传统的卷积
其中为卷积核的宽度,代表输入的embedding的维度,代表输出的embedding的维度,如果,则需要的参数量为。
- Depthwise convolution
Depthwise convolution缩减了传统卷积方法的参数量:
depthwise convolution上图中为卷积核的宽度,代表embedding的维度。
其输出的计算方式为:
通过使用depthwise convolution,参数量降为。
- Lightweight convolution
Lightweight convolution进一步缩减了卷积核的参数量:
lightweight convolution在上图中,沿的embedding维度划分为个区域,这里,卷积核与相同颜色的区域进行卷积,中相同颜色区域参数共享。
其输出的计算公式为:
Softmax-normalization对卷积核channel一维进行softmax处理,相当于归一化每个词的每一维的重要性。实验表明,如果不进行softmax就不会收敛。
- Dynamic convolution
Dynamic convolution会动态地生成卷积核:
dynamic convolutionDynamic convolution会为每一个词的embedding动态地生成卷积核,生成卷积核时使用一个kernel generator,这个kernel generator是一个函数,是一个线性映射,其中权重,动态生成位置词的卷积核公式为:
Dynamic convolution计算输出的公式为:
上图中,右侧部分为帮助理解,实际计算中并未进行view步骤。
- Span-based dynamic convolution
上图展示了span-based dynamic convolution的架构,其中,也就是self-attention中的query和value。输入的首先需要经过一个depthwise convolution来获取每个token局部的一个区间内的信息,然后使用这个depthwise convolution卷积后的结果与的Hadamard积来动态地生成卷积核(kernel generator的权重为,,也就是说),然后使用动态生成的卷积核在上做卷积。
上述过程的动态生成卷积核公式为:
Span-based dynamic convolution的公式为:
然后需要经过一个Linear层进行处理。
我们总是保持depthwise convolution和span-based dynamic convolution卷积核的size一致。
四、ConvBERT的架构
mixed attention上图为mixed attention的架构。
- Mixed attention
Mixed attention集成了self-attention和span-based dynamic convolution,其中self-attention负责捕获全局信息,span-based dynamic convolution负责捕获局部信息。self-attention和span-based dynamic convolution使用相同的query和value,但是使用不同的key。Mixed attention的计算公式为:
上式中是concatenate操作。
- Bottleneck design for self-attention
Self-attention中一些head是冗余的,我们引入span-based dynamic convolution后需要减少一部分head,这里用到的操作被称为bottleneck structure。Bottleneck structure是指将输入的embedding被映射到更低的维度()。同时也按照比例来减少head的数量。
- Grouped feed-forward module
Transformer中很大一部分参数量来自于前馈网络模块,在能减少参数量和运算成本又不损伤模型性能的前提下,该团队提出了一种grouped linear (GL)操作来改进前馈网络部分。其思路是mixed attention输出的embedding是维的,则在embedding维度上将个维度分成组,然后将每组输入到各自的前馈网络中然后再将前馈网络的输出concatenate起来。
该过程的公式为:
上式中,,表示一个将维映射到维的全连接网络,表示分组的数量,代表concatenate操作。
这种方式比前馈网络更有效并且模型性能下降可以忽略不计。
五、对比
下图展示了BERT、ELECTRA、ConvBERT等模型在GLUE上的效果对比:
GLUE对比可以看到ConvBERT相对于BERT和ELECTRA取得了更好的效果且需要更少的算力。
六、其他要点
- 对比平均attention map
对比BERT和ConvBERT的平均attention map我们可以看到,ConvBERT的相对于BERT,其self-attention模块更多地用来提取全局信息,这也就减少了冗余:
对比平均attention map- Kernel size的选择
卷积核的receptive filed还没有覆盖整个输入序列时,kernel size越大效果越好,而如果kernel size达到覆盖了整个输入序列,效果就会下降。
参考资料
ref:ConvBERT: Improving BERT with Span-based Dynamic Convolution https://arxiv.org/abs/2008.02496
ref:PAY LESS ATTENTION WITH LIGHTWEIGHT AND DYNAMIC CONVOLUTIONS https://arxiv.org/abs/1901.10430
ref:ICLR 2019 | 采用轻量化及动态卷积替代注意力机制 https://www.jianshu.com/p/78356d6fdd14
网友评论