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

  • Post author:
  • Post category:其他

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(W1S+W2hi)
    最终针对每一个元素都得到一个similarity值。


遗留问题

  1. Assignment4
  2. 熟悉图神经网络代码

版权声明:本文为aj666aj原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。