最近学习了一篇ACL会议上的文章,讲的是做一个短文对话的神经反映机,

  原文:

  会议:ACL(2015)

  文章条目:    Lifeng Shang, Zhengdong Lu, Hang Li:

  Neural Responding Machine for Short-Text Conversation. 1577-1586

  写下学习笔记:

  

  拓展:Attention Model 注意力模型,本文中提到所采用的Encoder-Decoder框架。

  

  可以把它看作适合处理由一个句子(或篇章)生成另外一个句子(或篇章)的通用处理模型。

    X表示输出的句子,Y表示输出的句子。

  Encoder对输入句子进行编码,转化成中间语义表示

  Decoder对中间语义及已经生成的历史信息y1,y2,…生成i时刻要生成的单词yi,很多个yi串起来就形成了Y,即输出的句子。

  

  其中编码和解码都有很多可用的神经网络模型,如CNN/RNN/LSTM/深度LSTM等等,有很多种组合可以尝试。在文本处理中比较常见的Endocer和Decoder都采用RNN模型。

  

  而本文也采用了seq2seq(Sequence to Sequence)模型,该模型可以运用在很多地方,比如说文章自动摘要、机器翻译、人机对话等等。(其实就是一个Encoder和Decoder模型,然后Encoder和Decoder用的都是RNN中的GRU网络)。因此本文中的Encoder-Decoder模型本质上来说应该是这样的:

  

  Short-Text Conversation(STC)指的是单轮对话任务——也就是对于每一个输入post给出一个对应的response。以往的STC方法主要有两种:检索式的方法(retrieval-based method)和统计机器翻译(statistical machine learning, SMT)。但是检索式的事先都固定好了,太缺乏多样性,而统计机器翻译将它作为一个翻译任务,而有时候post和respond是完全没有一点语义关系的。

  

  本文采取通用的Encoder-Decoder模型,同时利用了seq2seq模型,在编码和解码的过程中都用的是循环神经网络CNN中的GRU(没有用LSTM是因为LSTM的参数太多,用GRU相对简单一些并且效果还不错),并设计了一个基于神经网络的短文对话响应机NRM(相当于机器对话),训练数据是通过微博收集的大量一轮的对话。

  

  首先获取数据,遵从经典的步骤,首先是删除无意义词如”wow”;筛除广告;只留前30个人的回复。

  

  接下来转化的模型:

  

  

  主要是这个L很重要,要能够表示输入句子的特性,这里要用到注意力模型确定h中的哪一步分需要着重考虑。由输入数据和y1,y2,…yi-1决定。

  

  解码用到下面的模型:

  

  虚线代表 g(.) ,实线代表 f(.)

  

  

  编码方案提出了三种:

  global scheme(NRM-glo):

 简单定义       hT 为Ct

  local scheme(NRM-loc):

      这里用到了注意力模型(AM模型),动态决定 ,而

  hybrid scheme combines the aforementioned 2(NRM-hyb):

  

  第一种全局的方法能抓住post的全局特征,而第二种局部的方法能倚靠AM模型选择不同位置的单词作为重要特征,因此第三种方法可以混合一下前两种方法。模型如下:

  

  实验证明检索式的方法效果和NRM-glo差不多,因为它基本使用的都是预定义的responses,不会有一些语法上的问题,同时匹配特征保证了responses和post的相关性,

因此从表面上看来这是最合适的回答,但是实际上它只是重复了post说的内容而已,而NRM-hyb结合了global和local的优点之后,performance明显好于其他方法。

短文对话的神经反应机 -- Neural Responding Machine for Short-Text Conversation学习笔记的更多相关文章

  1. Neural Turing Machine - 神经图灵机

    Neural Turing Machine - 神经图灵机 论文原文地址: http://arxiv.org/pdf/1410.5401.pdf 一般的神经网络不具有记忆功能,输出的结果只基于当前的输 ...

  2. Dynamic CRM 2013学习笔记(四十)流程3 - 对话(Dialog)用法图解

    我们将用对话来实现一个简单的满意度调查,下一个问题依赖于上一个问题.对话是同步的,不同于工作流既可以是同步也可以是异步的:对话可以跟用户互动:对话只能手动开始:对话只支持 .Net Framework ...

  3. Phrase-Based & Neural Unsupervised Machine Translation基于短语非监督机器翻译

    1. 前言 本文介绍一种无监督的机器翻译的模型.无监督机器翻译最早是<UNSUPERVISED NEURAL MACHINE TRANSLATION>提出.这个模型主要的特点,无需使用平行 ...

  4. 深度学习笔记 (一) 卷积神经网络基础 (Foundation of Convolutional Neural Networks)

    一.卷积 卷积神经网络(Convolutional Neural Networks)是一种在空间上共享参数的神经网络.使用数层卷积,而不是数层的矩阵相乘.在图像的处理过程中,每一张图片都可以看成一张“ ...

  5. ufldl学习笔记与编程作业:Multi-Layer Neural Network(多层神经网络+识别手写体编程)

    ufldl学习笔记与编程作业:Multi-Layer Neural Network(多层神经网络+识别手写体编程) ufldl出了新教程,感觉比之前的好,从基础讲起,系统清晰,又有编程实践. 在dee ...

  6. 卷积神经网络用语句子分类---Convolutional Neural Networks for Sentence Classification 学习笔记

    读了一篇文章,用到卷积神经网络的方法来进行文本分类,故写下一点自己的学习笔记: 本文在事先进行单词向量的学习的基础上,利用卷积神经网络(CNN)进行句子分类,然后通过微调学习任务特定的向量,提高性能. ...

  7. 神经风格转换Neural Style Transfer a review

    原文:http://mp.weixin.qq.com/s/t_jknoYuyAM9fu6CI8OdNw 作者:Yongcheng Jing 等 机器之心编译 风格迁移是近来人工智能领域内的一个热门研究 ...

  8. 深度学习笔记之关于基本思想、浅层学习、Neural Network和训练过程(三)

    不多说,直接上干货! 五.Deep Learning的基本思想 假设我们有一个系统S,它有n层(S1,…Sn),它的输入是I,输出是O,形象地表示为: I =>S1=>S2=>….. ...

  9. Neural Networks and Deep Learning(神经网络与深度学习) - 学习笔记

    catalogue . 引言 . 感知器及激活函数 . 代价函数(loss function) . 用梯度下降法来学习-Learning with gradient descent . 用反向传播调整 ...

随机推荐

  1. C#继承机制 C#中的继承符合下列规则

    1.继承是可传递的.如果C从B中派生,B又从A中派生,那么C不仅继承了B中声明的成员,同样也继承了A中的成员.Object 类作为所有类的基类. 2.派生类应当是对基类的扩展.派生类可以添加新的成员, ...

  2. nginx入门学习步骤(linux)

    一.nginx下载(nginx-1.9.9) http://nginx.org/download/ 二.解压到指定文件夹 tar -zxvf 解压缩文件 三.设置配置信息 在nignx解压文件夹内执行 ...

  3. 30. 与所有单词相关联的字串、java实现

    题目描述: 给定一个字符串 s 和一些长度相同的单词 words.在 s 中找出可以恰好串联 words 中所有单词的子串的起始位置. 注意子串要与 words 中的单词完全匹配,中间不能有其他字符, ...

  4. tcl之string操作

  5. Linux文件类型 扩展名的作用

    链接类型文件 查找显示管道文件 普通文件类型 file 查看文件的类型 data文件类型 创建块字和符设备 mknod 1,.tar .tar.gz .tgz .zip tar.bz 表示压缩文件,创 ...

  6. C#+VisionPro连接相机获取图像的两种方式

    两种比较常用的方式. C#直接连接相机获取图像(GIGE) 在获取图像前,需要先创建一个相机对象,再使用这个相机对象的Acquire方法拍摄照片. ICogAcqFifo macqfifo;//定义相 ...

  7. RF,GBDT,XGBoost,lightGBM的对比

    转载地址:https://blog.csdn.net/u014248127/article/details/79015803 RF,GBDT,XGBoost,lightGBM都属于集成学习(Ensem ...

  8. Nodejs-文件系统操作

    1.相关模块 2.同步调用和异步调用 注意:他们的捕获异常的方式不一样 写入文件 语法 以下为异步模式下写入文件的语法格式: fs.writeFile(filename, data[, options ...

  9. Cakephp在Controller中显示sql语句

    Cakephp在Controller中查询语句一般是: $this->Model->find(); 那么这条语句对应的sql语句是什么呢? 可以通过下面方法显示: 1. $dbo = Co ...

  10. VMware workstation 9.0中安装Windows server 2012 和 Hyper-v

    一.准备工作 首先下载和安装和安装VMware workstation 9.0 下载Windows server 2012 iso镜像文件 二.安装Windows server 2012虚拟机 1.新 ...