前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >一文简述生成式对话

一文简述生成式对话

作者头像
CodeInHand
发布2018-04-16 10:22:57
2.5K0
发布2018-04-16 10:22:57
举报
文章被收录于专栏:Pytorch实践Pytorch实践

由于AI技术的发展,对话机器人也得到了广泛关注和应用,例如Siri、Alexa等。关于目前的人机对话可以分为两种:任务型对话(辅助购物、导航、商场指示、天气询问、病情询问等),非任务式对话(聊天等)。任务型对话的实现需要针对特定任务定义大量Intention,并对不同的Intention定义不同的Action,一般不需要太多数据。本文主要关注于非任务型对话系统的构建,目前主流方法是基于深度学习的生成式模型。

Seq2Seq模型

Seq2Seq模型是目前做生成对话的主流模型。模型源于机器翻译,机器翻译将一种源语言转换为另一种目标语言,是一个序列sequence到另一个序列sequece的转化。对话也可以看成是由Question到Answer的转换。所以seq2seq模型很快应用到对话过程。具体模型(如下图)可以解释为:

给定一句话X, X由T个词语构成:

需要得到回复Y,Y由T'词语构成:

seq2seq模型实质是encoder-decoder模型,先将X进行编码,再利用编码后得到的X表达进行Y的预测。编码和解码的建模采用RNN,一般使用LSTM或GRU。可以将seq2seq的模型理解为给定X的RNN语言模型,若没有X的encoder输入就是普通的RNN语言模型。模型优化目标函数为给定X生成Y的最大概率:

RNN计算过程为:

对于GRU,相比simple-RNN主要是迭代过程中f(x)函数不一样。

Attention机制

Attention机制就是注意力机制,最早出现在图像中,用于关注局部特征。后来引入NLP方向,对话系统中,产生回复时需要关注上一句话中的特定词,例如“你叫什么名字?”中名字的重要性会高于其他词。这就是注意力机制,可以简单地理解为用于产生文本不同部分的重要性权重。 通过encoder得到上一句各词语的表示为:

在decoder过程中,需要使用encoder得到的数据,若直接采用RNN最后一个cell的输出会丢失很多中间词语的信息。所以一般采用Attnetion机制。即解码过程看到Si-1词语时,在生成Si词应该关注上一句中的哪些词语。

发展趋势

(1)引入历史对话

上述seq2seq只是已知一句话,生成下一句话。其实对话过程要结合上下文进行生成。例如A:“你喜欢旅游吗”;B:"喜欢"。如果仅仅是知道一句话“喜欢”,生成下一句可能没有任何意义。所以要引入历史对话信息。目前主要是Serban建立的分层模型HRED[1]。

(2)提高回复的多样性

由于seq2seq建模采用的是极大似然估计,即已知X以最大概率生成Y.往往给出的回复会倾向于安全而没有意义的回复,例如“嗯”,“好的”,“是的”这类的。为提高回复的多样性,目前有多种做法:目标函数添加互信息;解码方式改进Beam Search;引入Variable变量等。

(3)引入知识

对话中引入知识非常有必要,毕竟不是所有问题都是闲聊。例如询问“姚明身高多少?”这类回复,需要引入知识来解决。[2]

参考文献

[1] I. Serban, A. Sordoni, Y. Bengio, A. Courville, and J. Pineau. Building end-to-end dialogue systems using generative hierarchical neural network models. In AAAI Conference on Artificial Intelligence, 2016.

[2] P. Vougiouklis, J. Hare, and E. Simperl. A neural network approach for knowledge-driven response generation. In Proceedings of COLING 2016, the 26th International Conference on Computational Linguistics:Technical Papers, pages 3370–3380, Osaka, Japan, December 2016. The COLING 2016 Organizing Committee.

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-04-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 CodeInHand 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Seq2Seq模型
    • Attention机制
      • 发展趋势
        • 参考文献
        相关产品与服务
        机器翻译
        机器翻译(Tencent Machine Translation,TMT)结合了神经机器翻译和统计机器翻译的优点,从大规模双语语料库自动学习翻译知识,实现从源语言文本到目标语言文本的自动翻译,目前可支持十余种语言的互译。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档