天天看点

深度不学习 ————Seq2seq,Attention,Machine TranslationPre-Neural Machine TranslationNeural Machine TranslationBeam search decodingSMT vs NMTAttention参考:

Pre-Neural Machine Translation

机器翻译(MT)是将⼀个句⼦ x 从⼀种语⾔( 源语⾔ )转换为另⼀种语⾔( ⽬标语⾔ )的句⼦ y 的任务。

  • 核⼼想法:从数据中学习概率模型。
  • 我们想要找到最好的英语句⼦ y ,给定法语句⼦ x
    深度不学习 ————Seq2seq,Attention,Machine TranslationPre-Neural Machine TranslationNeural Machine TranslationBeam search decodingSMT vs NMTAttention参考:
  • 使⽤Bayes规则将其分解为两个组件从⽽分别学习
    深度不学习 ————Seq2seq,Attention,Machine TranslationPre-Neural Machine TranslationNeural Machine TranslationBeam search decodingSMT vs NMTAttention参考:

P(x|y)

  • 翻译模型
  • 分析单词和短语应该如何翻译(逼真)
  • 从并⾏数据中学习

P(y)

- 语⾔模型  
- 模型如何写出好英语(流利)  
- 从单语数据中学习
           

对⻬是翻译句⼦中特定词语之间的对应关系。

注意:有些词没有对应词
           

对⻬可以是多对⼀的

深度不学习 ————Seq2seq,Attention,Machine TranslationPre-Neural Machine TranslationNeural Machine TranslationBeam search decodingSMT vs NMTAttention参考:

对齐可以是一对多的

深度不学习 ————Seq2seq,Attention,Machine TranslationPre-Neural Machine TranslationNeural Machine TranslationBeam search decodingSMT vs NMTAttention参考:

对齐可以是多对多(短语级)

深度不学习 ————Seq2seq,Attention,Machine TranslationPre-Neural Machine TranslationNeural Machine TranslationBeam search decodingSMT vs NMTAttention参考:

Decoding for SMT

如何计算argmax

  • 我们可以列举所有可能的 y 并计算概率? 太贵了
  • 使⽤启发式搜索算法搜索最佳翻译,丢弃概率过低的假设
  • 这个过程称为解码
    深度不学习 ————Seq2seq,Attention,Machine TranslationPre-Neural Machine TranslationNeural Machine TranslationBeam search decodingSMT vs NMTAttention参考:
    深度不学习 ————Seq2seq,Attention,Machine TranslationPre-Neural Machine TranslationNeural Machine TranslationBeam search decodingSMT vs NMTAttention参考:
  • SMT是⼀个巨⼤的研究领域
  • 最好的系统⾮常复杂
  • 数以百计的重要细节我们还没有提到
  • 系统有许多分别设计⼦组件⼯程
    • 很多功能需要设计特性来获取特定的语⾔现象
  • 需要编译和维护额外的资源
    • ⽐如等价短语表
  • 需要⼤量的⼈⼒来维护
    • 对于每⼀对语⾔都需要重复操作

Neural Machine Translation

  • 神经机器翻译是利⽤单个神经⽹络进⾏机器翻译的⼀种⽅法
  • 神经⽹络架构称为sequence-to-sequence (⼜名seq2seq),它包含两个RNNs

Neural Machine Translation (NMT)

深度不学习 ————Seq2seq,Attention,Machine TranslationPre-Neural Machine TranslationNeural Machine TranslationBeam search decodingSMT vs NMTAttention参考:

编码器RNN⽣成源语句的编码;源语句的编码为解码器RNN提供初始隐藏状态;解码器RNN是⼀种以编码为条件⽣成⽬标句的语⾔模型.

Sequence-to-sequence is versatile!

  • sequence-to-sequence 模型是 Conditional Language Model 条件语⾔模型的⼀个例⼦
  • 语⾔模型,
    • 因为解码器正在预测⽬标句的下⼀个单词 y
    • 有条件的,因为它的预测也取决于源句 x
  • NMT直接计算 P(y|x)
    • 深度不学习 ————Seq2seq,Attention,Machine TranslationPre-Neural Machine TranslationNeural Machine TranslationBeam search decodingSMT vs NMTAttention参考:
      上式中最后⼀项为,给定到⽬前为⽌的⽬标词和源句 x ,下⼀个⽬标词的概率

seq2seq被优化为⼀个单⼀的系统。反向传播运⾏在“端到端”中

深度不学习 ————Seq2seq,Attention,Machine TranslationPre-Neural Machine TranslationNeural Machine TranslationBeam search decodingSMT vs NMTAttention参考:

Greedy decoding

我们了解了如何⽣成(或“解码”)⽬标句,通过对解码器的每个步骤使⽤ argmax

深度不学习 ————Seq2seq,Attention,Machine TranslationPre-Neural Machine TranslationNeural Machine TranslationBeam search decodingSMT vs NMTAttention参考:

上图是贪婪解码(每⼀步都取最可能的单词).贪婪解码的问题:没有办法撤销决定。

Exhaustive search decoding

  • 理想情况下,我们想要找到⼀个(⻓度为 T )的翻译 y 使其最⼤化:
    深度不学习 ————Seq2seq,Attention,Machine TranslationPre-Neural Machine TranslationNeural Machine TranslationBeam search decodingSMT vs NMTAttention参考:
    深度不学习 ————Seq2seq,Attention,Machine TranslationPre-Neural Machine TranslationNeural Machine TranslationBeam search decodingSMT vs NMTAttention参考:

Beam search decoding

  • 核⼼思想 :在解码器的每⼀步,跟踪 k 个最可能的部分翻译(我们称之为 hypotheses 假设 )。
    • k是Beam的⼤⼩(实际中⼤约是5到10):
      深度不学习 ————Seq2seq,Attention,Machine TranslationPre-Neural Machine TranslationNeural Machine TranslationBeam search decodingSMT vs NMTAttention参考:
      1.分数都是负数,分数越⾼越好。 2.我们寻找得分较⾼的假设,跟踪每⼀步的 top k 个部分翻译。波束搜索不⼀定能找到最优解,但⽐穷举搜索效率⾼得多。

Beam search decoding: example

计算下一个词的概率分布
深度不学习 ————Seq2seq,Attention,Machine TranslationPre-Neural Machine TranslationNeural Machine TranslationBeam search decodingSMT vs NMTAttention参考:

取前k个单词并计算分数

深度不学习 ————Seq2seq,Attention,Machine TranslationPre-Neural Machine TranslationNeural Machine TranslationBeam search decodingSMT vs NMTAttention参考:

对于每⼀次的 k 个假设,找出最前⾯的 k 个单词并计算分数

深度不学习 ————Seq2seq,Attention,Machine TranslationPre-Neural Machine TranslationNeural Machine TranslationBeam search decodingSMT vs NMTAttention参考:
深度不学习 ————Seq2seq,Attention,Machine TranslationPre-Neural Machine TranslationNeural Machine TranslationBeam search decodingSMT vs NMTAttention参考:
深度不学习 ————Seq2seq,Attention,Machine TranslationPre-Neural Machine TranslationNeural Machine TranslationBeam search decodingSMT vs NMTAttention参考:
深度不学习 ————Seq2seq,Attention,Machine TranslationPre-Neural Machine TranslationNeural Machine TranslationBeam search decodingSMT vs NMTAttention参考:
深度不学习 ————Seq2seq,Attention,Machine TranslationPre-Neural Machine TranslationNeural Machine TranslationBeam search decodingSMT vs NMTAttention参考:

在k^2 的假设中,保留 k 个最⾼的分值,如 t = 2 时,保留分数最⾼的 pie 和 with

深度不学习 ————Seq2seq,Attention,Machine TranslationPre-Neural Machine TranslationNeural Machine TranslationBeam search decodingSMT vs NMTAttention参考:
深度不学习 ————Seq2seq,Attention,Machine TranslationPre-Neural Machine TranslationNeural Machine TranslationBeam search decodingSMT vs NMTAttention参考:

在k^2 的假设中,保留 k 个最⾼的分值,如 t = 2 时,保留分数最⾼的 a 和 one

深度不学习 ————Seq2seq,Attention,Machine TranslationPre-Neural Machine TranslationNeural Machine TranslationBeam search decodingSMT vs NMTAttention参考:
深度不学习 ————Seq2seq,Attention,Machine TranslationPre-Neural Machine TranslationNeural Machine TranslationBeam search decodingSMT vs NMTAttention参考:

这里pie 是得分最高的超参数

深度不学习 ————Seq2seq,Attention,Machine TranslationPre-Neural Machine TranslationNeural Machine TranslationBeam search decodingSMT vs NMTAttention参考:

回溯以获得完整的假设

深度不学习 ————Seq2seq,Attention,Machine TranslationPre-Neural Machine TranslationNeural Machine TranslationBeam search decodingSMT vs NMTAttention参考:

Beam search decoding: stopping criterion

  1. 在贪⼼解码中,我们通常解码到模型产⽣⼀个 令牌
  2. 在 Beam Search 解码中,不同的假设可能在不同的时间步⻓上产⽣ 令牌
    • 当⼀个假设⽣成了 令牌,该假设完成
    • 把它放在⼀边,通过 Beam Search 继续探索其他假设
  3. 通常我们继续进⾏ Beam Search ,直到:
    • 我们到达时间步⻓ T (其中 T 是预定义截⽌点)
    • 我们⾄少有 n 个已完成的假设(其中 n 是预定义截⽌点)

Beam search decoding: finishing up

  1. We have our list of completed hypotheses.
  2. How to select top one with highest score?
    深度不学习 ————Seq2seq,Attention,Machine TranslationPre-Neural Machine TranslationNeural Machine TranslationBeam search decodingSMT vs NMTAttention参考:

SMT vs NMT

Advantages of NMT

与SMT相⽐,NMT有很多优点:1.更好的性能2.更流利3. 更好地使⽤上下⽂4.更好地使⽤短语相似性5.单个神经⽹络端到端优化6.没有⼦组件需要单独优化7.对所有语⾔对使⽤相同的⽅法

Disadvantages of NMT?

1.SMT相⽐NMT的可解释性较差2.难以调试3.NMT很难控制4.安全问题

Attention

Sequence-to-sequence: the bottleneck problem

深度不学习 ————Seq2seq,Attention,Machine TranslationPre-Neural Machine TranslationNeural Machine TranslationBeam search decodingSMT vs NMTAttention参考:

源语句的编码需要捕获关于源语句的所有信息.信息瓶颈!

深度不学习 ————Seq2seq,Attention,Machine TranslationPre-Neural Machine TranslationNeural Machine TranslationBeam search decodingSMT vs NMTAttention参考:

Attention作用:

  • 注意⼒为瓶颈问题提供了⼀个解决⽅案
  • 核⼼理念 :在解码器的每⼀步,使⽤ 与编码器的直接连接 来专注于源序列的特定部分
  • ⾸先我们将通过图表展示(没有⽅程),然后我们将⽤⽅程展示
深度不学习 ————Seq2seq,Attention,Machine TranslationPre-Neural Machine TranslationNeural Machine TranslationBeam search decodingSMT vs NMTAttention参考:
  • 将解码器部分的第⼀个token 与源语句中的每⼀个时间步的隐藏状态进⾏ Dot
  • Product 得到每⼀时间步的分数
  • 通过softmax将分数转化为概率分布
  • 在这个解码器时间步⻓上,我们主要关注第⼀个编码器隐藏状态(“he”)
    深度不学习 ————Seq2seq,Attention,Machine TranslationPre-Neural Machine TranslationNeural Machine TranslationBeam search decodingSMT vs NMTAttention参考:
  • 利⽤注意⼒分布对编码器的隐藏状态进⾏加权求和
  • 注意⼒输出主要包含来⾃于受到⾼度关注的隐藏状态的信息
    深度不学习 ————Seq2seq,Attention,Machine TranslationPre-Neural Machine TranslationNeural Machine TranslationBeam search decodingSMT vs NMTAttention参考:
  • 连接的 注意⼒输出 与 解码器隐藏状态 ,然后⽤来计算
    深度不学习 ————Seq2seq,Attention,Machine TranslationPre-Neural Machine TranslationNeural Machine TranslationBeam search decodingSMT vs NMTAttention参考:
  • 有时,我们从前⾯的步骤中提取注意⼒输出,并将其输⼊解码器(连同通常的解码器输⼊)。

    -

    深度不学习 ————Seq2seq,Attention,Machine TranslationPre-Neural Machine TranslationNeural Machine TranslationBeam search decodingSMT vs NMTAttention参考:

Attention: in equations

深度不学习 ————Seq2seq,Attention,Machine TranslationPre-Neural Machine TranslationNeural Machine TranslationBeam search decodingSMT vs NMTAttention参考:

Attention is great

  • 注意⼒显著提⾼了NMT性能
    • 这是⾮常有⽤的,让解码器专注于某些部分的源语句
  • 注意⼒解决瓶颈问题
    • 注意⼒允许解码器直接查看源语句;绕过瓶颈
  • 注意⼒帮助消失梯度问题
    • 提供了通往遥远状态的捷径
  • 注意⼒提供了⼀些可解释性
    • 通过检查注意⼒的分布,我们可以看到解码器在关注什么
    • 我们可以免费得到(软)对⻬
    • ⽹络只是⾃主学习了对⻬

Attention is a general Deep Learning technique

  • 注意⼒是改进机器翻译的序列到序列模型的⼀个很好的⽅法。可以在许多体系结构(不仅仅是seq2seq)和许多任务(不仅仅是MT)中使⽤注意⼒。
  • 注意⼒的更⼀般定义
    • 给定⼀组向量 值 和⼀个向量 查询 ,注意⼒是⼀种根据查询,计算值的加权和的技术
  • 我们有时说 query attends to the values
  • 例如,在seq2seq + attention模型中,每个解码器的隐藏状态(查询)关注所有编码器的隐藏状态(值)
  • 直觉
    • 加权和是值中包含的信息的选择性汇总,查询在其中确定要关注哪些值
    • 注意是⼀种获取任意⼀组表示(值)的固定⼤⼩表示的⽅法,依赖于其他⼀些表示(查询)。

There are several attention variants

深度不学习 ————Seq2seq,Attention,Machine TranslationPre-Neural Machine TranslationNeural Machine TranslationBeam search decodingSMT vs NMTAttention参考:

采取softmax来获得注意⼒分布。使⽤注意⼒分布对值进⾏加权求和:从⽽得到注意输出 (有时称为上下⽂向量)。

参考:

  • 斯坦福CS224N深度学习⾃然语⾔处理2019冬学习笔记⽬录 (课件核⼼内容的提炼,并包含作者的⻅解 与建议)
  • 斯坦福⼤学 CS224n⾃然语⾔处理与深度学习笔记汇总 {>>这是针对note部分的翻译<<}

继续阅读