• 对seq2seq的粗浅认识


    本文从三个方面进行展开:

    第一部分,介绍seq2seq在整个RNN体系中的情况。

    第二部分,介绍seq2seq结构的基本原理。

    第三部分,介绍seq2seq的缺点,和由此引出的Attention机制。

    第一部分:

    RNNsRecurrent neural network 翻译成循环神经网络

    Bidirectional RNNs: 双向RNNs

    Deep Bidirectional RNNs:深度双向RNNs

    LSTMLong short term memory

    GRUGated Recurrent Unit

    解释:

    传统的神经网络很难解决基于先前事件推断后续事件的问题。

    RNNs是包含循环的网络,允许信息的持久化,解决了以上问题。

     

    RNNs无法利用当前词语的下文辅助分类决策,解决方法是使用一些更复杂的RNN变种,如Bidirectional RNNsDeep Bidirectional RNNs,使每个时刻不但接受上个时刻的特征向量,还接受来自下层的特征表示。

    RNNs存在的问题:在相关信息和当前预测位置之间的间隔相当长时,训练RNN变得相当困难。

    LSTM,作为一种特殊的RNN,可以学习长期依赖信息,避免了RNNs存在的问题。

    GRULSTM的简化版。

     

     

    关于LSTM网络和GRU网络的详细信息

    基于上面5种,建立模型,实现应用。

    Seq2seqSequence to sequence

    应用可以采用的结构有Encoder–Decoder 结构。用来处理输入的叫encoder,生成输出的叫decoder。而seq2seq就是一种输入和输出序列不等长的encoder-decoder结构,seq2seq任务的首选模型就是LSTM。这种结构可用于翻译或聊天对话场景,对输入的文本转换成另外一些列文本。如下图所示:

     

    当然,seq2seq也不是完美的,距离decoder的第一个cell越近的输入单词,对decoder的影响越大。但这并不符合常理,这时就提出了attention机制,对于输出的每一个cell,都检测输入的sequence里每个单词的重要性。

    Attention基于seq2seq的改进模型再进行改进的机制。

    NMTNeural Machine Translation 神经翻译模型

    用一个大型神经网络建模整个翻译过程的系统。抽象的架构就是一个encoder一个decoder。

    上面介绍的几个概念,笔者尝试性画一个自底而上的图如下所示:

     

    这些概念(或方法或模型或机制)一个个的提出,都是为了解决(优化)相应的问题,但这并不是说新的方法提出了,前者就被淘汰了,而是不同的事物的应用情景不同。不知道读者朋友们能不能体会我的感觉(我的说法也不尽全面)。

     

    第二部分,介绍seq2seq

    基本原理

     

    基本模型

    模型包括encoderdecoder两个部分。

    将输入传到encoder部分,得到最后一个时间步长t的隐藏状态C

    Decoder的隐藏状态ht就由ht-1yt-1C三部分构成。

     

    最后的输出yt从图中可知,由ht(前一时刻的隐藏层),yt-1(前一个预测结果),cencoder最后一个隐藏层)得到。

    基本模型还有一个复杂版,见下图所示

     

    改进模型

     

    可以很容易的看出,改进模型与第一个模型主要的区别在于输入到输出有一条完整的流,且decoder不是每个cell都需要encoder输出隐藏状态C

    Seq2seq模型的问题

    只能用固定维度的最后一刻的encoder隐藏层来表示源语言Y,必须将此状态一直传递下去。可以想象,当需要预测的句子相当长时,效果就会相当差。

    于是乎引入Attention机制,改善这个问题。

    第三部分,介绍attention

     

    Attention机制,相当于改变从encoder传入到decoder的隐藏状态C。原先的状态C仅仅由最后一个时间步长t的隐藏状态C来决定。加入attention机制的seq2seq模型的状态c由所有输入向量xi共同决定。

     

    即,对于decoder的时间步长i的隐藏状态sici等于Tx个输入向量[1,Tx]的隐藏状态与其权重αij相乘得到。权重的意义在于说明:对于当前输出的词,每一个输入的词给予的注意力是不一样的。

    笔者仅仅将理解的部分内容转述出来,而且忽略了排版,存在漏洞在所难免,敬请指正,另附参考的博客内容,便于综合理解。

    参考内容:

    https://www.jianshu.com/p/9dc9f41f0b29

    https://baijiahao.baidu.com/s?id=1613717006522786574&wfr=spider&for=pc

    https://www.jianshu.com/p/2f48a252ad80

    https://blog.csdn.net/Irving_zhang/article/details/78889364

    http://www.hankcs.com/nlp/cs224n-9-nmt-models-with-attention.html

     

  • 相关阅读:
    Java实现 蓝桥杯VIP 算法训练 字符删除
    Java实现 蓝桥杯VIP 算法训练 字符删除
    Java实现 蓝桥杯VIP 算法训练 字符删除
    Java实现 蓝桥杯VIP 算法训练 字符删除
    Java实现 蓝桥杯VIP 算法训练 字符删除
    Java实现 蓝桥杯VIP 算法训练 字符串编辑
    Java实现 蓝桥杯VIP 算法训练 字符串编辑
    Java实现 蓝桥杯VIP 算法训练 字符串编辑
    Java实现 蓝桥杯VIP 算法训练 字符串编辑
    Java实现 蓝桥杯VIP 算法训练 字符串编辑
  • 原文地址:https://www.cnblogs.com/JTay/p/10206586.html
Copyright © 2020-2023  润新知