文章采集组合工具(第二期,任务导向对话受到了越来越多的关注(组图))

优采云 发布时间: 2021-11-13 19:07

  文章采集组合工具(第二期,任务导向对话受到了越来越多的关注(组图))

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

  为了推动多领域对话的研究,填补中国数据的空白,朱奇等人提出了中国第一个面向任务的*敏*感*词*对话数据集CrossWOZ,并在TACL发表文章 2020. 此外,为了对各种形式构建的对话系统进行端到端的统一评估,开发了ConvLab-2对话平台,支持对最新模型的对话系统进行快速构建、评估和诊断,并被 ACL 2020 演示轨道接受。特别提醒:今年的DSTC9比赛将使用ConvLab-2和CrossWOZ!小伙伴们都准备好搬家了吗?

  

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

  一个典型的基于流水线方法的面向任务的对话系统由四个模块组成:

  -自然语言理解(NLU):识别来自用户的自然语言描述并将其解析为结构化信息;

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

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

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

  

  图:典型的流水线方法面向任务的对话系统框架

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

  

  你好,我想去4.5以上的景点。

  *敏*感*词*城楼、簋街小吃、北京*敏*感*词*都是很不错的地方。

  

  

  我喜欢北京*敏*感*词*。你知道这个景点周边有哪些酒店吗?

  那很多,有A酒店,B酒店,C酒店。

  

  请输入文字

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

  二、CrossWOZ 数据集

  一种)

  特征

  首先,CrossWOZ具有中国特色,涉及领域众多。平均而言,每轮对话涉及3个领域。而且,对话轮次更长,每个槽有更多的可能值,这意味着对分类器的挑战更大。

  

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

  第二,挑战域间依赖。在 MultiWOZ 对话开始时,条件是预先确定的,例如要求酒店和景点位于镇中心,以后无法修改。CrossWOZ 的跨域约束更加自然。这是对话开始后的动态决策过程。系统推荐和用户选择都会动态影响不同域的数据流。

  

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

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

  

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

  b)

  数据采集

  1)建立数据库

  首先,从网上爬取旅游信息,包括酒店、景点、餐厅等。然后,利用上述实体对应的地铁信息建立地铁数据库。最后,*敏*感*词*不需要建数据库,直接调用API即可。

  

  表:数据库统计。注 * 表示有 37 个二进制槽用于酒店服务,例如叫醒服务。

  2)目标生成

  设计一个基于数据库的多域目标*敏*感*词*。建立跨域约束的方式有两种:一种是利用邻近关系,另一种是利用*敏*感*词*或地铁信息来往两地。

  

  表:用户目标示例

  3)对话集

  MultiWOZ雇用人员进行异步对话,每个人只贡献一轮,因此采集的对话可能会因为工作人员无法正确理解上下文而语无伦次。CrossWOZ开发的特殊网站可以让两个人直接进行同步对话,在线标注信息。

  在每一轮中,用户需要根据系统的回复填写用户状态,然后选择一些代表对话行为的语义元组,将它们组合成相关的话语。鼓励用户在当前约束下没有结果时放宽约束,例如将免费景点替换为付费景点。一旦目标完成(用户状态中的所有值都被填满),用户就可以终止对话。

  

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

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

  

  图:左边的数据库详情,中间的查询结果区是状态记录表(查询表),每个字段独立查询,最后写出自然语言语句

  4) 对话注解

  会话数据采集后,会使用一些规则来自动标记会话行为。每个句子可以有多个对话行为,表示为由意图、域、槽和值组成的元组。为了验证对话行为和状态(包括用户和系统状态)的标注质量,聘请了三位专家对50个对话进行人工标注,发现自动标注的准确率非常高。

  C)

  语料统计

  首先,从数据集来看,平均字段数更多,轮数也更长。

  

  根据用户目标不同,数据分为5类,分别统计。

  

  可以看出,跨域约束查询结果失败的可能性更大,需要的查询次数也更多,因此更具挑战性。

  

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

  d)

  基准

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

  

  表:基准模型的性能

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

  三、ConvLab-2 对话平台

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

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

  

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

  整体框架如图所示。每个模块提供一个基准模型。研究人员也可以建立自己的模型。

  

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

  

  从部分端到端的评估结果来看,基于传统流水线规则并辅以自然语言理解模块的神经网络结构效果更好。

  

  一种)

  分析工具

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

  

  下图显示了哪些区域更容易出现无休止的对话循环。

  

  图:系统性能演示

  统计分析的结果可以显示常见错误。例如,NLU 模块误解了用户对话行为的字段,将用户对酒店字段中的邮政编码、地址和电话号码的请求视为其他字段进行分析。由于初始字段的混乱和意图的错误识别,导致后续对话策略无法正确生成。

  

  表:酒店行业部分成果展示

  b)

  互动工具

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

  

  下面是一个演示。研究人员可以修改其中一个模块的输出,以检查对话系统在忽略某个模块错误后是否可以正常运行。

  

  图:交互工具界面

  您还可以访问 colab 环境以获得更深入的体验。

  

  图:示例代码

  问答互动

  最后和大家分享一些直播结束后大家和微信群里嘉宾的互动。

  

  这么多训练数据怎么找?

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

  

  

  DSTC9 的端到端任务会在哪些方面对模型进行评估?

  与去年大致相同,可以参考去年多域任务完成对话挑战赛的评测结果

  

  

  文章中提到的informable slot的定位是什么?

  Informable 是一个可能成为用户约束的插槽。有一些槽位只有查询db的系统才能知道,比如地址、价格等,用户无法分辨。

  

  完成:鸽子

  审稿人:朱琦

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线