对话系统学习笔记(1)
本文记录在对话系统的学习过程中的知识点,论文,对代码研究等方面。目前处于对论文研究的过程中,在此记录一下对相关论文的学习与理解。
1.Learning Phrase Representations using RNN Encoder–Decoder for Statistical Machine Translation
这篇文章提出的网络结构是基于RNN的编码器与解码器模型,它可以看作是Seq-to-Seq的前身,但是本文并未实现end-to-end。实现过程中,编码器将变长源输入映射到定长向量,解码器将向量表示映射回变长目标序列。这篇文章实现的是作为SMT系统的一部分,所以并没有实现端到端的操作。
该论文实现的模型如下:
该模型分为两个部分,Econder负责编码,将输入x循环输入到模型中,输入完成后,编码器将输出C作为中间量来输入到解码器中;其中解码器负责将C转为不定长序列输出,对于每一个预测,解码器将综合上一刻的预测,隐藏的节点以及输入C进行预测,公式如下:
该模型的应用是Seq-to-Seq的翻译系统。
2.Sequence to Sequence Learning with Neural Networks
这篇文章同样是应用于翻译模型,但是作者实现了end-to-end的形式,所以说这是首次实现了利用神经网络LSTM进行端到端的翻译。
实现模型如上图所示,与之前的模型相同的是该模型的Ecoder的输出为固定维度的向量,但是Decoder的输入为前一刻的目标值,在翻译过程中使用的了beam-search算法来寻找最有可能的翻译,通过这种方法,可以在一定程度上避免对一个输出出现错误后对以后翻译的影响,个人理解这种算法可以看作动态规划算法,每次在最可能的输出中选择几个值并综合之后的预测值来找到最佳的输出值。其中编码器和解码器分别使用两个LSTM神经网络来实现。其中,为了对模型进行优化,作者使用了4层LSTM。有意思的是作者发现在将输入的句子顺序进行颠倒后模型的预测准确率可以得到明显的提升,并且有助于模型在长句子的翻译上准确度。
3.A Neural Conversational Model
与上一篇论文的作者为同一人,模型的本质上没做太大的改变,但是提出了将S2S模型应用于对话系统这一观念,应该是在对话系统领域使用S2S模型的第一篇论文。
4.Teaching Machines to Converse
This paper put forward the problem of dialogue system from several aspects which I think is the point I can concentrate on: (1) how to produce specific, relevant and interesting answer (2) how to give machine personality emotion, resulting in a consistent response (3) the earliest confrontational learning method was proposed to generate the same as the level of human’s reply to the statement – let the generator and discriminator constantly training similar to the “Turing test” (4) finally give robots is put forward through the communication with people self- learning model of self-renewal.
以上这些问题就是李纪为博士在读博期间研究的方向,对于以上问题的解决方式,李博士给出的解决方案如下:
-
避免泛泛的回应(传统的S2S模型倾向生成无意义的回复),尽可的产生有意义的回应
A Diversity-Promoting Objective Function for Neural Conversation ModelsA Diversity-Promoting Objective Function for Neural Conversation Models作者在这一论文中给出了解决方式。 -
解决一致性问题,避免前后回答不一致
对话机器人给出的回复是由生成序列给出的,由于数据库的问题,对于相同意义的问题有可能会给出不一致的回答,作者在论文A persona-based neural conversation mode中给出了解决方案。 -
使用强化学习生成多轮对话,使对话可以持续下去
传统的S2S模型是根据单轮对话生成的,在多轮对话中表现比较一般,所以作者提出了可以使用RL来最大化长期奖励的期望来增加对话轮次,论文是Deep Reinforcement Learning for Dialogue Generation -
使用对生成对抗网络GAN产生对话
使用该网络一方面可以生成对话,扩大数据集,另一方面可以判别器更好的区分是人的语言还是机器生成的语言,通过生成器和判别器的对抗可以使S2S模型最终生成的网络更加接近人类的语言。参考论文为Adversarial learning for neural dialogue generation
以上为李纪为博士在读博期间对对话系统所存在问题所提出的几个解决方法,在之后会对每一篇论文进行研究,看一下能否从中得到启发。