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

2022 年 10 月 14 日 PaperWeekly


©作者 | 社媒派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

代码链接:

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


📝 稿件基本要求:

• 文章确系个人原创作品,未曾在公开渠道发表,如为其他平台已发表或待发表的文章,请明确标注 

• 稿件建议以 markdown 格式撰写,文中配图以附件形式发送,要求图片清晰,无版权问题

• PaperWeekly 尊重原作者署名权,并将为每篇被采纳的原创首发稿件,提供业内具有竞争力稿酬,具体依据文章阅读量和文章质量阶梯制结算


📬 投稿通道:

• 投稿邮箱:hr@paperweekly.site 

• 来稿请备注即时联系方式(微信),以便我们在稿件选用的第一时间联系作者

• 您也可以直接添加小编微信(pwbot02)快速投稿,备注:姓名-投稿


△长按添加PaperWeekly小编



🔍

现在,在「知乎」也能找到我们了
进入知乎首页搜索「PaperWeekly」

点击「关注」订阅我们的专栏吧


·

登录查看更多
1

相关内容

对话推荐算法研究综述
专知会员服务
49+阅读 · 2022年2月18日
【AAAI 2022】用于文本摘要任务的序列级对比学习模型
专知会员服务
24+阅读 · 2022年1月11日
【微信@CIKM2021 】 强化学习推荐模型的知识蒸馏探索之路
专知会员服务
16+阅读 · 2021年8月24日
专知会员服务
22+阅读 · 2021年7月4日
【AAAI2021】预训练用户表示提升推荐
专知会员服务
43+阅读 · 2021年2月8日
【KDD 2020】基于互信息最大化的多知识图谱语义融合
专知会员服务
41+阅读 · 2020年9月7日
[综述]基于深度学习的开放领域对话系统研究综述
专知会员服务
79+阅读 · 2019年10月12日
赛尔原创@EMNLP 2021 | 多语言和跨语言对话推荐
哈工大SCIR
0+阅读 · 2022年3月11日
任务型对话系统预训练最新研究进展
PaperWeekly
2+阅读 · 2022年1月14日
一文读懂智能对话系统
数据派THU
16+阅读 · 2018年1月27日
国家自然科学基金
4+阅读 · 2015年12月31日
国家自然科学基金
1+阅读 · 2013年12月31日
国家自然科学基金
0+阅读 · 2012年12月31日
国家自然科学基金
1+阅读 · 2012年12月31日
国家自然科学基金
2+阅读 · 2011年12月31日
国家自然科学基金
4+阅读 · 2009年12月31日
国家自然科学基金
1+阅读 · 2009年12月31日
国家自然科学基金
2+阅读 · 2008年12月31日
国家自然科学基金
0+阅读 · 2008年12月31日
国家自然科学基金
5+阅读 · 2008年12月31日
Arxiv
20+阅读 · 2021年9月21日
Arxiv
25+阅读 · 2021年3月20日
VIP会员
相关VIP内容
对话推荐算法研究综述
专知会员服务
49+阅读 · 2022年2月18日
【AAAI 2022】用于文本摘要任务的序列级对比学习模型
专知会员服务
24+阅读 · 2022年1月11日
【微信@CIKM2021 】 强化学习推荐模型的知识蒸馏探索之路
专知会员服务
16+阅读 · 2021年8月24日
专知会员服务
22+阅读 · 2021年7月4日
【AAAI2021】预训练用户表示提升推荐
专知会员服务
43+阅读 · 2021年2月8日
【KDD 2020】基于互信息最大化的多知识图谱语义融合
专知会员服务
41+阅读 · 2020年9月7日
[综述]基于深度学习的开放领域对话系统研究综述
专知会员服务
79+阅读 · 2019年10月12日
相关基金
国家自然科学基金
4+阅读 · 2015年12月31日
国家自然科学基金
1+阅读 · 2013年12月31日
国家自然科学基金
0+阅读 · 2012年12月31日
国家自然科学基金
1+阅读 · 2012年12月31日
国家自然科学基金
2+阅读 · 2011年12月31日
国家自然科学基金
4+阅读 · 2009年12月31日
国家自然科学基金
1+阅读 · 2009年12月31日
国家自然科学基金
2+阅读 · 2008年12月31日
国家自然科学基金
0+阅读 · 2008年12月31日
国家自然科学基金
5+阅读 · 2008年12月31日
Top
微信扫码咨询专知VIP会员