对话模型此前的研究大致有三个方向:基于规则、基于信息检索、基于机器翻译。基于规则的对话系统,顾名思义,依赖于人们周密设计的规则,对话内容限制在特定领域下,实际应用如智能客服,智能场馆预定系统。基于信息检索是指根据输入语句,在回复候选集中匹配最相近的语句作为回复,涉及到特征与排序算法的选择。优点是得到的回复通常语法正确、语义明确,但由于回复是事先存在的,因此不能很好的适应语境。还有一种思路源自机器翻译,使用神经网络encode-decode框架:将输入语句映射为向量,根据向量生成回复。需要注意的是,对话生成与机器翻译有明显不同的地方:机器翻译要求输入与输出的语义完全一致,但在对话中需要有话题深入等语义偏移的情况。

这里总结的4篇文章均基于机器翻译的思路,使用神经网络为对话生成建模。第一篇文章是最典型的encode-decode结构;第二篇文章在decode网络输入部分做了修改,建模“回复中的词语各侧重于上下文不同部分”这一情况;第三篇文章在encode网络处做了修改,没有使用与decode部分同类的网络,输入也换成了context与message的bag-of-word,直观理解,更偏向于对输入语句主题的提炼挖掘。第四篇文章修改了decode网络的目标函数,意图使系统生成更丰富的回答,而不是一些通用于各种语境的无效回复,如”I don’t know”。

1.《A Neural Conversational Model》

purely data driven approach without rules,采用了seq2seq框架,使用两个LSTM,分别:将输入语句映射为固定长度的向量,根据向量预测对话中的下一句话。在特定主题的数据集IT helpdesk troubleshooting和无特定主题的电影对白数据集OpenSubtitles上进行了实验,可以回答某些简单问题,但是与其他对话系统一样,存在前后话题一致性的问题。

Overview:

2.《Neural Responding Machine for Short-Text Conversation》

同样采用了seq2seq框架,使用的是两个RNN:从输入语句中习得潜在语义(encode),然后根据潜在语义生成应答语句(decode)。这篇论文创新之处在于decode网络输入变量的构造上——往常的seq2seq模型是将encode网络的最后一个隐状态作为decode网络各个时刻的输入;但在这里,是将encode网络各个时刻的隐状态加权之后,作为decode网络不同时刻的输入。不同时刻下,decode网络中的输入不同,因为对encode隐状态使用的权值不同。直观的理解是,对于decode网络将生成的新词,它对应的是上下文信息中的某一部分,而不是整个上下文信息,因此使用权重来加强对应的部分。这种思路最初见于《NEURAL MACHINE TRANSLATION BY JOINTLY LEARNING TO ALIGN AND TRANSLATE》,并且在其中提到了权重的计算方法:需要计算此时decode网络的前一个隐状态和的encode网络各隐状态的“对齐”情况,单独使用一个神经网络训练完成的。文中取的最好效果的模型还需要在上述方法中加一些改进:输入到decode网络各时刻的变量,由encode网络各时刻隐状态加权结果与encode网络最后时刻隐状态连接而成。

Overview:

Decoder:standard RNN

Global scheme

local scheme:

Combine global and local:

3.《A Neural Network Approach to Context Sensitive Generation of Conversational Responses》

encoder为多层前向网络,decoder为RNN。论文中将对话分为context,message,response。其中,为了保持上下文信息,在encoder的输入为对话中context和message的bag-of-word(文中考虑了context、message词袋合并、分开两种情况),并且encoder网络最后一层的输出向量参与到decoder的每个隐层计算中去。

4.《A Diversity-Promoting Objective Function for Neural Conversation Models》

对话模型倾向于生成一些通用的回答,譬如“I don’t know”,无论前一句是什么都适用。针对这个问题,作者提出了新的decode网络目标函数,希望可以生成多样化的回答。Decode网络通常使用的目标函数是使得输出句子在给定输入时取得最大似然(见公式7),作者提出目标函数应使得输入句与输出句有最大互信息(见公式8),以此来限制通用的、与上下文无关的回答。

作者对公式8进行了两种变形(公式9,公式10),对应着论文中的两种实现思路,推导过程及结果见下图。针对公式9,作者还进一步考虑了:头几个生成的词语对整个输出句子的影响很大,因此对头几个词乘上惩罚系数,鼓励那些概率不那么大的词作为句首,希望借此生成更丰富的回答;鼓励生成更长的句子,但设有上限(20个词)。针对公式10,需要计算给定回复下得到输入句的概率(P(S|T)),这要求先生成回复T,而T搜索空间极为巨大。故作者在实现时先使用P(S|T)求得N-best候选应答,然后在再根据完整的公式10重排,得到最佳应答(近似)。

关于conversation generation的论文笔记的更多相关文章

  1. 《SONG FROM PI: A MUSICALLY PLAUSIBLE NETWORK FOR POP MUSIC GENERATION》论文笔记

    出处:ICLR 2017 Motivation 提出一个通用的基于RNN的pop music生成模型,在层次结构中封装了先验乐理知识(prior knowledge about how pop mus ...

  2. 【论文笔记系列】AutoML:A Survey of State-of-the-art (下)

    [论文笔记系列]AutoML:A Survey of State-of-the-art (上) 上一篇文章介绍了Data preparation,Feature Engineering,Model S ...

  3. 【论文笔记】用反事实推断方法缓解标题党内容对推荐系统的影响 Click can be Cheating: Counterfactual Recommendation for Mitigating Clickbait Issue

    Click can be Cheating: Counterfactual Recommendation for Mitigating Clickbait Issue Authors: 王文杰,冯福利 ...

  4. Deep Learning论文笔记之(四)CNN卷积神经网络推导和实现(转)

    Deep Learning论文笔记之(四)CNN卷积神经网络推导和实现 zouxy09@qq.com http://blog.csdn.net/zouxy09          自己平时看了一些论文, ...

  5. 论文笔记之:Visual Tracking with Fully Convolutional Networks

    论文笔记之:Visual Tracking with Fully Convolutional Networks ICCV 2015  CUHK 本文利用 FCN 来做跟踪问题,但开篇就提到并非将其看做 ...

  6. Deep Learning论文笔记之(八)Deep Learning最新综述

    Deep Learning论文笔记之(八)Deep Learning最新综述 zouxy09@qq.com http://blog.csdn.net/zouxy09 自己平时看了一些论文,但老感觉看完 ...

  7. Twitter 新一代流处理利器——Heron 论文笔记之Heron架构

    Twitter 新一代流处理利器--Heron 论文笔记之Heron架构 标签(空格分隔): Streaming-process realtime-process Heron Architecture ...

  8. Deep Learning论文笔记之(六)Multi-Stage多级架构分析

    Deep Learning论文笔记之(六)Multi-Stage多级架构分析 zouxy09@qq.com http://blog.csdn.net/zouxy09          自己平时看了一些 ...

  9. Multimodal —— 看图说话(Image Caption)任务的论文笔记(一)评价指标和NIC模型

    看图说话(Image Caption)任务是结合CV和NLP两个领域的一种比较综合的任务,Image Caption模型的输入是一幅图像,输出是对该幅图像进行描述的一段文字.这项任务要求模型可以识别图 ...

随机推荐

  1. DIV的垂直居中

    一直以来都没有找到一种完美解决DIV垂直居中的方法,今天终于找到了,特记录如下,从此不再用table来居中了.^^ <html> <style> #image{ width:5 ...

  2. 【转】深入分析 iBATIS 框架之系统架构与映射原理

    深入分析 iBATIS 框架之系统架构与映射原理 iBATIS 通过 SQL Map 将 Java 对象映射成 SQL 语句和将结果集再转化成 Java 对象,与其他 ORM 框架相比,既解决了 Ja ...

  3. Python装饰器通用样式

    装饰器本质上是一个函数,该函数用来处理其他函数,它可以让其他函数在不需要修改代码的前提下增加额外的功能,装饰器的返回值也是一个函数对象.它经常用于有切面需求的场景,比如:插入日志.性能测试.事务处理. ...

  4. RabbitMQ和Kafka

    转自通九大神的博客 起因 最近公司RabbitMQ的集群出了点问题,然后有些亲就说RabbitMQ慢且不好用,是一个瓶颈,不如换成Kafka.而我本人,使用RabbitMQ有一点久了,认为这个事情应当 ...

  5. 互联网 DBA 需要做那些事(转)

    众所周知,互联网DBA与传统行业DBA有很大的不同,那就是管理的机器多,新技术更新快,面对的开发多.网络环境复杂.要求7*24待机:这样就 导致互联网DBA的工作在传统DBA工作之上,增加了更多的复杂 ...

  6. HelloHibernate详解

    1. Configuration管理读取配置文件 //读取src下hibernate.properties,不推荐使用 Configuration cfg = new Configuration(); ...

  7. HDU 1257 最少拦截系统(贪心)

    解题思路:用一个vector存下数据,从头开始非递增遍历,并把符合条件的删除,一次操作,ans++,当vector为空时退出循环.(PS:学到了vector的erase操作,竟然还有返回值,涨姿势了) ...

  8. MST_prim

    刚刚发了mst 的kruskal,现在再来一发,说一说prim咯. prim适用于稠密图. 与kruskal不同,prim是从一个点开始,不断加入新的点直至连通所有点. 讲讲prim的过程,我们假定有 ...

  9. bug_ _图片_android.view.InflateException: Binary XML file line #1: Error inflating class <unknown>

    =========== 1   java.lang.RuntimeException: Unable to start activity ComponentInfo{com.zgan.communit ...

  10. Java代码规范、格式化和checkstyle检查配置文档

    http://www.blogjava.net/amigoxie/archive/2014/05/31/414287.html 文件下载: http://files.cnblogs.com/files ...