随着深度学习的快速发展,每年都有很多高质量的标注数据集发布学术界,如文本分类、情感分析等。同时,工业界也会积累和沉淀各种面向任务的标注数据。如何将标注数据中存储的特定任务知识注入预训练模型,从而提升该类任务的总体效果,成为一个重要的研究方向。本文从介绍预训练模型的两个经典范式开始,着重介绍预训练语言模型学习了哪些知识,以及如何将知识注入预训练模型。预训练对话模型的进展,以及对未来研究方向的展望。一、预训练语言模型的两种范式1.1.监督式预训练神经网络模型的预训练一直是深度学习中关注的问题。最早的研究可以追溯到2006年Hinton教授提出的基于受限玻尔兹曼机优化的贪心算法[2],它使用未标记的数据对DeepBeliefNets(DBN)进行逐层初始化,确保更深层次的网络可以收敛快速处理下游任务。随着大数据的兴起和计算能力的提升,人们逐渐发现直接在具有高相关性的大规模标记数据集上进行有监督的预训练,然后对特定的下游任务进行迁移学习可以带来更强的性能。比较常见的工作是使用VGG、ResNet等超深度模型在ImageNet上进行预训练,将大量图像分类专家标注的经验知识注入到模型的参数中,使其可以用于在其他相关领域,如目标跟踪和图像分割。任务更适合学习。1.2.Self-supervisedpre-training近一两年,随着预训练语言模型的兴起,使用自监督的方法在未标注数据上为判别模型构建监督损失函数成为大规模的自监督预训练-训练。新的主流,例如在自然语言处理领域,BERT可以使用基于上下文的词标记预测训练出良好的自然语言表示,这已经在大量的NLP任务上得到验证[3];而在计算机视觉领域,近期一系列基于ViT[4]的工作也采用了类似BERT的transformer结构进行图像块重建的预训练,从而获得良好的图像表示,并获得了图像分类数据集,如随着imagenet-1K的显着提升。在综述[5]中,清华研究人员从迁移学习的角度回顾了现有的两种预训练范式,如下图1所示。无论是有监督的预训练还是自监督的预训练,归根结底都是直接从数据中学习更合理的分布式表示,从而更好地迁移和适配到特定的下游任务。图1:神经网络预训练的两种范式(改编自评论[5])。综上所述,两种范式各有优缺点:有监督的预训练以标注数据的存在为指导,学习到的特征更适用于一些相关的下游任务,但严重依赖人工标注;自监督预训练可以不再受限于人工标注,可以使用海量未标注数据进行学习,但设计的损失函数一般需要简单通用,如LMloss、MLMloss和contrastiveloss等,这使得大型模型学习更通用的语义表示。2.预训练语言模型学到了什么?2.1.模型的知识检测按照目前的发展,以BERT为代表的自监督预训练已经成为研究的主流。论文[6]采用知识检测的方法,针对BERT模型深入探究了各层注意力权重之间的关系(如图2所示),发现不同层的不同注意力头(attentionheads)敏感到不同的语言特征。比如有的attentionheads对定冠词修饰的名词比较敏感,有的attentionheads更关注被动语态,有的实现long-termDistancereferenceresolution。图2:BERT不同attentionheads的权重图分析(引自[6])预训练的本质是将训练数据中包含的信息以模型可以理解的方式隐式存储到参数中[5]],许多研究工作表明[7][8][9],BERT等预训练模型可以在一定程度上学习更好的语言知识(句法、语法),甚至世界知识和常识知识。但是,预训练模型如何更好地学习和利用人类经验知识还存在很多问题,需要更多的研究和探索,比如如何更好地建模,如何更有效地进行预训练,以及如何评估知识整合程度等。2.2.人类经验知识这里,我们大致将人类经验知识分为三类:第一类是事实性知识,如人工构建的知识表、知识图谱、结构化文档(包括文本结构、图形信息)。目前已经有一些预训练工作更好的利用了这方面的知识,比如达摩院最近开源的最大的中文预训练表模型(详见文章《达摩院开源中文社区首个表格预训练模型,取得多个基准 SOTA》);清华大学的KEPLER[12]和北京大学的K-BERT[11]通过将三元组融合到神经网络输入中并引入新的损失函数或结构,实现了图知识的有效整合;Microsoft的LayoutLM系列模型[13]和Adob??e的UDoc[14]研究了如何在结构化文档上进行预训练。第二类是数理逻辑知识,包括数学公式、公理定理、符号计算等,这类知识本文不讨论。第三类是标注知识,即标注数据中包含的知识。这类知识非常笼统,与任务相关,比如文本分类、情感分析等。在标注过程中,人类需要根据具体任务进行归纳,推断出未标注的数据,并在预定义的高位分配相应的标签级语义分类空间。因此,使用注释知识来增强预训练模型应该会给相关的下游任务带来显着的改进。3、如何注入人工标注知识?虽然世界上有各种各样的预训练模型,但是如何将标注知识注入模型中,仍然是一个没有被充分探索的方向。在早期工作中,Google的T5[16]曾尝试将标记和未标记数据统一到语言生成任务中进行学习,但实验表明,简单地混合标记和未标记数据训练会产生负面影响。经过大量的实验探索,我们发现如果还是基于原来的两种预训练范式,是很难预训练好的。首先,单独的自监督预训练或监督预训练不能很好地利用标记和未标记的预训练数据,因为只有自监督损失函数无法学习标记知识中的高级语义,而有监督的损失函数也可以在未标记的语料库中学习到一般的底层语义;其次,在大规模预训练中,由于使用的预训练数据往往在少量标记数据和海量未标记数据之间存在量化差距,如果简单地将两者混合,这种预训练会使有标签的知识要么淹没在无标签的数据中,要么就会出现严重的过拟合,所以我们需要一种新的预训练范式来解决这个问题。在这里,我们提出半监督预训练。如图3所示,从迁移学习的角度来看,半监督预训练可以认为是前两种范式的自然延伸。通过构造半监督学习损失函数来充分利用有限的标注知识和大量未识别的标注数据。在半监督学习理论[17]中,模型不仅需要对未标记数据进行自推理,根据结果进一步约束优化,还需要使用标记数据进行一定程度的监督,以指导过程自监督预训练。避免模??型参数陷入琐碎的解决方案中。图3:半监督预训练新范式我们团队专注于对话式AI(ConversationalAI)方向,所以我们率先将半监督预训练的思想应用到对话领域,并提出了一种半监督的预训练对话模型。在经典对话数据集上进行了重大改进,论文被AAAI2022[1]录用。下面简单介绍一下什么是预训练对话模型,然后重点介绍半监督预训练对话模型。4.预训练对话模型预训练语言模型(Pre-trainedLanguageModel,PLM)需要回答什么样的句子更像自然语言,而预训练对话模型(Pre-trainedConversationModel,PCM))needstoanswerisgiven判断对话历史中什么样的回复比较合理。因此,预训练对话模型比预训练语言模型更具任务针对性,需要综合考虑预训练语言模型的对话轮次、对话角色、对话策略、任务等特点目标。图4显示了一个对话框Summaryofuniqueproperties。图4:对话特有属性汇总目前预训练对话模型的建模基本上是按照对话理解和对话生成两大任务类别进行建模,使用类似于BERT的loss对对话素材进行预训练或GPT-2。例如,对于语音理解,常见的模型有PolyAI的ConvRT[20]、Salesforce的TOD-BERT[21]和亚马逊的ConvBERT[31],而对于对话生成,常见的模型有微软的DialoGPT[18]、谷歌的Meena[19]和Facebook的Blender[30]。然而,这些模型都没有包含注释知识。5.半监督预训练建模方案我们的目标评估基准是CambridgeMultiWOZ2.0和AmazonMultiWOZ2.1等经典对话数据集。此任务需要构建用于用户意图识别、对话策略选择和回复生成的对话模型。对于下游任务模型,我们直接沿用现有的端到端对话模型UBAR[24],将其通用GPT-2模型库替换为我们的SPACE模型库,然后在相同设置下进行评估。5.1.对话策略知识对话策略是对话过程中的一个重要模块,一般用对话行为标签(dialogact,DA)来描述,即给定双方的对话历史,对话策略需要选择正确的对话引导对话生成的操作(图5)。目前常见的各种预训练对话模型,如Meena、DialoGPT等,往往将对话动作的选择过程隐式建模到模型参数中,存在无法解释、不可控等问题。由于策略是高级语义,仅通过自我监督很难学好它。因此,接下来,我们将从对话策略建模入手,提出一种半监督的方法来实现更好的预训练,将标注数据中的对话策略知识融入到预训练对话模型中。图5:经过对一轮完整对话过程的总结分析,我们从ISO国际对话动作标准[25](见图6)中总结出了任务型对话出现频率最高的20个对话动作集,并进行了排序out并合并现有的一些对话数据集,经过人工对齐和删除,我们给出了最大的英语任务对话动作标注数据集UniDA(共97万轮),同时我们也从各种公共论坛,开源benchmarks和其他渠道处理了高质量的英文无标注对话数据UnDial(共3500万轮)。详情请参考论文[1]。图6:UniDA系统5.2英文对话。Policyknowledgeinjection在本文中,我们提出使用半监督预训练来解决对话策略的建模问题,将对话动作预测任务转化为半监督学习任务,并设计了SPACE的第一个预训练模型系列,SPACE1.0(即我们的AAAI论文[1]中的GALAXY模型)。具体来说,SPACE1.0采用了encoder+decoder的架构。预训练目标既包括传统建模对话理解和对话生成的自监督损失,也包括建模对话策略的半监督损失。完整框架见图7。图7:半监督对话预训练框架首先,对于对话理解,我们使用responseselection(响应选择)作为预训练目标(如图7右侧所示)),即在[CLS]处给定对话上下文(context)和候选响应(response),二元分类判断是否为正确响应。正如许多PCM作品[20][21]所证明的那样,响应选择的训练对于对话理解至关重要,因此我们保留了这一目标。对于对话生成,我们使用共同的响应生成目标,即在给定对话上下文的情况下生成正确的响应语句(如图7左侧所示)。图8:基于R-drop的一致性正则化损失对于对话策略,我们采用半监督学习中非常有效的一致性正则化方法来对对话动作进行建模。理论可以证明,在低密度假设下(即分类边界呈低密度分布),对同一样本进行扰动后分类结果仍具有一定的一致性(即分布接近或预测结果接近),那么最终的基于一致性正则化的半监督学习就可以保证找到正确的分类面[23]。dialoguestrategy的具体损失函数组成如下:对于未标注的对话数据,我们采用R-drop[22]的思想,如图7所示,给定相同的对话输入c,经过两次forwardswithdropout的得到两次随机扰动后在对话动作空间上预测出不同的分布,然后用双向KL正则化损失函数对这两个分布进行约束;对于带标签的对话数据,我们直接使用基本的监督交叉熵损失来优化对话动作预测。最后,对于模型的预训练,我们优化了整个模型的理解、策略和生成目标。可以在论文[1]中找到更多详细信息。6、半监督预训练效果显着。我们验证了对三个国际对话数据集的影响:斯坦福的In-Car[28]、剑桥的MultiWOZ2.0[26]和亚马逊的MultiWOZ2.1[27]。In-Car数据集最早被提出,是车载语音对话数据。总共有3k左右的完整对话,难度比较简单;MultiWOZ2.0是目前最大、难度最大、应用最广泛的任务型对话数据集,包括1w个完整对话,跨越7个场景,如预订餐厅、酒店等。MultiWOZ2.1是在MultiWOZ2.0的基础上人工标注和修正的数据集。如图9所示,经过半监督预训练和policyknowledge,我们可以看到我们的SPACE1.0模型在这些对话列表上已经大大超越了之前的SOTA模型,端到端的混合得分在-Car、MultiWOZ2.0和MultiWOZ2.1分别提高了2.5、5.3和5.5分:图9:各数据集端到端得分总体结果对比以上结果充分证明了半监督的效果预训练。同时,我们也进行了低训练资源的实验,发现我们的模型在不同训练数据比例的使用上都保持了显着的提升。如图10所示,SPACE1.0模型可以和SimpleTOD进行对比,SimpleTOD是基于GPT-2的对话模型,只利用了全量训练数据的100%,只使用了5%的训练数据,直接超过了MinTL,一种基于T5的对话模型,利用了全部的训练数据。图10:低资源训练下端到端评分结果对比我们还进行了案例分析。从图11我们可以发现,与之前的SOTA模型相比,SPACE1.0模型可以预测出更正确的对话动作。因此,合理的对话策略可以提高端到端的整体任务完成性能。图11:CasestudyCaseStudySPACE1.0机型(即GALAXY)在MultiWOZ官网中依然排名第一。特定的人类注释知识使模型在下游任务中更有效。与之前的半监督学习相比,我们关注的重点不再是如何减少对标注数据量的依赖,而是如何更高效地整合特定的标注知识,如下图12所示:图12:半监督学习从下游的训练延伸到预训练过程在后续工作中,如何将范式进一步延伸到各种NLP任务,打造实用的半监督预训练SPACE模型系统是需要不断努力的方向探索。具体包括:自动知识选择:如何利用算法模型自动选择合适的任务知识,从大量带标签的数据集中找到对目标下游任务最有用的数据集进行半监督预训练,使得这个范式是一个普遍的范式迫切需要研究的问题。半监督算法:目前我们正在尝试基于一致性正则化的半监督预训练方案,但是半监督领域的方法还有很多,比如self-taught,co-training,deepgenerativemodeling等。如何综合利用它们是一个重要的研究课题。异构知识的统一:在本文中,我们只关注分类和标签知识。对于其他类型的标注知识,如序列标注知识、层次分类知识、回归标注等,如何做出更好的形式化表示,并将其整合为预测知识,也是模型训练中一个悬而未决的问题。知识注入的评价:如何更量化、更明确地衡量针对特定任务的知识注入程度,并利用探测等方法对知识整合进行合理评价,也值得进一步研究和探索。预训练模型的创建离不开强大的AI算力的支持。SPACE模型的开发也得益于阿里云EFLOPS团队提供的高效算力服务。谢谢你!
