专栏首页AI部落联盟微软和清华开源ConvLab: 多领域端到端对话系统平台

微软和清华开源ConvLab: 多领域端到端对话系统平台

本文大部分来自ConvLab: Multi-Domain End-to-End Dialog System Platform,2019年4月18号才挂到arxiv,我是19号简单扫一遍。这种类型的文章比较简单,大多是阐述性质的,今天也没细看(局部细看了,没有整体细看),捡着关键内容加上我之前关于对话方面的了解简单写下。如果有问题,欢迎交流。

我们提出一个叫ConvLab的多领域端到端对话系统平台,它一方面提供一些可复用的组件来帮助实验人员快速实验,另一方面还可基于它在通用环境中对比大量不同方法(包括从pipeline到完全端到端好几个层级的方法,后面会细说)。另外,ConvLab还提供了一些完全标注的数据集和一些相关的预训练模型。作为一个演示,我们使用用户对话行为标注扩展了multiwoz数据集(记得好像是EMNLP2018 best paper提出来的,不仅有数据还有相应的任务)用来训练系统的所有组件,同时演示convlab如何使在多领域的端到端对话中进行复杂实验变得简单和高效。

本文主要贡献包括:ConvLab是第一个涵盖多个可训练模型和相关标注数据集的开源多领域端到端对话系统;ConvLab提供一套丰富的工具和组件用于开发不同类型的对话系统,使研究人员能够在相同条件下比较不同的方法;ConvLab通过人工和模拟器提供端到端的评估;ConvLab作为DSTC8的标准平台。

1.简介

虽然对话系统的相关研究发展迅速,同时也出现了很多带标注的数据集。但刚进入对话领域团队或个人,由于缺少结构完整且易用的开源系统,想迅速开发用于较好解决特定任务的对话系统依然充满挑战。

ConvLab就是为了解决这个问题,它是一个开源的多领域端到端对话系统,允许研究人员自动训练对话模型、创建和评估任务型对话机器人。这样的开源系统在许多人工智能相关的研究取得突破的过程中起到了重要作用,比如Moses、HTK和CoreNLP等都分别被广泛用于机器翻译、语音识别和自然语言处理。

对话系统大致有两种架构:(1)模块化架构(下图中第一层):包括自然语言理解(NLU)、对话状态跟踪(DST)、对话策略学习(DPL或DPO或POL)和自然语言生成(NLG);(2)完全端到端的神经架构(下图最后一层),它可以减少人工和pipeline误差累积。

由于以往研究中使用的方法和评价指标都不同,在相同条件下进行严格的对比是不可行的。ConvLab是第一个对话研究平台,涵盖了一系列可培训的统计模型和全注释数据集,不同于以前的工具箱,后者的重点主要集中在系统pol-ice组件上,而其他组件大多局限于预固定的基线模型(Ultes等人,2017;Miller等人,2017;Li等人,2018年)。

先前的工具主要专注于系统策略组件然而其他组件却几乎受限于固定的预训练模型,ConvLab与他们不同,ConvLab是第一个包括几乎所有可训练的统计模型(基于完全标注数据集)的研究平台。

一方面,为了实现高级别的用户目标,越来越多的人对构建能够无缝衔接多个子领域的机器人感兴趣。另一方面,多级对话系统对数据的收集和标注、模型的训练都增加了额外的复杂性。对于前者,Budzianowski等人收集了multiwoz数据集,这是一个多域对话数据集,但目前还没有开源平台来处理多域、多意图的对话。为了促进多领域对话研究,convlab基于multiWOZ提供了一套完整的参考模型(从pipeline到完全端到端的模型),这些模型为用户对话行为提供了额外的标注(在最初数据集中是缺失的)。此外,ConvLab还作为DSTC8的多领域端到端对话追踪的标准平台。

为了更好的支持端到端评价,ConvLab提供了两个互补模块:人工测评和自动仿真(simulate)。针对用户仿真,平台同时提供了基于规则和基于数据驱动的模拟器。

2. ConvLab

本节详细介绍了ConvLab的具体设计,它可以灵活支持大量的实验。

2.1 Overall Design

为了支持多领域对话的灵活性,ConvLab的总体设计为Agents-Environments-Bodies (AEB) 。具体如下图:

Agent:对话智能体(agent)的一个实例。Environment:仿真器 或 人类评估组件的一个实例。Body:智能体在环境中的体现——每个body存储适用于特定智能体和环境的数据,比如:状态、动作、奖励、完成标志等。

在AEB设计中,除了常规的单智能体和单环境设置外,还可以进行多种先进的研究实验(多智能体学习、多任务学习和角色扮演等),而无需专门编写代码。

多智能体学习:集中式智能体将所有领域的联合observation映射到联合action。这种方法的一个主要缺点是它在观察空间和动作空间中随域数呈指数增长。因此,我们可以通过将集中的空间分解为多智能体系统(包括层次强化学习智能体)来解决这种难以处理的问题。例如,在上图,集中式智能体可以分解为两个独立的智能体:餐馆和酒店。

多任务学习:一个智能体为了迁移信息,可以在不同的环境中拥有多个body。例如上图中,任何智能体不仅可以在相应的环境中拥有其body,还可以在其他环境中拥有其body,以便于跨领域学习公共知识(上图中,每个智能体都可以从所有可用的环境中学习)。

角色扮演:最近越来越多的兴趣将self-play作为训练强化学习智能体的替代方式。基于此,对于任务型对话,可以设计角色扮演——一个智能体扮演系统的角色,另一个智能体扮演用户。这样的角色扮演可通过让两个智能体交谈来实现。

此外,为了对智能体和环境进行系统的比较,以及自动搜索超参数,ConvLab使用了SLM Lab和Ray2作为上图中提供多级控制层的实验组件(包括Session, Trial 和 Experiment),并为每一层生成评估报告。

Session:每个session都初始化智能体和环境。

Trial:每个Trial都有一组固定的参数值,并用随机种子运行多个Session,然后测试分析Session并取平均值。

Experiment:将超参数作为输入变量进行研究,并通过任务特定的指标(如成功率和平均回报)来衡量结果。然后自动进行搜索,以找到产生最佳性能的超参数。

2.2 Dialog Agent Configuration

每一层都代表一种不同的构建对话系统的方法

第一层是典型的pipeline方法,最后一层是完全端到端的方法。中间层是一些联合学习,比如NLU和DST联合训练、DST和DST联合训练、DPL和NLG联合训练都有相应的研究,大家可以搜一下,或者找我讨论。

2.3 Environment Configuration

Environment Configuration

可以通过多种不同的方式组合某些组件来构建环境。图比较直观,不再赘述。

2.4 Reference Models

Natural Language Understanding:提供了Semantic Tuple Classifier (STC) (Mairesse et al., 2009), OneNet (Kim et al., 2017) and Multi-intent LU (MILU)三种模型.。STC可以解决multi-domain和multi-intent的对话acts ,但是无法detect出OOV。OneNet 可以apture OOV, 但不能处理multi-intent的对话acts。所以,ConvLab 提供了MILU模型,它扩展OneNet 来处理 multi-intent的对话acts。

Dialog State Tracking:ConvLab 提供rule-based的追踪器来仿真DSTC的baseline。

Word-level Dialog State Tracking:Word-level DST直接采用系统和用户自然语言作为输入以及更新对话状态。ConvLab提供mdbt(Ramadan等人,2018)模型,该模型通过utterance和本体之间的语义相似性来联合识别领域和追踪状态。

System Policy:提供hand-crafted policy、监督学习 policy和强化学习policy三种。对于加强学习policy,ConvLab支持一组流行的算法:DQN及其变体、Reinforce、PPO及其自模仿变体。

Natural Language Generation:提供基于模版的模型 和 SC- LSTM (Wen et al., 2015) 。每个模型都支持多领域、多意图的对话act作为输入。

Word-level Policy:直接将上下文映射到响应。ConvLab提供Budzianowski等提供的baseline(扩展自序列到序列模型,其中把对话状态编码和数据库查询结果编码作为解码器的附加特征)。

User Policy:ConvLab提供了基于议程的agenda-based (Schatzmann et al., 2007)用户模型和数据驱动方法(比如HUS及其变种),每个模型都在对话行为级别工作。并且每个模型都可以与NLU和NLG模块进行流水线连接来构建完整的用户模拟。

End-to-end Model:提供Mem2Seq (Madotto et al., 2018)和Sequicity (Lei et al., 2018)。这种模型大家都比较熟悉,不再赘述。

3 Domains

领域包括MultiWOZ 和Movie:

MultiWOZ:帮助旅客(包含景点介绍和酒店预订等),主要包含7个子领域:景点、医院、酒店、警察、餐厅、出租车、火车等。包含10438个带标注的对话。单领域和多领域的对话轮次平均分别为8.93和15.93轮。

Movie:来自微软对话挑战赛,主要是电影票预订,包含2890个带标注的对话(平均7.5轮),同时还提供了针对智能体和用户模拟器的一系列完整的参考模型。

4 Conclusion

ConvLab是第一个涵盖多个可训练模型和相关标注数据集的开源多领域端到端对话系统;ConvLab提供一套丰富的工具和组件用于开发不同类型的对话系统,使研究人员能够在相同条件下比较不同的方法;ConvLab通过人工和模拟器提供端到端的评估;ConvLab作为DSTC8的标准平台。最后,这个对话平台的代码、数据集、说明文档即将在http://convlab.github.io开源。

总之,这个工作是一项很不错的工作,不论是对工业界还是学术界。代码开源后,第一时间会拜读一下。另外,本文中的所有概念都可以在我之前写的对话系统相关的系列找到,如果还是不懂,可以微信找我讨论(知乎私信太多,而且比较杂,可能会看不到)。


推荐阅读:

练手|常见30种NLP任务的练手项目

干货|一文看懂深度学习发展史和常见26个模型

练手|常见26种深度学习模型的练手项目

代码+论文+解析| 7种常见的迁移学习

常见32项NLP任务及其评价指标和对应达到SOTA的paper

干货|机器学习超全总结!

百家争鸣|国内外NLP领域学术界和工业界的牛人和团队


长按二维码关注我们

本文分享自微信公众号 - AI部落联盟(AI_Tribe),作者:AI部落联盟

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-04-23

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 一文了解端到端的任务型对话(一)

    任务型对话模型包括两种方法:Pipeline和End2End,前面介绍了问题定义和建模(任务型对话系统公式建模&&实例说明)、Pipeline方...

    AI部落联盟
  • 论文阅读|How Does Batch Normalizetion Help Optimization

    Batch Normalization在2015年被谷歌提出,因为能够加速训练及减少学习率的敏感度而被广泛使用。

    AI部落联盟
  • 讲讲我理解的XLNet

    Bert、GPT-2在怀里都还没捂热乎,XLNet又出来了,最近NLP界真的是风(gen)生(bu)水(shang)起(le),在看过各牛人( @张俊林@Tow...

    AI部落联盟
  • 通过jenkins API去build一个job

    背景 查看jenkins的api 直接访问 JENKINS_URL/job/JOB_NAME/api/ 就可以查看jenkins的api build一个job的...

    千往
  • 数据可视化:一场设计狮与程序猿的相爱相杀 | 数据侠实验室15期

    可视化震撼视觉的背后,是设计师与程序员思想的结晶,也是数据和信息多样化的视觉传达。那么,这一张张炫酷图表是如何实现价值创造呢?本期数据侠实验室,由各路大神为你开...

    DT数据侠
  • 记录服务上线一年来的点点滴滴

    2015年12月,也就是在一年前,开发了半年的云存储服务上线。这对于付出了半年努力的我们来说,是一件鼓舞人心的事件。因为这个服务在我们手上经历了从0到1的过程。...

  • 搞懂5种数据可视化方法,胜任90%热门信息图设计

    导读:对数据可视化这块又进行了研究和心得的整理,跟大家分享下数据可视化常用的五种方式,希望能给大家带来思路的拓展。 ●概念 ◎借助于图形化的手段,清晰、快捷有...

    灯塔大数据
  • 图表大师:数据可视化常用的五种方式及案例分析

    因为接下来要做卖家后台数据纵横的改版,对数据 可视化这块儿又进行了研究和心得的整理,跟大家分享下数据可视化常用的五种方式,希望能给大家带来思路的拓展。 概念...

    小莹莹
  • 【数据可视化专题】做好数据可视化的五虎将

      因为接下来要做卖家后台数据纵横的改版,对数据可视化这块儿又进行了研究和心得的整理,跟大家分享下数据可视化常用的五种方式,希望能给大家带来思路的拓展。概念 ...

    小莹莹
  • 数据可视化常用的五种方式及案例分析

    因为接下来要做卖家后台数据纵横的改版,对数据可视化这块儿又进行了研究和心得的整理,跟大家分享下数据可视化常用的五种方式,希望能给大家带来思路的拓展。 概念 借助...

    小莹莹

扫码关注云+社区

领取腾讯云代金券