1. 引言
随着大数据和深度学习技术的发展,创建智能对话系统不再是一个只会出现在电影里面的幻想 [1] 。对话系统根据模式可以分为检索式对话系统和生成式对话系统。与检索式对话系统不同,生成式对话系统通常使用基于神经网络的生成模型逐字生成回复。对话系统场景可以建模成为马尔可夫决策过程,恰巧强化学习也是在马尔可夫决策过程基础上发展起来的,所以用强化学习解决对话系统场景有着天然的优势。这种方法有时候也会出现一些问题,对话系统的目标是找到一个令人满意的对话策略,但是探索、测试和评估策略都极其耗时;模型在训练时缺乏对用户谈话风格的关注,有时候会故意转移话题,从而使模型更加以自我为中心 [2] 。
本文提出一种融合Bi-LSTM和强化学习的对话系统模型。首先,针对强化学习探索、测试和评估策略耗时问题,提出了一种数据处理方法,对复杂的语料库进行了多次过滤整理。我们认为从多角度探索数据集可以高效、快速地使模型收敛。其次,针对对话系统有时候说话喜欢以自我为中心的问题,选择将 [3] 中的内部奖励信息流替换为情商,意在生成与之前输入具有相同情感基调的语言。最后,用REINFORCE算法和自评序列训练方法替换 [3] [4] 中的策略梯度算法 [5] ,从而对网络参数起到更好的优化效果。
2. 对话系统模型
生成式对话系统模型利用双向LSTM神经网络模型对输入文本进行情感分类,考虑到SEQ2SEQ模型很容易出现通用性、安全性的回复,需要通过DBS算法挑选可能性回复,进而通过强化学习系统对SEQ2SEQ模型不断地进行优化 [6] 。如图1所示,该模型框架主要包括以下几个子模块:数据集探索、双向LSTM、多样性集束搜索、强化学习系统。
2.1. 多样性集束搜索
在每个时刻输出中,保存前K个概率最大的候选序列,其余全部舍弃掉,这样就能减少搜索空间,提高搜索效率 [7] [8] 。但是BS有个最大的问题是其输出的K个句子之间差异性很小,这样会造成计算资源的浪费,并且不能体现实际语言的多样性。基本上相同的计算被重复,性能没有显著提高。除此之外,BS算法有时候还会引起安全回复问题。
为解决BS带来的输出单一性问题,引入多样性集束搜索(DBS)。选择合适的集束宽度B,然后将其分成G组,那么每一组就有(B/G)个集束(一般选择整除关系)。在每一个单独的组内跟BS的处理相似,不断的延展序列。同时也通过引入一个差异性项来保证组与组之间的区别。

Figure 1. The overall structure of the Dialogue System
图1. 对话系统总体结构
2.2. 强化学习系统
RL的本质是在互动中学习。Agent与环境交互,通过反复试错不断改进,使得累积期望达到最大,从而学习到最佳的动作行为。一个RL的Agent与它处的环境相互作用,在观察其行为造成的结果后,可以通过学习改变自己的行为来响应所获得的奖励 [9] 。强化学习过程,如图2所示。

Figure 2. Reinforcement learning process
图2. 强化学习过程
SEQ2SEQ模型生成的句子被视为编码器–解码器模型策略所采取的行动,使用强化学习中的REINFORCE算法对网络编码器–解码器网络的参数进行优化调整。生成式对话场景中的强化学习主要由四部分组成,分别是:Action (
):生成对话的回复,即动作
,其中
是Bi-LSTM生成的序列。动作空间是无限的,因为Agent可以生成任意长度的句子;State(
):通过向当前对话框(状态)输入必须生成响应的信息,对话框被转换为向量表示;Policy:策略采用
的形式,其中用
是给定对话生成的响应。策略是给定状态下动作的概率分布,其中状态和动作都是对话;Reward:使用内部奖励解决SEQ2SEQ架构生成语言的问题。三个内部奖励是易答性
、语义连贯性
、情商
。
易答性(EA) (
)衡量对话产生枯燥响应的负对数可能性,也就是衡量生成的对话的难易程度。在 [1] 和 [10] 之后,在实验阶段列出了在SEQ2SEQ模型中经常出现的10个枯燥的响应,并在模型生成这些响应时对其进行惩罚。S代表一系列回答很乏味的对话列表。然后,奖励函数可以定义如下:
(1)
表示SEQ2SEQ模型输出的似然。RL系统可能会惩罚上述对话列表中的话语,因此不太可能产生枯燥的反应。
语义连贯性(SC) (
)衡量回复的充分性,以避免生成的回复得到高回报但不合语法或不连贯的情况。考虑动作a和给定输入之间的互信息,以确保响应是连贯的和适当的。
(2)
情商(EI) (
)这种奖励是通过最大限度地减少提示和响应之间的情感不协调来实现的。有时候与用户保持一致的谈话风格对于构建类人对话模型至关重要。这种方法试图保持输入和产生的响应之间的情感一致性。基于人类之间的开放域文本对话遵循情感模式,假设情感语气通常不会经常波动,聚焦于最小化输入提示和生成的响应之间的情感语气上的不协调。
(3)
这里,公式(10)中的
表示给定序列的词情感向量,
项表示输入提示的平均情感向量,
表示直到当前步骤i的生成响应的平均情感向量。
原始REINFORCE方法会存在梯度的高方差现象,可以使用A2C方法 [11] 缓解此现象。该方法使用特定状态的估计值作为基线,用另一个头扩展解码器,并根据解码后的序列返回BLUE分数估算,此过程额外需要一个Critic网络来训练Value基线。当然,可以有更好的办法。在生成序列结束(EOS)令牌后,Agent会观察到一个“奖励”,例如,生成句子的CIDEr分数——用r表示这个奖励。奖励是由评估指标通过将生成的序列与相应的真实序列进行比较来计算的。训练的目标是最小化负期望奖励(最大化期望奖励):
(4)
其中
的
是在时间步t时从模型中采样的单词。在实践中,通常使用来自
的单个样本来估计
:
(5)
很明显
带有基线的REINFORCE算法如下:
(6)
其中b为常数。
S. Rennie与E. Marcherett等 [12] 在2016年提出自评序列训练(SCST)的方法,几乎可以无代价获得基线,而不会增加模型复杂度。SCST方法的核心是当前模型在测试时使用的推理算法下获得的奖励作为REINFORCE算法的基线。在时间步t,样本
从模型到softmax激活的负回报梯度变为:
(7)
事实上,SCST的方差要比策略梯度算法的方差低得多,可以更有效地使用SGD对小批量样本进行训练。
3. 实验与分析
3.1. 实验方法与数据
在训练阶段,首先将双向LSTM网络设计成SEQ2SEQ的编码器,旨在对输入语句进行情感分类。随后采用DBS算法挑选出可能出现的候选结果,大大减轻了训练过程中的计算量。最后使用REINFORCE算法和自评序列训练方法优化网络模型。如下表1是我们的方法和原方法的对比。

Table 1. Comparison between Li’s method and our method
表1. Li的方法和我们方法的对比
对于康奈尔对话语料库,最终的奖励函数仅使用强化学习过程中的内部奖励成分,可以描述如下:
(8)
其中
,权重设置为
、
和
。
本文实验采用的数据是康奈尔对话语料库,共收集617部电影中的对话,其中有9035个字符,共有304,713个句子。对话数据及其丰富,涉及好多感兴趣的领域。其中训练集有160,000条对话,验证集有140,000条对话,测试集有6000条对话。
3.2. 实验设置与评价指标
本文实验通过PyTorch框架搭建对话系统模型,在Ubuntu16.4环境下利用1块1080Ti GPU进行训练。在使用神经网络时,调整参数可以使模型达到一个很好的状态。经过反复的对比实验,将参数设定为如下表2,模型表现效果相对较好。为评估方法的效果,本文采用三种评价指标:质量评估BLEU [13] 、召回率ROUGE-L [14] 、困惑度Perplexity [15] 。
BLEU用于衡量回复句子的流畅性,评价输出语句的质量。实践中,通常是取
,然后对进行加权平均。计算公式如下:
(9)
其中n 表示n-gram,
表示n-gram的权重,BP表示短句子惩罚因子。
ROUGE-L计算候选输出与参考输出的最长公共子序列长度。计算公式如下:
(10)
其中,X表示候选输出,Y表示参考输出,
表示候选输出与参考输出的最长公共子序列的长度,m表示参考输出的长度,n表示候选输出的长度。其中,
,
。
Perplexity用于衡量语言模型输出的质量,困惑度越低,输出回复质量越好。计算公式如下:
(11)
其中W是候选翻译,N是候选翻译的长度,
是根据参考翻译得到的语言模型,而
则是语言模型对候选翻译计算出的得分。
3.3. 实验结果与分析
Srinivasan等在实验中没有对数据集进行过滤整理,本文弥补了这一缺点,使用多种过滤器对数据集多样性探索。为了验证数据集预处理阶段的重要性,设计了一组对比实验。将Srinivasan等人的方法用到我们的模型中,只改变数据预处理方式。从表3中可以看出,本文的数据预处理方式大大缩短了模型训练的时间。

Table 3. Training time of all models on Cornell Movie Dialogs Corpus
表3. 所有模型在康奈尔电影对话数据集上的训练时间
为了验证输出结果的多样性,假定模型其他部分不变,只改变解码器部分。表4和表5分别展示了在不同解码器的情况下所有模型的自动评测和人工评测的结果。从自动评测的结果上可以看出,在BLEU指标上,MMI模型性能最好,而DBS模型在BLEU-2/3/4指标是均获得了第二的成绩。在开放域对话中生成回复与所有参考回复都不相似时,BLEU指标可能并不能反应回复的质量,因此人工标注的分数会更可靠 [16] 。从表5中的人工评测结果上可以看出,DBS模型所生成的回复可接受比例最高,比MMI模型提升了将近130%。这个结果表明本文用到的方法生成的回复质量更高。Dist-1/2指标和多样性方面,DBS模型获得了最好的结果,其性能相比MMI模型提升了110%,同时相比LSTM模型提升160%。这表明本文用到的DBS算法能够生成更多样的回复,同时能够保证与输入文本相关性。

Table 4. Automatic evaluation of all models
表4. 所有模型的自动评测

Table 5. Human evaluation results of all models
表5. 所有模型的人工评测结果
为了进一步验证强化学习方法在对话系统中的有效性,设计了一组对比实验。通过以上实验参数的设置,本文方法最终的自动测评结果如表6所示。使用包括BLEU评分、ROUGE-L和Perplexity在内的自动化指标来评估模型。通过结果可以看出,有强化学习确实比没有强化学习的表现效果好,事实表明的确可以通过强化学习训练出较为理想的SEQ2SEQ模型。通过表里面的第二行数据和第三行数据对比不难看出,使用REINFORCE算法和自评序列训练代替Srinivasan等论文中用到的策略梯度算法,可以有效提高对话系统的性能。

Table 6. Automatic evaluation results of all models on Cornell Movie Dialogs Corpus
表6. 所有模型在康奈尔电影对话数据集上自动评测结果
从测试结果来看:当输入文本复杂时,对话系统仍然可以给出很有意思的回复,而不会只是“我不知道”“我不能明白”这样简单的回复。从结果有RL对话系统的表现来看,对话系统经过大量的训练后,对话系统会积累大量的经验,有时候碰到敏感话题,它也会变得跟人类一样风趣幽默。
4. 结论
生成式对话系统很容易产生“安全回答”问题,有时候对话系统回复很单调,往往每句对话只能对应一种答复,这对传统通用的对话生成方法提出了一定挑战 [17] 。本文着眼于尝试性的强化学习训练方法和传统的NLP方法的融合,以提高生成式对话系统回复的合理性和多样性。具体的方法包括数据预处理层、双向LSTM神经网络层、DBS网络搜索层、强化学习优化层4个主要模块。数据预处理层主要对数据集进行多种类型过滤,有益于多样化探索数据集;双向LSTM神经网络层作为编码器,对每种类型的样本进行情感分类。BS网络搜索层作为解码器,挑选输出文本可能的候选回复,增加回复的多样性。强化学习基于尝试性的思想实现最佳的对话策略。实验结果表明,多样化探索数据集确实有效果,模型的训练时间较Srinivasan等的训练时间缩短了近43%。本文方法在BLUE、ROUGE-L、Perplexity比其他方法分别提高了11、9、5个百分点。
基金项目
工业人工智能中跨媒体协同深度安全态势感知理论和应用研究(62266045)。
NOTES
*通讯作者。