2. 中国科学院大学, 北京 100049;
3. 中科软科技股份有限公司, 北京 100190
2. University of Chinese Academy of Sciences, Beijing 100049, China;
3. SinoSoft Co. Ltd., Beijing 100190, China
近来, 人机对话由于其潜在的商业价值受到广泛关注[1–5]. 智能聊天机器人也就是对话系统在工业界得到了广泛的应用, 如苹果的Siri, 谷歌的Google Assistant, 阿里巴巴的阿里精灵, 小米的小爱, 百度的小度等. 根据用户的使用意图, 聊天机器人可以分为两种, 1) 目标导向的聊天机器人, 它的目的是帮助用户完成诸如订票、订餐、预定等特定任务; 2) 非目标驱动的聊天机器人, 旨在通过与人交互提供有意义的回复和娱乐功能, 也被称为开放域的聊天机器人或闲聊机器人. 传统的聊天机器人采用流水线的设计, 如图1, 包括1) 语音识别; 2) 自然语言理解; 3) 用户状态追踪; 4) 策略学习; 5) 自然语言生成; 6) 文本转化为语音共六个部分. 这种流水线的设计存在如下两个缺点: (1) 错误定位问题, 研发人员从最终客户得到关于系统质量的反馈, 而误差定位和分析需要大量繁重的工作, 因为上游的误差会传播到下游任务; (2) 过程的内部依赖, 给系统的自适应和调整带来了困难, 例如当其中一个模块使用新数据进行训练, 那么下游模块也需要重新训练, 而这个过程还需要大量的人工工作. 当前深度学习领域的成功大大促进了多轮对话系统的发展, 其中端到端的深度神经网络成为研究的重点. 与传统流水线方式相比, 端到端的方式不需要手工设计规则, 并且不存在错误定位和对齐问题[2]. 然而构建一个智能的对话机器人仍然面临着如何进行多轮交互式建模的问题, 需要机器人理解来自不同对话轮次中的历史对话信息和避免产生无意义的、冗余和重复的回复.
循环神经网络(Recurrent Neural Networks, RNNs), 具体包括长短期记忆(Long Short-Term Memory, LSTM)[6]和门控循环神经网络(Gated Recurrent Neural Network, GRU)[7], 作为强的基准方式被广泛应用在自然语言处理领域(Natural Language Processing, NLP)中, 如机器翻译、对话建模和序列标注[8–10]. 最近, 记忆网络被提出来用于自然语言理解中的语言建模[11–14]. 文献[13,14]使用LSTM或GRU结合注意力机制, 在聊天机器人的多轮对话中可以有效地进行建模. 然而现有的方法存在以下两个方面的不足:
(1) 计算效率较低
大多数方法使用RNNs类网络模型, 这种网络结构在建模时需要进行序列对齐操作, 执行计算时是串行的, 无法并行执行和有效利用当前高效的、加速计算的硬件资源, 而这在大规模数据集上是十分重要和有意义的[9];
(2) 依赖强监督信息和先验知识
一些方法使用强监督信息, 这些监督信息包括手工设计的特征函数, 代价较大, 同时不利于迁移到新的领域[13]. 还有的方法使用一些固定的先验知识[14], 同样不利于模型的扩展和迁移, 在特定领域构建这类模型需要领域专家制定大量的规则.
本文对深度神经网络在聊天机器人领域内的应用展开研究, 提出一种端到端的基于多注意力机制的记忆网络, 试图解决以上问题. 该网络具有相对简单的并行结构, 首先通过多注意力机制在不同子空间捕获对话轮次中的重要信息对对话历史进行建模, 其次使用捷径连接叠加多注意力层来控制信息流通和对话历史记忆的获取, 对历史对话信息建模结果进行多次推理.
本文的主要贡献如下:
(1) 使用多注意力机制对对话历史和上下文进行建模, 该机制允许模型学习去对齐关注相关重要的信息和获取输入和输出之前的全局依赖. 与当前LSTM或GRU使用的注意力机制不同的是, 多注意力机制具有相对简单的并行结构;
(2) 使用捷径连接叠加多注意力层, 形成多层的推理结构, 对记忆单元进行迭代推理, 记忆单元就是多注意力机制建模的最新结果. 该结构通过控制信息在前一层和当前层之间的流动来控制对记忆单元的动态读取.
本文剩余内容的组织方式如下, 第1节介绍背景知识, 第2 节对本文提出的网络结构进行了详细阐述, 第3节描述了实验过程并对实验结果进行分析, 第4节介绍了相关工作, 第5节总结了本文工作.
1 背景知识一个对话任务中一般包含历史对话
$r = f(c,u)$ | (1) |
记忆网络[11–15]整体上提供一个可读写的记忆模块, 从而实现对大量长期的记忆进行建模和推理, 网络结构如图2所示, 包括输入、记忆、输出和响应4个基本组件.
给定输入
(1) Input: 将原始输入
(2) Memory Generalization: 给定新的输入时更新记忆单元;
${m_{i + 1}} = f({m_i},R({x_i}))$ | (2) |
(3) Output: 使用注意力机制对当前输入和记忆单元进行读取和推理;
$o = attention(m,R(x))$ | (3) |
(4) Response: 根据当前输出产生最终的回复.
$r = decode(o)$ | (4) |
记忆网络及其相关变体整体上都遵循这个结构, 在具体的一些表示方法、记忆更新以及读取方式上略有不同. 现有的大多数基于注意力机制的方法使用循环结构LSTM或GRU, 这些循环结构相对复杂从而导致计算效率比较低. 有些方法使用强监督信息或先验知识, 不利于扩展和迁移应用.
2 多注意力记忆网络针对现有记忆网络中存在的计算效率低和对额外信息输入的依赖问题, 本文提出一种端到端的多注意力记忆网络. 该网络结构如图3所示, 包括文本表示、多注意力层、捷径连接的堆叠结构, 以下对这三个部分分别展开阐述.
2.1 文本表示和编码
深度神经网络具有自主的学习表征的能力, 因此也被称为表示学习. 词向量是神经网络训练语言模型的产物, 它是一个紧凑和低维的分布式向量表示, 维度经常在20至500之间取值, 相比传统的one-hot表示方式, 它包含了可学习的语义信息. 本文对于输入的文本采用直接嵌入的词向量, 在神经网络训练和学习的过程中固定词向量表示矩阵. 具体地, 词向量表示矩阵被初始化为
$Emb(wor{d_i}) = E(i)$ | (5) |
因为基于多注意力的网络结构不能利用序列的位置信息, 因此本文在词向量的基础上采用位置编码(Position Encoding, PE)来获取单词的全局和局部信息. 如式(6)和式(7)所示, 其中
$PE(pos,2i) = sin(pos/{10000^{{{2i} / {{d_{model}}}}}})$ | (6) |
$PE(pos,2i{\rm{ + }}1) = cos(pos/{10000^{{{2i{\rm{ + }}1} / {{d_{model}}}}}})$ | (7) |
最终文本的表示为词向量嵌入和位置编码的和, 即:
$R(wor{d_i}) = Emb(wor{d_i}) + PE(wor{d_i})$ | (8) |
在进行对话历史和上下文的建模之前, 先利用上一节所述的文本表示方法将输入转化为向量表示. 记忆单元的key表示为
如图4所示, 左侧为单层点乘注意力, 对用户输入
$Attention\left( {{Q_i}, {K_i}, {V_i}} \right) = \frac{{{e^{\left( {{Q_i}{K_i}^T/ \sqrt {{d_k}} } \right){V_i}}}}}{{\displaystyle\sum\limits_j {{e^{\left( {{Q_j}{K_j}^T/ \sqrt {{d_k}} } \right){V_j}}}} }}$ | (9) |
如式(10)所示, 多注意力机制[9]就是并行地执行单层点乘注意力, 这个并行执行过程是先将维度空间(例如词向量维度)划分为
$hea{d_h} = Attention\left( {AQ,BK,CV} \right)$ | (10) |
最后, 这些并行的不同空间经过不同关注的信息值被按照顺序拼接, 然后再乘以一个线性矩阵做线性映射作为输出.
$O = Concat(hea{d_1},\cdots,hea{d_H}){W^O}$ | (11) |
在记忆网络的相关研究中, 已经证明了一种称为multi-hops的重复多层结构对于记忆和用户输入的推理是有效的. 在本文的工作中, 通过叠加多注意力层实现这种重复推理的方法. 同时, 本文集成了捷径连接 (shortcut connections) 机制. 这种机制允许网络自主学习它应该从前一层流到下一层的信息量, 进而实现对于信息的灵活读写和获取.
捷径连接的机制首先应用于计算机视觉的图像识别任务[16], 在残差网络(residual network)中使用的方式是恒等映射(identity mapping), 如式(12)所示, 其中
$y=g(x) + x$ | (12) |
恒等映射是一种固定的连接前一层与当前层的机制, 即它无法灵活自主得决定信息的流通量. 在文献[17]的highway network中采取可学习的门控连接来控制信息的流通量, 如式(13)所示, 其中
$y=g(x) \otimes T(x) + x \otimes (1 - T(x))$ | (13) |
如式(14)所示, 本文通过门控的捷径连接方式来堆叠多注意力层. 其中
${U_{^{S + 1}}} = O \otimes \frac{1}{{1{\rm{ + }}{e^{ - {U_S}}}}} + {{{U}}_S} \otimes \left(1 - \frac{1}{{1{\rm{ + }}{e^{ - {U_S}}}}}\right)$ | (14) |
最终的输出选取最后堆叠层
$ a = max\frac{{{e^{{W_u}\left( {{U_S} + {U_1}} \right){C^{\rm{T}}}}}}}{{\displaystyle\sum\limits_n {{W_U}\left( {{U_S} + {U_1}} \right)C_n^{\rm{T}}} }} $ | (15) |
为了验证多注意力记忆网络的有效性, 本文选取bAbI对话数据集[15]进行实验验证, 该数据集为订餐领域的多轮对话实例, 由11个任务组成, 涵盖回复准确性, 对话完成率和可扩展性等多方面要求. 实验环境为: Intel (R) Xeon (R) CPU E5-2640 @ 2.40 GHz, 32 GB内存, NVIDIA Quadro P2000显卡, Centos 7. 3操作系统.
3.1 数据集bAbI对话数据集是从典型的面向任务的多轮对话系统中收集或生成的. bAbI对话数据集包括6个任务: 1) T1: 发出API调用, 2) T2: 更新API调用, 3) T3: 显示选项, 4) T4: 提供额外信息, 5) T5: 进行完整对话 (上述4个任务的集成), 6) T6: 对话状态跟踪挑战语料库 (DSTC 2). 所有6个任务都属于餐厅预订领域. 每项任务, 有1000个对话用于训练, 1000个对话用于验证, 1000个对话用于测试. 对于任务1-5, 提供了包含对话的第二测试集 (具有后缀-OOV. txt), 所述对话包括训练和开发集中不存在的实体. 任务6由真实的人机对话生成, 其数据来自第二对话状态跟踪挑战[18]. DSTC2数据集最初是为对话状态跟踪而设计的 (每一轮都标有状态: 用户意图+插槽). 因此, 为了评估端到端模型的性能, 文献[15]将该数据集转换为与上述5个任务格式相同的第6个任务. 任务6与前5个任务具有类似的统计信息, 由于其包含部分语音识别错误并且存在噪声信息, 因此具有更高的难度.
3.2 实验结果bAbI对话数据集主要指标是每轮响应准确率, 即每次对话机器人回复正确的轮次占所有对话轮次的比例. 本文选取监督词向量(LTR-SEM)[15]、循环端到端记忆网络(MEMR)[13]作为与多注意力记忆网络(MEMMA)比较的标准. 如图5左侧所示为每轮响应准确率的比较, LTR-SEM除T1外准确率均低于MEMR和MEMMA, 在T1, T2, T2-OOV, T3, T3-OOV这五个任务上MEMR和MEMMA的表现相近, 其中T1和T2两个对话任务两个模型都获得100%的准确率, 但是在T1-OOV, T4, T4-OOV, T5, T5-OOV这5个任务上, 本文提出的模型表现优于MEMR, 在所有10个任务上的平均准确率提高了1.65%. 在每轮对话时可以添加匹配特征, 包括对话轮次的时间信息和对话发起者(机器人或用户), 添加匹配特征的方法后, MEMR和MEMMA关于每轮响应准确率的比较结果如图5右侧所示, 在T1, T3, T4, T4-OOV这4个任务上二者的表现相近, 其中T1, T3, T4-OOV都取得了100%的准确率, 而MEMMA在T2, T2-OOV, T3-OOV, T5, T5-OOV这5个任务上的准确率都高于MEMR, 在所有10个任务上的平均准确率, 前者比后者高1.46%. 第6个任务来自真实对话场景的数据, 该数据中包含语音识别的错误和噪音, 同时又因为其从填槽对话中转换为端到端的类型, 任务整体难度更大. 在该任务上的实验结果如表1所示, 在每轮对话回复准确率的比较上, MEMMA比LTR-SEM和MEMR分别提高18.5%和1.4%; 在添加匹配特征后的比较中, MEMMA相比MEMR在每轮回复准确率上高2.6%. 实验结果表明, 在多轮对话的建模中, 本文提出的MEMMA比MEMR更加有效.
多注意力记忆网络具有相对简单的并行结构, 为了验证其有助于提高计算效率, 针对循环端到端记忆网络[13]和本文提出的网络, 我们选取二者在相同实验环境下的训练时间进行比较. 实验结果如表2所示, 取200次迭代训练的时间 (重复10次取平均值)作为比较基准, 在全部11个任务中, 本文提出的网络所需的训练时间相比MEMR均有所减少. 实验结果表明, 本文提出的多注意力记忆网络大约提升了50%的计算效率, 这是因为对于给定一个长度为
4 相关工作
在大多数NLP任务中, 例如机器翻译, 文本分类和对话建模[8,9,19], 现有工作已经证明循环或门控网络和自注意力机制的结合可以有效地进行语言建模. 这种序列对齐的循环结构使得其难以解决计算效率、梯度消失和长期依赖性的问题. 最近, 一系列语言建模和语言理解专注于记忆类网络. 记忆类网络可以通过学习读写内容来推理长期记忆模块, 并且已被广泛应用, 如语言建模[11], 问答[13,14]和多轮对话[15]. 相关的工作最早提出的是非端到端的记忆网络, 这种结构依赖额外的强监督信息输入, 所以并不是端到端的[20]. 后来的工作改进了记忆网络的组件, 例如, 读, 写和记忆模块. 一些研究使用动态记忆机制来调节记忆的相互作用, 但它具有代价较高的的手工特征功能和较复杂的循环或门控结构[13,14]. 本文提出基于多注意力机制[9]的记忆网络, 整体结构与记忆类网络类似, 包含可供读写的记忆单元, 但与现有记忆网络的不同之处在于: 1)使用并行的多注意力机制代替循环注意力机制, 结构较简单可以提高计算效率, 同时可以更有效地捕获全局依赖关系; 2)未依赖额外的监督信息或先验知识, 可以进行端到端的训练.
在神经网络优化的背景下, 梯度消失问题已经被研究了很长时间[21], 文献[16]提出了一种用于图像识别的残差连接(residual connections), 已被证明可有效地克服消失梯度问题. 类似的工作是Highway Network采用可微分的门控机制[17]. 本文引入捷径连接机制, 将多个多注意力层与捷径连接相结合构建叠加的多层重复结构.
5 结论本文提出一种多注意力记忆网络来对聊天机器人进行多轮对话的建模和推理. 具体而言, 首先采用关注不同对话轮次重要信息的多注意力机制对会话语境和历史记忆进行建模, 该机制具有相对简单和并行的结构. 然后提出了具有捷径连接的叠加多层推理结构. 与现有方法相比, 本文提出的网络不依赖于代价较大的附加监督信息或先验知识, 提供了一种更为简洁的端到端方式. 通过在bAbI数据集所有11个任务上的实验表明, 多注意力记忆网络可以有效地建模和推理多轮对话交互, 性能优于循环端到端记忆网络.
[1] |
商雄伟, 张志祥. 限定领域智能导学系统问题生成及对话管理技术. 计算机系统应用, 2015, 24(11): 242-246. DOI:10.3969/j.issn.1003-3254.2015.11.041 |
[2] |
Chen HS, Liu XR, Yin DW, et al. A survey on dialogue systems: Recent advances and new frontiers. ACM Sigkdd Explorations Newsletter, 2017, 19(2): 25-35. DOI:10.1145/3166054 |
[3] |
Huang YF, Li ZC, Zhang ZS, et al. Moon IME: Neural-based Chinese pinyin aided input method with customizable association. Proceedings of the 56th Annual Meeting of the Association for Computational Linguistics-System Demonstrations. Melbourne, Australia. 2018. 140–145.
|
[4] |
Zhang ZS, Li JT, Zhu PF, et al. Modeling multi-turn conversation with deep utterance aggregation. Proceedings of the 27th International Conference on Computational Linguistics. NM, USA. 2018. 3740–3752.
|
[5] |
Qiu MH, Li FL, Wang SY, et al. AliMe Chat: A sequence to sequence and rerank based chatbot engine. Proceedings of the 55th Annual Meeting of the Association for Computational Linguistics. Vancouver, Canada. 2017. 498–503.
|
[6] |
Hochreiter S, Schmidhuber J. Long short-term memory. Neural Computation, 1997, 9(8): 1735-1780. DOI:10.1162/neco.1997.9.8.1735 |
[7] |
Chung J, Gulcehre C, Cho K H, et al. Empirical evaluation of gated recurrent neural networks on sequence modeling. arXiv: 1412.3555, 2014.
|
[8] |
Sutskever I, Vinyals O, Le QV. Sequence to sequence learning with neural networks. Proceedings of the 27th International Conference on Neural Information Processing Systems. Montreal, Canada. 2014. 3104–3112.
|
[9] |
Vaswani A, Shazeer N, Parmar N, et al. Attention is all you need. Advances in Neural Information Processing Systems. Long Beach, CA, USA. 2017. 6000–6010.
|
[10] |
夏天赐, 孙媛. 基于联合模型的藏文实体关系抽取方法研究. 中文信息学报, 2018, 32(12): 76-83. DOI:10.3969/j.issn.1003-0077.2018.12.010 |
[11] |
Sukhbaatar S, Weston J, Fergus R, et al. End-to-end memory networks. Proceedings of the 29th Annual Conference on Neural Information Processing Systems. New York, NY, USA. 2015. 2440–2448.
|
[12] |
Miller A H, Fisch A, Dodge J, et al. Key-Value Memory networks for directly reading documents. Proceedings of the Conference on Empirical Methods in Natural Language Processing. Austin, TX, USA. 2016. 1400–1409.
|
[13] |
Kumar A, Irsoy O, Ondruska P, et al. Ask me anything: Dynamic memory networks for natural language processing. Proceedings of the 33rd International Conference on Machine Learning. New York, NY, USA. 2016. 1378–1387.
|
[14] |
Xiong CM, Merity S, Socher R. Dynamic memory networks for visual and textual question answering. Proceedings of the 33rd International Conference on Machine Learning. New York, NY, USA. 2016. 2397–2406.
|
[15] |
Bordes A, Boureau YL, Weston J. Learning end-to-end goal-oriented dialog. arXiv: 1605.07683, 2016.
|
[16] |
He KM, Zhang XY, Ren SQ, et al. Deep residual learning for image recognition. Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. Las Vegas, NV, USA. 2016. 770–778.
|
[17] |
Srivastava RK, Greff K, Schmidhuber J. Highway networks. arXiv: 1505.00387, 2015.
|
[18] |
Henderson M, Thomson B, Williams JD. The second dialog state tracking challenge. Proceedings of the SIGDIAL Conference. Philadelphia, PA, USA. 2014. 263–272.
|
[19] |
Weston J, Chopra S, Bordes A. Memory networks. Proceedings of International Conference on Learning Representations. New York, NY, USA. 2015.
|
[20] |
Devlin J, Chang M W, Lee K, et al. Bert: Pre-training of deep bidirectional transformers for language understanding. arXiv: 1810.04805, 2018.
|
[21] |
Srivastava RK, Greff K, Schmidhuber J. Training very deep networks. Proceedings of the 28th International Conference on Neural Information Processing Systems. Montreal, Canada. 2015. 2377–2385.
|