Pre-trained Models for Natural Language Processing: A Survey
写在前面:
随着2018年ELMo、BERT等模型的发布,NLP领域进入了“大力出奇迹”的时代。采用大规模语料上进行无监督预训练的深层模型,在下游任务数据上微调一下,即可达到很好的效果。曾经需要反复调参、精心设计结构的任务,现在只需简单地使用更大的预训练数据、更深层的模型便可解决。因此NLP比赛的入手门槛也随之变低。新手只要选择好预训练模型,在自己数据上微调,很多情况下就可以达到很好的效果。最近终于从头疼的论文工作中抽离出来,左右无事便想着打个比赛,因此先看看最近预训练模型的进展。
参考文献:
【1】https://arxiv.org/abs/2003.08271
【2】https://mp.weixin.qq.com/s/kwKZfNSYTzc-PGKxTxm8-w
摘要
近年来,预训练模型(PTMs)的出现将自然语言处理(NLP)带入了一个新的时代。在这项综述中,我们提供了一个全面的PTMs调研。首先简要介绍了语言表示学习及其研究进展。然后,我们根据四种观点对现有的PTMs进行了系统的分类。接下来,我们将描述如何将PTMs的知识应用于下游任务。最后,我们概述了未来PTMs研究的一些潜在方向。本调查旨在为理解、使用和开发各种NLP任务的PTMs提供实际指导。
1. 概述
随着深度学习的发展,各种神经网络被广泛用于解决自然语言处理(NLP)任务,如卷积神经网络(convolutional neural networks, CNNs)[75,80,45]、递归神经网络(neural networks, RNNs)[160, 100]、基于图的神经网络(graphbased neural network, GNNs)[146, 161, 111]和注意力机制[6,171]等。这些神经模型的优点之一是能够缓解特征工程问题。非神经NLP方法通常严重依赖于离散的手工特征,而神经方法通常使用低维和稠密的向量(又称分布式表示)隐式地表示语言的语法或语义特征。这些表示是在特定的NLP任务中学习的。因此,神经方法使人们可以很容易地开发各种NLP系统。
尽管神经模型在NLP任务中取得了成功,但与计算机视觉(CV)领域相比,性能改进可能不那么显著。主要原因是,当前用于大多数监督的NLP任务的数据集相当小(机器翻译除外)。深度神经网络通常具有大量的参数,使其对这些小的训练数据过度拟合,在实际应用中泛化效果不佳。因此,许多NLP任务的早期神经模型相对较浅,通常只包含1 ~ 3个神经层。
最近大量的工作表明,在大型语料库上的预训练模型(PTMs)可以学习通用语言表示,这对后续的NLP任务是有益的,可以避免从零开始训练新模型。随着计算能力的发展,深层模型(即随着训练技能的不断提高,PTMs的体系结构由浅向深推进。第一代PTM的目标是学习好的词嵌入。由于下游任务不再需要这些模型本身,它们在计算效率方面通常非常肤浅,如Skip-Gram[116]和GloVe[120]。虽然这些预训练的嵌入可以捕获单词的语义含义,但它们是上下文无关的,不能捕获文本的高级概念,如语法结构、语义角色、回指等。第二代PTMs主要学习上下文词嵌入,如CoVe[113]、ELMo[122]、OpenAI GPT[130]、BERT[32]等。这些学习过的编码器仍然需要在上下文中通过下游任务来表示单词。此外,还提出了各种预训练的任务,以学习PTMs的不同目的。
这篇综述的贡献可以总结如下:
1. 全面调研。我们为NLP提供了PTMs的全面回顾,包括背景知识、模型架构、预训练任务、各种扩展、适应方法和应用。给出了典型模型的详细描述,进行了必要的比较,总结了相应的算法。
2. 新分类法。我们提出了一种基于自然语言处理的PTMs分类方法,该方法从四个不同的角度对现有的PTMs进行了分类:1)单词表示的类型;2) PTMs架构;3)培训前的任务类型;4)特定类型场景或输入的扩展。
3.资源丰富。我们在PTMs上收集了丰富的资源,包括开源系统、论文列表等。
4. 未来的发展方向。我们讨论并分析了现有PTMs的局限性。并提出未来可能的研究方向。
综述的其余部分组织如下。第2节概述了PTMs的背景概念和常用符号。第3节简要概述了PTMs,并澄清了PTMs的分类。第4节提供了PTMs的扩展。第5节讨论如何将PTMs的知识迁移到下游任务。第6节给出了PTMs的相关资源,包括开源系统、论文列表等。第7节介绍了跨各种NLP任务的应用程序集合。第8节讨论了当前的挑战并提出了未来的方向。第9节对本文进行了总结。
2. 背景
2.1 语言表示学习
分布式表示的核心思想是用低维实值向量来描述文本的意义。而向量的每一个维度都没有对应的意义,而整体则代表一个具体的概念。图1说明了NLP的通用神经体系结构。词嵌入有两种:非上下文嵌入和上下文嵌入。它们之间的区别是,一个词的嵌入是否根据它出现的上下文动态变化。
非上下文嵌入 第一步是将离散的语言符号映射到分布式嵌入空间中。形式上,对于词汇表V中的所有单词,我们将其映射为一个V*E的矩阵,V就是词汇表大小