ConvLab探索记

简介

ConvLab是微软和清华开源的一个多领域端到端对话系统平台。旨在为对话系统的研究人员提供一个可以快速启动的实验平台。为此该平台提供了两个标注好的数据集、一些算法的实现(包括pipeline和end2end)、相关的预训练模型和其他可复用的组件。另外,ConvLab也是DSTC8 track1的官方平台。

整体结构

image.png

ConvLab的实现基于SLM-Lab,因此继承了其有关强化学习的术语:AEB(Agent、Environment、Body),具体参考文档

ConvLab支持:Multi-agent learningMulti-task learningRole play

参数配置

image.png

整体的参数配置可以参考上图(横着看):可以是按照pipeline所有的模块一个个配置,也可以配置一个完整的end2end,还有其他支持的组合。

image.png

类似的,环境的构建也是需要构造支持的模块参数组合。

使用的模型

  • NLU
    • Semantic Tuple Classifier (STC) * pdf : 支持多领域、多意图。
    • OneNet * pdf:可以解决OOV问题。
    • MILU(综合了上面二者):可同时处理多意图和OOV。
  • DST
    • rule based (类似于DSTC的baseline)
  • Word-level Dialog State Tracking(从用户语句直接更新对话状态,免去NLU)
  • DPL(系统策略)
  • NLG
    • a template-based model
    • SC-LSTM * pdf
  • Word-level Policy (从对话状态直接到response)
    • seq2seq (dialogue state encoder + database query result encoder) * pdf
  • 用户策略(用户模拟)
    • agenda-based * pdf
    • data-driven : HUS * pdf
  • End2End
    • Mem2Seq * pdf
    • Sequicity * pdf :为了支持多领域,在切换领域时需要重置belief span。

数据

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。