自然语言对话关键技术及系统
【原文:尚利峰 蒋 欣 陈 晓--华为诺亚方舟实验室 自然语言对话关键技术及系统 载于中国计算机学会通讯-第14卷-第9期-2018年9月】
第一代对话系统是在1980年代末发展起来的基于规则系统,第二代是1990年代的统计对话系统,第三代就是近年发展的基于深度学习的端到端对话系统。统计对话系统中有基于部分可观测马尔可夫决策过程(Partially Observable Markov Decision Processes,POMDP)[1],考虑了所有可能的置信状态,因此对输入噪声有更好的鲁棒性。早期的深度对话系统有检索式对话系统[2,3],通过卷积神经网络(CNNs)和多层感知机(Multi-Layer Perceptron,MLP)来得到文本的语义相关度。
由于语言的复杂性和多样性,基于规则的方法很难应用于开放领域,生成式对话模型就应运而生,在理解人类对话基础上,自适应的根据对话内容生成新的对话。如图1所示,由编码器和解码器两部分组成,前者实现语义理解,后者实现语言生成。全局是针对整体语义,局部侧重各个局部语义,有针对性地回复,该模型主要用来进行单轮对话。除此之外,我们平常对话中,经常有在回复中“复制”输入的部分文本的情况。可以在此基础上通过混合概率模型决定生成还是复制。
图1 神经响应机[4] (本图选自原文)
在实现对话过程中,为了生成既包含正确的知识又流畅的回复,Yin等人提出了如图2可以查询外部知识库的端到端深度对话系统[5]:神经生成式问答系统,其中的查询器就是负责知识库的查询,实验证明基于CNN的表现最优,超过了传统的基于检索的问答系统及神经响应机。
图2 神经生成式问答系统 (本图选自原文)
前面的深度对话模型缺少显式的对话管理模块,不太适用于以任务完成为目的。Wen等人提出了以任务驱动的多轮深度对话系统[6],如图3所示。其中每个模块都是通过神经网络进行建模,自然语言理解是循环神经网络(或CNN)来实现,状态更新是Jordan循环神经网络来实现,策略选择的输入由更新后的对话状态、查询数据库结果和用户当前输入的意图向量构成,接着计算得到机器的行为,生成部分则是另外的循环神经网络。随着深度学习的不断发展,与符号处理的融合是该方向的一个重要探索。
图3 任务驱动的多轮深度对话系统 (本图选自原文)
经过此次论文研读,使我对NLP在对话系统中的应用有更深入的了解,以前只是停留在表面的认知,现在理解了模型在系统中的运作过程,不同神经网络的优势,在普通CNN或循环神经网络上增加attention机制的成效,此外结合上下文的自然语言理解仍是当前的一个重点方向。
参考文献:
[1] Young S, Gašić M, Thomson B, et al. POMDP-Based Statistical Spoken Dialog Systems: A Review[J]. Proceedings of the IEEE, 2013, 101(5):1160-1179.
[2] Hu B, Lu Z, Li H, et al. Convolutional Neural Network Architectures for Matching Natural Language Sentences[J]. Advances in Neural Information Processing Systems, 2015, 3:2042-2050.
[3] Kalchbrenner N, Grefenstette E, Blunsom P. A Convolutional Neural Network for Modelling Sentences[J]. Eprint Arxiv, 2014, 1.
[4] Shang L, Lu Z, Li H. Neural Responding Machine for Short-Text Conversation[J]. 2015:52-58.
[5] Jun Y, Jiang X, Lu Z, et al. Neural generative question answering,2015.
[6] Wen T H, Vandyke D, Mrksic N, et al. A Network-based End-to-End Trainable Task-oriented Dialogue System[J]. 2016.
撰稿:周岑钰
审稿:丁美荣