新闻  |   论坛  |   博客  |   在线研讨会
达摩院SPACE大模型:知识注入与知识利用(1)
数据派THU | 2022-11-20 18:23:53    阅读:575   发布文章

以下文章来源于DataFunTalk ,作者李永彬

本文主要针对两个主题:知识注入和知识利用,讲解该模型的创新点与改进。


今天的介绍会围绕下面四点展开:


  • 预训练语言模型 VS 预训练对话模型

  • “无知识不对话”:知识是对话的基础

  • 半监督预训练:一种新的知识注入方式

  • Proton:预训练模型中知识利用的探索



01、预训练语言模型 VS 预训练对话模型


 1. 大规模语言模型


图片


过去几年 NLP 领域的重大进展,主要是大型预训练模型出现与大规模使用。预训练语言模型有了很大的发展,出现了很多变种。但是,本质上都还是语言模型,如上图右边的流程图所示,输入基本上为网络上的自由文本,模型基本上都是 Transformer 结构,优化的目标基本上都是 MLM(掩码语言模型)。


图片


预训练语言模型对整个 NLP 领域带来巨大进步,到了对话领域之后,可以进一步的提取对话领域更为独特的特征。如上图所示,左侧的网络上的自由文本为大规模预训练模型所需要的语料,右侧的表示对话的语料,直观上看,已经有很大的不同。


图片


对话是对语言的高级应用,主要有以下几个特点:


①口语化,表述随意,不一定符合语法、句子不完整、噪音较多、有很多 ASR 错误。

②分角色多轮次,至少两个参与主体,轮次间存在省略、指代、状态继承、状态遗忘等。

③垂直知识约束,每个对话任务有自己的知识约束,模型需要针对性地利用起来。

④深层语义理解,需要深入理解语言,Intent-Slots/ 逻辑推理等等。

⑤讲究对话策略,为完成特定任务目标,需要知道应该怎么说。


 2. 预训练语言模型 VS 预训练对话模型


图片


基于对话数据独有的特点,在预训练模型的基础上,发展出独特的预训练对话模型。如上图左侧表示的预训练语言模型,其优化的目标是回答什么样的句子更像自然语言;而上图右侧表示的是预训练对话模型,从端到端的角度看,其优化的目标是需要回答给定对话历史,什么样的回复更合理。这就是预训练语言模型与预训练对话模型的一个很大的不同点。


3. 预训练对话模型进展


对话主要分三块:对话理解、对话策略、对话生成。2021 年初,预训练对话模型已经有了较多发展。如下图所示,对话理解领域,2019 年 PolyAI 提出了 ConveRT 模型、2020 年 Salesforce 提出了 TOD-BERT 模型、2021 年 JingDong 提出了 DialogBERT 模型。


图片

图片


面向理解的预训练对话模型的出现,对于对话理解方面,相对于预训练语言模型,带来了巨大的提升,如上图所示,EMNLP2020 上的一篇文章(Probing Task-Oriented Dialogue Representation from Language Models)的实验结果,表明预训练对话模型和预训练语言模型相比,在对话理解任务上,可以提升 10% 以上的效果;在表征学习上,也能学到更好的表示,有更好的聚类效果。这一点可以通俗的理解,因为当前的预训练模型(包含语言与对话模型)本质上是数据驱动出来的,那么,对话数据训练的预训练模型,自然比从自由文本上训练出来的模型在对话领域更具表现力。


图片


除了对话理解以外,还有一块是对话生成领域。


2019 年 Microsoft 提出了 DialoGPT、2020 年 Google 提出的 Meena、2020 年 Facebook 提出的 Blender、2021 年 Baidu 提出的 PLATO-2 等,这些模型的出现的话,对对话生成方面的质量也带来了很大的提升。如下图所示,Facebook的Blender模型,从 2018 年到 2020 年,在 A/B Test 胜率从 23% 提升到了 49%。


图片


以上是对整个预训练对话模型的简单介绍,对理解本文提出的模型有很大的帮助。总体上,预训练语言模型的出现,大幅度提升了 NLP 所有任务的效果,而基于预训练语言模型的预训练对话模型,进一步提升了对话领域的 NLP 任务的效果。所以,基于预训练对话模型的智能对话已经成为一个基座模型。


02、“无知识不对话”:知识是对话的基础


对话还有一个非常大的特点,就是强依赖于知识。换而言之,知识是对话的基础。


图片


由上图的对话体系架构可以看出,上层的主流对话引擎,比如多轮对话、图谱问答、表格问答、QA问答、文档问答、闲聊(Chit-chat)等,其划分的依据就是底层知识的不同。举例而言,多轮对话引擎,主要是基于对话流程图;图谱问答,依赖于知识图谱的知识等。除了这些显著的知识,想要做好智能对话,还需要一些其他的知识,比如人类标注知识、世界知识、各种常识等。


这里以一个办理汽车保险的任务为参考案例。这个任务是一个流程类的任务,即办理一个保险是有步骤,有流程的。首先,校验个人和证件信息,包括身份证、驾驶证、行驶证等;然后开始验车,生成验车结果:如果验车结果不通过,则告知验车不合格原因,流程结束,结果为不能办理汽车保险;如果验车结果通过,则进行后续步骤,填写保单,包括车险险种、被保险人信息等,然后交保险费,并获得保险存根。


这是一个典型的流程类任务,需要通过任务型对话进行处理。流程类知识的一个显著特点,大多是情况下,任务的顺序是不可变的。比如,不能先做第三步,再做第一步,这样整个流程是不对的,执行不下去的。流程类知识的第二个特点就是,流程类知识打开每一步看的话,又包含了很多其他的知识。比如第一步,要校验个人和证件信息,比如姓名,对于中国人,基本上都是汉字,而且字数都在 2-10 个字以内,这些属于世界知识或基本常识,以及身份证号,大陆身份证都是 18 位的等,都是世界知识里面的范畴。而且,为了训练出一个可用的任务型对话,需要一定量的标注数据,而这些标注的数据,蕴含了人类的知识。比如意图、类别,以及情感等的标注,都是将人类的知识,显式的写在了数据上,从而形成新的知识。综上所述,整个对话都是围绕知识展开的,无知识,不对话。


图片


前面做了基本的引入和介绍,一方面,针对智能对话,预训练对话模型已经成为基础模型;另一方面,对于整个对话系统来讲,都是围绕着知识展开的。所以,我们(达摩院 Conversational AI 团队)过去一段时间的研究和探索,都是围绕着这两点展开。主要的思路是将知识和预训练对话模型结合起来。具体来看,如上图所示,将任务拆成两个子任务:一个子任务是我们如何把知识注入到预训练对话模型,让模型有更好的知识容量;另一个子任务,在应用方面,将在预训练对话模型中学到的大量的知识,显式地抽取出来,和下游任务更好的结合和使用。围绕这两个方面,本文将重点分享一些探索性的工作。


03、半监督预训练:一种新的知识注入方式


 1. 标注知识


图片


第一部分主要关于知识注入。如何将知识注入到模型中,本文提出一种新的方式,半监督预训练方式。


图片


首先回顾一下知识。知识中有一种非常重要——标注知识。离开标注知识,很难将 NLP 任务做好。在人工标注的知识中,包含大量任务相关的知识。示意图分类、意图匹配、实体识别、对话策略、情感等,这些标签数据,都是将人类的知识,显式地表现在数据上。人工标注的知识有如下特点:


第一,对提升具体任务效果至关重要,虽然现在 Few-Shot 等小数据量标注很热门,但是,这种不需要标注数据或者少量标注数据的模型,尚未满足业务上线的要求,所以,标注数据对于提升任务作用非常大;


第二, 任务相关,数据分散。即在A任务上标注的数据,在 B 任务上并不能使用,需要重新标注;


第三,总量较小。相对于无监督数据往往几千万,几亿条,有标注的数据,可能只有几百条、几千条等。


如何将这些分散的标注数据,汇总到一块,将其中蕴含的知识,注入到预训练对话模型,提高模型的能力?本文即针对这个问题进行了研究和探索。如果可以实现这样的操作,即可实现知识迁移,将在A任务标注的数据的知识,用到B任务上,从而提升B任务的效果。好处如下:第一,解决冷启动问题;第二,在达到相同准确率的情况下,需要的标注数据更少。


图片


首先,回顾一下预训练模型的发展。预训练模型在图像领域首先使用,而且是基于有监督的数据。而当 Bert 等预训练模型提出后,开始从大量的无监督数据中进行预训练,即通过自监督学习。预训练模型以前有两种手段:一个是对有监督数据进行监督学习;另一个是对无监督数据进行自监督学习。今天面对的任务是大量的无监督数据和小量的有监督数据,我们提出了半监督学习,通过半监督的方式,将有监督数据和无监督数据结合起来,如上图所示,我们提出了一个 SPACE(Semi-supervised Pre-trAined Conversation ModEl)模型。


图片


半监督的概念已将发展很多年了,这里提出的半监督方式和以前的半监督方式是有所不同的,主要区别在于:过去,半监督将半监督和有监督结合一起,用于降低知识标注成本;现在,我们主要是半监督和自监督结合,向预训练模型注入知识。


 2. 预训练对话模型发展


图片


基于我们提出的半监督模型的理念和框架,再来看一下预训练对话模型的进展。如何将半监督的思想融入到预训练对话模型,在一个具体的业务场景进行实验和落地。由上图可以知道,围绕着对话理解和对话生成,有很多机构做了很多的模型,但是对于对话策略做的非常少,基本上没有相关研究。但是,对话策略非常的关键和重要。


图片


那么,什么是对话策略?在对话理解和对话生成之间,存在着对话策略。对话策略就是根据对话理解的结果,以及结合历史的状态,来决定如何回复下一句话。


举例而言,两个人 A 和 B,在对话过程中,A 不断地说,B 可以一直回复,嗯,好的,对对。这就是一种对话策略,B的策略表示我在听,我听懂了。还有一种策略,B 在听的过程中,有部分听不懂,需要反问其中某个点等;以及对于 A 说的某些地方有些疑问,进行澄清等,也是一种策略。所以,对话策略是保证一段对话可以顺利进行很关键的一步。


学术界对对话策略的定义是 DA(Dialog act),由上图所示,在不同时间,DA 的定义与名称不尽相同,整个对话策略虽然发展了很多年,但是存在复杂和不一致等缺点。导致今天应用起来比较麻烦。


*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。

参与讨论
登录后参与讨论
推荐文章
最近访客