Seq2Seq模型简介

Seq2Seq模型是输入输出长度不确定的模型。例如将一句中文翻译成英文,那么这句英文的长度有可能会比中文短,也有可能会比中文长,所以输出的长度就不确定了。
在网络结构中,输入一个中文序列,然后输出它对应的中文翻译,输出的部分的结果预测后面,根据上面的例子,也就是先输出“machine”,将"machine"作为下一次的输入,接着输出"learning",这样就能输出任意长的序列。
机器翻译、人机对话、聊天机器人等等,这些都是应用在当今社会都或多或少的运用到了我们这里所说的Seq2Seq。
举个简单的例子,当我们使用机器翻译时:输入(Hello) —>输出(你好)。再比如在人机对话中,我们问机器:“你是谁?”,机器会返回答案“我是某某某”。如下图所示为一个简单的邮件对话的场景,发送方问:“你明天是否有空”;接收方回答:“有空,怎么了?”。

Seq2Seq结构

seq2seq属于encoder-decoder结构的一种,这里看看常见的encoder-decoder结构,基本思想就是利用两个RNN,一个RNN作为encoder,另一个RNN作为decoder。encoder负责将输入序列压缩成指定长度的向量,这个向量就可以看成是这个序列的语义,这个过程称为编码,如下图,获取语义向量最简单的方式就是直接将最后一个输入的隐状态作为语义向量C。也可以对最后一个隐含状态做一个变换得到语义向量,还可以将输入序列的所有隐含状态做一个变换得到语义变量。

RNN网络而decoder则负责根据语义向量生成指定的序列,这个过程也称为解码,如下图,最简单的方式是将encoder得到的语义变量作为初始状态输入到decoder的RNN中,得到输出序列。可以看到上一时刻的输出会作为当前时刻的输入,而且其中语义向量C只作为初始状态参与运算,后面的运算都与语义向量C无关。

语义向量只作初始化参数参与运算 decoder处理方式还有另外一种,就是语义向量C参与了序列所有时刻的运算,如下图,上一时刻的输出仍然作为当前时刻的输入,但语义向量C会参与所有时刻的运算。

Seq2Seq网络架构

由图可见Seq2Seq是由多个LSTM框架组成,encode把输入信息进行解码翻译成向量,decode进行编码输出合成信息。

Seq2Seq存在的问题

在网络模型中encode不断将模型往进压缩,压缩的时候可能比较注重最后一个单词,而损失其他的一些信息。如上图所示。还有一种情况是输入序列太大,LSTM虽然也有记忆功能但是在解码输入信息太长时会损失部分信息。

Seq2Seq存在的问题的解决方案

1 Attention机制

2 Bucket机制

Seq2Seq详解分析相关推荐

  1. java线程的生命周期及wait(),notify(),notifyAll()的详解分析

    1.java线程的生命周期     线程是一个动态执行的过程,它也有一个从产生到死亡的过程. (1)生命周期的五种状态 新建(new Thread)     当创建Thread类的一个实例(对象)时, ...

  2. 详解分析MySQL8.0的内存消耗

    文章来源: 学习通http://www.bdgxy.com/ 普学网http://www.boxinghulanban.cn/ 智学网http://www.jaxp.net/ 目录 1.innodb_ ...

  3. php java集成_PHP和Java 集成开发详解分析 强强联合第1/4页

    PHP和Java 集成开发详解分析 强强联合第1/4页 更新时间:2008年11月14日 12:28:23   作者: 很久以前,有人从www上看到看到天空上一个很亮的亮点,它就是Java语言,与此同 ...

  4. c语言菜单选择如何用字符形式,【创客天地】计算机二级C语言、VB考试详解分析...

    原标题:[创客天地]计算机二级C语言.VB考试详解分析 01 马上就要迎来计算机二级考试了,你准备好了吗?今天助手君准备了一点C语言干货,希望对即将考试的你有所帮助.(上期刚刚推了office,有需要 ...

  5. 好用的CAD看图软件功能详解分析

    CAD制图工作中,我们都知道需要查看编辑等很多操作,这里有CAD看图软件,好用的CAD功能详解分享,提供6种基本看图模式,3种三维看图方法,6种CAD图纸编辑功能,加上3种CAD转换功能,且完全免费. ...

  6. UNet论文详解分析

    论文地址:https://arxiv.org/abs/1505.04597 一.概要 2015年UNet的出现使得原先需要数千个带注释的数据才能进行训练的深度学习神经网络大大减少了训练所需要的数据量, ...

  7. 超详细!动态规划详解分析(典型例题分析和对比,附源码)

    为啥要使用动态规划?什么时候使用动态规划?以下是我的一些理解和心得,如果你感兴趣,就接着往下看吧. 对您有帮助的话记得给我点个赞哟! 动态规划的基本思想 动态规划(Dynamic Programmin ...

  8. 让大学生校招逆袭的Spring三十五问,四万字详解分析(堪称2022年大学生毕业面试指南)

    有人说,"Java程序员都是Spring程序员",我不太赞成这个观点,但是这也可以看出Spring在Java世界里举足轻重的作用. 基础 1.Spring是什么?特性?有哪些模块? ...

  9. MVC之前的那点事儿系列(2):HttpRuntime详解分析(上)

    文章内容 从上章文章都知道,asp.net是运行在HttpRuntime里的,但是从CLR如何进入HttpRuntime的,可能大家都不太清晰.本章节就是通过深入分析.Net4的源码来展示其中的重要步 ...

最新文章

  1. 数据分析IJCAI 2020:录用率12.6%,华人占据半壁江山,表征学习、GNN成热点 | AI日报...
  2. 芯讯通1月28号晚上八点直播-C-V2X产业链生态思考,关注易贸智慧互联公众号免费收听...
  3. 安装引导黑屏_给电脑安装系统老是装不上,重启就黑屏,原来是这项设置在作怪!...
  4. GridView实现CheckBox全选
  5. Android 开源框架Universal-Image-Loader全然解析(二)--- 图片缓存策略具体解释
  6. 高斯混合模型聚类_高斯混合模型的解释及Python实现
  7. 手机游戏开发平台有哪些
  8. java盘盈盘亏_反映财产物资的盘盈、盘亏和毁损情况,应当设( )科目。
  9. 10个维修中最常见的蓝屏代码,值得收藏!
  10. 开奶茶店,哪里学奶茶的制作配方?
  11. @Transactional注解什么情况会失效?
  12. 陪审团(算法竞赛进阶指南)
  13. 中国智能制造2025及工业物联网
  14. 如何设置Windowsxp 自动登录
  15. 如何使用Github的Action实现博客的自动部署
  16. Nacos 实现 AP+CP原理[Raft 算法 ]
  17. 英语总结—— 翩若惊鸿, 婉若游龙
  18. 麻省理工算法导论(含教材、讲义、答案)
  19. 【算法设计与分析】-- 贪心法
  20. 基于Urbansound8K数据集的环境声识别的方法简述

热门文章

  1. 【史纲】近现代史纲要知识说明
  2. 陀螺问答一周TOP 10榜单:Libra落地之路一波三折
  3. 保护卡下机房维护(装缷软件,改变设置)
  4. 关于普通端口映射的原理
  5. 金蝶KIS专业版销售出库反审核不成功,销售订单关联的出库数量为负!
  6. 如何用C/C++生成一个为lua所用的动态库dll文件以及lua如何调用该dll(C语言的动态库)
  7. 关于共享单车的一点想法
  8. [SAE] [FC] 阿里云 Serverless 产品横行对比: 应用引擎与函数计算
  9. java获取明天时间
  10. Siliconlabs Matter Over Wifi分享