49

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

 4 years ago
source link: http://mp.weixin.qq.com/s?__biz=MjM5ODkzMzMwMQ%3D%3D&%3Bmid=2650412414&%3Bidx=2&%3Bsn=66294e6e43211ebb1023e972b2071775
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

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

VNNVriB.jpg!web

自一年前 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 的高分刷新记录。

ZFfyYzF.png!web

计算机在 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

本文转载自公众号TensorFlow,作者Google

推荐阅读

AINLP年度阅读收藏清单

中文NER任务实验小结报告——深入模型实现细节

大幅减少GPU显存占用: 可逆残差网络(The Reversible Residual Network)

鼠年春节,用 GPT-2 自动写对联和对对联

transformer-XL与XLNet笔记

AINLP-DBC GPU 云服务器租用平台建立,价格足够便宜

征稿启示 | 稿费+GPU算力+星球嘉宾一个都不少

关于AINLP

AINLP 是一个有趣有AI的自然语言处理社区,专注于 AI、NLP、机器学习、深度学习、推荐算法等相关技术的分享,主题包括文本摘要、智能问答、聊天机器人、机器翻译、自动生成、知识图谱、预训练模型、推荐系统、计算广告、招聘信息、求职经验分享等,欢迎关注!加技术交流群请添加AINLP君微信(id:AINLP2),备注工作/研究方向+加群目的。

qIR3Abr.jpg!web


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK