计算机应用   2017, Vol. 37 Issue (10): 2813-2818  DOI: 10.11772/j.issn.1001-9081.2017.10.2813
0

引用本文 

赵宇晴, 向阳. 基于分层编码的深度增强学习对话生成[J]. 计算机应用, 2017, 37(10): 2813-2818.DOI: 10.11772/j.issn.1001-9081.2017.10.2813.
ZHAO Yuqing, XIANG Yang. Dialog generation based on hierarchical encoding and deep reinforcement learning[J]. Journal of Computer Applications, 2017, 37(10): 2813-2818. DOI: 10.11772/j.issn.1001-9081.2017.10.2813.

基金项目

国家自然科学基金资助项目(71571136);国家973计划项目(2014CB340404);上海市科委基础研究项目(16JC1403000)

通信作者

向阳,E-mail:shxiangyang@tongji.edu.cn

作者简介

赵宇晴(1995-), 女, 辽宁盘锦人, 硕士研究生, 主要研究方向:自然语言处理、深度学习;
向阳(1962-), 男, 重庆人, 教授, 博士, 主要研究方向:管理信息系统、云计算、语义计算、大数据挖掘

文章历史

收稿日期:2017-04-28
修回日期:2017-06-14
基于分层编码的深度增强学习对话生成
赵宇晴, 向阳    
同济大学 计算机科学与技术系, 上海 201800
摘要: 面向对话生成问题,提出一种构建对话生成模型的方法--基于分层编码的深度增强学习对话模型(EHRED),用以解决当前标准序列到序列(seq2seq)结构采用最大似然函数作为目标函数所带来的易生成通用回答的问题。该方法结合了分层编码和增强学习技术,利用分层编码来对多轮对话进行建模,在标准seq2seq的基础上新增了中间层来加强对历史对话语句的记忆,而后采用了语言模型来构建奖励函数,进而用增强学习中的策略梯度方法代替原有的最大似然损失函数进行训练。实验结果表明EHRED能生成语义信息更丰富的回答,在标准的人工测评中,其效果优于当前广泛采用的标准seq2seq循环神经网络(RNN)模型5.7~11.1个百分点。
关键词: 对话生成    深度增强学习    分层编码    循环神经网络    序列到序列    
Dialog generation based on hierarchical encoding and deep reinforcement learning
ZHAO Yuqing, XIANG Yang     
Department of Computer Science and Technology, Tongji University, Shanghai 201800, China
Abstract: Aiming at dialog generation problem, a dialog generation model based on hierarchical encoding and deep reinforcement learning, namely Enhanced Hierarchical Recurrent Encoder-Decoder (EHRED) was proposed to solve the problem that standard sequence to sequence (seq2seq) architectures are more likely to raise highly generic responses due to the Maximum Likelihood Estimate (MLE) loss function. A multi-round dialog model was built by hierarchical structure, and a hierarchical layer was added to enhance the memory of history dialog based on the standard seq2seq architecture, and then a language model was used to build reward function, replacing traditional MLE loss function with policy gradient method in deep reinforcement learning for training. Experimental results show that EHRED can generate responses with richer semantic information and improve by 5.7-11.1 percentage points in standard manual evaluation compared with the widely used traditional standard seq2seq Recurrent Neural Network (RNN) dialog generation model.
Key words: dialog generation    deep reinforcement learning    hierarchical encoding    recurrent neural network    sequence to sequence (seq2seq)    
0 引言

对话系统, 也称作交互式会话代理、虚拟代理或聊天机器人, 其有着广泛的应用场景, 例如技术支持服务、语言学习工具、个人助理等[1-2], 对话系统作为其中实现自然语言理解和体现机器智能的重要交互接口受到了广泛关注。目前, 如何让机器与人类进行持续的、有意义的对话是对话生成领域待解决的重要问题之一[3], 本文针对该问题进行了有效的实验研究。

尽管基于循环神经网络(Recurrent Neural Network, RNN)的序列到序列(sequence to sequence, seq2seq)模型[4]为对话生成带来了诸多便利, 并被广泛应用, 然而这类基于seq2seq的模型的实验结果并不全都尽如人意, 基于seq2seq的对话模型容易给出很多通用回答, 比如“我不知道”(这句话可能在训练集中出现多次), 而真实场景下则希望对话是有意义的、信息丰富的, 显然“我不知道”并不是一个好的回答, 它终结了此轮对话。为了探索解决这个问题的方法, 使对话模型能够与人类进行持续的、有意义的对话, 本文提出一种基于分层编码的深度增强学习对话模型(Enhanced Hierarchical Recurrent Encoder Decoder Model,EHRED)。首先,提出一种能够存储历史信息的分层编码对话模型;之后,再引入增强学习的方法, 弱化标签的作用, 增强远距离信息间的相互联系;最后,通过实验结果来证明其有效性。

1 相关研究分析

自然语言对话系统的技术主要分为两类, 基于手写规则的和基于数据驱动的。20世纪60年代著名的Eliza系统就是基于手写规则的, 能与用户进行简单的对话。然而基于规则的解决方案过于依赖精心设计的有限的对话参数或是一些手工模板, 而模板又是领域敏感的, 因此这类解决方案, 如马尔可夫决策过程(Markov Decision Process, MDP)[5-8]、部分可观测马尔可夫决策过程(Partially Observable Markov Decision Process, POMDP)[9-11]等通常被用来解决特定领域的任务, 泛化能力和通用性较差, 离复杂场景下的实用化还有很大距离。大数据时代为自然语言对话研究提供了一个新的机会, 大量的对话数据可以从实际的场景中获得, 随着深度神经网络在越来越多的基于大量数据来进行训练的任务中取得瞩目的成果, 基于数据驱动的方法成为研究的主流。起初深度学习仅在语音和图像处理领域取得了巨大的成功, 因为图像和音频数据天然可以编码并存储成稠密向量的形式, 而自然语言处理则通常是将字词转成离散的单独的稀疏向量, 对特征的编码是随机的, 没有任何关联信息。在Word2Vec出现之后, 语言中的字词得以转化为计算机可以理解的、空间上相互关联的稠密向量, 深度学习开始在自然语言处理领域取得突破性进展。

基于数据驱动的方法又分为基于检索的方式和基于生成的方式。基于检索的方式将大量的单轮对话实例存储在索引里, 每一个实例由一个对话输入和其所对应的回复组成。每输入一个信息, 检索模块从索引中检索与其相关的信息和回复, 并将最适合的回复返回, 作为给出的回答。这种方式的优点是不会出现语法错误, 但模式是通过检索的方式给出索引库中已有的回答, 而符合自然语言处理宗旨的模式应该是通过结合之前的经验进行思考以给出回答, 因此受到广泛关注的是基于生成的方式。

基于生成的方式将对话生成问题看作是一种“源到目标”的映射问题, 直接从大量的训练数据中学习从输入信息到最终输出之间的映射关系。Ritter等[12]首次将对话映射问题看成一个统计机器翻译(Statistical Machine Translation, SMT)问题, 虽然结果优于基于信息检索的系统, 然而其实验结果也发现对话生成问题要比机器翻译问题复杂得多, 相对于机器翻译, 对话生成的回答更多样化, 和输入的联系也不那么紧密。Sutskever等[4]提出了一种通用的序列到序列的结构(seq2seq), 并在对话任务上取得了超过基于SMT的系统的效果。之后越来越多的人在seq2seq的基础上进行研究, 基于数据驱动的深度学习方法在自然语言处理领域的研究越来越细致, 然而深度学习虽然可以自动提取大量语言数据中的特征, 但是对数据集中数据数量和质量的要求较高, 如何从质量有限的数据集中尽可能地提取有用特征也是深度学习在自然语言处理领域面临的困境之一。Vinyals等[13]首次采用编码器来将输入信息编码成一个向量来代表输入语句的语义, 并依据这个向量来生成回答。Li等[14]提出了一种用计算输入和回答之间的互信息量的方法来代替标准seq2seq中作为目标函数的最大似然估计函数, 来减小通用回答出现的比例。Su等[15]先用有监督学习进行对话模型的训练, 然后用增强学习来改善其表现, 其实验结果证明增强学习能够改善对话系统的表现。受到Su方法[15]的启发, 本文将seq2seq与增强学习的优势结合起来, 并引入分层思想, 提出了一种基于分层编码的深度增强学习对话生成的方法。

2 单轮对话模型seq2seq

单轮对话是多轮对话的基础。对话问题可以看作是序列到序列的映射问题, 而循环神经网络(RNN)可以很方便地处理从某一序列到另一序列的映射问题。2014年Sutskever等[4]提出了一种基于RNN的序列到序列映射模型seq2seq, 并且取得了较好的实验结果, 从此seq2eq成为很多对话模型的基础。

给定一系列输入(x1, x2, …, xT), 一个标准的RNN通过循环式(1) ~(2) 来计算一系列输出(y1, y2, …, yT):

${\mathit{\boldsymbol{h}}_t} = sigm({\mathit{\boldsymbol{W}}^{\mathit{\boldsymbol{hx}}}}{\mathit{\boldsymbol{x}}_t} + {\mathit{\boldsymbol{W}}^{\mathit{\boldsymbol{hh}}}}{\mathit{\boldsymbol{h}}_{t - 1}})$ (1)
${\mathit{\boldsymbol{y}}_t} = {\mathit{\boldsymbol{W}}^{\mathit{\boldsymbol{yh}}}}{\mathit{\boldsymbol{h}}^t}$ (2)

对于对话问题来说, 输入和输出都是不定长的, seq2seq的处理方法是, 用一个RNN(编码器)来将输入序列映射到一个固定维度的向量, 用另一个RNN(译码器)来将这个向量映射为目标序列。通常采用RNN的一种变体长短期记忆网络(Long Short-Term Memory, LSTM)[16]或其另一种变体门控循环单元(Gated Recurrent Unit, GRU)[17]替代RNN, 来避免RNN自身结构难以处理远距离信息间的相互联系(即长期依赖, 又名长期影响)的问题, 为了方便叙述, 以下涉及到RNN及其变体时均简称RNN。

如式(3) 所示, seq2seq的目标是估计条件概率:

$\begin{array}{l} p\left( {{\mathit{\boldsymbol{y}}_1},{\kern 1pt} {\kern 1pt} {\kern 1pt} {\mathit{\boldsymbol{y}}_2}{\kern 1pt} , \ldots {\kern 1pt} {\kern 1pt} {\kern 1pt} ,{\mathit{\boldsymbol{y}}_{T'}}|{\mathit{\boldsymbol{x}}_1},{\kern 1pt} {\mathit{\boldsymbol{x}}_2},{\kern 1pt} {\kern 1pt} {\kern 1pt} \ldots {\kern 1pt} {\kern 1pt} {\kern 1pt} ,{\mathit{\boldsymbol{x}}_T}} \right) = \\ \prod\limits_{t = 1}^{T'} {p\left( {{\mathit{\boldsymbol{y}}_t}|\mathit{\boldsymbol{\nu }},{\mathit{\boldsymbol{y}}_1},{\kern 1pt} {\kern 1pt} {\mathit{\boldsymbol{y}}_2},{\kern 1pt} {\kern 1pt} {\kern 1pt} \ldots {\kern 1pt} {\kern 1pt} {\kern 1pt} ,{\mathit{\boldsymbol{y}}_{t - 1}}} \right)} \end{array}$ (3)

其中:(x1, x2, …, xT)是输入序列; (y1, y2, …, yT′)是对应的输出序列, 需要注意的是输入和输出序列的长度未必相同。RNN接受一个词语的过程称为一个时间步的操作, 处理输入序列(x1, x2, …, xT)的编码器在最后一个时间步的隐含层状态就是固定维度向量ν。每个p(yt|ν, y1, y2, …, yt-1)都由词汇表中的所有单词的softmax函数结果来表示。

3 基于分层编码的多轮对话模型

本文针对多轮对话, 对seq2seq对话模型进行了扩展, 提出了一种分层编码对话模型。Sordoni等[18]在2015年提出了一种分层编码器-译码器结构模型HRED(Hierarchical Recurrent Encoder-Decoder), 用于给出互联网查询建议, 即通过用户已经提交的查询来预测用户的下一个查询。分层结构体现在用户提交的查询可以在两个层面上分别被看作是两种序列:每个查询问题可以被看作是一系列词语组成的序列, 用户之前提交的一系列查询可以被看作是一系列语句组成的序列。利用这种分层思想, 将对话也分为两个层次进行建模, 第一个层次是一次对话过程中所包含的若干语句, 第二个层次是每个语句所包含的若干词语, 依此本文建立了一个基于分层编码的对话生成模型, 如图 1所示。

图 1所示, 基于HRED的对话模型包含三个RNN模块:编码器RNN、中间层RNN、译码器RNN, 与标准seq2seq模型相比增加了一个中间层RNN。其中编码器RNN、中间层RNN、译码器RNN均是一层含有若干个神经单元的循环神经网络, 如第2章所述, 由循环神经网络负责处理序列到序列的映射问题。

图 1可知, 输入语句中每个词语(U1, 1, U1, 2, …,U1, N1)的词向量会被顺次输入到编码器RNN里直至该输入语句的结尾, 此时编码器中RNN神经网络的最终的隐含层状态就相当于将该输入语句编码成了一个“语句向量”, 这个“语句向量”随后将被输入到中间层RNN。在编码器RNN和中间层RNN顺次处理完语句(U1, U2, …, Um)后, 此时中间层RNN的隐含层状态就包含了当前m个“语句向量”的信息, 这个隐含层状态将作为中间层RNN的输出, 输入到译码器RNN中。译码器RNN接受经过编码器RNN和中间层RNN编码处理后的输入语句(即中间层RNN最终的隐含层状态的输出)以及一个固定的初始词语“GO”(“GO”没有任何含义, 只是为了符合神经网络对输入格式的要求), 来生成输出语句的第一个词语, 之后每个时间步都会接受前一时刻译码器所生成的词语以及前一时刻译码器的隐含层状态来生成当前时刻输出语句的词语, 直至生成语句终止符“< EOS >”。需要注意的是译码器每生成一个词语前都会接受中间层RNN最终的隐含层状态输出。

图 1 基于分层编码的对话生成模型结构 Figure 1 Hierarchical dialog generation model structure

中间层RNN相当于在对话者A和对话者B之间建立了相同的背景知识, 比如话题知识和概念知识, 这对于构建一个有效的对话系统来说至关重要。本文使用对话者A对话者B对话者A(A-B-A)的三轮对话形式来进行实验, 根据HRED的结构可知, HRED可被扩展用于N轮对话。需要注意的是, 在一次A-B-A对话中, 处理每个语句中的每个词语时, 编码器RNN、中间层RNN、译码器RNN的参数是相同的, 这样有助于模型的训练和泛化。

4 引入增强学习的对话模型 4.1 seq2seq结构的对话模型的缺陷

基于seq2seq结构的对话模型的实验结果存在很多问题, 最大的问题之一是seq2seq结构的对话模型倾向于给出通用回答, 本文对该问题的原因给出了如下分析:

首先, seq2seq模型倾向于获取局部特征, 比如每个时间步作为输入之一的前一时间步生成的词语; 而作为全局特征输入的译码器隐含层状态, 在译码器生成第一个词语之前是仅包含全部输入语句信息的编码器输出, 后来逐渐被译码器生成的新词语稀释(由于HRED中间层RNN的隐含层状态每次都会被输入译码器, 所以HRED不存在这类稀释问题)。训练时每一时间步输入译码器的词语是训练集中的真实(ground_truth)词语, 可以一定程度上确保译码器的隐含层状态始终在接受正确的局部信息来生成下一个词语。但是在预测时, 译码器的隐含层状态接受的是上一时间步的预测词语, 一旦预测词语偏离了预期, 译码器的隐含层状态所包含的输入语句信息不仅被稀释, 还被加入了噪声, 这样一来之后的所有词语的预测都会受到影响。

其次, 从学习的角度来说, 译码器的隐藏层状态hm需要包含时间步m之前的所有信息, 来生成下一个时间步的词语(短期目标), 同时在实际输出轨迹的向量空间里占据一个位置来影响未来可能生成的若干个输出词语(长期目标), 与此同时hm的状态还不断被新预测的词语所稀释。鉴于梯度消失效应[19], 短期目标有着更大的影响, 模型更倾向于实现短期目标而非长期目标, 因此在训练过程中模型参数更倾向于仅仅贪婪生成下一个词语。

从概率角度分析, 随机变化仅在较低的层次注入(seq2seq结构中最后的softmax层), 因此模型在训练时便更倾向于获取序列的局部特征, 而非全局或长期特征, 这是因为在低层次注入的随机变化更倾向于符合近期获取的观察结果的规律, 大大弱化了更久时间之前的观察结果的影响或是对未来的观察的影响。可以把随机变化看作是向确定性成分添加的噪声变量, 如果这个噪声变量在建立高层次表示这一步时就被注入, 就可以视作覆盖了序列的绝大部分, 其效果可以等同于长期依赖, 但在seq2seq架构里, 噪声变量仅在低层次表示中注入。

从损失函数的角度分析,假设seq2seq类的模型的目标语句是[w1, w2, …, wT], 则训练时的损失函数可以表示为式(4),训练目标是最小化损失函数L的值:

$\begin{array}{ccccc} L = - \log p\left( {{\mathit{\boldsymbol{w}}_1},{\mathit{\boldsymbol{w}}_2},\; \ldots \;{\mathit{\boldsymbol{w}}_T}} \right){\kern 1pt} {\kern 1pt} {\kern 1pt} = \\ - \log \prod\limits_{t = 1}^T {p\left( {{\mathit{\boldsymbol{w}}_t}|{\mathit{\boldsymbol{w}}_1},{\mathit{\boldsymbol{w}}_2},\; \ldots \;{\mathit{\boldsymbol{w}}_{t - 1}}} \right)} {\kern 1pt} {\kern 1pt} {\kern 1pt} = \\ - \sum\limits_{t = 1}^T {\log } \left( {p\left( {{\mathit{\boldsymbol{w}}_t}|{\mathit{\boldsymbol{w}}_1},{\mathit{\boldsymbol{w}}_2},\; \ldots \;{\mathit{\boldsymbol{w}}_{t - 1}}} \right)} \right) \end{array}$ (4)

这个损失函数贪婪预测每个时间步生成的下一预测词语, 并没有考虑整个预测语句, 假设$\mathit{\boldsymbol{w}}_t^g$是模型在t时刻生成的词语, 那么下一个词语的生成函数是$\mathit{\boldsymbol{w}}_{t+1}^{g}=\rm{arg}\ \underset{w}{\mathop{\rm{max}}}\,{{p}_{\theta }}\left( \mathit{\boldsymbol{w}}|\mathit{\boldsymbol{w}}_{t}^{g},{{\mathit{\boldsymbol{h}}}_{t+1}} \right)$模型被训练最大化${{p}_{\theta }}\left( \mathit{\boldsymbol{w}}|\mathit{\boldsymbol{w}}_{t}^{g},{{\mathit{\boldsymbol{h}}}_{t+1}} \right)$, 整个生成过程可以看作是一个从左到右的贪婪生成, 并不一定会生成最有可能的句子, 因为如式(5) 所示, 最有可能的句子可能会在某一时刻t包含一个次优的词语wt

$\begin{align} & \prod\limits_{t=1}^{T}{\underset{{{\mathit{\boldsymbol{w}}}_{t+1}}}{\mathop{\rm{max}}}\,}{{p}_{\theta }}\left( {{\mathit{\boldsymbol{w}}}_{t+1}}|\mathit{\boldsymbol{w}}_{t}^{g},{{\mathit{\boldsymbol{h}}}_{t+1}} \right)\le \\ & \underset{{{\mathit{\boldsymbol{w}}}_{1}},{{\mathit{\boldsymbol{w}}}_{2}},\ \ldots \ {{\mathit{\boldsymbol{w}}}_{T}}}{\mathop{\rm{max}}}\,\prod\limits_{t=1}^{T}{{{p}_{\theta }}\left( {{\mathit{\boldsymbol{w}}}_{t+1}}|\mathit{\boldsymbol{w}}_{t}^{g},{{\mathit{\boldsymbol{h}}}_{t+1}} \right)} \\ \end{align}$ (5)

这就造成预测的是不相关的, 或是通用的回答。为了探索解决这个问题的方法, 使对话模型能够与人类进行可持续的、有意义的对话, 本文引入了增强学习的方法来训练新的目标函数。

4.2 引入增强学习的意义

根据第3章描述的分层编码模型结构可知, 对话生成是一个序列决策问题, 每个时间步依据译码器上一时间步生成的词语和对话历史信息来顺序生成下一个词语。而增强学习的本质就是解决序列决策(Sequential Decision Making, SDM)问题, 它可以针对一系列变化的环境状态, 输出一系列对应的行动, 并在这些行动完成后得到奖励。增强学习的目标是根据环境状态、行动和奖励, 学习出最佳的策略, 并以最终结果为目标, 不能只看某个行动当下带来的利益, 还要看到这个行动未来能带来的价值, 以获得最大的累计收益作为最好的结果来进行策略的学习。

增强学习不像无监督学习那样完全没有学习目标, 也不像监督学习那样有着非常明确的目标(标签)(基于RNN的seq2seq模型属于监督学习), 增强学习没有标签来告诉算法在某种情况下应该做出什么样的行为, 只有做出一系列行为后反馈回来的累计奖励, 并通过这个累计奖励的信号来判断当前行为的好与坏。增强学习面对的输入一般是变化的、不明确的, 与监督学习中独立同分布的输入不同, 增强学习不需要正确的输入/标签对, 甚至可能不存在绝对正确的标签, 增强学习通过不断的试错、反馈、学习来寻找最优策略。

增强学习强调在探索未知的环境(Exploration)和利用现有知识(Exploitation)之间找到平衡。Exploitation指根据已知的信息来最大化累计奖励, Exploration则会放弃一些已知的奖励信息, 而且尝试一些新的选择。因为在某种环境状态下, 算法可能已经学习到如何选择动作来让奖励较大, 但并不是每次都会作出同样的选择, 也许另一个没有尝试过的动作会让最终的累计奖励更大, Exploration强调更多地探索环境状态信息。

结合4.1节的描述可知, 增强学习的算法特点天然地补充了seq2seq有监督对话模型倾向于受短期利益影响而非考虑长期利益、从而容易陷入次优解的缺陷。

增强学习已经有几十年的历史, 但是直到最近几年深度学习技术的突破, 增强学习才有了比较大的进展。用神经网络来替代增强学习中的值函数和策略函数, 使之变成价值网络和策略网络,从而使连续动作状态问题可解, 是深度增强学习的基本思想。

4.3 基于深度增强学习的对话生成模型

标准的增强学习配置是一个智能体在一系列离散时间步中与环境ε进行交互。在每个时间步t, 智能体接受状态st, 并根据策略π, 在动作空间A里选择一个动作at, 之后智能体会获得状态st+1和一个即时回报rt, 直到智能体到达一个终止状态然后重新开始下一回合。如式(6) 所示, 累计回报Rtt时刻起所获得的全部即时回报之和, 其中γ∈(0, 1]为折扣系数。

${{R}_{t}}=\sum\limits_{k=0}^{\infty }{{{\gamma }^{k}}{{r}_{t+k}}}$ (6)

在基于HRED的对话生成模型中, 动作a为生成对话语句U3的某个词语U3, N3, 状态st时刻译码器隐藏层状态, 策略π可以被看作是整个编码器-中间层-译码器, 由其中的所有参数来定义。对话模型的目标是在每个状态st都能获得最大的累计回报Rt

在确定当前动作的即时回报r之前, 首先对整个数据集建立一个语言模型作为模型的输入文件之一。本次实验建立了一个bi_gram语言模型, bi_gram是一个n×n的矩阵, n为词表大小, bi_gram[i][j]的含义是词语j紧跟词语i出现的概率。在训练时, 如果动作a与目标动作target_a一致, 并且其前一个动作history_a与当前动作a的之间的语言模型概率大于等于某一阈值, 则获得的回报为正且最大$r_{\min }^{+}$; 若动作a与目标动作target_a一致, 但是其前一个动作history_a与当前动作a的之间的语言模型概率小于该阈值, 则获得的回报为正却相对小很多$r_{\min }^{+}$; 如果动作a与目标动作target_a不同, 但history_a与当前动作a的之间的语言模型概率大于阈值, 获得的回报为$r_{\min }^{+}$; 如果动作a与目标动作target_a不同, 且history_a与当前动作a的之间的语言模型概率小于阈值, 获得的回报为负且绝对值最大$r_{\min }^{-}$; 如果动作a恰好是语句结束符< EOS >, 若history_a与当前动作a的之间的语言模型概率大于阈值, 获得的回报为负但绝对值最小$r_{\min }^{-}$, 若history_a与当前动作a的之间的语言模型概率小于阈值, 获得的回报为负但绝对值最大$r_{\min }^{-}$。以上是该对话生成模型中的增强学习模型部分的逻辑与参数。

这样做的好处是, 如果数据集足够好, 针对数据集建立的语言模型足够好, 那么每个动作获得的即时回报r就是基于整个数据集的知识背景(全局特征)来考虑的, 如果训练集给出的对话样本自身不是一个很好的样本数据, 也可以给其一个相对较低的正反馈$r_{\min }^{+}$来进行纠正。

最终的梯度是${\nabla _{\theta {\rm{ }}}}{\rm{log}}\pi \left( {{a_t}|{s_t};\mathit{\boldsymbol{\theta }}{\rm{ }}} \right)\left( {{R_t} - {b_t}\left( {{s_t}} \right)} \right)$, 其中bt(st)是从累计回报中学习得到的基线, 通常将一个学习到的价值函数估计来用作基线, 即bt(st)≈Vπ(st); 用来衡量策略梯度的数量Rt-bt可以被看作是状态st下动作at的优势估计, 即A(at, st)=Q(at, st)-V(st), 其中RtQπ(at, st)的估计, 而动作价值Q(a, s)=E[Rt|st=s, a]是在策略π下在状态s下选择动作a后所期望得到的累计回报; btVπ(st)的估计, Vπ(st)=E[Rt|st=s]是在策略π下状态s的价值, 即从状态s开始遵循策略π所期望得到的累计回报。其中价值函数Vπ(st)和动作价值函数Qπ(at, st)均采用深度神经网络来描述, 即bt(st)和Rt均采用深度神经网络来逼近, 其中深度神经网络的结构如第3章构建的基于分层编码的对话模型所示。

该基于分层编码的深度增强学习对话生成模型(EHRED)的算法伪代码见算法1。

算法1 EHRED模型算法。

θ为策略网络参数矩阵;θv为价值网络参数矩阵。

t=1

while t < Tmax

    dθ=0, dθv=0

    tstart=t

    获取环境st(上一时刻的隐藏层状态)

    while at-1≠EOS and t-tstart < tmax

        at=π(st, θ)

        获取奖励rt

        获取新的环境状态st+1

        t=t+1

    $R = \left\{ \begin{array}{l} 0 & {a_{t - 1}} = = {\rm{EOS}}\\ V\left( {{s_t},{\mathit{\boldsymbol{\theta }}_v}} \right) & t - {t_{{\rm{start}}}} = = {t_{{\rm{max}}}} \end{array} \right.$

    for i=t-1, t-2, …, tstart do:

        R=ri+γR

        dθ=dθ+∇θ log π(si, θ)(R-V(si, θv))

        dθv=dθv+(R-V(si, θv))2/θv

    使用dθ和dθv更新θθv

EHRED模型首先对标准seq2seq增加了中间层来记忆历史信息, 每次译码输出之前都会接受未被译码器输出稀释的、完整记录了所有历史信息的中间层的隐含层状态输出, 即每次预测下一个词语前都会接受之前的背景知识; 而且由于增强学习考虑的是累积回报, 所以训练时一个词语的生成会受到之后生成的词语的影响。综上所述该模型对于对话的长期影响进行了充分考虑。

5 实验与分析 5.1 数据集

本次实验的数据集来源是opensubtitle电影字幕语料库, 这是一个开源免费的语料库。电影字幕包含的话题非常宽泛, 而且通常都是两个或非常有限的人数之间进行长时间的、上下文关联性强的交流互动, 并且由于其公映的特殊性而很少有拼写或语法错误, 采用一个电影字幕数据集无疑是构建开域对话系统的正确选择之一。

5.2 过程与参数

本文所构建的深度网络模型的目标函数是一个非凸函数, 而梯度下降算法无法有效解决非凸问题, 模型可能陷入局部最优解。为了更好地训练模型使其接近全局最优解, 采用了预训练的方法, 即在训练深度增强网络之前, 先训练目标函数为普通交叉熵的深度神经网络模型, 然后将该训练好的模型参数作为待训练的深度增强网络的初始化参数;并引入relu激活函数、dropout技术等深度网络训练时所使用的技巧(tricks)。本次预训练从opensubtitle语料库中抽取了400万条对话语句来作为训练集和测试集, 在现有的实验条件下(一块GPU)平均每次训练时间约为7 d。

深度网络训练过程不可能不采用梯度下降算法, 而传统的随机梯度下降法(Stochastic Gradient Descent, SGD)在误差反向传播过程中会存在收敛过慢或在最优点附近震荡而不收敛的问题, 为了更好地训练神经网络, 本次优化算法采用了均方根传播(Root Mean Square Propagation, RMSProp)算法, RMSProp是一种自适应的算法, 可以在迭代过程中自适应地减小学习速率, 先采用较高的学习速率以便快速收敛到最优值附近, 然后采用较低的学习速率逐渐稳定地收敛到最优值。为了防止过拟合, 每50个epoch进行一次评估, 设定当损失函数值是前一时刻的损失函数值的3倍时停止训练(early stopping)。

每次训练时通过观察policy network和value network的损失函数值是否不再降低来判断模型是否已经收敛, 并根据最终稳定下来的损失函数值的大小来调试确定最佳参数。本次深度增强模型的训练从opensubtitle语料库中抽取了40万条对话语句作为训练集和测试集, 在与预训练同等实验条件下(一块GPU), 平均每次的训练时间约为2 d。EHRED和HRED的编码器层、中间层、译码器层以及RNN[4]的编码器层、译码器层均采用250个LSTM神经单元。词向量采用Word2Vec工具进行初始化, 词向量的维数定为200。

5.3 结果与分析

评估对话系统是比较困难的, 较为常见的评估指标如BLEU[20]等一直以来都存在争议, 即它们是否能够真正地衡量回答的质量, 正如前面所说, 对话系统的目标并不仅仅是预测概率最大的回答, 而是应该充分考虑长期影响, 生成上下文有意义的、语义信息丰富的、让人感到有交互感的回答。因此本次实验采用同文献[3]相同的人工测评方法。

将EHRED、HRED和RNN[4]对同一输入所分别预测的输出语句进行人工测评, 来判断哪种模型的输出语句更好,表 1中的数值分别代表三种不同评价所占的比例。从如表 1所示的人工测评结果可看出:融合了增强学习方法的EHRED的效果较传统RNN模型来说有很大提升, 与没有融合增强学习方法的HRED相比, 效果也有一定的提高, 说明HRED的中间层和增强学习的奖励函数方法对于对话中长期影响的建模起到了一定作用, 使得对话效果有了提升, 更符合人类的对话习惯。

表 1 EHRED、HRED和RNN的人工测评结果比较        % Table 1 Comparison of manual evaluation results of EHRED, HRED and RNN        %

由于在同样的对话情境下有很多种不相同的、但是都合理的回答, 所以考虑Top10的有效率更能反映出模型的效果。和大多数文献[4]一样, 本次实验用beam search来得到模型最优的前10个输出结果。如表 2所示, 当输出语句被人为判定为有意义时, 输出语句有效, 表中的比率是有意义的输出语句占总体输出语句的百分比。由表 2可看出, EHRED的效果明显要高于传统RNN模型, 尤其是在考虑Top10时, 说明EHRED能给出更多样性的合理的回答, 从而证明了基于层次编码的增强学习模型的有效性。

表 2 EHRED和RNN的Top1和Top10有效率比较        % Table 2 Comparison of Top1 and Top10's effective rates of EHRED and RNN        %
表 3 EHRED模型实验结果实例 Table 3 Examlpes of EHRED's experimental results

表 3展示了一些实验结果的实例, 其中Reference(U1, U2)一栏的内容是一轮对话中的前两句, Response一栏的内容是与之对应的各个模型预测输出的结果, 其中EHRED这一行的内容是EHRED模型预测输出的结果, RNN这一行的内容是RNN模型预测输出的结果, TARGET这一行的内容是训练集中原有的目标语句。从表 3中的实例可以看到, RNN倾向于给出“我不知道”“好”这种通用回答, 而EHRED则可以给出语义更为丰富的回答。

6 结语

本文介绍了如何将标准seq2seq改进为层次模型HRED应用于多轮对话系统, 来加强对历史信息的记忆; 详细分析了标准seq2seq中长期目标的缺失和损失函数的缺点; 阐明了如何用增强学习的策略梯度方法代替标准seq2seq中的损失函数来弥补其对长期影响的建模的缺失从而提升对话质量。

当前的EHRED对话模型采用了bi_gram语言模型来构建奖励函数, 未来可以围绕“好的对话应该由哪些因素来定义”这一思考, 用语义逻辑更强的方式来构建奖励函数, 以期取得更优的结果。

参考文献(References)
[1] YOUNG S, GASIC M, THOMSON B, et al. POMDP-based statistical spoken dialog systems: a review[J]. Proceedings of the IEEE, 2013, 101(5): 1160-1179. DOI:10.1109/JPROC.2012.2225812
[2] SHAWAR B A, ATWELL E. Chatbots: are they really useful? Journal for Language Technology & Computational Linguistics, 2007, 22(1):29-49.
[3] LI J, MONROE W, RITTER A, et al. Deep reinforcement learning for dialogue generation [EB/OL]. [2017-01-10]. https://arxiv.org/pdf/1606.01541.pdf.
[4] SUTSKEVER I, VINYALS O, LE Q V. Sequence to sequence learning with neural networks [C]//NIPS 2014: Proceedings of the 27th International Conference on Neural Information Processing Systems. Cambridge: MIT Press, 2014: 3104-3112.
[5] LEVIN E, PIERACCINI R, ECKERT W. Learning dialogue strategies within the Markov decision process framework [C]//Proceedings of the 1997 IEEE Workshop on Automatic Speech Recognition and Understanding. Piscataway, NJ: IEEE, 1997: 72-79.
[6] LEVIN E, PIERACCINI R, ECKERT W. A stochastic model of human-machine interaction for learning dialog strategies[J]. IEEE Transactions on Speech and Audio Processing, 2000, 8(1): 11-23. DOI:10.1109/89.817450
[7] WALKER A, PRASAD R, STENT A. A trainable generator for recommendations in multimodal dialog [EB/OL]. [2017-01-10]. https://pdfs.semanticscholar.org/3385/397d3be400c3f4a6f79f9c47 e67e50333b45.pdf.
[8] PIERACCINI R, SUENDERMANN D, DAYANIDHI K, et al. Are we there yet? Research in commercial spoken dialog systems [C]//TSD 2009: Proceedings of the 12th International Conference on Text, Speech and Dialogue. Berlin: Springer, 2009: 3-13.
[9] YOUNG S, GASIC M, KEIZER S, et al. The hidden information state model: a practical framework for POMDP-based spoken dialogue management[J]. Computer Speech & Language, 2010, 24(2): 150-174.
[10] GASIC M, BRESLIN C, HENDERSON M, et al. POMDP-based dialogue manager adaptation to extended domains [C]//SIGdial 2013: Proceedings of the 14th Annual SIGdial Meeting on Discourse and Dialogue. Metz, France: [s.n.], 2013: 214-222.
[11] GASIC M, KIM D, TSIAKOULIS P, et al. Incremental on-line adaptation of POMDP-based dialogue managers to extended domains [EB/OL]. [2017-01-10]. https://pdfs.semanticscholar.org/6719/ef93142d64a69b52c916f9ee132b5339d9d1.pdf.
[12] RITTER A, CHERRY C, DOLAN W B. Data-driven response generation in social media [C]//EMNLP 2011: Proceedings of the 2011 Conference on Empirical Methods in Natural Language Processing. Stroudsburg, PA, USA: Association for Computational Linguistics, 2011: 583-593.
[13] VINYALS O, LE Q. A neural conversational model [EB/OL]. [2017-01-10]. https://arxiv.org/pdf/1506.05869.pdf.
[14] LI J, GALLEY M, BROCKETT C, et al. A diversity-promoting objective function for neural conversation models [EB/OL]. [2017-01-10]. https://arxiv.org/pdf/1510.03055.pdf.
[15] SU P-H, GASIC M, MRKSIC N, et al. Continuously learning neural dialogue management [EB/OL]. [2017-01-10]. https://arxiv.org/pdf/1606.02689.pdf.
[16] HOCHREITER S, SCHMIDHUBER J. Long short-term memory [EB/OL]. [2017-01-10]. http://www.bioinf.jku.at/publications/older/2604.pdf.
[17] CHO K, VAN MERRIENBOER B, GULCEHRE C, et al. Learning phrase representations using RNN encoder-decoder for statistical machine translation[EB/OL]. [2017-01-10]. https://arxiv.org/pdf/1406.1078.pdf.
[18] SORDONI A, BENGIO Y, VAHABI H, et al. A hierarchical recurrent encoder-decoder for generative context-aware query suggestion [C]//CIKM 2015: Proceedings of the 24th ACM International on Conference on Information and Knowledge Management. New York: ACM, 2015: 553-562.
[19] HOCHREITER S, SCHMIDHUBER J. LSTM can solve hard long time lag problems [EB/OL]. [2017-01-10]. http://www.bioinf.jku.at/publications/older/3004.pdf.
[20] PAPINENI K, ROUKOS S, WARD T, et al. BLEU: a method for automatic evaluation of machine translation [C]//ACL 2002: Proceedings of the 40th Annual Meeting on Association for Computational Linguistics. Stroudsburg, PA, USA: Association for Computational Linguistics, 2002: 311-318.
[21] TIEDEMANN J. News from OPUS-a collection of multilingual parallel corpora with tools and interfaces[EB/OL]. [2017-01-10]. http://stp.lingfil.uu.se/~joerg/published/ranlp-V.pdf.
[22] AMEIXA D, COHEUR L, FIALHO P, et al. Luke, I am your father: dealing with out-of-domain requests by using movies subtitles [C]//IVA 2014: Proceedings of the 14th International Conference on Intelligent Virtual Agents. Berlin: Springer, 2014: 13-21.
[23] BENGIO Y. Practical recommendations for gradient-based training of deep architectures [M]//MONTAVON G, ORR G B, MVLLER K-R. Neural Networks: Tricks of the Trade. 2nd ed. Berlin: Springer, 2012: 437-478.
[24] GASIC M, BRESLIN C, HENDERSON M, et al. Online policy optimisation of Bayesian spoken dialogue systems via human interaction [C]//Proceedings of the 2013 IEEE International Conference on Acoustics, Speech and Signal Processing. Piscataway, NJ: IEEE, 2013: 8367-8371.
[25] SHANG L, LU Z, LI H. Neural responding machine for short-text conversation [EB/OL]. [2017-01-10]. https://arxiv.org/pdf/1503.02364.pdf.
[26] SINGH S, LITMAN D, KEARNS M, et al. Optimizing dialogue management with reinforcement learning: experiments with the NJFun system[J]. Journal of Artificial Intelligence Research, 2002, 16(1): 105-133.
[27] BAHDANAU D, CHO K H, BENGIO Y. Neural machine translation by jointly learning to align and translate [EB/OL]. [2017-01-10]. https://arxiv.org/pdf/1409.0473.pdf.
[28] RANZATO M A, CHOPRA S, AULI M, et al. Sequence level training with recurrent neural networks [EB/OL]. [2017-01-10]. https://arxiv.org/pdf/1511.06732.pdf.