论文题目《Alexa Conversations: An Extensible Data-driven Approach for Building Task-oriented Dialogue Systems》

这是我的第一篇对话论文解读,总以为自己不会读到这方面的论文,之前一直在逃避,没想到该来的还是来了~

abstract

  • 目标导向的对话系统依赖各种不同的组件,诸如自然语言理解,对话状态跟踪,policy learning 和 response generation。训练每个组件都需要标注数据,然而大量的标注数据很难在新领域中获取,因此限制了这类系统的伸缩性。
  • 基于规则的对话系统要求大量的手写规则,同时也需要维护,这同样很难扩展。
  • 端到端的对话系统一方面不需要具体模型的标注,但是需要大量的数据来训练。

本文要解决的任务就是:

  • 扩展性
  • 怎么解决端到端任务中需要的大量数据?

本文使用了Alexa Conversations,它的特点如下:

  • 属于 goal-oriented (目标导向)的对话系统
  • scalable,extensible ,data efficient
  • 各个组件的训练方式都是以数据驱动的方式,但有别于收集标注对话。相反,我们使用一种新型的对话模拟器来生成对话,这个对话模拟器基于一些种子对话和APIs,以及一些由开发人员提供的实体。
  • 由example-driven,因为它从少量的 开发者提供的种子对话学习,同时不硬编码dialogue flow

该方法的优势:

  • 对自然对话现象提供拆箱即用的支持。比如在多轮对话中的实体共享; 在对话过程中,用户改变他们的想法,没有要求开发者提供任何对话流的情况下。(后者我是不怎么理解的,什么叫“没有要求开发者提供任何对话流的情况下?”)
  • 文中使用了一个pizza_order 的示例说明 alxea conversation 的优点。即使对于这种简单的模型,使用 rule-based 的方法依然要求开发者编写数百条对话路径去构建一个稳健的系统,Alexa Conversation 却只需要一点点的种子对话。

Introduction

什么是 Goal-oriented dialogue system?

可以使用户完成指定的任务 的system。

难点:

  • 用户目标可能比较复杂,而且目标可能需要多轮对话才能实现。
  • users can refer to contextual values anaphorically, can correct previously informed preferences and provide additional or fewer entities than requested by agent.

对话数据集也很难拿到,同时这些数据集也只限于在某些领域。=> 为对话系统设计一个适用性的数据收集器本身就是一个研究方向。

传统的对话系统遵循一个流水线方法:将机器学习组件组合在一起,从而实现 自然语言理解、对话状态跟踪、最优行为预测(policy learning)、以及自然语言生成。深度学习的进步让越来越多的端到端的神经网络对话模型减少了对component的标注,同时允许其立即的表示被学习然后优化。(这句话没怎么读懂,原文如下:

Advances in deep learning techniques have led to the development of more end-to-end neural dialogue systems that combine some or all of the components of the traditional pipeline reducing the need for component-wise annotations and allowing for intermediate representations to be learned and optimized end-to-end.

Alexa Conversation system 结构
由两个组件构成

  • a dialogue simulator : 泛化开发人员输入的样本
    继承自 M2M 框架 ,主要点如下:
    (1)不再随机生成用户的目标,而是使用各式的目标采样技术(偏离在种子对话中观察到的目标),这种做法是为了让这些对话更加稳健
    (2)在 M2M 框架中,the system agent 面向数据库查询应用,在这个查询应用中,用户可以浏览一个catalogue,选择一个item,并且做一个事务操作。
  • a neural dialogue system: 基于历史对话,直接预测最佳操作
  • argument filling :用实体填充所需要的action arguments

依据自己需要的支持方面,Alexa Conversation 需要开发人员提供了几个种子对话,这些种子对话需要用DML标记。DML标记样例如下所示:

开发者需要做什么?

  • 提供指定域的APIs
  • 自定义的NLG响应
  • 提供一个 example user-utterances 作为模板,其中的实体部分用占位符代替。

文中如何解决 wide variatioin of coversation ?

在用户和对话系统对话的过程中,经常会碰到wide variation 问题,该怎么解决?=> 通过模拟器增加种子对话。
那么这个模拟器怎么工作的?

  • 将标记的种子对话作为输入,模拟可以到达用户某个目的的不同对话流,但是包括公共的模式,诸如:用户确认,改变,或者是重复一个实体或动作。
    开发者大概提供10个种子对话,然后模拟器生成大概10k个训练对话,这些对话伴随着flow 和 laguage 的变化。

Alexa Conversation的结构如何?

  • 由三个建模组件构成:
    NER: 识别实体
    AP( action prediction) 预测API 或者是 NLG 反应
    AF (Argument Filling) 填充所要求的的action arguments(必须是实体)

所有model 的输入都是整个对话历史。这个对话历史包括(user utterance, system actions and response,and API return vlalues)等。【从这种意义上说,对话历史被用作为一种广义的状态表示,三个组件模型可以从其中检索到相关信息。】

  • 结构图

dialogue simultor 长什么样子?

dialogue acts 是什么?

Dialogue Acts (DAs) are the functions of utterances in dialogue-based interaction.

原文中涉及dialogue acts的叙述有多处:

The agents communicate at the semantic level through dialogue acts.

什么是context carryover?

context carryover 指的就是之前的对话信息,可以在本轮对话中使用,

amazon 给出了一个介绍。

对话系统简单的分类

  • rule-based
  • end-to-end
  • goal-oriented

最后作者使用一个简单的pizza 下单任务来佐证:

  • 为了创建一个鲁棒性经历,减少开发者负担的价值

最终在一个电影订票任务上评测模型。

更多推荐

论文阅读《Alexa Conversations》