学习任务导向型对话系统,第一篇论文是《A network-based end-to-end trainable task-oriented dialogue system》[1]。因为是首次接触该领域,所以学习这篇论文花了很长时间,这里对之前的学习进行一下记录。
一、摘要
文中,首先介绍了一种基于神经网络的文本输入(Neural network-based Text-in),借助一种新的流水线式(pipe-lined)的 Wizard-of-Oz 框架的收集任务导向型对话数据的方式,文本输出一个端到端的可训练的对话系统(End-to-End trainable system),如图1 所示。
(一) 介绍
1. 文中提出了任务导向型对话系统现存的几个问题,并给出了解决方案:
①问题:训练数据有限——>构建酒店预订的任务导向型系统很难
方案:部分可见的马尔可夫决策过程(POMDP):使用强化学习(RL),通过与真实用户交互来训练对话策略
②问题:语言理解和语言生成模型依赖于预训练
方案:使用全集训练
③问题:为了使得 RL 可控,状态和活动空间必须小心设计——>限制了模型的表现和学习
④问题:奖励函数很难实时度量
2. 并给出了本文的改进点
文章通过与端到端、可训练的非任务导向型对话系统进行对比,给出本文的改进点,如图2 所示。
(二)模型
模型将对话是为一个序列到序列的映射问题(以一个序列到序列的架构为模型),并添加了对话历史(以一个信念追踪为模型),如图3 所示。每个循环中,系统把来自用户的序列块当做输入,然后把它转换到两个内部组件中:一个由意图网络生成的分布式组件和一个在由一系列信念追踪器生成的信念状态组成的槽值对上的概率分布。然后数据库操作器在信念状态中选择最可能的值来形成一个面向DB的查询语句,然后就是查询结果,随后意图组件和信念状态被策略网络转化组合成一个单向量来表示下一个系统动作。然后使用该系统动作向量对响应生成所需的系统输出令牌。最后系统响应是通过用数据库词目的真实值来替换骨架句子结构来生成的。
(1)意图网络
在回合 ,把输入令牌序列 编码成分布式向量 。一般采用 Long Short-term Memory(LSTM)网络,最后一步的隐藏层的表示如下:
或者,卷积神经网络(CNN)可以用来替换 LSTM 来编码句子:
输入的词用 Word Embedding 的分布表示(一维——>二维),假设输入 包含 个字符,而每个字符的 Word Embedding 长度为 ,那么输入就是 的二维向量。
卷积层本质是一个特征抽取层,可以设定超参 来指定包含多少个卷积核(Fitter)。对某个 Fitter 来说,可以想象有 大小的移动窗口,其中 是 Fitter 指定的窗口大小, 是 Word Embedding 长度。卷积层内每个 Fitter 就形成了不同的特征序列。 Pooling 层对特征降维,如下图4 。
(二)信念追踪
就为什么需要信念追踪模块,作者给出了 4 个原因:
①把一系列自由形式的自然语言语句映射到一个固定集合的槽值对上成为可能;
②一直追踪对话状态,避免从输入行重学习没必要且复杂的长期依赖关系;
③通过智能的权重分配策略减少训练所需数据;
④简化将来语音系统的拓展。
信念追踪器的目的可用下图5 表示:
(三)决策网络和数据库操作器
首先介绍一个数学公式 :是使得 取得最大值所对应的变量值 (或 的集合)。
数据库操作器 基于信念追踪器的输出 ,DB查询 的形式是:
注: 值在 槽上的多项式分布。则 指,使得在 槽上多项式分布概率最大的值 的集合。则 值遍历所有槽,指出 上的值 的集合。
例:我想吃山西的枣。可能匹配到“地点”或者“食物”两个槽,即两个槽行都存在多项式分布。
决策网络
其中, :意图网络; :信念状态; :DB真值向量; 是所有总结信念状态的串联。
(四)生成网络
[1] Wen T H , Vandyke D , Mrksic N , et al. A Network-based End-to-End Trainable Task-oriented Dialogue System[J]. 2016.