0%

A Benchmarking Environment for Reinforcement Learning Based Task Oriented Dialogue Management

论文地址,论文作者 Casanueva I 等,发表于 2017 年。 此论文基于 PyDial,所以可能需要先看 这篇博文。

本文出现的名词

  • 自动语音识别——Automatic Speech Recognition, ASR
  • 自然语言理解——Natural Language Understanding, NLU
  • 基于开放域聊天的系统(open-domain chat-based systems):涉及一般性话题的非目标驱动对话
  • 面向任务的对话系统(task-oriented dialogue systems):将其做成一个小型电子设备附有非常吸引人的界面,旨在通过自然语言帮助用户实现特定目标。
  • 语音对话系统——Spoken Dialogue Systems, SDS
  • 对话管理——Dialogue Management, DM:belief state tracking and policy
    1. state tracking
    2. 策略模型
  • 自然语言生成——Natural Language Generation, NLG
  • 语音合成——speech synthesis
  • 本体(ontology):本体是系统数据库的结构化表示,定义了 requestable slots, informable slots and database entries(即用户可以与之交互的实体类型及其属性)
  • 强化学习——Reinforcement Learning, RL
  • 试错过程(trial-and-error process)
  • 高斯过程——Gaussian Process, GP
  • 策略梯度(policy gradients)
  • Q-learning
  • 通用口语对话测试平台(common testbed for spoken dialogue)
  • 基准测试环境(benchmarking environments)
  • 对话状态跟踪挑战——Dialogue State Tracking Challenges, DSTC
  • 马尔科夫决策过程(MDP)

论文摘要翻译

对话助理正迅速成为不可或缺的日常助手。

1 引言

近年来,随着自动语音识别(Automatic Speech Recognition, ASR)、自然语言理解(Natural Language Understanding, NLU)和机器学习技术的发展,对话系统受到了学术界和工业界的广泛关注。两个方向已经被深入研究:基于开放域聊天的系统(open-domain chat-based systems)和面向任务的对话系统(task-oriented dialogue systems)。前者涉及一般性话题的非目标驱动对话。后者将它做成一个小型电子设备附有非常吸引人的界面,其旨在通过自然语言帮助用户实现特定的目标。 语音驱动的场景下,语音对话系统( Spoken Dialogue Systems, SDS)通常基于模块化架构(图1),由输入处理模块(ASRNLU 模块)、对话管理(Dialogue Management, DM)模块(belief state tracking and policy)和输出处理模块(自然语言生成(Natural Language Generation, NLG)和语音合成(speech synthesis))组成。SDS 的领域由本体(ontology)定义,本体是系统数据库的结构化表示,定义了 requestable slots, informable slots and database entries(即用户可以与之交互的实体类型及其属性)。这种架构中的对话流程的一部分在附录 A 中的图 2 进行解释。

图中并没有画出 DM,所以 DM 是什么?

DM 模块是 SDS 的核心部分,控制对话的会话流程。传统的方法大多是基于手工构建的决策树(对应于 PyDial 论文中的描述,PyDial 包含用于所有领域的基于规则的 semantic decoder……),这覆盖所有可能的对话结果。然而,这种方法不能扩展到更大的领域,也无法适应因 ASR 或 NLU 的误差而引起的噪声输入。因此,人们提出了数据驱动的方法来自动学习策略,这无论是从对话语料库中学习或者直接从与人类用户的交互中学习都可以。

那么到底是哪一种方法呢?下面介绍一种尚有缺陷的方法。

监督学习可用于学习对话策略,训练策略模型以“模拟”训练语料库中观察到的响应。然而,这种方法有几个缺点。 1. 在口语对话场景中,不能保证训练语料库代表最佳行为。如果不考虑采取某个行动会对未来对话进程造成影响,就可能会导致次优行为。 2. 此外,由于对话状态空间较大,训练数据集可能缺乏足够的覆盖范围

那么如何解决这些缺点呢?使用强化学习。

为了解决上述问题,该任务经常被归结为规划(控制)问题,使用强化学习Reinforcement Learning, RL)解决。在这个框架中,系统通过一个由 potentially delayed reward signal 控制的试错过程(trial-and-error process)来学习。因此,DM 模块学习计划行动以最大化最终结果。基于高斯过程(Gaussian Process, GP)的 RL 和 deep RL 等方法的最新进展导致了数据驱动对话建模的重大突破(significant progress),这表明策略梯度(policy gradients)和 Q-learning 等通用算法可以在具有挑战性的对话场景中取得良好的性能。

那么在对话领域是否可行呢?下一段说明了原因,动机与相关工作一节进行了进一步的解释。

然而,与其他 RL 领域相比,通用口语对话测试平台(common testbed for spoken dialogue)的缺乏使得比较不同的算法变得困难。最近的 RL 进展很大程度上受到基准测试环境(benchmarking environments)的发布的影响,基准测试环境允许对在类似条件下运行的不同 RL 算法进行公平的比较

就是说其他 RL 领域取得进展很大程度上取决于基准测试环境的发布,但是在对话领域,目前并没有这种基准测试环境。 而本篇论文的实验产物其实就是开发了这样一个环境

本着同样的精神,基于最近发布的 PyDial 多领域 SDS 工具包,本文旨在为开发和评估对话模型提供一套测试平台环境。为了解释不同场景的巨大变化性,这些环境跨越了 different size domains, different user behaviours and different input channel performance。为了提供一些基线,对一组最具代表性的 DM 强化学习算法进行了评估。基准测试(benchmark)和环境实现是在线的,允许开发、实施和评估新的算法和任务。

2 动机与相关工作

在过去的十年中,一些强化学习算法被应用到对话策略优化的任务中。然而,由于缺乏一个通用的基准环境,这些算法的评估结果很难进行比较。此外,它们通常只在少数环境中进行评估,因此很难评估它们推广到不同环境的潜力。 在其他领域,如视频游戏(video game playing)和持续控制(continuous control),公共基准环境的发布对该领域的研究起到了极大的推动作用,实现了诸如人类水平的游戏操作或在围棋游戏中击败世界冠军等成就。

以下指出对话领域没有通用的试验台的原因,以及指出前些年部分团队/公司提出的解决方案有些许瑕疵

回溯历史,对话策略优化任务没有一个通用的试验台,这有几个原因。 1. ……

为了解决这些问题,提出了模拟用户和模拟输入处理信道。这些模型近似真实用户的行为由 ASR 或 NLU 误差引入的输入信道噪声。然而,处理模块的开发需要创建一个模拟对话环境,这需要付出巨大的努力。尽管一些模拟环境是公开可用的,但它们覆盖的对话领域非常小,而且它们之间缺乏一致性,因此无法进行大规模测试。

处理模块的开发需要创建一个模拟对话环境,这需要付出巨大的努力

上段话的意思是在做科研时,如果我们致力于研究对话系统的处理模块(如研究语义解析),那么我们还需要一个对话环境以此模拟现实场景(因为只有在现实存在的场景下进行语义解析才有意义)。但是问题是当我们做处理模块时,我们一般都是只专精于该领域,所以我们无法提供一个模拟环境。一般来说我们都会去找一个第三方的模拟环境。但是这样就会造成一个问题。如果有很多团队都在做处理模块的研究,而使用的模拟环境又不是统一的,那么不同团队做出的不同模型就无法进行对比。所以我们需要一个统一的平台。

对话任务需要一个共同的试验台,这在对话界是一个众所周知的问题,诸如对话状态跟踪挑战(Dialogue State Tracking Challenges, DSTC)1 至 5 等倡议是最突出的问题。由于有一个明确的评估标准,这些挑战是可能的。最近,BABI 对话任务和 DSTC6(更名为 dialogue Systems Technology Challenge)旨在为基于端到端文本的对话管理创建一个测试平台。然而,这些任务要么集中在端到端的有监督学习,要么集中在基于 RL 的问答任务中,其中奖励信号(reward signal)在时间上仅延迟几步。

3 强化学习的对话管理

讲解 RL 算法,略。

3.3 Pydial

PyDial 是一个开源的统计语音对话系统工具包,它提供了图 1 所示的所有对话系统模块的域无关实现,同样也有模拟用户和模拟错误模型的功能(as well as simulated users and simulated error models)。因此,该工具包有希望在相同条件下,创建一组基准环境来比较不同 RL 算法。PyDial 的主要关注的是面向任务的对话,即根据一些约束条件用户必定找到其匹配的实体。例如,系统需要向用户提供满足特定需求的笔记本电脑(商店中有的)的描述。本工作中,PyDial 被用于定义不同的环境,当然 PyDial 的论文中提供了指定这些环境的配置文件

正如本文最前部分的 alert 中所述。关于 PyDial 可以看这篇博文

4 基准测试任务

基于 RL 的 DM 研究通常只在单个或非常小的一组环境中进行评估。这样的测试并没有揭示出算法对不同设置的泛化能力,并且可能容易对特定情况过度拟合。为了测试算法在不同环境中的能力,我们定义了一组任务,它们通过许多维度横跨了广泛的环境,环境的多种维度如下所示: - Domain:环境中的第一个维度是领域,定义了三个拥有不同大小的数据库的本体,相当于一个信息搜索任务(即剑桥/洛杉矶餐厅、笔记本电脑这三个)。详见表 2。 - Input error: - User model: - Masking mechanism:最后,为了测试算法的学习能力,PyDial 中提供的 action mask 机制在两个任务中被禁用。

18 个不同环境的配置详见表 3。

5 实验设置

本节将解释用于运行基准测试任务的实验设置。 1. Simulated user and input channel 2. Summary actions and action masks 3. Model hyperparameters 4. Handcrafted policy 5. Reward function and performance metrics

6 结果与讨论