5. Sequence Models - Wee 3 - Sequence models & Attention mechanism

本周课程主要介绍了机器翻译中的一些细节,包括如何将Language Model与Decoder结合,如何搜索可能的最优解。然后介绍了大名鼎鼎的Attention Mechanism。
到Attention Mechanism的时候就已经很麻烦了,还是尽量以理解机制为主。

1. Various sequence to sequence architectures

在深度学习中一些比较有意思的应用:

Machine Translation 机器翻译

Image Captioning 自动图片描述

1.1 Machine Translation

Machine translation中可以分为Encoder/Decoder两部分,而Decoder又与Language Model比较相似。

5. Sequence Models - Wee 3 - Sequence models & Attention mechanism

用Decoder的结果再加上Language Model可以用来寻找最优解

argmaxy<1>,...,y<Ty>P(y<1>,...,y<Ty>) \underset{y^{<1>}, ..., y^{<T_y>}}{\arg \max} P\left( y^{<1>}, ..., y^{<T_y>} \right)

1.1.1 Search Algorithm

在所有的可能性中,取概率最大的结果。代价非常高,生成10个字长度的句子的复杂度是O(V10)O(\left|V\right|^{10})

将上面的优化目标稍作细化,假定变成每一步的生成都只与前面的有关(后面的无关),那么条件概率就是
argmaxyt=1TyP(y<t>x,y<1>,...,y<t1>) \arg \underset{y}{\max} \prod_{t=1}^{T_y} P\left( y^{<t>}| x, y^{<1>}, ..., y^{<t-1>} \right)

Greedy Search: 每一步只确定一个最有可能的词(字),但是并不能保证获得最优结果。

Beam Search:在Greedy Search每一步只挑选最可能的结果的基础上,再额外增加数个,限定每一次的搜索的大小在Beam Size中。

Beam Search可以考虑优化的点

  1. 将连乘可能遇到的数值计算上的问题用log\log求和来避开
    argmaxyt=1TylogP(y<t>x,y<1>,...,y<t1>) \arg \underset{y}{\max} \sum_{t=1}^{T_y} \log P\left( y^{<t>}| x, y^{<1>}, ..., y^{<t-1>} \right)

  2. 增加Length Normalization来避开长句子总是会概率更低的问题
    argmaxy1Tyαt=1TylogP(y<t>x,y<1>,...,y<t1>) \arg \underset{y}{\max} \frac{1}{T_y^{\alpha}} \sum_{t=1}^{T_y} \log P\left( y^{<t>}| x, y^{<1>}, ..., y^{<t-1>} \right)

1.1.2 Error analysis in Beam Search

5. Sequence Models - Wee 3 - Sequence models & Attention mechanism

就是比较P(yx)P(y^\star | x)P(y^x)P(\hat{y}|x)的关系,P(yx)P(y^\star | x)小了就是模型的问题,反之就是Beam Search的问题。

1.1.3 BLEU(Bi-Lingual Evalution Understudy)

机器翻译的一种评价指标BLEU:

  1. 翻译的串Uni/Bi-gram是否在标注参考中的占比,重复翻译的串不会超过标注中的次数;
  2. 太短的翻译也会被惩罚

1.2 Attention Model

上面的Encoder-Decoder翻译模型在短句上表现不错,但是在长句上表现比较差。

Intuition: 人类在长句翻译时并不会在全文的基础上进行翻译,而是一段一段(小范围)地进行对照翻译。

  • 注意力窗口内关心,窗口以外不关心
  • 窗口内的贡献会被加权 (How much attention)

5. Sequence Models - Wee 3 - Sequence models & Attention mechanism

注意:e<t,t>e^{<t, t'>}是由一个小的Neural Network得到

模型有点复杂,理解一下机制就好,即使做完了编程作业仍然是很快就忘干净了。

3. Speech recognition - Audio data

这部分主要是以Trigger Word Detection为例子,介绍了一些评价标准和实践方法。

CTC(Connectionist temporal classification) cost for speech recognition

比如"the cat"可以是ttt__hh__eee_[]cccc_aaaa_ttt,然后处理完成得到结果的。