所有文章 > 正文

这篇顶会,助你徒手搭建任务导向对话系统

作者: AI TIME 论道

时间: 2020-07-22 11:48

清华交互式人工智能组朱祺博士现身AI TIME PHD!

近年来,任务导向对话受到了越来越多的关注,涌现出许多数据集和基于神经网络的模型。第二期AI Time PhD对话系统专题分享的直播间,我们邀请到清华大学计算机系2018级博士生、交互式人工智能组成员朱祺,为大家介绍最新研究成果。

为了推动多领域对话的研究和填补中文数据的空白,朱祺及其团队提出了CrossWOZ,第一个中文大规模任务导向对话数据集,文章发表于TACL 2020。此外,为了对多种形式构建的对话系统进行统一端到端评测,开发了ConvLab-2对话平台,支持用最新的模型快速搭建、评估、诊断对话系统,被ACL 2020 demo track接收。特别提醒:ConvLab-2和CrossWOZ将被用于今年DSTC9比赛呢!小伙伴们是不是都蠢蠢欲动了呢?

一、回顾任务导向对话系统

一个典型的基于管道方法的任务导向对话系统由四个模块组成:

-自然语言理解(NLU):对来自用户的自然语言描述进行识别,解析成结构化的信息;

-对话状态追踪(DST):更新当前对话的状态,和背后数据库或知识库进行交互,查询满足用户条件的实体;

-对话策略(DP):根据当前对话状态,选择下一步系统需要回复的结构化信息

-自然语言生成(NLG):将接收的结构化信息转换成自然语言,并反馈给用户。

图:典型管道方法任务导向型对话系统框架

现实生活的对话不局限于单个领域,人们很容易在不同场景之间来回切换,同时仍保持上下文的连贯,比如下图从景点过渡到酒店场景,酒店的约束条件由景点决定。用户根据系统推荐的内容选择结果,根据结果修改其他领域的约束。因此,本文提出了CrossWOZ,第一个大规模中文多领域任务导向对话数据集。

202007220101-zjuS5iuxt3.jpg

图:涉及到两个领域的对话示例

二、CrossWOZ数据集

a)特点

首先,CrossWOZ具有中文特性,且涉及领域较多,平均每轮对话涉及3个领域。且对话轮次较长,每个槽位(slot)可能的取值也较多,这意味着对分类器的挑战更大。

表格: 与其他任务导向型语料库(训练集)的比较

其次,挑战域间依赖性。MultiWOZ对话开始时预先规定了条件约束,比如要求酒店和景点都位于城镇中心,后期无法修改。CrossWOZ跨领域的约束更加自然,是一个在对话开始后动态决定的过程,系统推荐和用户选择都会动态地影响不同领域的数据流。

表:MultiWOZ、Schema和CrossWOZ中跨领域对话示例。下划线标示了跨领域约束(粗体)的值。

最后,标注信息丰富。该语料库在用户端和系统端为对话状态和对话行为进行了丰富的注释,为研究跨领域对话建模,比如对话状态跟踪、策略学习等提供了一个新的实验平台。

左图:对话示例,用户状态由用户目标初始化。右图:Pipeline用户模拟器(左)和任务导向对话系统(右)。实线表示自然语言级别的交互,虚线表示对话行为级别的交互。

b)数据收集

1)构建数据库

首先,从网络爬取旅游信息,包括酒店、景点、餐厅。然后,利用上述实体对应的地铁信息建立地铁数据库。最后,出租车无需构建数据库,调用API即可。

表:数据库统计。注意*表示酒店服务有37个二值槽位,比如叫醒服务。

2)目标生成

基于数据库设计多领域目标生成器。跨领域约束条件的建立有两种方式:一是使用邻近关系,二是使用两地往返的出租车或地铁信息。

表:用户目标的一个实例

3)对话收集

MultiWOZ是雇用人员进行异步对话,每人只贡献一轮,这样收集的对话可能不连贯,因为工作人员无法正确理解上下文。CrossWOZ开发的专门网站则允许两人直接进行同步交谈,并在线进行信息标注。

每个回合,用户需要根据系统的回复填充用户状态,然后根据选择其中某些表示对话行为的语义元组,组合成相关话语表达。鼓励用户在当前约束条件下没有结果时放松约束,比如把免费景点换成付费。一旦目标完成(用户状态中所有值都被填充),用户就可以终止对话。

图:用户端标注系统示例,中间是用户状态。

系统端则涉及数据库查询的操作,需要根据用户输入的话语填充查询,并在必要时搜索数据库,选择检索到的实体并以自然语言回复。如果没有实体满足约束,也会尝试询问用户是否放宽其中的一些约束。

图:左边是数据库详细情况,中间是查询结果区域即状态记录表(查询表),每个领域独立查询,最后撰写自然语言句子

4)对话标注

在收集到对话数据后,使用一些规则为对话行为进行自动标注。每一句话可以有几个对话行为,表示为由意图、领域、槽位和值组成的元组。为了验证对话行为和状态(包括用户和系统状态)的标注质量,聘请了三名专家对50个对话进行手动标注,发现自动标注的准确率很高。

c)Corpus Statistics

首先从数据集情况来看,平均领域数更多,轮数也较长。

根据不同用户目标把数据分成5种类型,并分别统计。

可以看到跨领域约束更容易查询不到结果,且需要查询的次数也更多,因此挑战性更大。

左:训练集中不同目标类型对话的统计。右:训练集中不同目标类型的对话长度分布。

d)benchmark

CrossWOZ数据集适用于各种面向任务的对话系统模块。本研究提供了几类基准模型,包括自然语言理解、对话状态跟踪、对话策略学习、自然语言生成和用户模拟。这些模型使用ConvLab-2实现,一个开源的面向任务对话系统工具包。此外,还提供了一个基于规则的用户模拟器,用于训练对话策略和生成模拟对话数据。基准模型和模拟器可以极大地促进研究人员在CrossWOZ语料库上比较和评估他们的模型。从对话行为F1值和联合状态准确率(精确匹配百分比)等预测结果可以看出,跨领域约束对于各个任务模块都是具有挑战性的,尤其是领域转移。

表:基准模型的性能

由于涉及相关领域之间转换的意图识别准确率较低,需要更有效地利用语境信息。

三、ConvLab-2对话平台

下面介绍ConvLab-2开源工具包,在这个平台上研究人员可以使用最先进的模型构建面向任务的对话系统,执行端到端评估,并诊断系统缺陷。ConvLab-2继承了ConvLab的框架,但集成了更强大的对话模型并支持更多的数据集。

此外,朱祺的团队还开发了一个分析工具和一个交互工具来帮助研究人员诊断对话系统。分析工具提供了丰富的统计数据和图表展示,并对模拟数据中的常见错误进行汇总,便于错误分析和系统改进。交互工具提供了一个用户模拟器界面,允许开发人员通过与系统交互并修改系统组件的输出来诊断组装好的对话系统。相比于真人对话评估,模拟器评估成本更低。

右图:顶部的方框显示了构建对话系统的不同方法

整体框架如图,每个模块都提供了基准模型,研究者也可以自己构建模型。

ConvLab-2为对话系统中每个可能的组件提供以下模型。与ConvLab相比,ConvLab-2中新集成的模型以粗体标记。研究人员可以通过实现相应组件的接口轻松添加自己的模型。朱祺的团队也会不断增加最新的模型,以反映任务导向对话的前沿进展。

从局部的端到端评估结果来看,以传统pipeline规则为主、辅以自然语言理解模块的神经网络结构,效果较好。

a)分析工具

为了评估对话系统,ConvLab-2提供了一个分析工具,使用用户模拟器进行端到端的评估,并生成一个包含丰富的模拟对话统计信息的HTML报告。分析工具还支持与同一用户模拟器交互的不同对话系统之间的比较。

下图显示了哪些领域更容易产生对话的死循环。

图:系统性能演示

统计分析的结果可以看出常见误差,比如NLU模块误解用户对话行为的领域,把用户对酒店领域的邮政编码Postcode、地址和电话号码的请求当成其他领域去解析。由于开始的领域混淆、意图识别错误,导致后期对话策略生成不正确。

表:酒店领域的部分结果演示

b)交互工具

ConvLab-2还提供了一个交互式工具,使研究人员能够通过图形用户界面与对话系统交互,观察各个模块输出,并纠正系统错误。

下面是一个demo,研究者可以修改其中某个模块输出,从而检查忽略某个模块误差后,对话系统是否能正常运行。

图:交互工具的界面

大家也可以访问colab环境,更深入地体验。

图:实例代码

答疑互动

最后和大家分享直播后微信群里大家与嘉宾的部分互动。

问:请问这些训练的数据怎么找到这么多?

答:CrossWOZ是人工构建的。也可以考虑机器生成/机器生成+人工改写的思路,可以参考Towards Scalable Multi-domain Conversational Agents: The Schema-Guided Dialogue Dataset 这篇论文。

问:DSTC9中端到端的那项任务具体会从哪些方面评测模型呢?

答:和去年大致一样,可以参考去年评测的论文Results of the Multi-Domain Task-Completion Dialog Challenge

问:文章提到的informable slots的定位是什么?

答:informable是可能成为用户约束的slot。有一些slot只有查询db的系统才能知道,比如地址、价格等,这些用户是无法告知的。

整理:鸽鸽

审稿:朱祺

相关链接及文献:

- CrossWOZ:

• Paper: CrossWOZ: A Large-Scale Chinese Cross-Domain Task-Oriented Dialogue Dataset (TACL 2020)

• Code and data: https://github.com/thu-coai/CrossWOZ

- ConvLab-2:

• Paper: ConvLab-2: An Open-Source Toolkit for Building, Evaluating, and Diagnosing Dialogue Systems (ACL 2020 demo track)

• Code: https://github.com/thu-coai/ConvLab-2

Will be used in DSTC9 (Track: Multi-domain Task-oriented Dialog Challenge II):

https://sites.google.com/dstc.community/dstc9/home

点击“下载报告”,获取本次报告ppt

直播回放:https://www.bilibili.com/video/BV1K5411a7GY

往期回顾:

AI女神,乘风破浪带头人!

中国高校报考指南(江湖版)

最新进展!国务院成立专项工作组赴合肥,调查90多人集体离职事件!

[关于转载]:本文为“AMiner”官网文章。转载本文请联系原作者获取授权,转载仅限全文转载并保留文章标题及内容,不得删改、添加内容绕开原创保护,且文章开头必须注明:转自“AMiner”官网。谢谢您的合作。

二维码 扫码微信阅读
下载报告
推荐阅读 更多