CS224n-2019 -《Neural Machine Translate, seq2seq with Attention》

CS224n-2019的第八讲《Neural Machine Translate, seq2seq with Attention》


Machine Translate历史

  1. Statistics MT这是基于统计的机器翻译,核心思想是最大化一个概率分布,最终拆分成两个部:一是翻译模型,二是语言模型。(这块没有弄懂)其中需要大量的人工操作,非常的复杂。之前的google翻译就是基于SMT的。
  2. Neural MT这是一个seq2seq结构,单个神经网络,使用到了两个RNN网络。

NMT神经网络结构

  1. 这是一个Conditional Language Model,它像语言模型一样,一个接一个的生成目标语句,但是又不是单纯的语言模型,而是在input source sentence的条件之上的。
  2. Encoder-Decoder模型 ,这是一个end2end模型。因为反向传播,可以从损失函数直接传递到Encoder RNN的参数(输入的参数)。

Greedy Decoder

  1. problem:这是一个贪心解码器,greedy decoder,也就是说它的每一步只会选择当前最好的结果,并没有考虑到最终的整体结果。
  2. solution: Beam Search(束搜索):
    核心思想是找到所有词组合中条件概率最大的那个,总共会有 V T V^T VT种情况(V为单词表规模,T为最终的词数量)。如果罗列出所有的情况,就一定可以找到最优的解,但是this is expensive。
    束搜索: 每一步选择出当前步中最优的k个解,这样就将解空间降至 k T k^T kT。k越大结果越准确,相应开销也越大。

Decoder何时结束解码

  1. 当遇到单词的时候就结束解码。
  2. problem:使用束搜索,每条path得到的长度不一致,出现的结束,其他的继续。
  3. solution: 设置一个步长阈值或者结果条目数量的阈值来控制结束。

如何选择最优解

  1. problem: 束搜索导致最终会得到多个较优解,如何去选择;解的长短不一,越长的解概率越小,因为是累加的过程,而每个单词的概率结果加log就是负的,所以只会越来越小。标准时越大越好。
  2. solution: 通过 1 t \frac{1}{t} t1​来normalize by lengh归一化,再选取最优解。

challenges of NMT

  1. 一般是由于训练corpus有限,导致模型最终的结果有局限性、妄自猜测性,还有表面性(只会理解表面的意思,并没有真正的理解到深层的意义,e.g:paper jam)
  2. 神经网络是难以控制的,也是无法解释的,它只是在自己训练,我们并无法知道其中的每一步每一个神经元都在起什么样的作用。

NMT bottleneck

  1. Encoder最后一个timestep的hidden state作为Decoder的input,这使得Decoder的输入必须要包含source sentence的所有含义。如果其中有丢失的信息,那么翻译结果就会不准确。

Attention ---- 不需要任务控制,模型通过Loss Function就可以自己学习,是一种无监督学习,可以应用在很多tasks上

  1. Attention可以解决这个瓶颈,它使得Decoder每一步的输入都depends on different parts of source sentence。
  2. 大概的过程就是1.计算注意力值2.归一化3.计算weighted sum
  3. 可以通过Query、Key、Value的软寻址的例子来理解,Query与Key计算similarity,normalize,weighted sum
  4. 可以解决梯度消失问题,类似于LSTM & GRU

Attention三部曲千篇一律,不同之处在于计算similarity,S(Query) 与 h_i(Key & Value)

  1. d 1 = d 2 d_1 = d_2 d1​=d2​时,最简单, e i = S T h i e_i = S^Th_i ei​=SThi​
  2. d 1 ≠ d 2 d_1 \neq d_2 d1​​=d2​, e i = S T W h i e_i = S^TWh_i ei​=STWhi​
  3. e i = V T t a n h ( W 1 S + W 2 h i ) e_i = V^Ttanh(W_1S + W_2h_i) ei​=VTtanh(W1​S+W2​hi​)
    最终针对每一个元素都得到一个similarity值。

遗留问题

  1. Assignment4
  2. 熟悉图神经网络代码
上一篇:H5混合开发二维码扫描以及调用本地摄像头


下一篇:【论文阅读】Attention Guided Graph Convolutional Networks for Relation Extraction