查看原文
其他

ALBERT:用于语言表征自监督学习的轻量级 BERT

Google TensorFlow 2021-07-27

文 / Radu Soricut 和 Zhenzhong Lan,研究员,Google Research

自一年前 BERT 问世以来,自然语言研究已采用新模式:利用大量现有文本以自监督方式预训练模型的参数,而无需提供任何数据注释。因此,相较于从头开始训练用于自然语言处理 (NLP) 的机器学习模型,我们可以从已具备语言知识的模型开始研究。


但为了改善这种新的 NLP 方法,我们必须深入了解提升语言理解性能的具体因素,是网络高度(层数)、网络宽度(隐藏层表征大小)、自监督学习标准还是其他因素?


在“ALBERT:用于语言表征自监督学习的轻量级 BERT”(收录于 ICLR 2020)中,我们介绍了 BERT 的升级版模型,该模型在 12 种 NLP 任务中表现出最佳性能,包括斯坦福问答数据集 (SQuAD v2.0) 和 SAT 式阅读理解 RACE 基准。ALBERT 现以开源形式在 TensorFlow发布,并包括了许多现成的 ALBERT 预训练语言表征模型。



哪些因素会提升 NLP 性能?

确定提升 NLP 性能的主要驱动因素是十分复杂的,毕竟有些设置会比其他设置更重要,而且正如我们的研究所揭示的,一次简单地研究这些设置中的某一个,无法获得正确的答案。


我们根据 ALBERT 设计获得的优化性能的关键点是,如何更加有效分配模型的容量。输入级嵌入(Input-level embeddings,词、子词条等)需要学习与上下文 无关的 表征。相比之下,隐藏层嵌入 (Hidden-layer embeddings) 则需要将这类信息精炼为与上下文 有关的 表征,以 “bank“ 为例,它在金融事务中与在河流管理中不同。


为有效分配模型的容量,我们可对嵌入参数进行因式分解,在相对较小维度(例如 128)的输入级嵌入之间划分嵌入矩阵,而隐藏层嵌入则使用较高维度(以 BERT 为例时为 768 或更高)。仅此一步,ALBERT 的投射块参数量即可减少 80%,只是性能略有下降,SQuAD2.0 得分从 80.4 降至 80.3;或者 RACE 得分从 68.2 降至 67.9,其他所有条件均与 BERT 相同。


ALBERT 的另一个关键设计决策是基于一次检查冗余的观察结果。基于 Transformer 的神经网络架构(例如 BERT、XLNet 和 RoBERTa)依赖彼此堆叠的独立层。但据我们观察,网络常常学习使用网络的不同参数在各层执行相似的操作。为消除 ALBERT 中可能存在的这种冗余现象,可在各层之间共享参数,即:将相同层彼此堆叠在一起。使用此方法,虽然精度略有下降,但网络明显更加紧凑,值得权衡。实现参数共享后,注意力前馈块的参数将减少 90%(参数总体减少 70%),除了对嵌入参数进行因式分解以外,应用此方法,在 SQuAD2.0 上,性能略有降低,得分减少了 0.3,降至 80.0,而 RACE 上性能下降得更大些,得分减少了 3.9,降至 64.0。


同时实现这两项设计变更后,我们可生成一种 ALBERT-base 模型,该模型只有 1,200 万个参数,与 BERT-base 模型相比,参数量减少了 89%,不过依据各个参考的基准,其性能仍然相当可观。但是,参数量减少,我们便获得了可以再次扩大模型的机会。假设内存大小允许,我们可将隐藏层嵌入的大小扩大 10-20 倍。当隐藏层大小为 4096 时,ALBERT-xxlarge 配置的总参数量比 BERT-large 模型少 30%,而且更重要的是,其性能显著提高:在 SQuAD2.0 得分中增加 4.2(从 83.9 提高到 88.1);在 RACE 得分中增加 8.5(从 73.8 提高到 82.3)。


这些结果表明,准确的语言理解取决于开发稳定的、高容量的上下文表征。基于隐藏层嵌入建模的上下文在捕获词义后,进而提升整体理解,这可由模型性能来直接衡量。



使用 RACE 数据集优化模型性能

为评估模型的语言理解能力,我们可以进行阅读理解测试(类似于 SAT 阅读测试)。可使用 RACE 数据集 (2017) 来完成这项评估,而此数据集是用于此测试的最大公开资源。


计算机在阅读理解挑战上的表现反映出过去几年语言建模的进步:仅使用与上下文无关的词表征预训练的模型在此测试中的得分很低(45.9;最左侧栏),而具有与上下文有关的语言知识的 BERT 模型得分为 72.0,分数相对较高。优化的 XLNetRoBERTa 等 BERT 模型均有较好表现,得分范围在 82-83 之间。在使用基础 BERT 数据集(Wikipedia 和 Books)进行训练时,前面提到的 ALBERT-xxlarge 配置生成的模型的 RACE 得分在相同范围内,为 82.3。当使用与 XLNet 和 RoBERTa 同样大的数据集进行训练时,此方法明显优于迄今所有其他方法,并且以 89.4 的高分刷新记录。

计算机在 RACE 挑战(类似 SAT)上表现出来的性能,随机推测基准分为 25.0,最高分为 95.0


ALBERT 的成功表明了解模型各方面信息,找出强大的上下文表征的重要性。在改进工作中重点关注模型架构这些方面,可显著提高模型在各种 NLP 任务中的效率和性能。为推动 NLP 领域进一步发展,我们将 ALBERT 开源给研究社区。



如果您想详细了解 本文提及 的相关内容,请参阅以下文档。这些文档深入探讨了这篇文章中提及的许多主题:

  • ALBERT:用于语言表征自监督学习的轻量级 BERT
    https://arxiv.org/abs/1909.11942

  • ICLR 2020
    https://iclr.cc/Conferences/2020

  • 斯坦福问答数据集 
    https://rajpurkar.github.io/SQuAD-explorer/

  • RACE 基准
    http://www.qizhexie.com/data/RACE_leaderboard.html

  • TensorFlow
    https://tensorflow.google.cn/

  • SQuAD2.0
    https://rajpurkar.github.io/SQuAD-explorer/

  • RACE
    http://www.qizhexie.com/data/RACE_leaderboard.html

  • Transformer
    https://ai.googleblog.com/2017/08/transformer-novel-neural-network.html

  • XLNet
    https://www.borealisai.com/en/blog/understanding-xlnet/

  • RoBERTa
    https://ai.facebook.com/blog/roberta-an-optimized-method-for-pretraining-self-supervised-nlp-systems/

  • 注意力前馈
    https://arxiv.org/abs/1706.03762

  • SAT 阅读测试
    https://collegereadiness.collegeboard.org/sat/inside-the-test/reading

  • RACE 数据集
    https://www.aclweb.org/anthology/D17-1082/

  • 发布 / ALBERT 开源
    https://github.com/google-research/ALBERT



    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存