目录
复习
使用RNN的机器翻译
GRU
LSTM
- 复习
文章图片
Glove:
文章图片
Nnet&Max-margin:
文章图片
,
文章图片
Multilayer Nnet&Backprop:
文章图片
,
文章图片
RNN:
文章图片
,
文章图片
Cross Entropy:
文章图片
Mini-batch SGD:
文章图片
- 使用RNN的机器翻译
文章图片
红圈所示特征表示必须能捕捉整个原文短语的语义,但是RNN无法记住太久之前的事情,大概五六个单词就到极限了。所以这不是个实用的模型。
在这个最简单的模型中,
【NLP|CS224N笔记——机器翻译和GRU以及LSTM】Encoder是:
文章图片
Decoder是:
文章图片
文章图片
最小化所有训练实例上的交叉熵误差:
文章图片
softmax分类器中必须有个代表句子终止的“单词”,不然模型会无休止地输出下去。
但神经网络机器翻译模型没有这么简单,必须加一些拓展。
1.编码器和解码器训练不同的权值矩阵
文章图片
红蓝代表不同的权值。
2.decoder中的隐藏层的输入来自3个方面:
- 前一个时刻的隐藏层
- encoder的最后一个隐藏层(
文章图片
) - 前一个预测结果
文章图片
文章图片
文章图片
可以辅助训练softmax的权值矩阵,防止模型重复生成同一个单词。
上图还有一个复杂版本,表达的是同一个意思:
文章图片
带黑点的表示离散的向量表示,否则表示连续的向量空间。
3.使用深层RNN或双向RNN
文章图片
4.不再用A B C→X Y作为训练实例,而是逆转原文词序:C B A→X Y
因为A更可能翻译为X,而梯度消失导致A无法影响输出,倒过来A离输出近一些。逆转词序不会带来“语法语义上的改变”,因为模型学习的就是如何从逆序的原文翻译顺序的译文。但相应的,C就离Y更远了。
- GRU
标准的RNN直接计算隐藏层:
文章图片
GRU先根据当前输入的词向量和隐藏层计算一个update gate(另一个层):
文章图片
利用相同的方法不同的权值计算reset gate:
文章图片
然后利用reset gate计算新的记忆:
文章图片
这里的意思是,之前的记忆由reset gate控制,如果reset gate元素都是0,则遗忘之前的事情。
而update gate的作用是调节最后的更新,到底时刻t的记忆多少来自之前,多少来自当前:
文章图片
如果
文章图片
是单位向量的话,则隐藏层只是复制前一个时刻的隐藏层,梯度不发生变化(衰减)。
把上述公式写在一起非常直观:
文章图片
示意图:
文章图片
上图中,虚线代表某个gate的调节作用。隐藏层取决于上一个时刻的隐藏层和新的记忆,而update gate负责调节它们的比例,reset gate和输入共同决定新的记忆。
- LSTM
文章图片
LSTM的计算可以分为如下步骤:
- New memory generation 与GRU的New memory generation类似。使用当前词语
文章图片
和之前的隐状态
文章图片
来生成新的记忆
文章图片
。于是新记忆里面就包含了当前词语
文章图片
的属性。 - Input Gate 使用当前词语和之前的隐状态决定当前词语是否值得保留来gate新记忆,这个“是否”是通过
文章图片
来体现的。 - Forget Gate 与input gate类似,只不过它不是用来衡量输入单词的有用与否,而是衡量过去的记忆对计算当前记忆有用与否。它接受输入单词和上一刻的隐状态产生输出
文章图片
。 - Final memory generation 根据forget gate的建议
文章图片
来遗忘过去的记忆
文章图片
。类似地,根据input gate的建议
文章图片
来gate新的记忆
文章图片
,然后把两者加起来得到最终记忆
文章图片
。 - Output/Exposure Gate 这是GRU中不显式存在的门,用处是将最终记忆与隐状态分离开来。记忆
文章图片
中的信息不是全部都需要存放到隐状态中,隐状态是个很重要的使用很频繁的东西,LSTM中每个gate都需要隐状态的参与。Output Gate产生
文章图片
,用来gate记忆的tanh激活值。
文章图片
用于机器翻译
输入原文序列,将最后一个时刻的隐藏层向量PCA降维后可视化:
文章图片
发现无论词序如何,意义相同的句子在向量空间中更接近。
进一步改进:更多门
文章图片
推荐阅读
- 人工智能|hugginface-introduction 案例介绍
- 深度学习|论文阅读(《Deep Interest Evolution Network for Click-Through Rate Prediction》)
- nlp|Keras(十一)梯度带(GradientTape)的基本使用方法,与tf.keras结合使用
- NER|[论文阅读笔记01]Neural Architectures for Nested NER through Linearization
- 深度学习|2019年CS224N课程笔记-Lecture 17:Multitask Learning
- 深度学习|[深度学习] 一篇文章理解 word2vec
- 论文|预训练模型综述2020年三月《Pre-trained Models for Natural Language Processing: A Survey》
- NLP|NLP预训练模型综述
- NLP之文本表示——二值文本表示
- 隐马尔科夫HMM应用于中文分词