对ALBERT的理解

ALBERT: A LITE BERT FOR SELF-SUPERVISED LEARNING OF LANGUAGE REPRESENTATIONS

Google大大的BERT(https://arxiv.org/pdf/1906.08237.pdf) 在 2018 年年底通过预训练打败了 NLP 上 11 个任务的经典算法;XLNet 在 2019 年提出来通过双向网络的方法超过了 BERT,再后来,Google 大大在BERT的基础上提出了ALBERT(https://arxiv.org/pdf/1909.11942.pdf) 又超过了 XLNet 和原始的 BERT。不得不说一句Google 大大牛批!
这几天看了看BERT和ALBERT两篇论文,至于BERT的理解在另一篇文章(快速读懂BERT)表述得相当清楚了,现在自己写一下对ALBERT的粗浅理解。
ALBERT在BERT基础上进行了一些改进,通过两个技术(具体见下文)减少了参数量从而加快了训练速度;并提出了sentence-order prediction(SOP)的自监督损失,SOP聚焦于句子间的连贯性,用以解决BERT中NSP不可靠的问题。
在文献中,E代表Embedding大小,L代表encoder层数,H代表隐藏层数,V代表词汇量大小。

1.Factorized embedding parameterization,分解嵌入参数。

作者认为在BERT中E等于H,这似乎不太合理。从模型角度来看,WordPiece embedding的学习不包含上下文信息,而隐藏层的embedding的学习是包含上下文信息;研究表明BERT强大的表示能力来源于为依赖上下文的表示的学习提供信息,因此H在总参数中的占比应该远大于E才好。从实践角度来看,如果H=E,增加隐藏层就会直接导致嵌入矩阵embedding matrix维数V×E增加,继而导致参数量增大,而且在训练期间大多仅是稀疏地更新。因此ALBERT作出如下改进:把one-hot向量先映射到E维空间,然后映射到隐藏层的H维空间。这就把参数量从O(V×H)降低到O(V×E + E×H)了,在H>>E时效果明显。在没有参数共享时,E越大ALBERT的性能越好,但是提升不明显;在参数共享时,E=128时的性能最佳。ALBERT的large版本与BERT的large相比,参数量不及后者的十分之一,速度为1.7倍,当然模型性能也略有下降。
在这里插入图片描述
在这里插入图片描述

2.Cross-layer parameter sharing,跨层参数共享。

共享参数是ALBERT提升参数效率的另一个重要技术。有FNN参数共享、attention参数共享、这两种参数全部共享三种策略,文献中默认采用的是全部共享。E=128时,共享attention参数不但没有使性能下降,反而涨了0.1%。其他情况下共享参数都会使性能下降,因为共享参数导致丢失了部分上下文信息。虽然性能可能会下降一些,但是此举可以大大减少参数。
在这里插入图片描述

3.Inter-sentence coherence loss,句子间连贯性损失。

NSP是BERT中提出的一种二元分类损失,用于预测两段是否连续出现在原文中,BERT用以提升需要推理两个句子关系的下游任务的性能。但是最近有研究发现NSP的影响不可靠,将其删除之后多个任务的性能得到了提升。作者认为其原因是NSP与MLM相比太简单了:NSP包含了主题预测和连贯性预测,前者与后者相比更简单,而后者又与MLM存在较多重复。作者坚持认为句子间建模是语言理解非常重要的方面,所以提出了基于连贯性的sentence-order prediction(SOP)损失。SOP损失也是二元分类损失,它使用来自同一文本的两个连续片段作为正样例,同样的片段顺序颠倒作为负样例。这使得模型学习到更细致的关于话语层次连贯性的区别。实验结果表明,NSP几乎不能完成SOP任务(52%),而SOP却能比较不错地完成NSP任务(78.9%)。因此,ALBERT模型始终能够提高下游任务性能。
在这里插入图片描述

移除dropout

此外,比较有意思的一点是,作者发现ALBERT即使在训练一百万步之后仍然没有过拟合,所以作者决定移除dropout进一步提升模型的能力。后续的实验结果也证明了ALBERT移除dropout之后能够得到更好的性能,这也是第一次发现dropout会破坏基于Transformer的大规模模型的性能。这也验证了正则化手段不是提升模型能力所必需的。
在这里插入图片描述

总结

总结:正如ALBERT的名字,它的确是一个轻量版的BERT:参数量大大减少,因而对内存容量的需求也大大下降,速度也得到了一定的提升(large)。虽然xxlarge实现了比BERT低的参数量,性能也提高了,但是速度却下降了许多——更庞大的模型导致了更大的计算量。因此下一步加快模型的训练和推理速度是非常重要的。作者也提到,或许可以通过sparse attention和block attention提升训练和推理速度;作者还假设存在更多没有被自我监督损失捕捉到的维度,这可能会带来额外的表示能力。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值