1.什么是seq2seq:

最基础的Seq2Seq模型包含了三个部分,即Encoder、Decoder以及连接两者的中间状态向量,Encoder通过学习输入,将其编码成一个固定大小的状态向量c,继而将c传给Decoder,Decoder再通过对状态向量c的学习来进行输出。EOS表示encoder阶段的结束,Decoder阶段解码的开始。

2.seq2seq+attention:

1) 为什么要加attention:

lstm模型虽然具有记忆性,但是当Encoder阶段输入序列过长时,解码阶段的lstm无法很好的针对最早输入的序列(可能会遗忘最早的序列信息)。

2) attention如何加入:

在Decoder阶段:将每一时刻解码的输入(上一时刻的输出)与Encoder阶段所有时刻隐藏层的输出信息进行加权求和(通俗点讲就是:在预测下一个词时都会把Encoder阶段的信息都看一遍,决定预测当前词和Encoder中的哪些词相关)。得到Decoder阶段当前时刻的Ci(每个时刻都会有一个新的Ci)。当前时刻隐藏层的新状态Si则是根据上一时刻的状态Si-1,Yi-1,Ci 三者的一个非线性函数得出。

3)对齐机制的attention:

在Decoder阶段每一时刻解码获得的Ci向量与普通attention一样,隐藏层状态Si的获得不同,Si是根据Si-1,Yi-1,Ci和Encoder阶段对应时刻的输出。

Ci向量获得的模型图

ai,j表示Encoder中每个时刻的权重参数,Si-1表示Decoder中上一个时刻输出的状态信息,hk表示Encoder阶段中每个时刻隐藏层的输出。

对齐attention机制模型图: decoder中若是没有h1的输入则表示是非对齐的attention

3.seq2seq应用场景:

由于这种Encoder-Decoder结构不限制输入和输出的序列长度,因此应用的范围非常广泛,比如:

机器翻译。Encoder-Decoder的最经典应用,事实上这一结构就是在机器翻译领域最先提出的

文本摘要。输入是一段文本序列,输出是这段文本序列的摘要序列。

阅读理解。将输入的文章和问题分别编码,再对其进行解码得到问题的答案。

语音识别。输入是语音信号序列,输出是文字序列

seq2seq简单总结相关推荐

  1. 玩转Keras之Seq2Seq自动生成标题 | 附开源代码

    作者丨苏剑林 单位丨广州火焰信息科技有限公司 研究方向丨NLP,神经网络 个人主页丨kexue.fm 话说自称搞了这么久的 NLP,我都还没有真正跑过 NLP 与深度学习结合的经典之作--Seq2Se ...

  2. 3W字长文带你轻松入门视觉Transformer

    作者丨深度眸@知乎 来源丨https://zhuanlan.zhihu.com/p/308301901 编辑丨极市平台 0 摘要 transformer结构是google在17年的Attention ...

  3. Transformer25

    这是一篇综述吧~ Transformer整个网络结构完全由Attention机制组成,其出色的性能在多个任务上都取得了非常好的效果.本文从Transformer的结构出发,结合视觉中的成果进行了分析, ...

  4. 3万字长文带你轻松入门视觉Transformer

    0 摘要 transformer结构是google在17年的Attention Is All You Need论文中提出,在NLP的多个任务上取得了非常好的效果,可以说目前NLP发展都离不开trans ...

  5. seq2seq模型_使用Tensorflow搭建一个简单的Seq2Seq翻译模型

    1.背景 首先,这篇博文整理自谷歌开源的神经机器翻译项目Neural Machine Translation (seq2seq) Tutorial.如果你直接克隆这个项目按照Tutorial中的说明操 ...

  6. 使用Seq2Seq+attention实现简单的Chatbot

    预计阅读时间15分钟. 本文代码的github连接:https://github.com/princewen/tensorflow_practice/tree/master/chat_bot_seq2 ...

  7. Pytorch简单实现seq2seq+Attention机器人问答

    一.准备数据 1.seq_example代表问题,seq_answer代表答案,数据内容如下所示: seq_example = ["你认识我吗", "你住在哪里" ...

  8. attention seq2seq transformer bert 学习总结 _20201107

    https://blog.csdn.net/weixin_44388679/article/details/102575223 Seq2Seq原理详解 一文读懂BERT(原理篇) 2018年的10月1 ...

  9. 基于PyTorch的Seq2Seq翻译模型详细注释介绍(一)

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/qysh123/article/deta ...

最新文章

  1. 无门槛领取80本圣经级技术书籍!技术改变世界!
  2. python常用模块之shelve模块
  3. UIGraphicsBeginImageContext系列知识
  4. python booleans_Python 2.1 BooleansComparisons
  5. ECUG 早鸟票热卖中 | 大咖聚首 探索云计算下一个十年
  6. centos yum install redis
  7. EMUI10安装java_linux ubuntu系统安装java jdk和配置环境,pycharm安装
  8. linux制作成后台服务,把dotnetcore 控制台app设置成linux后台服务
  9. LG电子计划到2010年实现利润翻番
  10. pjk static tp.php,在测试服上偶然出现 Error: Loading chunk 5 failed.
  11. ubuntu 安装搜狗拼音输入法
  12. 灵灵兔人事考勤薪资软件系统kqwins:连接失败
  13. 计算机专业班级网站,班级网站毕业论文.doc
  14. 关于“Fatal signal 11 (SIGSEGV) at 0x00000004 (code=1), thread 7592 (xample.hellojni)”android NDK错误排查
  15. BNN-PYNQ安装
  16. 如何让机器产生意识之意识具象化
  17. 【Get深一度】香农定理(Shannon Theory)
  18. 深入解析DC/OS 1.8 – 高可靠的微服务及大数据管理平台
  19. android wifi定位不了,h5网页使用高德地图定位正常,网页嵌入安卓app后wifi定位正常,4g网络无法定位?...
  20. 升级 Elasticsearch

热门文章

  1. Haskell语言学习笔记(41)Parsec(1)
  2. 最新 PhpStorm 2018 安装及破解方法
  3. QT字符文字转换语音播放
  4. 果然是WIFI引起局域网速度慢
  5. 根据公式计算圆周率PI
  6. 分析型数据库产品的排头兵GBase 8a
  7. (转)svn中更新工程出现如下错误:Working copy not locked; this is probably a bug, please report...
  8. 01-名词冠词(思维导图记录)
  9. 【Python_pygame】制作一个游戏
  10. SIMT ( Single Instruction Multiple Threads)