ConvLab探索记
简介
ConvLab是微软和清华开源的一个多领域的端到端对话系统平台。旨在为对话系统的研究人员提供一个可以快速启动的实验平台。为此该平台提供了两个标注好的数据集、一些算法的实现(包括pipeline和end2end)、相关的预训练模型和其他可复用的组件。另外,ConvLab也是DSTC8 track1的官方平台。
- ConvLab Code Repository: https://github.com/ConvLab/ConvLab
- ConvLab Paper: https://arxiv.org/pdf/1904.08637.pdf
整体结构
ConvLab的实现基于SLM-Lab,因此继承了其有关强化学习的术语:AEB(Agent、Environment、Body),具体参考文档。
ConvLab支持:Multi-agent learning、Multi-task learning和Role play。
参数配置
整体的参数配置可以参考上图(横着看):可以是按照pipeline所有的模块一个个配置,也可以配置一个完整的end2end,还有其他支持的组合。
类似的,环境的构建也是需要构造支持的模块参数组合。
使用的模型
- NLU
- DST
- rule based (类似于DSTC的baseline)
- Word-level Dialog State Tracking(从用户语句直接更新对话状态,免去NLU)
- MDBT
*
pdf
- MDBT
- DPL(系统策略)
- NLG
- a template-based model
- SC-LSTM
*
pdf
- Word-level Policy (从对话状态直接到response)
- seq2seq (dialogue state encoder + database query result encoder)
*
pdf
- seq2seq (dialogue state encoder + database query result encoder)
- 用户策略(用户模拟)
- End2End
数据
MultiWOZ
Multiwoz-a large-scale multi-domain wizard-of-oz dataset for task-oriented dialogue modelling. *
pdf
MultiWoz的主任务是帮助游客解决各类问题。问题又分为7个子领域:Attraction, Hospital, Police, Hotel, Restaurant, Taxi, Train。一共有10438个对话,单领域的平均轮数是8.93;跨领域的平均轮数是15.39。
Movie
来自微软对话挑战赛,一共2890个对话,平均轮数7.5。