Seq2Seq模型的注意力机制
概述
Seq2Seq模型,顾名思义就是把一种对象序列转换为另一种对象序列的模型,模型的工作流程如下所示:

当我们把一个抽象的Seq2Seq模型转化为一个具体的任务,以NMT任务为例,输入的是一系列单词,输出的同样是一系列单词

深入
Looking under the hood,我们可以发现Seq2Seq模型由一个Encoder和一个Decoder组成
Encoder可以处理输入序列,捕捉输入序列的上下文信息
Decoder可以处理Encoder输出的上下文信息,进行生成任务



在NMT任务中,Encoder和Decoder都是RNN,上下文信息是向量,向量的大小就是RNN隐藏单元的数量
从下图我们可以看出,Encoder最后一个隐藏状态就是Decoder所需要的上下文信息


注意力机制
上下文向量作为Seq2Seq任务的瓶颈,使得模型处理长序列具有颇具挑战性
为解决该问题,注意力机制的提出极大地提高了NMT的质量,使模型能够把注意力集中到输入序列的部分内容
在注意力模型中,Encoder负责把所有的隐藏状态全部传递给Decoder,Decoder负责把注意力集中于部分内容
- 查看输入的隐藏状态集合,其中每个隐藏状态都与输入序列中的某个单词最相关
- 对每个隐藏状态打分
- 每个隐藏状态与softmax后的分数相乘



Visualizing A Neural Machine Translation Model (Mechanics of Seq2seq Models With Attention)

浙公网安备 33010602011771号