BERT之后,NLP主要预训练模型演变梳理
1.背景
BERT [1](Bidirectional Encoder Representation from Transformers)是由 Google AI 于 2018 年 10 月提出的一种基于深度学习的语言表示模型。BERT 发布时,在 11 种不同的自然语言处理(NLP)测试任务中取得最佳效果。
截至2022年6月,很多研究者又基于BERT提出了很多新的模型,本文旨在梳理基于BERT模型优化后部分预训练模型,以便读者能够更快掌握BERT相关内容,为后期工作中使用BERT相关模型提供便捷性。
2.BERT基本介绍
BERT 主要的模型结构是 Transformer 的编码器部分。Transformer[2] 是由 Ashish 等于 2017年提出的,用于Google机器翻译,包含编码器(Encoder)和解码器(Decoder) 两部分。其中 BERT-base 与 BERT-large 模型分别采用了 12 层与 24 层的 Transformer 编码器作为模型网络层。相比于传统用于 NLP 任务的循环神经网络 (RNN)及长短时记忆网络(LSTM)等,Transformer 拥有更强大的文本编码能力,也能更高效地利用 GPU 等高性能设备完成大规模训练工作。
基于 BERT 模型的自然语言处理任务通过两个过程来实现:
- 在预训练的过程中,首先利用大规模没有标注过的文本语料,例如百科知识、网页新闻等,通过充分的自监督训练,有效学习文本的语言特征,得到深层次的文本向量表示,形成相应文本的预训练模型。
- 在微调过程中,直接将预训练过程中完成收敛的网络参数(即嵌入层和网络层)作为起始模型,根据具体的下游任务(如分类、序列标注等),输入人工标注好的数据集,完成模型的进一步拟合与收敛。从而得到一个可用的深度学习模型来实现特定的自然语言处理任务,例如文本分类、序列标注等。
自 BERT 发布以来,基于“预训练-微调”的两阶段方法逐渐成为自然语言处理研究的主流。
图片来源:参考文献[1]
3.ERNIE
ERNIE[3](Enhanced Representation through Knowledge Integration)是百度(清华几乎在同一时间[2019]也发布了ERNIE版本,不过现在社会上谈起ERNIE,大多指百度版ERNIE)在2019年4月基于BERT模型做的进一步优化,在中文的NLP任务上得到了state-of-the-art的结果。其主要是通过对知识进行整合,达到增强表达的目的。受BERT的掩码策略启发,ERNIE旨在学习由知识掩码策略增强的语言表征,其中包括实体级掩码和短语级掩码。实体级策略通常由多个单词组成的实体。短语级策略将由多个单词组成的整个短语作为一个概念单元进行屏蔽。
ERNIE和BERT的区别:
图片来源:参考文献[3]
在使用先验知识来增强预训练语言模型时ERNIE并没有直接添加知识嵌入,而是使用了一种多阶段知识掩码策略,将短语和实体集成到语言表示中。句子中不同的掩码级别如下图:
图片来源:参考文献[3]
基本级别的掩码
- 第一个学习阶段是使用基本的掩码,它将一个句子视为一系列基本的语言单元,对于英语,基本的语言单元是单词,对于汉语,基本的语言单元是汉字。在训练过程中,我们随机屏蔽15%的基本语言单元,并使用句子中的其他基本单元作为输入,并训练一个转换器来预测被屏蔽的单元。基于基本层掩码,我们可以得到基本的单词表示。因为它是在基本语义单元随机掩码的基础上训练的,所以高层语义的知识表示很难完全建模。
短语级别的掩码
- 第二阶段是使用短语级掩码。短语是作为概念单位的一小群单词或字符。对于英语,我们使用词汇分析和组块工具来获取句子中短语的边界,并使用一些依赖于语言的切分工具来获取其他语言(如汉语)中的单词/短语信息。在短语级掩码阶段,我们还使用基本语言单元作为训练输入,不像随机基本单元掩码那样,这次我们在句子中多选几个短语,掩码并预测同一短语中的所有基本单元。在这个阶段,短语信息被编码到单词嵌入中。
实体级别的掩码
- 第三阶段是实体级掩码。我们把一些专有名词,如地点、人名、组织、产品等抽象为实体进行屏蔽。实体通常包含句子中的重要信息。在短语屏蔽阶段,我们首先分析一个句子中的命名实体,然后屏蔽和预测实体中所有的空缺。
经过这三个阶段的学习,我们可以获得语义信息丰富的表达。
经过实验结果表明,在五个自然语言处理任务(包括自然语言推理,语义相似性,命名实体识别,情感分析和检索问答)上,ERNIE优于当时其他基准方法。此外ERNIE在完形填空测试中具有更强大的知识推理能力。
4.RoBERTa
RoBERTa[4]是Facebook和华盛顿大学于2019年7月在论文《RoBERTa: A Robustly Optimized BERT Pretraining Approach》中提出的。文章在 BERT模型的基础上提出了 BERT 模型的改进版 RoBERTa,使其获得了更好的自然语言任务处理效果,并在 GLUE,SQuAD,RACE 三个榜上取得最好的SOTA。
RoBERTa主要在三方面对之前提出的BERT做了改进:
- 其一是模型的具体细节层面,改进了优化函数;
- 其二是训练策略层面,改用了动态掩码的方式训练模型,证明了NSP(Next Sentence Prediction)训练策略的不足,采用了更大的batch size;
- 其三是数据层面,一方面使用了更大的数据集,另一方面是使用字节级别的BPE(Bytes-level BEP )来处理文本数据。
5.DeBERTa
DeBERTa[5](Decoding-enhanced BERT with Disentangled Attention)是微软发表于ICLR2021上的预训练语言模型。2021年1月DeBERTa在SuperGLUE这项自然语言理解基准任务上**「超越人类」**,以90.3分夺冠。
DeBERTa从两方面改进了BERT预训练的方法:
- 自注意力**「解耦」**机制
- 用2个向量分别表示content 和 position,即word本身的文本内容和位置。word之间的注意力权重则使用word内容之间和位置之间的解耦矩阵。这是因为word之间的注意力不仅取决于其文本内容,还依赖于两者的相对位置。
图片来源:参考文献[6]
- 用Enhanced Mask Decoder(「EMD」)强化预训练输出层
- 原始的BERT存在预训练和微调不一致问题。预训练阶段,隐层最终的输出输入到softmax预测被mask掉的token,而微调阶段则是将隐层最终输出输入到特定任务的decoder。这个decoder根据具体任务不同可能是一个或多个特定的decoder,如果输出是概率,那么还需要加上一个softmax层。为消除这种不一致性,DeBERTa将MLM与其他下游任务同等对待,并将原始BERT中输出层的softmax替换为**「增强后的mask decoder(EMD)」**,EMD包含一个或多个Transformer层和一个softmax输出层。至此,结合了BERT和EMD的DeBERTa成为了一个encoder-decoder模型。
使用这两种技术,新的预训练语言模型DeBERTa在许多下游NLP任务上的表现都优于RoBERTa和BERT。DeBERTa这项工作展示了探索自注意的词表征解耦以及使用任务特定解码器改进预训练语言模型的潜力。
6.综述
本文针对BERT系列部分典型模型进行梳理,希望为大家梳理出在BERT提出后,整体的优化脉络。同时基于BERT的优化方向可以总结为如下:
首先,大量的研究者通过对 BERT 的两个预训练目标进行改进提升模型对文本特征的学习能力,如:ERNIE、RoBERTa、DeBERTa等。对于预训练目标的优化改进是最常见同时也是效果最好的改造方式,所以本文在前面介绍中,也主要梳理了该方向的主要模型。
其次,针对特定领域的显性知识,研究者提出在预训练模型中融合外部知识的方法,进一步丰富了模型所学习的文本特征,如用于专利文本的 PatentBERT:。
这两种路线提升了模型的特征学习能力,但是并没有对预训练模型内部结构进行实质性的改进。
部分研究者从 Transformer 神经网络出发,对其内部结构进行了改进,从而扩展了模型的应用场景,如:BART。
最后,针对 BERT 模型参数量过大导致普通的硬件设备无法有效训练和加载的问题,大量的研究者提出模型压缩的方法,进而提升了 BERT 模型的易用性,如:ALBERT。
7.参考资料
bert [1] https://arxiv.org/pdf/1810.04805.pdf
transformer[2] https://arxiv.org/pdf/1706.03762.pdf
ernie [3] https://arxiv.org/pdf/1904.09223.pdf
roberta [4] https://arxiv.org/pdf/1907.11692.pdf
deberta[5] https://arxiv.org/pdf/2006.03654.pdf
附件
BERT模型优化改进路线总结: