©作者 | 社媒派SMP

来源 | 社媒派SMP

中国科学院深圳先进技术研究院自然语言处理团队(SIAT-NLP)联合阿里巴巴达摩院云小蜜智能对话团队提出了一篇针对于任务型对话预训练的工作SPACE,入选国际信息检索顶级学术会议SIGIR 2022主会长文。

论文标题:

Unified Dialog Model Pre-training for Task-Oriented Dialog Understanding and Generation

收录会议:

SIGIR 2022

论文链接:

https://dl.acm.org/doi/pdf/10.1145/3477495.3532069

代码链接:

https://github.com/OpenSUM/CPSUM

文章摘要

本文提出了一种半监督预训练对话模型 SPACE,该模型将任务型对话中的任务流(Task-Flow)概念引入预训练模型架构中,采用单个统一的 Transformer 骨架将对话理解、对话策略和对话生成进行顺序建模,可以同时解决下游各种不同类型的任务型对话相关任务。我们提出半监督预训练的新范式,利用大规模无标对话语料和少量对话标注知识对模型进行有效的学习。

实验结果表明,SPACE 在下游 3 类任务型对话任务(意图识别、对话状态追踪、端到端对话建模),共计 8 个数据集(BANKING77,CLINC150,HWU64,CamRest,In-Car Assistant, MultiWOZ2.0/2.1/2.2)上均取得了 SOTA 性能。

研究背景

任务型对话是一种非常重要的人机对话系统类型,受到越来越多研究者的关注,其旨在通过自然语言对话的方式,完成用户发出的指令任务。通常情况下,任务型对话系统是为了满足用户在特定场景下的需求,例如天气查询、机票预订、业务咨询等。

为了满足用户的目标,任务型对话系统通常需要具备理解对话,规划策略和生成回复的能力,即在一轮对话交互中能够较好地完成任务流(Task-Flow)。如 Figure 1 (c) 所示,一个完整的任务流通常由三个步骤组成:1)基于对话上下文,提取当前轮用户语句中的关键信息(对话理解),比如意图和槽值对;2)采取合适的对话动作以达到更高的任务完成率(对话策略);3)生成自然且合适的回复语句返回给用户(对话生成)。

随着预训练语言模型(Pre-trained Language Models, PLMs)的发展,对话领域的研究也逐渐开始关注基于预训练的端到端对话系统,最近两年也逐渐有一些针对任务型对话进行预训练的相关工作。

Salesforce 的 TOD-BERT [1] 模型利用 9 个任务型对话数据集针对对话理解进行预训练。Microsoft 的 SOLOIST [2] 模型利用 2 个大型任务型对话数据集针对对话生成进行预训练。Amazon 和剑桥大学的 PPTOD [3] 模型利用 11 个部分标注的任务型对话数据集通过多任务学习的方式同时对多种对话任务进行条件生成式预训练。SIAT-NLP 和达摩院的 GALAXY [4] 模型同时利用大规模无标对话语料和少量标注有对话动作的对话语料针对对话策略和生成进行半监督预训练。

然而,尽管预训练对话模型(Pre-trained Conversation Models, PCMs)给对话相关任务带来了卓越的性能提升,但依旧存在着大量的问题:

1. 如 Figure 1 (a)-(b) 所示,现有的 PCMs 只针对对话理解或者生成相关特性进行构建,因此一个 PCM 在只能去解决对话理解或者生成相关的下游任务,缺乏一个统一的 PCM 对各种类型的对话任务进行统一的建模;

2. 现有的 PCMs 通常直接采用 PLMs 相同的损失函数在对话语料上进行预训练,缺乏设计更加符合任务型对话特性的预训练目标;

3. 现有的 PCMs 通常选择纯粹的对话语句作为预训练语料,忽视了对话数据集中存在的各种语义标签知识。

因此,在本文中我们提出一个半监督预训练对话模型 SPACE,该模型能同时用于解决各类下游任务型对话任务。模型在大规模无标对话语料上进行预训练的同时,也能够将少量对话标注知识给注入到模型的预训练过程中,使得预训练更加充分有效。

SPACE 模型采用单个统一的 Transformer 骨架,显式建模了任务型对话中的关键特性----任务流(Task-Flow)。具体来说,模型由四个组件组成:1)对话编码器:编码对话历史以形成对话上下文表征;2)对话理解解码器:学习当前轮用户询问或者系统回复语句的语义向量;3)对话策略解码器:生成当前轮策略语义向量;4)对话生成解码器:生成合适的回复语句。

在编码器中我们采用双向的自注意力机制,在三个解码器中采用从左到右的单向自注意力机制以维护任务流的单向流动性。针对不同的模块,我们设计了专门的 5 个预训练目标:片段掩码语言建模、半监督理解语义建模、语义区域建模、策略语义建模和回复生成建模,最终以多任务学习的方式来训练整体模型。

同时,本文也贡献了一个大规模无标对话数据集 UnPreDial 和一个有标对话数据集 AnPreDial 来促进任务型对话预训练方面的相关研究。

预训练数据构建

为了更好地进行预训练,我们收集了两个新的数据集,包含一个大规模无标对话数据集 UnPreDial 和一个有标对话数据集 AnPreDial,具体的数据组成展示在 Table 1 和 Table 2 中。

有标数据集:AnPreDial

任务型对话系统需要通过与用户的多轮交互来完成用户的目标需求,因此相关数据集的对话语句中通常标注有丰富的语义信息,包括领域 (DOMAIN),意图 (INTENT),词槽 (SLOT) 和实体 (VALUE) 标签。如图 Figure 2 所示,给定当前轮的用户询问语句"I want an indian restaurant in park, could you offer me the name?",其相应的语义标注则为"restaurant-inform(food=indian, area=park); restaurant-request(name=?)"。

如此的语义标注信息自然地能够展开为一棵半结构化的多叉树,这里我们将它称为语义树。一棵标准的语义树通常包含四层结构:领域层,意图层,词槽层和实体层。每层都把语义标注中的相应成分视作该层的节点。如果其中某层没有相应的标注信息提供,那么该层的节点将被置为空节点 (NULL)。具体来说,语义树第一层由域节点组成,作为根节点 (root) 的后继节点和意图节点的前驱节点。词槽节点占据语义树的第三层,同时作为意图节点的孩子节点和词槽节点的父节点。最后,实体节点作为叶子节点占据语义树的最后一层。

为了提供有语义标注的高质量对话语料,我们仔细搜集了所有可用的数据源,并将他们集成到 AnPreDial 中,最终 AnPreDial 一共包含了 32 个有标的任务型对话数据集,合计共三百万个轮次的对话语句。

无标数据集:UnPreDial

我们集成了 21 个在线的对话语料来构建我们的大规模的无标对话语料 UnPreDial,合计约有两千万个轮次的对话语句。针对这些对话语料,我们进一步地进行了仔细的数据清洗,进一步提高对话语料的质量。

方法框架

我们采用 UniLM 模型作为我们模型的基本骨架,显式地建模了任务型对话中的 Task-Flow,具体结构由一个双向的编码器和三个单向的对话解码器组成,分别是一个对话编码器,一个对话理解解码器,一个对话策略解码器和一个对话生成解码器。

对话历史编码器

我们利用一个双向注意力的 Transformer 结构来编码输入的对话上下文语句 c,将对话历史编码成对话上下文表征用于捕捉对话中公共和重要的信息,为后续的模块提供语义支撑。

对话理解解码器

我们在对话历史编码器的后面拼接上一个单向注意力的 Transformer 结构作为我们的对话理解解码器,用于提取输入上下文 c 中最后一句话的语义向量。区别于之前工作只考虑用户侧的语义理解,本文考虑双端语义理解,即既提取用户询问 q 的语义向量,也会提取回复语句 r 的语义向量。当需要提取回复语句 r 的语义向量时,会在输入的上下文 c 的最后位置拼接上回复语句 r。

区别于一般的方法利用 [CLS] 位置进行语义向量的提取,本文额外引入一个 understanding prompt 序列来进行更充分的语义提取。我们会在 understanding prompt 序列 的最后一个 token 的输出端提取出当前轮用户询问的语义向量 或回复语句的语义向量 。

对话策略解码器

我们在对话理解解码器的后面拼接上一个单向注意力的 Transformer 结构作为我们的对话策略解码器,生成当前轮策略语义向量 。类似于 understanding prompt 序列 ,这里我们会额外地拼接上一个 policy prompt 序列 来进行策略语义向量的生成,即在 policy prompt 序列的最后一个 token 的输出端获取出策略向量 。

对话生成解码器

我们在对话策略解码器的后面拼接上一个单向注意力的 Transformer 结构作为我们的对话生成解码器,以自回归的方式生成当前轮的回复语句返回给我们的用户。

预训练目标

针对不同的模块,我们依次设计了不同的五个预训练目标,分别是:段掩码语言建模,半监督理解语义建模,语义区域建模,策略语义建模和回复生成建模,最终以多任务学习的方式来训练整体模型。

片段掩码语言建模

在对话上下文 c 中,对于有实体 (VALUE) 标注的对话语句,我们在实体层面进行随机采样并掩码;对于没有实体标注的对话语句,我们随机对连续的文本片段进行采样并掩码;然后采用交叉熵损失函数来优化被掩码字符的负对数似然估计,公式定义如下:

其中 表示对话上下文 c 中被掩码的字符集合, 表示 c 中除去 后剩余的字符集合。

半监督理解语义建模

对于有语义标注的用户查询语句,我们会将相同批次中的所有数据都视作正例,同时也会给每个正例分配不同的相似度得分。如上文提及,我们会将语义标注展开成一棵语义树结构。利用语义树间的相似度,我们可以估计相应的用户查询语句之间的相似度。具体来说,对于两个语义树,我们利用树编辑距离来计算它们之间的相似度得分。因此,当给定两颗语义树 和 时,我们采用如下的公式来它们之间的计算相似度系数 :

其中 TreeEditingDistance 是一种用于计算树间距离的函数,符号||用于计算语义树中的节点个数。因此,对于每对对话样本(i, j),我们计算它们的输出表征 和 ,同时我们用 来表示用户查询语句之间的相似度得分。假设当前批次的大小为 L,我们采用 dropout-based 数据增强方法复制当前批次一次,得到一个新的大小为 2L 的新批次。设 为新批次中的样本索引集合,然后我们提出语义树监督的对比学习目标:

其中 和 是可学习的参数,NORM 函数用于归一化输入向量,使其输出向量的模长为 1, 是一个用于调节温度大小的超参数。

对于没有语义标注的用户查询语句,我们采用简单的自监督对比学习目标,只有增强后的样本会被当作成为正例,具体的计算公式如下:

同时结合有标和无标两块数据,我们针对用户查询语句的半监督对比损失函数计算如下:

我们同样也会在系统端进行相同的对比学习,用于更好地理解学习系统端回复语句的表征,得到系统端的半监督对比损失目标 ,最终我们将两端的半监督对比学习训练目标相加作为最后优化的损失函数 :

语义区域建模

为了使得对话理解解码器所提取的语义仅仅是对话上下文中的最后一句话的语义(用户查询 q 或系统回复 r),而非对话历史中其他句子的语义,我们额外地加上一个语义区域建模的预训练目标。我们采用词袋损失作为我们的损失函数,希望提取出的语义向量能够以无序的方式预测出被提取语义的句子中的每个词。一旦能做到这点,我们便认为提取出来的语义向量是集中在相应需要的区域的。针对用户查询 q 的语义提取而言,我们采用的公式如下:

针对系统回复 r 的语义提取,我们则采用如下的公式:

最终,我们的语义区域建模的损失函数如下:

策略语义建模

针对策略向量 的有效学习,我们采用模型来生成其监督信号。因为策略本身是回复语句的一种高层次的语义,所以可以考虑直接对回复语句进行的语义提取,再次利用上之前获得的后验回复语义向量 ,将其直接作为策略向量 的学习目标,采用 L2 范数来拉近二者之间的距离来完成我们的策略语义建模,具体的计算公式如下:

回复生成建模

针对于自回归的回复生成,我们采用标准的负对数似然估计损失函数 来优化该任务:

联合训练

最终,我们采用多任务学习的方式联合训练以上五个预训练目标,最终的损失函数定义如下:

实验

为了很好的评估我们的预训练模型,下游考虑在 3 大类对话任务,共计 8 个数据集上进行了独立和综合的模型效果评估。

评估数据集 

意图识别:针对于意图识别任务,我们在 BANKING77, CLINC150, HWU64 三个数据集上进行了实验。BANKING77 是一个单轮银行单领域的数据集,共计 77 个意图类别;CLINC150 是一个 10 个领域的多领域数据集,共计 150 个意图类别;HWU64 是一个 21 个领域的多领域数据集,共计 64 个意图类别。

对话状态追踪:针对于对话状态追踪任务,我们在 MultiWOZ2.2 数据集上进行了实验,该数据拥有 7 个不同的领域,共计 1w 个多轮对话。

端到端对话建模:针对端到端对话建模,我们在CamRest, In-Car Assistant, MultiWOZ2.0和MultiWOZ2.1四个数据集上进行了实验。CamRest是一个单领域的餐馆预定的数据集;In-Car Assistant是一个三个领域的车载助手场景的任务型对话数据集。MultiWOZ2.0和MultiWOZ2.1是两个多领域的任务型对话数据集。

独立评估

针对于需要测评的 3 个任务,我们首先在各个数据集上与该任务上相关的所有 baseline 模型进行独立的评估,在每个独立的数据集上 SPACE 模型都取得了一个新的 SOTA 性能。意图识别类任务,对话状态追踪类任务以及端到端对话建模类任务的实验结果分别如下表所示:

综合评估

为了更好地比较 SPACE 在所有任务上的综合性能,我们还选取了一些其他的预训练对话模型,在所有任务上和 SPACE 进行统一的比较,然后计算出综合得分进行整体评估。该部分实验设置分为全集测评和小样本测评两种,在两种测评下 SPACE 模型也都取得了 SOTA 得分,具体的实验结果如下表所示:

消融实验

我们同时也在部分数据集上做了消融实验,来验证以下 4 个模块对整体模型性能的影响,分别是采用 prompt 而非 [CLS] 位置来进行语义提取对模型性能的影响,以及半监督理解语义建模,语义区域建模,策略语义建模对应的 3 块预训练损失函数带来的增益和影响,具体的实验结果如下表所示:

案例分析

如下图所示,我们直观的展示了 SPACE 模型和其他 baseline 模型在端到端对话生成任务上的生成结果。从对比中可以看出,我们的 SPACE 模型可以在前两轮对话中选择了正确的对话动作,以致于整体对话可以朝着完成任务的正确方向进行延续,也验证了我们的模型具有很强的策略规划和回复生成的能力。

总结

本文提出了一个半监督预训练对话模型 SPACE,显式地建模了任务型对话中的任务流(Task-Flow)。SPACE 由一个对话编码器、一个对话理解解码器、一个对话策略解码器和一个对话生成解码器组成,将对话理解,对话策略和对话生成进行顺序建模,可以同时解决下游各种不同类型的任务型对话相关任务。针对模型的训练方面,我们提出半监督预训练的新范式,可以同时利用大规模无标对话语料和少量对话标注知识对模型进行有效的学习。

实验结果表明,模型在下游 3 类任务型对话任务(意图识别,对话状态追踪,端到端对话建模),共计 8 个数据集上均取得了 SOTA 性能。最后,本文也贡献了一个大规模无标对话数据集 UnPreDial 和一个有标对话数据集 AnPreDial 来促进任务型对话预训练方面的相关研究。

参考文献

[1] TOD-BERT: Pre-trained Natural Language Understanding for Task-Oriented Dialogue (EMNLP 2020)

[2] SOLOIST: Building task bots at scale with transfer learning and machine teaching (TACL 2021)

[3] PPTOD: Multi-Task Pre-Training for Plug-and-Play Task-Oriented Dialogue System (ACL 2022)

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

更多阅读

#投 稿 通 道#

 让你的文字被更多人看到 

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

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

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

SIGIR 2022 | 集理解、策略、生成一体的半监督预训练对话模型相关推荐

  1. ICLR 2022 | BEIT论文解读:将MLM无监督预训练应用到CV领域

    如果觉得我的算法分享对你有帮助,欢迎关注我的微信公众号"圆圆的算法笔记",更多算法笔记和世间万物的学习记录- 1. BEIT整体介绍 今天跟大家聊一聊ICLR 2022微软亚研院的 ...

  2. NeurIPS 2022|南大腾讯提出VideoMAE:视频自监督预训练新范式

    点击下方卡片,关注"CVer"公众号 AI/CV重磅干货,第一时间送达 点击进入-> CV 微信技术交流群 作者丨童湛   腾讯AI Lab 研究员 来源丨https://z ...

  3. CVPR 2022 | CNN自监督预训练新SOTA!上交等联合提出HCSC:具有层级结构的图像表征自学习新框架...

    来源丨机器之心 编辑丨极市平台 层级结构无处不在,自然界中存在「界 - 门 - 纲 - 类 - 科 - 属 - 种」这样的层级关系, 大规模自然图像数据集中也天然存在.例如,ImageNet 数据集的 ...

  4. 花书+吴恩达深度学习(二十)构建模型策略(超参数调试、监督预训练、无监督预训练)

    目录 0. 前言 1. 学习率衰减 2. 调参策略 3. 贪心监督预训练 4. 贪心逐层无监督预训练 如果这篇文章对你有一点小小的帮助,请给个关注,点个赞喔~我会非常开心的~ 花书+吴恩达深度学习(十 ...

  5. CIKM 2022最佳论文:融合图注意力机制与预训练语言模型的常识库补全

    ©作者 | 巨锦浩 单位 | 复旦大学硕士生 来源 | 知识工场 研究背景 常识在各种语料库中很少被明确表达,但对于机器理解自然语言非常有用.与传统的知识库(KG)不同,常识库(CKG)中的节点通常由 ...

  6. CVPR 2022 | CNN自监督预训练新SOTA:上交、Mila、字节联合提出具有层级结构的图像表征自学习新框架...

    ©作者 | 机器之心编辑部 来源 | 机器之心 来自上海交通大学.Mila 魁北克人工智能研究所以及字节跳动的研究者提出了一种具有层级语义结构的自监督表征学习框架,在 ImageNet 数据集上预训练 ...

  7. ACM SIGIR 2022 | 美团技术团队精选论文解读

    今年,美团技术团队有多篇论文被ACM SIGIR 2022收录,这些论文涵盖了观点标签生成.跨域情感分类.对话摘要领域迁移.跨域检索.点击率预估.对话主题分割等多个技术领域.本文精选了10篇论文做简要 ...

  8. ACL 2022 | DialogVED:用于对话回复生成的预训练隐变量编码-解码模型

    ©作者 | Hanscal 研究方向 | 知识图谱.对话系统 论文标题: DialogVED: A Pre-trained Latent Variable Encoder-Decoder Model ...

  9. 《预训练周刊》第5期:智源等研究力证:GPT语言理解能力不输BERT、盘点NLP预训练「兵器谱」...

    No.05 智源社区 预训练组 预 训 练 研究 观点 资源 活动 关于周刊 超大规模预训练模型是当前人工智能领域研究的热点,为了帮助研究与工程人员了解这一领域的进展和资讯,智源社区整理了第5期< ...

最新文章

  1. px4驱动linux,px4开发指南——linux下qgroundcontrol地面站安装
  2. python自学步骤-学习Python最正确的步骤(0基础必备)
  3. 中石油训练赛 - DNA(字符串哈希)
  4. 知名大学硕士生被通报,这件事千万别做!
  5. Cookie禁用了,Session还能用吗?
  6. 水土不服?谈一谈机器学习在金融风控实践经验
  7. json返回的img图片被原样输出_爬取百度图片,并下载至本地
  8. 去年写的测试GDAL用法的一些函数
  9. 重大网络教育计算机基础章节答案,网络教育计算机基础1答案
  10. codeforces1549 F1 - Gregor and the Odd Cows (Easy)(皮克公式)
  11. Linux 复制文件报 not a regular file
  12. Xman的东西当然值钱了。每1单位高度的植物,就可以卖2美元,把减掉的植物都卖掉,就可以弥补罚单的损失了。你帮Xman计算一下一共可以卖多少钱。
  13. 数学的三大核心领域——分析学范畴
  14. 职业探索1——霍兰德职业兴趣测试
  15. iOS 键盘限制输入内容限制、输入长度限制
  16. 深度学习中的正则化方法
  17. 使用python程序判断某天是不是每个月的第三周的周六问题
  18. 采用粒子群优化算法实现投资组合优化【Matlab实现】
  19. 短视频应该怎么做?零基础如何学习视频剪辑?
  20. 少用的却实用的计算机知识

热门文章

  1. MySQL拒绝访问问题
  2. 500强HR如何筛选简历
  3. 洛谷P2375 [NOI2014] 动物园 题解
  4. 交换机ip与网关ip冲突的问题
  5. android之解锁新技能,平常的应用开发会用到的东东(持续更新)android工作经验总结
  6. Acwing 1012. 友好城市
  7. java exif 怎么获取属性_Java如何读取图片EXIF信息
  8. 爱情心理学-影子人格
  9. 分享10个实用的 IDEA 插件,解放你的双手
  10. 获得marginLeft