前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >微软和清华开源ConvLab: 多领域端到端对话系统平台

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

作者头像
AI部落联盟
发布2019-05-27 23:45:12
2.1K0
发布2019-05-27 23:45:12
举报
文章被收录于专栏:AI部落联盟AI部落联盟

本文大部分来自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领域学术界和工业界的牛人和团队


长按二维码关注我们

本文参与?腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-04-23,如有侵权请联系?cloudcommunity@tencent.com 删除

本文分享自 AI部落联盟 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与?腾讯云自媒体分享计划? ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 练手|常见30种NLP任务的练手项目
  • 干货|一文看懂深度学习发展史和常见26个模型
  • 练手|常见26种深度学习模型的练手项目
  • 代码+论文+解析| 7种常见的迁移学习
  • 常见32项NLP任务及其评价指标和对应达到SOTA的paper
  • 干货|机器学习超全总结!
  • 百家争鸣|国内外NLP领域学术界和工业界的牛人和团队
相关产品与服务
NLP 服务
NLP 服务(Natural Language Process,NLP)深度整合了腾讯内部的 NLP 技术,提供多项智能文本处理和文本生成能力,包括词法分析、相似词召回、词相似度、句子相似度、文本润色、句子纠错、文本补全、句子生成等。满足各行业的文本智能需求。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
http://www.vxiaotou.com