关于conversation generation的论文笔记
对话模型此前的研究大致有三个方向:基于规则、基于信息检索、基于机器翻译。基于规则的对话系统,顾名思义,依赖于人们周密设计的规则,对话内容限制在特定领域下,实际应用如智能客服,智能场馆预定系统。基于信息检索是指根据输入语句,在回复候选集中匹配最相近的语句作为回复,涉及到特征与排序算法的选择。优点是得到的回复通常语法正确、语义明确,但由于回复是事先存在的,因此不能很好的适应语境。还有一种思路源自机器翻译,使用神经网络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的论文笔记的更多相关文章
- 《SONG FROM PI: A MUSICALLY PLAUSIBLE NETWORK FOR POP MUSIC GENERATION》论文笔记
出处:ICLR 2017 Motivation 提出一个通用的基于RNN的pop music生成模型,在层次结构中封装了先验乐理知识(prior knowledge about how pop mus ...
- 【论文笔记系列】AutoML:A Survey of State-of-the-art (下)
[论文笔记系列]AutoML:A Survey of State-of-the-art (上) 上一篇文章介绍了Data preparation,Feature Engineering,Model S ...
- 【论文笔记】用反事实推断方法缓解标题党内容对推荐系统的影响 Click can be Cheating: Counterfactual Recommendation for Mitigating Clickbait Issue
Click can be Cheating: Counterfactual Recommendation for Mitigating Clickbait Issue Authors: 王文杰,冯福利 ...
- Deep Learning论文笔记之(四)CNN卷积神经网络推导和实现(转)
Deep Learning论文笔记之(四)CNN卷积神经网络推导和实现 zouxy09@qq.com http://blog.csdn.net/zouxy09 自己平时看了一些论文, ...
- 论文笔记之:Visual Tracking with Fully Convolutional Networks
论文笔记之:Visual Tracking with Fully Convolutional Networks ICCV 2015 CUHK 本文利用 FCN 来做跟踪问题,但开篇就提到并非将其看做 ...
- Deep Learning论文笔记之(八)Deep Learning最新综述
Deep Learning论文笔记之(八)Deep Learning最新综述 zouxy09@qq.com http://blog.csdn.net/zouxy09 自己平时看了一些论文,但老感觉看完 ...
- Twitter 新一代流处理利器——Heron 论文笔记之Heron架构
Twitter 新一代流处理利器--Heron 论文笔记之Heron架构 标签(空格分隔): Streaming-process realtime-process Heron Architecture ...
- Deep Learning论文笔记之(六)Multi-Stage多级架构分析
Deep Learning论文笔记之(六)Multi-Stage多级架构分析 zouxy09@qq.com http://blog.csdn.net/zouxy09 自己平时看了一些 ...
- Multimodal —— 看图说话(Image Caption)任务的论文笔记(一)评价指标和NIC模型
看图说话(Image Caption)任务是结合CV和NLP两个领域的一种比较综合的任务,Image Caption模型的输入是一幅图像,输出是对该幅图像进行描述的一段文字.这项任务要求模型可以识别图 ...
随机推荐
- visual studio 编译时 出现 Files 的值 乱码
参考了:http://blog.163.com/jiang_tao_2010/blog/static/121126890201031031337332/ 最近在做程序时,在生成解决方法过程中,电脑出现 ...
- thinkphp中redirect重定向后隐藏index.php
首先,.htaccess文件要配置好隐藏index.php.系统默认生成的就行. 然后,也是最关键的一部,要在Application/Home/Conf里的config.php文件中增加如下配置: & ...
- 8张图带你深入理解Java
1.字符串的不变性 下图展示了如下的代码运行过程: String s = "abcd";s = s.concat("ef"); 备注:String refe ...
- bzoj3163: [Heoi2013]Eden的新背包问题
Description “寄没有地址的信,这样的情绪有种距离,你放着谁的歌曲,是怎样的心心静,能不能说给我听.”失忆的Eden总想努力地回忆起过去,然而总是只能清晰地记得那种思念的感觉,却不能回忆起她 ...
- C语言每日一题之No.9
再做决定之前,我还是做好自己该做的.我不希望几年后会悔恨自己为什么在最该努力的时候不愿意吃苦.尊敬的女王陛下,请接题: 一.题目:有已按升序排好顺序的字符串a,编写程序将字符串s中的每个字符按升序的规 ...
- 互联网 DBA 需要做那些事(转)
众所周知,互联网DBA与传统行业DBA有很大的不同,那就是管理的机器多,新技术更新快,面对的开发多.网络环境复杂.要求7*24待机:这样就 导致互联网DBA的工作在传统DBA工作之上,增加了更多的复杂 ...
- spring2.5整合hibernate3.0整合Struts
首先:这是spring framework+hibernate+struts集成,spring主要用于aop和ioc,hibernate主要是用于持久层,struts主要是用于mvc. 同时关于spr ...
- Android酷炫实用的开源框架(UI框架) 转
Android酷炫实用的开源框架(UI框架) 前言 忙碌的工作终于可以停息一段时间了,最近突然有一个想法,就是自己写一个app,所以找了一些合适开源控件,这样更加省时,再此分享给大家,希望能对大家有帮 ...
- SparkSQL相关语句总结
1.in 不支持子查询 eg. select * from src where key in(select key from test); 支持查询个数 eg. select * from src w ...
- ADO.NET(完整修改和查询、实体类,数据访问类)
一.完整修改和查询 在编写c#语句时需考虑到用户体验,例如在编写修改语句时,需要考虑到输入的内容在数据库中是否能够找到. 中间变量运用. 1.先查 2.执行操作 完整修改语句: bool has = ...