美文网首页神经网络 理解篇
encoder-decoder模型和注意力模型(Attentio

encoder-decoder模型和注意力模型(Attentio

作者: FD_Rookie | 来源:发表于2018-03-20 15:48 被阅读230次

    参考链接: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就成了如下:

    相关文章

      网友评论

        本文标题:encoder-decoder模型和注意力模型(Attentio

        本文链接:https://www.haomeiwen.com/subject/xcjbqftx.html