encoder-decoder模型和注意力模型(Attention Model)

参考链接:http://blog.csdn.net/mebiuw/article/details/53341404

http://blog.csdn.net/u014595019/article/details/52826423

http://blog.csdn.net/malefactor/article/details/50550211

多用于NLP领域


    什么是encoder-decoder模型?就是编码-解码模型,其实是一个解决问题的框架,主要解决seq2seq类问题,Sequence在这里可以理解为一个字符串序列,当我们在给定一个字符串序列后,希望得到与之对应的另一个字符串序列,比如问答系统,比如翻译系统。

    encoder-decoder模型的流程可以理解为“编码--》存储--》解码”这一流程,可以用人脑流程来类比,我们先看到源Sequence,将其读一遍,然后在我们大脑当中就记住了这个源Sequence,并且存在大脑的某一个位置上,形成我们自己的记忆(对应Context),然后我们再经过思考,将这个大脑里的东西转变成输出,然后写下来。那么我们大脑读入的过程叫做Encoder,即将输入的东西变成我们自己的记忆,放在大脑当中,而这个记忆可以叫做Context,然后我们再根据这个Context,转化成答案写下来,这个写的过程叫做Decoder。

    整个模型用图表示如下:

    但是它有一个显著的缺点,也就是整个编码-解码过程共享一个单独不变的语义编码C。我们可以将输入句子X=(X1,X2,......Xm),Y=(Y1,Y2,......Yn),中间语义C=F(X1,X2,...Xm)。

那么对Y的输出就是如下

我们可以看到,无论生成Y几,中间语义是不变的,也就是说这个模型是“没有注意力的”。这个模型有几个很大的问题,它无法体现前几(一)个单词对当前单词的影响,整个句子X的语义被压缩成一个向量X,二是语义向量无法完全表示整个序列的信息,还有就是先输入的内容携带的信息会被后输入的信息稀释掉,或者说,被覆盖了。

    介绍完原始E-D模型,这时候我们要引入下Attetion模型,模型图如下:

生成目标句子Y就成了如下:

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 原文地址 要是关注深度学习在自然语言处理方面的研究进展,我相信你一定听说过Attention Model(后文有时...
    Henrywood阅读 1,723评论 0 5
  • 近日,谷歌官方在 Github开放了一份神经机器翻译教程,该教程从基本概念实现开始,首先搭建了一个简单的NMT模型...
    MiracleJQ阅读 6,454评论 1 11
  • 最近人工智能随着AlphaGo战胜李世乭这一事件的高关注度,重新掀起了一波新的关注高潮,有的说人工智能将会如何超越...
    MiracleJQ阅读 2,865评论 2 1
  • 十店预售,亲身在开幕会场感受的第二天。昨日大悦城没成单,今日在望京成三张年卡,和预期期望有悬殊。慢慢回味其...
    心的字阅读 234评论 2 2
  • 一 你准备去洗澡,打开衣柜突然发现:只剩下最后一双干净的袜子了,剩余的脏袜子都已在脏衣袋子里面躺了很久。 “袜子不...
    卜卜西阅读 574评论 1 2