译:《ALBERT:一个用于语言表征的自监督学习的轻量BERT》
论文地址:ALBERT: A LITE BERT FOR SELF-SUPERVISED LEARNING OF LANGUAGE REPRESENTATIONS
2019年Google提出的一种轻量级BERT
Motivation
有证据表明巨大的网络对于实现最好的表现是非常重要的,现在在实际应用时一个比较通用的方法是预训练大模型,然后蒸馏成小模型。而由于GPU/TPU内存限制和更长的训练时间,模型更难提升。
现有的表现最好的模型通常具有数亿甚至数十亿个参数,而可用硬件都存在内存限制,当试图去扩展模型时,就很容易达到这些限制,已有的解决方法包括模型并行化和智能内存管理,但这些方法解决了内存限制问题却没有解决通信开销问题。
因此,在这篇论文作者提出了设计一种轻量级BERT(ALBERT)结构来解决这些问题。ALBERT结合了两种参数简约技术。
- 因式分解;通过将大的vocabulary embedding矩阵分解成两个小矩阵使得隐藏层的大小与词嵌入的大小分开,这使得可以更容易地增加隐藏层大小,而不会显著增加词嵌入的参数大小
- 跨层参数共享;此技术可以防止参数随着网络深度的增加而增加。
为了进一步提升ALBERT的表现,作者还为句子顺序预测(sentence-order prediction, SOP)引入了自监督损失,SOP主要关注句间连贯性,用于解决原始BERT中提出的下一句预测(next sentence prediction,NSP)损失效率低下的问题。
方法简介
ALBERT与BERT类似,使用Transformer的编码器和GELU非线性层,设vocabulary embedding大小是\(E\),编码层(encoder layer)数量为\(L\),隐藏大小(hidden size)为\(H\),设置前馈/滤波器大小为\(4H\),注意力头数量为\(H/64\)。
ALBERT主要有三个贡献,如下
因式分解嵌入参数
在之前的BERT,包括后面提出的XLNet、RoBERTa等,其 WordPiece embedding大小\(E\)与隐藏层大小\(H\)有关,\(E \equiv H\),但这似乎并不是最优的。
从模型角度看, WordPiece embeddings意味着学习上下文无关的表示,而隐藏层embeddings则意味着学习上下文独立的表示,有实验表明,类似BERT的表示能力来自于使用语境来提供学习这种依赖于语境的表征信号。因此,将WordPiece embeddings 大小\(E\)与隐藏层大小\(H\)解绑可以使得更有效地使用通过模型需要确定的总模型参数,这样:\(H \gg E\)
从实际角度看,NLP通常需要vocabulary大小\(V\)很大,如果\(E \equiv H\),则增加\(H\)会增加embedding矩阵的大小,矩阵的大小是\(V\times E\),这就会很容易导致数十亿参数的模型,而这些参数中的大多数在训练过程中只会稀疏地更新。
因此,在ALBERT中,作者对embedding参数使用因式分解,将它们分成两个更小的矩阵,作者并不是将one-hot向量直接投影到大小为\(H\)的隐藏空间,而是首先将它们投影到大小为\(E\)的低维embedding空间,然后再将其投影到隐藏空间。通过这种分解,就可以将embedding参数从\(O(V\times H)\)降低到\(O(V\times E+E\times H)\),这对\(H \gg E\)的情况是非常有用的。并且作者选择对所有的Word pieces使用相同的\(E\),因为与两个word的embedding相比,它们在文档中的分布要更均匀
跨层参数共享
参数共享有多种方法,例如:只跨层共享前馈神经网络(FFN)参数、只共享注意力参数等。ALBERT默认是跨层共享所有参数。
类似的策略在Transformer网络中已经被探索过,如Universal Transformer(UT)、Deep Equilibrium Model(DQE)等。作者在\(L2\)距离和余弦相似度的测量表明,本文的输入和输出embeddings是振荡的而不是收敛的。
上图展示了使用BERT-large和ALBERT-large时每一层的输入和输出embeddings的\(L2\)距离和余弦相似度,可以看到,ALBERT的层到层的过渡比BERT的平滑得多,这表明,权值共享对于稳定网络参数有一定的作用。尽管与BERT相比,这两个指标都有所下降,但可以看到的是,即使在24层之后,它们也是不会收敛到0的。
句间连贯损失
在BERT中,使用的除了masked 语言模型(MLM)损失,还使用了额外的下一句预测(NSP)损失,NSP是一个二分类损失,用于预测两个分段在原文中是否连续出现,正负样例的取样概率相等,NSP的目标是提高下游任务的性能,如自然语言推理这样需要对句子对之间的关系进行推理的任务。但是后续有研究表明,NSP的影响并不可靠,并且决定去除它,这也使得一些下游任务的表现得到了提升。
作者推测,与MLM相比,NSP无效的主要原因是它作为一项任务缺乏难度。按照规定,NSP在单个句子中将主题预测和连贯预测合并在一起,但是,与连贯预测相比,主题预测更容易学习,而且与使用MLM损失相比学到的东西重叠更多。
作者认为,句子建模是语言理解的一个重要方面,但提出的主要是基于连贯性的损失,也就是说,ALBERT中使用的是句序预测(sentence-order prediction, SOP)损失,这样可以避免主题预测,专注于建模句子间的连贯性。
SOP损失使用的正样本与BERT一样来自同一文档的两个连续片段,而负样本则使用同样来自同一文档的两个连续片段,只是将其颠倒顺序。这样可以促使模型学习关于语篇层面连贯性的更细粒度的区别。后面作者还证明了,NSP不能解决SOP任务,而SOP则可以从一定程度上解决NSP任务。