ALBERT:用于语言表示自我监督学习的Lite BERT!

自问世以来,自然语言的研究已经接受了一个新的模式。充分利用大量现有的文本数据为前提,来监督pretrain模型的参数,而一旦没有的数据就需要用到数据注释。

因此,无需训练用于自然语言处理的机器学习模型(NLP)从零开始,可以从以某种语言知识为基础的模型开始。但是,为了改进这种新的NLP方法,必须了解一种对语言理解性能的确切贡献:网络的高度(即层数)、网络的宽度(隐藏层的大小)、以及表示形式)。

ALBERT:用于语言表示自我监督学习的Lite BERT!

自我监督的学习标准或其他完全标准是什么?

“ALBERT:用于语言表示的自我监督学习的精简BERT”中 ,提出了BERT的升级,以提高12项NLP任务的最新性能,包括竞争性的斯坦福问答,数据集(SQuAD v2.0)和SAT风格的阅读理解RACE基准。

ALBERT 作为TensorFlow之上的开源项目实现发布,其中包括许多现成的ALBERT预训练语言表示模型。

什么因素对NLP性能有贡献?

确定NLP性能的主要驱动因素很复杂——有些设置比其他设置更重要,而且,正如我们的研究表明的那样,假设进行一次简单地探索,很可能这些设置不会产生正确有效的答案。

那有人可能会疑问:ALBERT在设计中捕捉时的优化性能是啥?答案很明了,就是更有效地分配模型的容量;输入级别的嵌入(单词,子标记等)需要学习与上下文无关的内容。

而这是通过对嵌入参数化进行因子分解来实现的。

嵌入矩阵在尺寸相对较小(例如128)的输入级,并嵌入之时进行划分,而隐藏层嵌入使用的尺寸更高(例如BERT情况下为768),或者更多)。

仅凭此步骤,ALBERT即可将投影块的参数减少80%,而仅以很小的性能下降为代价—— 其他所有条件与BERT相同:而SQuAD2.0得分从80.4下降80.3 ;RACE上从68.2降低了 67.9。

ALBERT的另一个关键设计决策

ALBERT的另一个关键设计决策源于检查冗余的不同监测。基于变压器的神经网络架构(例如BERT, XLNet和RoBERTa)依靠彼此堆叠的独立层。

但是,我们观察到,网络学会了通过使用不同参数在各个层执行相似的操作。通过在各层之间进行参数共享,可以消除ALBERT中这种可能的冗余,即同一层相互叠加。这种方法会稍微降低精度,但是更紧凑的尺寸非常值得权衡。

通过参数共享,注意力前馈块的参数减少了90%(总体减少了70%),如果将其应用到嵌入参数化的分解过程中,则在SQuAD2.0上的性能会下降到80.0 ;RACE得分下降到64.0。
按照这两个设计更改,将产生一个基于ALBERT的模型,该模型仅具有1200万个参数,与基于BERT的模型相比,参数减少了89%,但在基准测试中仍表现出可观的性能。

这种参数大小的减少提供了再次扩大模型的机会。假设内存大小允许,则可以将隐藏层嵌入的大小扩大10到20倍。与BERT大型模型相比,ALBERT-xxlarge配置的隐藏大小为4096,可实现整体参数减少30%,并且更重要的是,可显着提高性能。

这些结果表明:准确的语言理解取决于开发健壮的,高容量的上下文表示。在隐藏层嵌入中建模的上下文捕获了单词的含义,这反过来又推动了整体理解,这直接由标准基准上的模型性能来衡量。

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

要评估模型的语言理解能力,可以进行阅读理解测试(例如,类似于SAT阅读测试)。这可以通过RACE数据集来完成。在此阅读理解挑战中的计算机性能很好地反映了过去几年中语言建模的进步:仅通过与上下文无关的单词表示进行预训练的模型在此测试中的评分很低,而带有上下文的BERT依赖语言的知识,相对得分为72.0。完善的BERT模型,例如XLNet和RoBERTa,在82-83的得分范围内,将标准设置得更高。当在基础BERT数据集(维基百科和书籍)上进行训练时,上述ALBERT-xxlarge配置产生的RACE得分在相同范围内(82.3)。但是,当在与XLNet和RoBERTa相同的较大数据集上进行训练时,它显着优于迄今所有其他方法,并在89.4时建立了新的最新评分。

ALBERT:用于语言表示自我监督学习的Lite BERT!

应对RACE挑战的机器性能(类似于SAT的阅读理解)。随机猜测的基线得分是25.0。满分为95.0。

ALBERT的成功证明了识别模型的各个方面的重要性,这些模型会产生强大的上下文表示。通过将改进工作集中在模型体系结构的这些方面,可以极大地提高各种NLP任务的模型效率和性能。


分享到:


相關文章: