[关闭]
@kpatrick 2019-07-05T10:19:15.000000Z 字数 2130 阅读 58

Attention Model

nlp 笔记 机器翻译

阅读材料:
- [Coursera] Sequence Models Week 3 Attention Model
- 模型汇总24 - 深度学习中Attention Mechanism详细介绍:原理、分类及应用
- 当我们在聊Attention的时候,我们实际在聊什么?


1. What is Attention

1.1 Encoder-Decoder模型的缺点

在机器翻译领域内,经典的Encoder-Decoder模型存在两个缺点:

  • 把输入的所有信息有压缩到一个固定长度的隐向量,忽略了输入输入的长度,当输入句子长度很长,特别是比训练集中最初的句子长度还长时,模型的性能急剧下降
  • 把输入编码成一个固定的长度,对于句子中每个词都赋予相同的权重,这样做是不合理的,比如,在机器翻译里,输入的句子与输出句子之间,往往是输入一个或几个词对应于输出的一个或几个词。因此,对输入的每个词赋予相同权重,这样做没有区分度,往往是模型性能下降

1.2 Attention的出现

2015年,Dzmitry Bahdanau 等人在 Neural Machine Translation by Jointly Learning to Align and Translate 提出了Attention Mechanism,用于对输入的不同部分赋予不同的权重,进而实现软区分的目的。

Attention Mechanism与人类对外界事物的观察机制很类似,当人类观察外界事物的时候,一般不会把事物当成一个整体去看,往往倾向于根据需要选择性地去获取被观察事物的某些重要部分,比如我们看到一个人时,往往先注意到这个人的脸,然后再把不同区域的信息组合起来,形成一个对被观察事物的整体印象。因此,Attention Mechanism可以帮助模型对输入的 每个部分赋予不同的权重,抽取出更加关键及重要的信息,使模型做出更加准确的判断,同时不会对模型的计算和存储带来更大的开销,这也是Attention Mechanism应用如此广泛的原因。

1.3 为翻译而生

Attention Mechanism 起初为了在机器翻译任务中,帮助更好的记忆长输入的情形。和原始的只是通过 encoder 最后一个 state 构建出 context 向量不同的是,Attention 在 context 向量和 input 之间构建了很多个 shortcuts (可以理解成 Attention 矩阵),这些 shortcut 的权重相对于不同的 output,都是不同的。

现在,在有了 Attention Mechanism 之后,相当于我们有了新的 context 向量,此时,输入和输出之间的对齐关系 (alignment relation) 可以被 context 向量学习到。

本质上来说,context 向量由以下三个部分组成。

  • encoder hidden states
  • decoder hidden states
  • alignment between source and target

此处输入图片的描述

1.4 Attention的分类


2. How to compute Attention Weights

讲完Attention的分类之后似乎已经跳跃到很远了,之后阅读论文原文之后再来做新的笔记。这里回归到 CourseraAttention机制的原理上来(GlobalSoft)。

2.1 计算注意力权重需要什么

此处输入图片的描述

2.2 一个小型网络负责计算

此处输入图片的描述
此处输入图片的描述

2.3 消耗

此处输入图片的描述
此处输入图片的描述


3. Generate context Attention Weights

此处输入图片的描述
此处输入图片的描述


4. Output y from Attention Model

此处输入图片的描述
此处输入图片的描述


5. Build Attention

5.1 Attention -> Decoder Context

此处输入图片的描述

5.2 Output y by using a loop

此处输入图片的描述

5.3 Attention NN Structure

此处输入图片的描述
此处输入图片的描述


添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注