NLP|CS224N笔记——机器翻译和GRU以及LSTM

目录
复习
使用RNN的机器翻译
GRU
LSTM

  • 复习
Word2Vec:NLP|CS224N笔记——机器翻译和GRU以及LSTM
文章图片

Glove:NLP|CS224N笔记——机器翻译和GRU以及LSTM
文章图片

Nnet&Max-margin:NLP|CS224N笔记——机器翻译和GRU以及LSTM
文章图片
NLP|CS224N笔记——机器翻译和GRU以及LSTM
文章图片

Multilayer Nnet&Backprop:NLP|CS224N笔记——机器翻译和GRU以及LSTM
文章图片
NLP|CS224N笔记——机器翻译和GRU以及LSTM
文章图片

RNN:NLP|CS224N笔记——机器翻译和GRU以及LSTM
文章图片
NLP|CS224N笔记——机器翻译和GRU以及LSTM
文章图片

Cross Entropy:NLP|CS224N笔记——机器翻译和GRU以及LSTM
文章图片

Mini-batch SGD:NLP|CS224N笔记——机器翻译和GRU以及LSTM
文章图片

  • 使用RNN的机器翻译
NLP|CS224N笔记——机器翻译和GRU以及LSTM
文章图片

红圈所示特征表示必须能捕捉整个原文短语的语义,但是RNN无法记住太久之前的事情,大概五六个单词就到极限了。所以这不是个实用的模型。
在这个最简单的模型中,
【NLP|CS224N笔记——机器翻译和GRU以及LSTM】Encoder是:
NLP|CS224N笔记——机器翻译和GRU以及LSTM
文章图片

Decoder是:
NLP|CS224N笔记——机器翻译和GRU以及LSTM
文章图片

NLP|CS224N笔记——机器翻译和GRU以及LSTM
文章图片

最小化所有训练实例上的交叉熵误差:
NLP|CS224N笔记——机器翻译和GRU以及LSTM
文章图片

softmax分类器中必须有个代表句子终止的“单词”,不然模型会无休止地输出下去。
但神经网络机器翻译模型没有这么简单,必须加一些拓展。
1.编码器和解码器训练不同的权值矩阵
NLP|CS224N笔记——机器翻译和GRU以及LSTM
文章图片

红蓝代表不同的权值。
2.decoder中的隐藏层的输入来自3个方面:
  • 前一个时刻的隐藏层
  • encoder的最后一个隐藏层(NLP|CS224N笔记——机器翻译和GRU以及LSTM
    文章图片
    )
  • 前一个预测结果NLP|CS224N笔记——机器翻译和GRU以及LSTM
    文章图片
decoder变为:NLP|CS224N笔记——机器翻译和GRU以及LSTM
文章图片

NLP|CS224N笔记——机器翻译和GRU以及LSTM
文章图片

可以辅助训练softmax的权值矩阵,防止模型重复生成同一个单词。
上图还有一个复杂版本,表达的是同一个意思:
NLP|CS224N笔记——机器翻译和GRU以及LSTM
文章图片

带黑点的表示离散的向量表示,否则表示连续的向量空间。
3.使用深层RNN或双向RNN
NLP|CS224N笔记——机器翻译和GRU以及LSTM
文章图片

4.不再用A B C→X Y作为训练实例,而是逆转原文词序:C B A→X Y
因为A更可能翻译为X,而梯度消失导致A无法影响输出,倒过来A离输出近一些。逆转词序不会带来“语法语义上的改变”,因为模型学习的就是如何从逆序的原文翻译顺序的译文。但相应的,C就离Y更远了。
  • GRU
引入Gated Recurrent Units (GRU),这种单元可以让模型学习何时遗忘从而将记忆保持很久、允许误差根据输入的不同而不同。
标准的RNN直接计算隐藏层:
NLP|CS224N笔记——机器翻译和GRU以及LSTM
文章图片

GRU先根据当前输入的词向量和隐藏层计算一个update gate(另一个层):
NLP|CS224N笔记——机器翻译和GRU以及LSTM
文章图片

利用相同的方法不同的权值计算reset gate:
NLP|CS224N笔记——机器翻译和GRU以及LSTM
文章图片

然后利用reset gate计算新的记忆:
NLP|CS224N笔记——机器翻译和GRU以及LSTM
文章图片

这里的意思是,之前的记忆由reset gate控制,如果reset gate元素都是0,则遗忘之前的事情。
而update gate的作用是调节最后的更新,到底时刻t的记忆多少来自之前,多少来自当前:
NLP|CS224N笔记——机器翻译和GRU以及LSTM
文章图片

如果NLP|CS224N笔记——机器翻译和GRU以及LSTM
文章图片
是单位向量的话,则隐藏层只是复制前一个时刻的隐藏层,梯度不发生变化(衰减)。
把上述公式写在一起非常直观:
NLP|CS224N笔记——机器翻译和GRU以及LSTM
文章图片

示意图:
NLP|CS224N笔记——机器翻译和GRU以及LSTM
文章图片

上图中,虚线代表某个gate的调节作用。隐藏层取决于上一个时刻的隐藏层和新的记忆,而update gate负责调节它们的比例,reset gate和输入共同决定新的记忆。
  • LSTM
NLP|CS224N笔记——机器翻译和GRU以及LSTM
文章图片

LSTM的计算可以分为如下步骤:
  1. New memory generation 与GRU的New memory generation类似。使用当前词语NLP|CS224N笔记——机器翻译和GRU以及LSTM
    文章图片
    和之前的隐状态NLP|CS224N笔记——机器翻译和GRU以及LSTM
    文章图片
    来生成新的记忆NLP|CS224N笔记——机器翻译和GRU以及LSTM
    文章图片
    。于是新记忆里面就包含了当前词语NLP|CS224N笔记——机器翻译和GRU以及LSTM
    文章图片
    的属性。
  2. Input Gate 使用当前词语和之前的隐状态决定当前词语是否值得保留来gate新记忆,这个“是否”是通过NLP|CS224N笔记——机器翻译和GRU以及LSTM
    文章图片
    来体现的。
  3. Forget Gate 与input gate类似,只不过它不是用来衡量输入单词的有用与否,而是衡量过去的记忆对计算当前记忆有用与否。它接受输入单词和上一刻的隐状态产生输出NLP|CS224N笔记——机器翻译和GRU以及LSTM
    文章图片
  4. Final memory generation 根据forget gate的建议NLP|CS224N笔记——机器翻译和GRU以及LSTM
    文章图片
    来遗忘过去的记忆NLP|CS224N笔记——机器翻译和GRU以及LSTM
    文章图片
    。类似地,根据input gate的建议NLP|CS224N笔记——机器翻译和GRU以及LSTM
    文章图片
    来gate新的记忆NLP|CS224N笔记——机器翻译和GRU以及LSTM
    文章图片
    ,然后把两者加起来得到最终记忆NLP|CS224N笔记——机器翻译和GRU以及LSTM
    文章图片
  5. Output/Exposure Gate 这是GRU中不显式存在的门,用处是将最终记忆与隐状态分离开来。记忆NLP|CS224N笔记——机器翻译和GRU以及LSTM
    文章图片
    中的信息不是全部都需要存放到隐状态中,隐状态是个很重要的使用很频繁的东西,LSTM中每个gate都需要隐状态的参与。Output Gate产生NLP|CS224N笔记——机器翻译和GRU以及LSTM
    文章图片
    ,用来gate记忆的tanh激活值。
NLP|CS224N笔记——机器翻译和GRU以及LSTM
文章图片

用于机器翻译
输入原文序列,将最后一个时刻的隐藏层向量PCA降维后可视化:
NLP|CS224N笔记——机器翻译和GRU以及LSTM
文章图片

发现无论词序如何,意义相同的句子在向量空间中更接近。
进一步改进:更多门
NLP|CS224N笔记——机器翻译和GRU以及LSTM
文章图片

    推荐阅读