本课概要
1、一些重要的概念的回顾
2、传统的统计机器翻译方法
3、应用于机器翻译的RNN
4、GRUs
5、LSTMs
6、RNNs最近的一个改进
7、总结
一、一些重要的概念的回顾
二、传统的统计机器翻译方法
- 使用平行语料库(parallel),有相互对应的两种语言
- 有一个源语言f(source language),一个目标语言e(target language)
- 使用贝叶斯规则来构建概率公式,其中翻译模型p(f|e)是基于平行语料库(parallel)来进行训练的,语言模型p(e)是基于只有英语的语料库进行训练的
1、第一步:对应(assignment)
这一步的目标是找出源语言的单词和词组在目标语言中对应的单词和词组。但是,单这一步就会有很多棘手的问题。
-
问题一:“干扰”词(“spurious” word)也就是翻译过来以后,源语言在目标语言中没有对应单词的单词
-
问题二和三:“zero fertility”单词在目标语言中有,但是在源语言中没有对应的情况;一对多的情况
-
问题四:多对一的情况
-
问题五:多对多的情况
对应模型是十分复杂的,不仅单词可以对应,还可以使用词组和句法(syntax)进行对应,然后再考虑已经翻译的词组的重新排序。
然后我们可以得到在源语言中每个短语的很多种翻译结果。
2、解码
接下来就是找到这么多可能性中最优的一个。
传统的机器翻译的方法存在诸多问题,比如在构建语言模型和翻译模型的时候很多细节都被漏掉了;需要大量的人工特征构建;整个系统非常复杂,由很多独立的机器学习部分组成。
三、 应用于机器翻译的RNN
1、最简单的模型介绍
应用于机器翻译的RNN模型,可以由下面的几部分构成:
- 编码器(encoder)上图的前三个节点:
- 解码器(decoder)上图的最后两个节点:
- 目标函数:条件于源单词的目标单词的交叉熵
2、RNN翻译模型的进一步拓展
1、为解码和编码训练不同的RNN权重
2、每个解码过程中节点的计算包含三个变量:前一个隐藏节点ht-1,编码(encoder)的最后一个隐藏节点hT,前一个预测输出yt-1
3、训练深度多层的RNNs模型
4、训练双向(bidirectional)的编码器
5、如果不采用4的方法的话,我们可以尝试使用在解码阶段逆序的方法,把A B C→X Y改为C B A→X Y。这样子就可以使得A接近自己的对应翻译X,从而防止梯度消失的干扰。
6、使用更好的神经元:使用更为复杂的隐层单元计算,比如Gated Recurrent Units (GRU) introduced by Cho et al. 2014。它主要的两个特点是:可以捕捉到长距离的关联关系;基于输入允许错误信息以不同的强度流动。
四、GRUs
GRU对RNN的拓展在于,它不是像RNN那样基于前一个隐层来直接计算当前的隐层。而是在中间加入了基于目前输入单词向量和前一个隐层的更新门(update gate),以及相似的但是有不一样权重的重置门(reset gate)。
- 更新门(update gate)
- 重置门(reset gate)
- 新记忆内容(new memory content),如果重置门(reset gate)r在这里是接近于0的,那就表示忽视之前的记忆信息,只存储新单词信息。允许模型放弃和未来无关的信息。一般来说,短期相关的神经元的重置门(reset gate)比较活跃。
- 最终记忆(final memory):将会把前一步的结果和这一步结合起来。更新门(update gate)z控制的是过去状态的重要程度,如果z接近于1,我们就可以在不同的时刻复制一样的信息,这样就减少了梯度消失的可能。一般来说,长期相关的神经元的更新门(update gate)比较活跃。
- 具体图示
五、LSTMs
我们可以进一步将GRUs拓展成为更复杂的LSTM模型。中间包含
- 输入门(input gate):判断新的输入是否重要
- 遗忘门(forget gate):判断过去的节点是否重要,是否需要遗忘
- 输出门(output gate):判断针对当前输出哪些是重要的,即当前暂时的遗忘
- 新记忆节点(new memory cell)
- 最终记忆神经元:
- 最终隐层状态
- 可视化展示
LSTM对大部分的序列标注问题都有很好的效果,如果能进行模型stack,构建更深度的模型,以及更多的数据的话,就可以得到更好的效果。
2015年,LSTM模型与其他传统的模型比较来看,效果要稍微差一点。
2016年,LSTM的效果已经很好了。
深度LSTM模型已经可以很好地识别句子的相似性。
更多拓展:我们可以使用更多门(gates)
六、RNNs最近的一个改进
我们在使用softmax进行预测的时候面临的一个问题是,我们的训练结果只能是那些在训练集中出现的单词,并且是softmax的一部分。但是在实际的自然语言环境中,从一个对话环境中我们是可以学习到新的单词的。
为了解决这个问题,我们提出softmax和pointer的混合模型,所谓的point就是我们认为这个单词可能是前面出现过的N个单词中的一个,将这种可能的概率和softmax的概率结合起来考虑。
pointer和RNN结合的模型得到了很好的效果。
七、总结
- RNN模型非常强大
- 目前为止还有很多正在进行的工作
- GRUs和LSTM模型表现得更好
- 我们将会进一步学习相关的内容