#AI前沿分享# 自然语言处理中的七个范式

自然语言处理(Natural Language Processing,NLP)是计算机科学,人工智能,语言学关于计算机和人类自然语言之间的相互作用的领域,是计算机科学领域与人工智能领域中的一个重要方向。

自然语言处理历史悠久,早在1949年的时候,美国人威弗就提出了机器翻译设计方案,可以视为自然语言处理领域的开端,此后自然语言处理在不断的发展,在上世纪该领域的方法主要是基于规则的方法和基于统计学的方法,这类方法效率较低,耗费人力,且无法处理大规模的数据集,因此自然语言处理领域一直不温不火。

2008年以来,随着深度学习在语音识别和图像处理领域取得成功,研究者们开始使用深度学习方法处理自然语言处理问题,从最初的词向量,到2013年的word2vec,再到2018年的bert,最后到如今的prompt,自然语言处理技术在最近的十年里面快速发展。

#AI前沿分享# 自然语言处理中的七个范式

在深度学习的时代,多数自然语言处理(NLP)任务的建模已经融合到几种主流范式中。

例如,我们通常采用序列标记范式来完成一系列任务,如词性标记、命名实体识别(NER)和组块分析等,并采用分类范式来完成情感分析等任务。

#AI前沿分享# 自然语言处理中的七个范式

来自论文


我们来了解下NLP的7个主流范式:

#AI前沿分享# 自然语言处理中的七个范式

CMU的刘鹏飞博士总结了以上自然语言处理技术发展过程中的四种范式,每种范式代表了一种类型的自然语言处理方法。

第一范式:非神经网络时代的完全监督学习(特征工程)

第一范式指的是引入神经网络之前NLP领域的处理方法,提取出自然语言语料库中的一些特征,利用特定的规则或数学、统计学的模型来对特征进行匹配和利用,进而完成特定的NLP任务。常见的方法比如贝叶斯、veterbi算法、隐马尔可夫模型等等,来进行序列分类、序列标注等任务。

#AI前沿分享# 自然语言处理中的七个范式

第二范式:基于神经网络的完全监督学习(架构工程)

第二范式指的是神经网络引进之后,预训练模型出现之前NLP领域的研究方法,这类方法不用手动设置特征和规则,节省了大量的人力资源,但仍然需要人工设计合适的神经网路架构来对数据集进行训练。常见的方法比如CNN、RNN、机器翻译中的Seq2Seq模型等等。

#AI前沿分享# 自然语言处理中的七个范式

第三范式:预训练,精调范式(目标工程)

第三范式指的是先在大的无监督数据集上进行预训练,学习到一些通用的语法和语义特征,然后利用预训练好的模型在下游任务的特定数据集上进行fine-tuning,使模型更适应下游任务。GPT、Bert、XLNet等模型都属于第三范式,其特点是不需要大量的有监督下游任务数据,模型主要在大型无监督数据上训练,只需要少量下游任务数据来微调少量网络层即可。

#AI前沿分享# 自然语言处理中的七个范式

第四范式:预训练,提示,预测范式(Prompt工程)

第四范式指的是将下游任务的建模方式重新定义,通过合适的prompt来实现直接在预训练模型上解决下游任务,这种模式需要极少量(甚至不需要)下游任务数据,使得小样本、零样本学习成为可能。由于第四范式较为新颖,下面详细介绍一下第四范式。

前文提到第三范式的fine-tuning过程是调整预训练模型,使其更加匹配下游任务,那么第四范式就正好相反,prompt过程则是调整下游任务,使其更加匹配预训练模型。也就是第三范式是预训练模型迁就下游任务,而第四范式是下游任务迁就预训练模型。

那么如何改造下游任务能更好的迁就预训练模型呢?以Bert为例,Bert有两个预训练任务,Masked LM完型填空任务和Next Sentence Prediction下个句子预测任务,对于这两种不同的与训练任务,prompt的类型也可以分为两类:完形填空prompt和前缀提示prompt。

完型填空prompt:比如情感分类任务,输入是【这个玩具不错】,可以将prompt改成:这个玩具不错,太【Z】,Z的输出是“棒”。前缀提示prompt:比如机器翻译任务,输入是【好好学习】,可以将prompt改成:好好学习,翻译成英语:【Z】,Z的输出是"good good english"。分类、匹配、选择相关的任务往往使用完形填空prompt(自编码),生成相关的任务往往使用前缀提示prompt(自回归)。

  • 二分类任务prompt示例

假设有一个情感分类任务,输入句子X,输出其情感标签Y{正向,负向}。比如对于"这个餐厅的服务真不错。"这个句子进行情感分类,首先构造prompt:_____满意,这个餐厅的服务真不错,将输入句子变化为这样的prompt,然后将标签Y映射为{很,不}(很满意代表正向,不满意代表负向)。

由于正常的Bert的MLM预训练任务是预测整个词表,而上文的prompt预测的只有两个单词{很,不},因此需要调整词表,然后使用交叉熵损失函数进行模型。因此,整个第四范式的处理过程为:先将输入构造成prompt,然后构造对应prompt的标签,然后对输入句子映射、对下游任务原标签映射,使用映射后的prompt输入和新标签精调模型。

  • 匹配任务prompt示例
#AI前沿分享# 自然语言处理中的七个范式

比如判断"我去了北京"和"我去了上海"这两句话之间的联系,可以使用完型填空的方式构造prompt:我去了北京?_____,我去了上海。将两个输入句子映射为prompt,然后将标签从{匹配,不匹配}映射为{是的,不是},借助MLM模型进行训练。

第四范式研究领域主要有三个问题:

  • 针对输入端:如何构造prompt,更好的对下游任务建模,使其能够激发预训练模型的潜能
  • 针对输出端:如何将原标签映射为prompt对应的新标签
  • 针对模型:如何对预训练模型进行精调

首先,对于prompt,主要指的是"将原输入附加一段补充描述语句,通过这段补充描述语句实现任务转换和对任务求解,这段描述语句与原始输入一起形成一段语义合理的语句作为 prompt 的输入"。也就是说,对于输入的文本x,可以通过两步生成prompt:

  • 第一步使用一个模板(自然语言片段),模板包含两个空位置,用于填输入 x 和生成答案文本z
  • 第二步将输入填入到x的位置上

接下来,对于任务标签的映射在该领域中被称为答案工程“Answer Engineering”,其目的是找到合适的对应于prompt的新标签,并完成原标签到新标签的映射。

在很多情况下,无需对下游任务的语言模型进行任何显式训练即可使用prompt方法,也称为零样本训练(zero-shot learning)。也有一些方法使用训练数据来训练与prompt方法一致的模型,相当于通过少样本学习对预训练模型进行精调,可以让模型效果更好。

在prompt下游任务训练中包含两种参数,一种是预训练模型的参数,一种是prompt过程的参数,哪类参数应该更新是一项重要的设计决策,可以在不同场景中产生不同程度的适用性。目前,在prompt训练过程中有5种类型的参数调整策略:

  • 直接训练不用prompt:优点是简单,缺点是小数据集容易过拟合。
  • 直接基于prompt生成答案:优点是零样本,缺点是需要较强的prompt设计。
  • 固定预训练参数,调整prompt参数:优点是适合小样本学习,缺点是不适合零样本学习。
  • 调整预训练参数,固定prompt参数:这种方法暂时不多
  • 调整预训练参数,调整prompt参数:优点是大数据集上效果好,缺点是小数据集容易过拟合。

总之,目前而言,基于prompt的NLP第四范式的研究已经成为了NLP领域最新、最热的话题,在未来还有很多方向值得研究,比如prompt的设计问题,除了分类、生成问题外,其他问题要如何科学的设计prompt?还有prompt的理论分析和可解释性,为何prompt能够取得如此好的结果?再比如prompt模板和答案映射的联系,如何搜索才能获得最好的prompt模板和新标签,等等,都需要研究者们继续探索。

NLP四大范式的演变规律

介绍完了四个范式,从最原始的基于规则、基于统计的模型到最近的基于prompt的方法,本质上是一个让预训练模型和下游任务更加接近的过程。第一范式时是通过人工设置规则,生成特征来实现"预训练",通过规则匹配特征来处理任务,第二范式时使用了神经网络,为了提取更好的特征,实现更好的"预训练",第三范式利用fine-tuning的技术,将预训练模型参数保存下来,而不是仅仅体现在一些特征上,最后第四范式通过prompt改造下游任务使其更接近预训练模型。因此,如果NLP领域有下一个范式,那这个范式一定通过某种足够简洁且通用的方式,让预训练模型与下游任务更加接近了。

来自Raytheon BBN、哈佛等9位学者撰写了关于《基于大型预训练语言模型的自然语言处理研究进展综述》,阐述三种NLP处理新范式:

范式1: 先训练,然后微调

传统统计NLP的工作重点是在标记数据集上训练特定任务的模型,而这种模式转变为在一个共享的、“基本”的预训练任务上训练一个大型模型,然后在第二步中将其调整(“微调”)到各种任务。预训练任务几乎总是一种语言建模任务,它可以利用大量的未标记数据来学习有利于一系列NLP任务的表示(Rogers et al., 2020)。在本节中,我们首先提供关于预训练的大型语言模型(PLMs)的入门知识,然后描述使用冻结或微调PLM进行NLP任务的方法。

#AI前沿分享# 自然语言处理中的七个范式

范式2: 基于提示的学习

我们使用提示指的是在输入或输出中添加自然语言文本(通常是短语)的做法,以鼓励预训练的模型执行特定任务(Yuan et al., 2021)。使用提示符有几个优点。提示,特别是上下文学习(例如Brown et al., 2020),可能不需要更新PLM的参数,与微调方法相比,或在2.4.4中描述的基础上,减少了计算需求。提示还能促使新任务的制定与预训练的目标更好地结合,从而更好地利用预训练获得的知识。更紧密的匹配还支持少样本方法(Liu et al., 2021b),特别是对于具有小训练数据集的任务;一个好的提示可以值几百个标签数据点(Le Scao and Rush, 2021)。最后,提示允许以一种不受监督的方式探索PLM,以评估PLM对特定任务所获得的知识(如Petroni et al., 2019)。

下面我们讨论三种基于提示的学习方法:从指令和演示中学习、基于模板的学习和从代理任务中学习。图3显示了这三种方法的说明。

#AI前沿分享# 自然语言处理中的七个范式

范式3 NLP即文本生成

基于生成式Transformer的PLMs10(如GPT、BART和T5)的成功,最近激发了人们对利用生成式PLM解决各种非生成式NLP任务的兴趣。这些任务包括但不限于传统的判别任务,如分类和结构预测。例如,图4说明了Raffel等人(2020)所描述的这种“文本到文本”方法。与传统的NLP任务判别模型不同,这些任务被重新表述为文本生成问题,从而可以直接用生成式PLM解决。生成的输出序列通常包括给定任务所需的标签或其他辅助信息,从而能够准确地重构预期的类标签(即避免映射中的歧义),并促进生成/解码过程(即为预测提供足够的上下文)。

#AI前沿分享# 自然语言处理中的七个范式

最新趋势

随着预训练语言模型的快速发展,近年来出现了一种范式转换的新兴趋势,即通过对任务的输入输出形式进行修改,从而在新范式下完成一个NLP任务。

在完成许多任务时,范式转换都取得了巨大的成功,并正成为提升模型性能的一种新兴方法。此外,其中一些范式在统一大量NLP任务方面显示出巨大的潜力,从而有可能构建一个单一的模型来处理不同的任务。

虽然取得了不少成功,但这些分散在不同自然语言处理任务中的范式转换尚未得到系统的综述和分析。复旦大学邱锡鹏教授团队试图总结这一研究领域的最新进展和趋势,即范式转换或范式转移。

全文下载

Paradigm Shift in Natural Language Processing

Tian-Xiang Sun, Xiang-Yang Liu, Xi-Peng Qiu, Xuan-Jing Huang

https://link.springer.com/article/10.1007/s11633-022-1331-6

https://www.mi-research.net/en/article/doi/10.1007/s11633-022-1331-6

发表评论
留言与评论(共有 0 条评论) “”
   
验证码:

相关文章

推荐文章