李英东 ALBERT:A Lite BERT for Self-supervised Learning of Language Representation
新闻来源:IR实验室       发布时间:2019/10/17 0:00:00

 针对BERT模型体积大的问题,本文提出了两种减小模型体积的方法。

1. 引言

首先介绍下Transformer。Transformer结构是一种只使用了全连接网络和注意力机制的Encoder-Decoder模型,相较于RNN,拥有更高的并行能力,能更充分利用算力,引入了残差连接解决了深层模型退化问题。但是相应的,模型体积大,算力要求高是其主要缺点。

其次是BERT模型。BERT: Bidirectional Encoder Representations from Transformers是一种词表示模型。只使用了Transformer的Encoder部分。模型任务有两个:

Masked Language Model:通过上下文预测被mask掉的单词

Next Sentence Prediction:判断第二个句子是否是第一个句子的下一句

例子1: [CLS] the man went to [MASK] store [SEP] he bought a gallon [MASK] milk [SEP]

例子2: [CLS] the man [MASK] to the store [SEP] penguin [MASK] are flight ##less birds [SEP]

然后是于本文的思路很相似的Universal Transformer模型。由于传统Transformer模型为了提高并行化没有采用RNN结构,使得模型失去了图灵完备的性质,因此在许多RNN表现良好的简单任务上,Transformer结构表现很差。为了让模型图灵完备,Universal Transformer采用了与RNN类似的思想。相较于RNN的Token间的循环,Universal Transformer采用了层间循环。

 图1 Universal Transformer结构

2. ALBERT

2.1 减少参数的方法

(1)Factorized embedding parameterization

从建模的角度看,Embedding层学习无关上下文的词表示,隐层(模型)学习依赖上下文的词表示,以往为了方便,词向量层的维度与隐层的维度一致,过于浪费。

本文中,将Embedding层的维度E设置为一个小于隐层维度H的数,这在词表规模V很大时能明显减少模型的参数数量。

(2)Cross-layer parameter sharing

有三种分享策略,即分享FFN,分享Attention,两者都分享。ALBERT默认采用了第三种分享策略,这种策略能有效减少模型的体积。文章的实验表示采用这种策略的模型的每层的输出相较于上一层的输出的L2距离与原始BERT相比有明显的减少,但是这种减少并没有随着层数的增多而完全消失,即模型在这个方面没有完全收敛。

图2:层间的L2距离和余弦相似度

(3)Inter-sentence coherence loss

 多个文章证明NSP任务对与训练模型提高下游任务的表现并没有想象中的那么高,甚至是有害的。在本文中,论文探讨了NSP任务在很多情况下没有提高下游任务性能的原因。文章认为NSP没有提高下游任务性能的原因是模型没有按照任务的设想去通过句子间的语义关系来完成NSP任务,而是通过了一个更简单的任务-主题漂移检测-来完成NSP任务,而这个主题漂移任务过于简单,且没有达成想让模型通过NSP任务学会句间关系建立的任务。基于此,论文提出了一种新的辅助任务:SOP(Sentence-Order Prediction)。该任务的目标是检测预料中前后相连的句子是否被调换过顺序。相较于NSP,SOP任务能让模型更加聚焦于句子间的语义关系,从而能更好地完成让模型学习句间关系的任务目的。

(3)实验结果

 实验结果证明两种减小模型体积的方式确实是有效的,但是对性能也产生了一定的损害。

表1:BERT vs ALBERT不同规模下的性能表现

 

 文章通过多种方法,如SOP任务替换NSP任务,训练到中途删去Dropout两种方法对模型的性能进行了提升。最后由于模型本身体积的减小,现有的硬件条件下可以训练更大的模型,因此论文通过增大模型的体积进一步提高模型的性能,最后的模型性能超越之前所有的BERT模型,成为了GLUE BENCHMARK的最新的SOTA结果。

3. 总结

 相较于BERT,ALBERT通过两种方法减小了模型的体积,又通过两种方法提高了模型的性能,其中提高的部分有一部分弥补了减小模型体积的方法带来的影响。但是ALBERT模型虽然体积更小,计算量却没有减少,甚至为了到达更好的性能,ALBERT的计算量比BERT还要大。总而言之,我们又多了一个更好的词表示预训练模型。

参考文献

[1] Vaswani, Ashish, et al. "Attention is all you need." neural information processing systems (2017): 6000-6010.

[2] Devlin, Jacob, et al. "BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding." arXiv: Computation and Language (2018).

[3] Zhenzhong Lan, et al. “ALBERT: A Lite BERT for Self-supervised Learning of Language Representations.”, arXiv.

[4] Mostafa Dehghani, et al.“Universal Transformers”, arXiv.