章五 RNN 第3节 序列模型与注意力机制

第3节 序列模型与注意力机制

3.1 Basic Models

Sequence to sequence(序列)模型在机器翻译和语音识别方面都有着广泛的应用。

Untitled

其中,encoder vector代表了输入语句的编码特征。encoder network和decoder network都是RNN模型,可使用GRU或LSTM单元。这种“编码网络(encoder network)”+“解码网络(decoder network)”的模型,在实际的机器翻译应用中有着不错的效果。

Untitled

3.2 找出最有可能的句子

Sequence to sequence machine translation模型与我们第一节课介绍的language模型有一些相似,但也存在不同之处。

Untitled

Language model是自动生成一条完整语句,语句是随机的。而machine translation model是根据输入语句,进行翻译,生成另外一条完整语句。上图中,绿色部分表示encoder network,紫色部分表示decoder network。decoder network与language model是相似的,encoder network可以看成是language model的a<0>a<0>,是模型的一个条件。也就是说,在输入语句的条件下,生成正确的翻译语句。因此,machine translation可以看成是有条件的语言模型(conditional language model)。这就是二者之间的区别与联系。

Untitled

Greedy search

实现优化目标的方法之一是使用贪婪搜索(greedy search)。Greedy search根据条件,每次只寻找一个最佳单词作为翻译输出,力求把每个单词都翻译准确。例如,首先根据输入语句,找到第一个翻译的单词“Jane”,然后再找第二个单词“is”,再继续找第三个单词“visiting”,以此类推。这也是其“贪婪”名称的由来。

Greedy search存在一些缺点。首先,因为greedy search每次只搜索一个单词,没有考虑该单词前后关系,概率选择上有可能会出错。例如,上面翻译语句中,第三个单词“going”比“visiting”更常见,模型很可能会错误地选择了“going”,而错失最佳翻译语句。其次,greedy search大大增加了运算成本,降低运算速度。

因此,greedy search并不是最佳的方法。下一小节,我们将介绍Beam Search,使用近似最优的查找方式,最大化输出概率,寻找最佳的翻译语句。

Greedy search每次是找出预测概率最大的单词,而beam search则是每次找出预测概率最大的B个单词。其中,参数B表示取概率最大的单词个数,可调。本例中,令B=3。
按照beam search的搜索原理,首先,先从词汇表中找出翻译的第一个单词概率最大的B个预测单词。例如上面的例子中,预测得到的第一个单词为:in,jane,september。

Untitled

Untitled

数值下溢

Untitled

倾向于短语句

Untitled

Untitled

3.6 Bleu Score(optional)

3.7 Attention Model Intuition

Untitled

Untitled

3.8 Attention Models

Untitled

Untitled

Untitled

3.9 Speech recognition

深度学习中,语音识别的输入是声音,量化成时间序列。更一般地,可以把信号转化为频域信号,即声谱图(spectrogram),再进入RNN模型进行语音识别。

Untitled

之前,语言学家们会将语音中每个单词分解成多个音素(phoneme),构建更精准的传统识别算法。但在end-to-end深度神经网络模型中,一般不需要这么做也能得到很好的识别效果。通常训练样本很大,需要上千上万个小时的语音素材。

Untitled

3.10 Trigger Word Detection

Untitled

Untitled