©PaperWeekly 原创 · 作者 | 褚维芜

单位 | 北京邮电大学硕士生

研究方向 | 自然语言处理

引言

近年来,随着预训练模型的发展,对话领域的研究也逐渐开始关注基于预训练的端到端对话系统,2019-2021 这三年的时间涌现出很多关于开放域对话系统预训练的相关研究,基于英文的包括 google 在 2020 年 1 月发表的 Meena、Facebook 在 4 月发表的 Blender,基于中文的主要以百度 PLATO 系列模型为代表 [1]。这些模型的成功一定程度上表明海量数据和更大的模型能为对话系统带来很好的性能收益。

然而,这种依靠参数量、数据量来提升系统性能的方式对于任务型对话而言并不完全适用。一方面,任务型对话数据集本身比闲聊型对话更难收集,想要获取一个非常大的数据集来对任务型对话系统进行预训练是非常困难的;另一方面,预训练模型参数过大,训练和运行需要很高的计算成本,会存在无法快速部署的问题。由于以上问题的存在,任务型对话预训练的发展速度明显不如开放域对话,但最近两年也逐渐有一些针对任务型对话进行预训练的相关工作,本文将对这些工作做一个梳理总结,供大家参考。

本文主要介绍的工作有:

  • 2020EMNLP:TOD-BERT: Pre-trained Natural Language Understanding for Task-Oriented Dialogue [2]

  • 2021TACL:Soloist: Building task bots at scale with transfer learning and machine teaching [3]

  • 2021arXiv:PPTOD:Multi-Task Pre-Training for Plug-and-Play Task-Oriented Dialogue System(PPTOD)[4]

  • 2022AAAI:GALAXY: A Generative Pre-trained Model for Task-Oriented Dialog with Semi-Supervised[5] Learning and Explicit Policy Injection

TOD-BERT:面向任务型对话理解的预训练模型

2.1 Background & Motivation

使用现有的预训练语言模型直接在任务型对话数据上进行 fine-tune 无法取得很好的性能,主要原因包括以下两点:一是,对话数据和文本数据的语言模式不同,所以两者的数据分布有很大差异,因此普通文本预训练的语言模型在对话数据上表现不佳;二是,闲聊型对话数据广泛且易于获得,但是它们通常很短,没有明确的对话目标。而任务型对话通常有明确的目标,多轮对话交互,因此闲聊型对话数据预训练模型也很难在任务型对话数据上取得很好的表现。

任务型对话数据集通常小而稀疏,标注成本很高,本文通过联合多个数据集在一定程度上缓解了任务型对话预训练数据量不足的问题,并针对对话数据的特点对原始 BERT 模型的输入、预训练任务进行修改使得模型可以更好地捕捉对话特有的任务信息。

2.2 Method

数据集:本文联合了九个不同的多轮任务型对话数据集,如下表所示。最终,本文预训练所采用的数据集包含 60 多个领域的 100,707 段对话,1.3M 句话语。

TOD-BERT模型

TOD-BERT 在 BERT 模型原有的 MLM 损失函数上,添加了一个 Response contrastive loss(RCL)用于模拟回复选择任务。原始 BERT 中对两段话语进行拼接并对他们的连续性进行 0-1 预测,而 RCL 损失则是采用了类似 ConveRT 中的双编码器结构,同一个 batch 中的其他回复为负样本,如下图所示,优化目标为最大化正样例的概率。RCL 损失一方面可以学习更好的【CLS】位置的表示,另一方面可以捕获潜在的对话顺序、结构信息和回复的相似性。

另外,TOD-BERT 的输入中加入对说话人角色的编码。对于对话,TOD-BERT 的输入在每一个话语前面添加角色信息的 token:。TOD-BERT 在意图识别、对话状态追踪、对话动作预测、回复选择这四个下游任务上进行了评测,性能均超越了 BERT。

SOLOIST:预训练对话系统迁移到新的对话任务

3.1 Background & Motivation

构建对话系统需要大量的标注、领域知识以及专家经验,人工标注数据费时费力。即便已经对某个领域的数据进行了大量标注,现实情况下遇到新的任务时,对话系统依然难以完成。

针对以上问题,本文提出了一种新的大规模构建任务型对话系统的方法,并通过迁移学习和机器教学使其适应新的任务。现有的模型都是通过收集、标记新的数据,并为每个任务构建一个系统,而 SOLOIST 则不需要,这极大简化了对话系统遇到新的任务时模型的训练和部署的工作流程。

3.2 Method

数据集:本文使用 Schema、Taskmaster 这两个任务型对话数据集对模型进行预训练,数据集统计数据如下表所示。

对于数据集中的每一段对话进行预处理如下:定义  为对话历史、 为 belief state、 为 DB state、 为 delexicalize 的对话回复,模型输入是将以上信息进行拼接,因此,训练数据集中的每轮对话可以表示为:

SOLOIST模型

结构说明:使用 GPT-2 直接生成对话状态、对话动作、系统回复

预训练任务:

  • Belief Prediction:生成任务

  • Grounded Response Generation:生成任务

  • Contrastive Objective:对比学习

    SOLOIST 在输入的 [EOS] 位置,引入了一个对比损失函数,该函数用于预测输入是正样例 还是负样例 ,对比损失函数计算如下所示:

模型的损失函数为三个预训练任务的损失函数相加:

在预训练阶段,本文使用 GPT-2 初始化,利用大型任务型对话标注数据训练一个面向任务型对话的回复生成模型。该模型学习主要的任务完成技能,如对话状态追踪和对话策略学习,并可以根据用户目标和外部知识生成可以完成对话任务的回复。在微调阶段,本文通过机器教学将预训练的 SOLOIST 模型微调为完成特定(新的)任务的系统,其中训练样本是由真人教师与系统交互生成。

实验表明,SOLOIST 成功地将两种能力从预训练模型转移到一个新的任务型对话系统:一是,预训练过程中学习到的自然语言理解(NLU)和自然语言生成(NLG)的能力;二是,在域外对话语料库上根据用户目标和外部知识生成可以完成对话任务的回复的能力。

PPTOD:基于prompt方法的任务型对话预训练

4.1 Background & Motivation

现有基于预训练模型的任务型对话系统(SimpleTOD、SOLOIST 等)存在一定的局限性,一方面它们将各个子任务级联来进行对话生成,有误差累积,且系统推理会有延迟;另一方面,这些模型的训练需要提前标注大量的数据,且标注必须是完整的,因此大量的只有部分标注的数据无法使用(eg.只标注了对话状态或者对话动作任务的数据)。

因此,针对以上两个问题,本文以 T5 模型为基础,通过 prompt 方法使得预训练模型不仅可以使用标注完整的对话数据,还可以使用部分标注的数据。这在一定程度上缓解了任务型对话预训练所面临的数据量不足的问题。

4.2 Method

数据集:本文使用 11 个部分标注的任务型对话数据集对模型进行预训练,总共 2.3M 句话语,包含 80 个领域。数据集及其标注信息如下表所示。

PPTOD模型

从图中可以看出每一个训练样例之前都添加了一个任务提示,共有四种不同的任务:NLU、DST、POL、NLG,这四种任务是通过多任务学习的方式一起训练的,任何一个包含上述四种标注之一的数据集都可以用于训练 PPTOD。预训练和微调阶段的损失函数如下:

本文在端到端对话生成、对话状态追踪、用户意图识别三个下游任务上对模型进行了实验,结果表明 PPTOD 在各种评估指标上均优于当前的 SOTA 系统。

GALAXY:基于半监督学习的任务型对话预训练

5.1 Background & Motivation

现有的任务型对话预训练的相关研究并没有在预训练阶段丰富有关对话策略的知识,作者假设在预训练阶段直接学习进行对话策略的学习(DA prediction)可以使模型学习到更好地表示,并进一步提高端到端地性能。因此,本文主要关注于怎样在预训练阶段来对对话策略进行更好地建模。

一个简单的方式是将有监督对话动作分类损失和预训练的无监督 MLM 损失一起进行多任务训练,但这种方式存在三个问题:

  1. 目前各个任务型对话的 DA 标注不一致,收集一个大规模的有 DA 标注的数据集比较困难

  2. 大量的对话是没有 DA 标注的,因为在联合训练过程中,模型可能会对这些少量的标注数据过拟合

  3. 对于无标注的对话数据,模型只能提取到一般的语言知识,不能有效地挖掘对话策略相关知识

5.2 Method

针对以上问题,本文所设计的解决方案如下:

数据集:本文为任务型对话系统构建了一个统一的 DA 标注方法,并整合八个任务型对话数据集构建了一个新的有 DA 标注的数据集——UniDA;收集并处理了一个大规模无标注闲聊对话数据集——UnDial。

GALAXY模型

结构说明:

  • UniLM 为 backbone,它包含一个用于理解的双向编码器和一个用于生成的单向解码器,编码器和解码器是权重共享的

  • 输入表示采用 PLATO 中的方式,包括四个部分:位置编码、轮次编码、角色编码、token 编码

预训练任务:

  • 回复选择:构造正负样例进行 0-1 分类

  • 回复生成:解码器逐个 token 进行解码

  • 对话动作预测:多分类任务,仅对有标注数据有用

  • 一致性正则化:将一段对话历史两次输入编码器,由于 dropout 扰动会得到两个不同的分布,采用 KL loss 来最小化这两个分布之间的距离,如下图所示。

半监督预训练范式

  • 有标注数据的损失函数

  • 无标注数据的损失函数

  • 总的损失函数(有标和无标数据混合训练)

微调及推理

  • 数据集:MultiWOZ

  • 对于有语义标注信息的对话数据,将标注信息与系统回复拼接作为新的生成,并保留对话动作预测任务

  • 损失函数

GALAXY 的实验结果表明大规模任务型对话数据进行预训练可以带了很好的收益,且有监督对话动作预测任务对学习对话策略是有效的。

总结

从预训练数据来看,除了 SOLOIST 外,其他三个模型都是尽量使模型可以使用更多的预训练数据。TOD-BERT 联合了九个任务型对话数据集进行预训练,PPTOD 设计了一种可以利用部分标注数据集的模型,GALAXY 则更近一步,有标注和无标注的数据都可以用于训练。

从预训练任务上来看,四个模型都针对对话的特点调整了传统的预训练任务。TOD-BERT 采用了可以模拟下游回复选择任务的 Response contrastive loss,SOLOIST 将 DST、NLG 均建模为生成任务,PPTOD 基于 prompt 将下游任务均建模为生成任务,GALAXY 则采用了对话动作预测、回复生成 、回复选择、一致性正则化作为预训练任务。

从以上四个模型可以看出,目前任务型对话系统预训练领域的研究主要集中在:如何解决任务型对话数据量不足的问题;以及怎样设计更适用于对话系统的预训练任务来捕捉对话中的任务相关的信息。本文所介绍的模型虽然一定程度上缓解了上述问题,但是任务型对话预训练相比于 PLATO-XL 这种通用的对话预训练模型还有很大的差距。

参考文献

[1] Ni J, Young T, Pandelea V, et al. Recent advances in deep learning based dialogue systems: A systematic survey[J]. arXiv preprint arXiv:2105.04387, 2021.

[2] Wu C S, Hoi S C H, Socher R, et al. TOD-BERT: Pre-trained Natural Language Understanding for Task-Oriented Dialogue[C]//Proceedings of the 2020 Conference on Empirical Methods in Natural Language Processing (EMNLP). 2020: 917-929.

[3] Peng B, Li C, Li J, et al. Soloist: Building task bots at scale with transfer learning and machine teaching[J]. Transactions of the Association for Computational Linguistics, 2021, 9: 807-824.

[4] Su Y, Shu L, Mansimov E, et al. Multi-Task Pre-Training for Plug-and-Play Task-Oriented Dialogue System[J]. arXiv preprint arXiv:2109.14739, 2021.

[5] He W, Dai Y, Zheng Y, et al. GALAXY: A Generative Pre-trained Model for Task-Oriented Dialog with Semi-Supervised Learning and Explicit Policy Injection[J]. arXiv preprint arXiv:2111.14592, 2021.

特别鸣谢

感谢 TCCI 天桥脑科学研究院对于 PaperWeekly 的支持。TCCI 关注大脑探知、大脑功能和大脑健康。

更多阅读

#投 稿 通 道#

 让你的文字被更多人看到 

如何才能让更多的优质内容以更短路径到达读者群体,缩短读者寻找优质内容的成本呢?答案就是:你不认识的人。

总有一些你不认识的人,知道你想知道的东西。PaperWeekly 或许可以成为一座桥梁,促使不同背景、不同方向的学者和学术灵感相互碰撞,迸发出更多的可能性。

PaperWeekly 鼓励高校实验室或个人,在我们的平台上分享各类优质内容,可以是最新论文解读,也可以是学术热点剖析科研心得竞赛经验讲解等。我们的目的只有一个,让知识真正流动起来。

任务型对话系统预训练最新研究进展相关推荐

  1. 从多篇2021年顶会论文看多模态预训练模型最新研究进展

    ©PaperWeekly 原创 · 作者 | 小马 单位 | FightingCV公众号运营者 研究方向 | 计算机视觉 背景 1.1.什么是预训练 目前随着数据量爆炸式的增长,靠人工去标注更多数据是 ...

  2. 从 200 多篇顶会论文看预训练语言模型研究进展

    © 作者|王晓磊 机构|中国人民大学高瓴人工智能学院博士一年级 导师|赵鑫教授 研究方向 | 对话系统和预训练模型 近年来,以 BERT 和 GPT 系列为代表的大规模预训练语言模型(Pre-trai ...

  3. EMNLP 2021中预训练模型最新研究进展

    © 作者|周昆 机构|中国人民大学信息学院 研究方向|序列表示学习与应用 导读 EMNLP 2021是人工智能领域自然语言处理( Natural Language Processing,NLP)三大顶 ...

  4. 论文浅尝 | 5 篇顶会论文带你了解知识图谱最新研究进展

    本文转载自公众号:PaperWeekly. 精选 5 篇来自 ICLR 2019.WSDM 2019.EMNLP 2018.CIKM 2018和IJCAI 2018 的知识图谱相关工作,带你快速了解知 ...

  5. NLP领域的最新研究进展

    2022年,在NLP领域,哪些技术场景最值得关注?为了回答这个问题,在本次 DataFun 举办的自然语言处理峰会上,我们邀请了NLP领域的领衔专家和学者,共同精选了大模型预训练.自然语言生成.多模态 ...

  6. 常识知识在AI不同领域应用的最新研究进展

    上期,我们一起学习了常识推理的最新研究进展.这次,我们一起来看看常识知识在AI不同的领域都有哪些应用,泽宇找到几篇最新或有代表性的研究和大家分享学习. Commonsense Knowledge Aw ...

  7. 清华大学唐杰老师组:自监督学习最新研究进展

    作者|AI Box 来源|RUC AI Box 近年来,深度监督学习取得了巨大的成功.然而,它依赖于手工标签,并且易受攻击的弱点促使学者们探索更好的解决方案.近年来,自监督学习作为一种新的学习方法,在 ...

  8. 深度学习的最新研究进展(三)

    本文我们将简要讨论其他深度架构,它们使用与深度神经网络类似的多个抽象层和表示层,也称为深度生成模型(deep generate Models,DGM).Bengio(2009)解释了深层架构,例如Bo ...

  9. 新冠肺炎最新研究进展(2022年5月)

    COVID-19流行病自爆发以来,不断演变进化,不同毒株的传染性.感染后的严重程度.临床结局都是人们非常关注的问题.有关的生物学标志物研究也是层出不穷,然而这些标志物种类繁多.未知程度高.机制复杂,在 ...

最新文章

  1. AlexNet 网络详解及Tensorflow实现源码
  2. 提分策略:数据采样方法最全总结!
  3. php 二位数组随机,PHP多维数组 php打乱数组二维数组多维数组的简单实例
  4. linux 下 php 扩展
  5. 信息学奥赛C++语言:某年某月天数
  6. html 展示 python结果_在HTML中显示Python值
  7. 了解和使用DotNetCore和Blazor中的异步编程
  8. Java 12 要来了!
  9. 21.IO-multiplexing方式实现Netcat
  10. 一个有趣手绘风格的Python绘图库使用
  11. SQL Server 查询哪些对象(表\视图\存储过程)包含有某些内容
  12. centos 修改root密码_Liunx 下安装数据库以及修改密码
  13. 【大数据采集技术与应用】【第一章】【大数据采集技术与应用概述】
  14. java 6个逆向工程软件
  15. big类型和double类型
  16. 《失业的程序员》(十二):潜意识的智商 .
  17. day2----python的基本类型
  18. ubuntu vsftpd
  19. 李宏毅机器学习01机器学习介绍
  20. 联想z5 Android 9.0,联想Z5开启Android 9.0内测,新增人脸识别!

热门文章

  1. 完整适配LUCI界面的Openwrt中EC20的QMI拨号
  2. 百度单测生成技术如何召回线上服务的异常问题?
  3. java导出pdf字体宋体不加粗_docx4j word转pdf 中文宋体(中文正文)类型转换乱码...
  4. python script文件夹在哪_Python获取当前脚本文件夹(Script)的绝对路径方法代码
  5. python xlrd使用_python使用xlrd 操作Excel读写
  6. C# Aes CryptoStream Specified padding mode is not valid for this algorithm的解決方法
  7. getAttribute与getParameter的区别
  8. 创建javascript对象的几种方式
  9. W3School-CSS 表格实例
  10. 【转】网络编程常见问题总结