NLP范式总结 | 拥抱新范式
1.基于传统机器学习的范式(第一范式)
在早期的自然语言处理(NLP)研究中,神经网络尚未被引入。在这个时期,NLP处理方法通常需要从自然语言语料库中提取各种特征,例如词性标注、命名实体识别和短语结构分析。然后,使用特定的规则或数学、统计学模型来对提取出的特征进行匹配和应用。例如,可以通过词性标注和短语结构分析提取文本中的关键信息,然后利用数学模型,如隐马尔可夫模型或贝叶斯网络,来执行序列分类和序列标注等任务。其核心观点在于NLP中的特征都是完全独立的。
2.基于深度学习神经网络的范式(第二范式)
随着时代的发展,神经网络被引入自然语言处理。此范式是指在引入神经网络之后及出现预训练模型之前的NLP领域的研究方法和思路。这类方法避免了手动设置特征和规则的需求,从而极大地节省了人力资源。尽管不需要手动设计特征和规则,但仍然需要人工设计合适的神经网络架构来进行数据集的训练。因此,第二范式的方法仍然需要一定的专业知识和经验来选择和优化神经网络架构,以实现良好的NLP任务性能。例如引入word2vec将词的稀疏向量转换成稠密向量表征,应用CNN、RNN等深度学习模型建模。
word2vec是Google研究团队里的Tomas Mikolov等人于2013年的《Distributed Representations ofWords and Phrases and their Compositionality》以及后续的《Efficient Estimation of Word Representations in Vector Space》两篇文章中提出的一种高效训练词向量的模型,它可以学习词向量,将词映射到高维空间中,并捕获词之间的语义关系。其基本思想即用词来预测词,主要由两种模型实现:Skip-Gram(跳字模型)和CBOW(连续词袋模型)。如图所示:
在Skip-Gram模型中,根据当前词预测其周围的词。而在CBOW模型中,根据当前词的上下文预测其中心词。
3.基于预训练模型和Fine-Tuning的范式(第三范式)
第三范式主要基于大规模预训练模型对下游任务进行Fine-Tuning微调模式,其核心观点在于模型可以通过大量无监督数据的训练,来存储先验知识,从而不影响整体性能的前提下,降低了对下游任务的数据需求。其特点是不需要大量的有监督下游任务数据,模型主要在大型无监督数据上训练,只需要少量下游任务数据来微调少量网络层即可。此范式中常见的预训练模型有Bert、GPT、Elmo等。下面我们对最具代表性的Bert进行介绍。
BERT(Bidirectional Encoder Representations from Transformers)是由Google在2018年提出的一种新的自然语言处理预训练模型。其利用Transformer Encoder作为模型结构,可以进行更好的并行计算, 捕获语义的全局依赖关系。谷歌在预训练BERT时只让其同时进行两个任务:漏字填空和下个句子预测。漏字填空简单来说就是随机遮盖或替换一句话里面的任意字或词,然后让模型通过上下文预测那一个被遮盖或替换的部分,之后做 Loss 的时候也只计算被遮盖部分的 Loss。下个句子预测则是选取A和B两个句子作为模型的输入,其中50%的B是A后实际的下一个句子(标记为IsNext),另外50%的B则是从语料库中随机选取的句子(标记为NotNext),通过模型去预测B是否是A后的实际句子,即A与B之间是否相连。
BERT模型具有很强的通用性,可以灵活地迁移到各种自然语言处理任务中。针对具体的下游任务,我们只需要进行模型的微调,就可以得到一个性能良好的任务模型。
上图展示了BERT微调各种任务,其中(a)(b)主要展现了文本分类任务,(c)展现了问答任务,(d)展现了NER即多标签文本分类任务。
微调BERT只需要根据目标任务的数据集和需求,利用预训练模型中的参数初始化下游任务模型,然后在目标任务数据上继续训练这些参数,让模型适应特定任务。在这个过程中,预训练阶段使用的是无标注的语料,而微调阶段使用的则是人工标注的带标签的数据。通过有监督的学习,BERT模型可以快速捕捉到目标任务所需要的语义特征。
通过BERT我们可以轻松进行模型调参和下游任务微调,使其支持各种NLP应用,而无需耗费大量资源从零训练一个全新的模型。这种迁移学习策略极大地提升了BERT的适用性和实用价值。
4.基于预训练和Prompt预测的范式(第四范式)
NLP发展到今天已经进入到了大模型的时代,随着模型逐渐突破边界,涌现出了直接应用到下游任务的能力,只需要给模型几个提示即可激发这些潜力,因此实现了预训练模型加少量样本或零样本的时代。下图形象的展示了Prompt的作用过程:
Prompt的本质是在将下游任务和预训练任务统一,充分挖掘预训练模型的能力。前文提到第三范式的fine-tuning过程是调整预训练模型,使其更加匹配下游任务,那么第四范式就正好相反,prompt过程则是调整下游任务,使其更加匹配预训练模型。Prompt模版可以主要分为两种:人工定义模版和可学习模版。人工定义模版是指人工构造提示语句,其中包含需要模型生成的答案位置。答案位置可以位于提示语句的前面、中间或后面,但多数情况下置于中间或句尾。这种设计需要依赖对预训练数据分布的理解,只有当提示语句语义上接近预训练语料,才能发挥较好效果。可学习模板则是为了减少固定模板的设计难度而提出的思路,典型的如P-tuning方法将提示语句中的一些位置表示成特殊的可学习向量,然后在下游任务上使用少量标注样本来更新这些向量,从而使提示语句自动适应特定任务。Prompt预测范式作为预训练语言模型的新兴应用方向还有大量开拓空间,我们需要在理论和实践上不断深化研究,推动自然语言处理技术向着更高的目标迈进。5总结 当下模型训练参数算力等在飞速增长,通用人工智能(AGI)似乎成为了可能,AGI有潜力为每个人提供令人难以置信的新能力;可以想象,在那里每个人都能够通过AI协助完成几乎所有认知任务,这将为人类的创造性和创新力提供巨大的助力。未来可能会涌现出新的范式,而我们要做的就是拥抱未来。
参考文献
[1] Devlin J, Chang M W, Lee K, et al. Bert: Pre-training of deep bidirectional transformers for language understanding[J]. arXiv preprint arXiv:1810.04805, 2018.
[2] Lester B, Al-Rfou R, Constant N. The power of scale for parameter-efficient prompt tuning[J]. arXiv preprint arXiv:2104.08691, 2021.
[3] https://zhuanlan.zhihu.com/p/397004230
[4] https://www.cnblogs.com/jiangxinyang/p/17241491.html
[5] Church K W. Word2Vec[J]. Natural Language Engineering, 2017, 23(1): 155-162.