A Network-based End-to-End Trainable Task-oriented Dialogue System

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u014300008/article/details/53212915

关键词

end2end, task-oriented dialogue system

来源

arXiv 2016.04.15

问题

当前构建一个诸如宾馆预订或技术支持服务的 task-oriented 的对话系统很难,主要是因为难以获取训练数据。现有两种方式解决问题:

  • 将这个问题看做是 partially observable Markov Decision Process (POMDP),利用强化学习在线与真实用户交互。但是语言理解和语言生成模块仍然需要语料去训练。而且为了让 RL 能运作起来,state 和 action space 必须小心设计,这就限制了模型的表达能力。同时 rewad function 很难设计,运行时也难以衡量
  • 利用 seq2seq 来做,这又需要大量语料训练。同时,这类模型无法做到与数据库交互以及整合其他有用的信息,从而生成实用的相应。

本文提出了平衡两种方法的策略。


文章思路

Model

模型分为五个模块
Intent Network
这个部分可以看做为seq2seq的encoder部分,将用户的输入encode 成一个向量 z(t)。encoder 部分分别用了 LSTM 和 CNN 两种模型对该输入进行建模:

CNN feature extrator

Belief Tracker

这个部分又被称作是 Dialogue State Tracking (DST),是 task-oriented spoken dialogue system 的核心部件。本文虽然是基于文本内容的,但是保留了该组件,具有以下的作用:

  • 支持各种形式的自然语言被映射成一个有限 slot-value 对集合中的元素,用于在数据库中进行 query。
  • 追踪对话的state,避免去学习那些复杂而不必要的长距离依赖信息。
  • 使用了一种 weight tying strategy,可以极大地减少训练数据的需求。
  • 未来容易扩展到 spoken system。

这个组件的输入时用户的输入,输出是一个informable slot 和 requestable slot 的概率分布,这里的 informable slot 是指 food type,price range(以订餐为例),用来约束数据库中的查询,requestable slot 是指address,phone,postcode 等一些可以被询问的值。这里会定义一个针对具体任务的知识图谱,来表示这些 slot 之间的关系,每个 slot 都会定义一个 tracker,tracker 的模型如上图所示,包括一个 CNN 特征提取模块和一个 Jordan 型的 RNN 模块 (recurrence from output to hidden layer),CNN 不仅仅对当前的输入进行处理,还对上一轮的机器响应进行处理,综合起来作为 RNN 的输入。

这个组件的意义在于获取到预先定好的知识图谱中每个slot的分布,就是说弄清楚用户在这轮对话中的需求是哪个词或者词组。

Database Operator
数据库查询的输入来自于 Belief Trackers 的输出,即各种 slot 的概率分布,取最大的那个作为数据库的输入,进行查询,获取到相应的值。
Policy Network
这个组件是像一个胶水,起到粘合其他上面三个组件的作用。输入是上面三个组件的输出,输出是一个代表系统动作的向量。
Generation Network
这一模块本质上是一个语言模型,在 Policy Network 的输出的系统动作下,生成相应的响应,再经过一些处理返回给用户。这里的处理主要是将响应中的 slot,比如 s.food 还原成真实的值。生成部分用简单的 LSTM-LM 可以做,用 Attention Generation Model 也可以做,效果会更好。

资源

论文地址:https://arxiv.org/pdf/1604.04562v2.pdf

相关工作

CNN Sentence Modelling

下图给出了一个 Dynamic CNN 的图:这个句子有 7 个词,词向量的大小为 4 维,网络有两个卷积层,每个卷积层有两个 feature map。两层的 filter 的宽度分别为 3 和 2,k-max pooling 层的值为 5 和 3。从底向上最终可以得到一个 4 维向量。

k-max pooling 其实就是保持 k 个最大的特征,这里的 k 是固定的;而 dynamic k-max pooling 中的 k 则是句子长度和网络深度的一个函数,是变化的。

这一网络在问题分类和情感分析上都取得了很好的结果。

这里写图片描述

CNN Setence Classification
这里写图片描述

简评

这篇论文提出了一个基于神经网络的框架来做面向任务的对话系统。文中将具体的业务信息和历史信息加到了模型中,并且通过将对话中的 slot 词转换为一些 slot 表示,就相当于构建了很多模板,降低了对训练数据的需求。

阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页