对seq2seq的粗浅认识

Posted jtay

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了对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

 

以上是关于对seq2seq的粗浅认识的主要内容,如果未能解决你的问题,请参考以下文章

webGIS的粗浅认识

json粗浅认识

转自网络用LIBSVM进行回归预测的粗浅认识————————作者师梦

line-height的一点粗浅认识

OCR性能优化:从认识BiLSTM网络结构开始

OCR性能优化:从认识BiLSTM网络结构开始