CoAI

CrossWOZ:一个大规模跨领域中文任务导向对话数据集

  • 2020年11月15日 17:54

为了推动多领域(特别是跨领域)任务导向对话的研究和填补中文任务导向对话数据的空白,我们提出了CrossWOZ,第一个大规模跨领域中文任务导向对话数据集。数据集包含6K个对话,102K个句子,涉及5个领域(景点、酒店、餐馆、地铁、出租)。平均每个对话涉及3.2个领域,远超之前的多领域对话数据集。相比之前的多领域对话数据集,我们精心设计的用户目标使对话中领域之间的依赖性更强,领域切换更自然。数据集标注信息全面,提供了对话双方的对话意图和双方的对话状态,可以用于任务导向对话系统中各个任务的研究。


论文链接:https://arxiv.org/abs/2002.11893

数据和代码地址:https://github.com/thu-coai/CrossWOZ

CrossWOZ数据集被用于DSTC-9多领域任务导向对话挑战赛道的跨领域对话状态追踪任务:https://convlab.github.io/


数据简介


2018年,任务导向对话数据集MultiWOZ横空出世,并被评为当年EMNLP最佳资源论文。由于其大规模多领域的特点,引发了任务导向对话领域新的一轮发展热潮。为了进一步推动多领域(特别是跨领域)的研究以及填补中文任务导向对话数据的空白,我们提出了CrossWOZ,一个大规模跨领域中文任务导向对话数据集。论文已被Transactions of the Association for Computational Linguistics (TACL) 接收。

1605435857107535.jpeg

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


相比于之前的任务导向对话数据集(特别是MultiWOZ),CrossWOZ有三大特点:

1. 在对话中,用户在某个领域的选择可能会影响到与之相关的领域的选择。如上面的这个例子,用户选择了北京欢乐谷作为景点领域的结果,那么之后选择的酒店就要在它附近。不同的景点选择会对酒店产生不同的约束。这种跨领域约束随着对话的进行而具体化,需要对话双方都能对上下文有更好的理解,因而更具有挑战性。

2. 这是第一个中文大规模多领域任务导向对话数据集,包含6K个对话,102K个句子,涉及5个领域(景点、酒店、餐馆、地铁、出租)。平均每个对话涉及3.2个领域,远超之前的多领域对话数据集,增添了对话管理的难度。

3. 标注信息全面,可以用于研究任务导向对话系统中各个方面。除了提供对话双方的对话意图、系统端的对话状态这些信息之外,还额外提供了每轮用户端的对话状态。用户端状态记录了目标的完成情况,每轮根据系统回复动态更新,可用于研究用户模拟器的搭建。

1605435901569469.jpeg

左图:对话示例,用户状态由用户目标初始化。右图:Pipeline用户模拟器(左)和任务导向对话系统(右)。

实线表示自然语言级别的交互,虚线表示对话行为级别的交互。


数据收集过程


收集数据时模拟的对话场景是一名游客向系统咨询北京的旅游信息,分为以下几个步骤:

1. 领域数据库构建:从网络上爬取了北京的景点、酒店、餐馆信息,以及这些地点的邻近关系。同时这些地点附近的地铁站组成了地铁数据库。出租领域无需数据库。

1605435942550766.jpeg

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

2. 用户目标生成:通过随机采样的方式生成各领域的目标。如下表,有值的表示约束条件,没有值的表示需求信息,粗体的表示跨领域的约束,用占位符表示。这个例子里用户要找一个免费的景点及其附近一家提供叫醒服务的酒店,并预订一辆从景点到酒店的出租。

1605436050353295.jpeg

用户目标的一个实例。

3. 对话数据收集:MultiWOZ是雇用人员进行异步对话,每人只贡献一轮,这样收集的对话可能不连贯,因为工作人员无法正确理解上下文。CrossWOZ开发的专门网站则允许两人直接进行同步交谈,并在线进行信息标注。用户端以用户目标作为初始状态,通过对话获取信息,每轮更新用户状态,填写需求的信息和替换跨领域的约束。然后根据选择其中某些表示对话行为的语义元组,组合成相关话语表达。鼓励用户在当前约束条件下没有结果时放松约束,比如把免费景点换成付费。一旦目标完成(用户状态中所有值都被填充),用户就可以终止对话。

1605436335433337.png

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

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

1605436392256071.png

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


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


数据统计


从数据集总体情况来看,相比MultiWOZ数据集,CrossWOZ的对话平均领域数更多(3.24 vs 1.80),轮数也较长(16.9 vs 13.7)。将对话分成五种类型:单领域 S,多领域 M,多领域加交通 M+T,跨领域 CM,跨领域加交通 CM+T。交通代表了地铁和出租领域,M 和 CM 的区别是有没有跨领域的约束。统计信息如下表。可以发现含有跨领域约束的对话 (CM,CM+T) 会导致更多的系统多次查找 (Multi-query)、找不到结果 (NoOffer)、用户自主修改目标 (Goal change) 的情况。可以看到跨领域约束更容易查询不到结果,且需要查询的次数也更多,因此挑战性更大。

1605448314259755.jpeg

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


基线模型


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

1605448563348583.jpeg

基准模型的性能


1605448629784361.jpeg

领域切换轮次基准模型的性能