一、Seq2Seq模型
- seq2seq模型是一个Encoder-Decoder结构的网络,它的输入是一个序列,输出也是一个序列。
- Encoder中将一个可变长度的信号序列变为固定长度的向量表达,Decoder将这个固定长度的向量变成可变长度的目标的信号序列。
- 这个结构最重要的地方在于输入序列和输出序列的长度是可变的。
- 该模型可用于翻译,聊天机器人,句法分析,文本摘要等。
二、Seq2Seq模型图示
1. 编码过程
Encoder负责将输入序列压缩成指定长度的向量,这个向量就可以看成是这个序列的语义,这个过程称为编码。
2. 解码过程
Decoder部分就是根据Encoder部分输出的语义向量c来做解码工作。以翻译为例,就是生成相应的译文。注意生成的序列是不定长的,而且上一时刻的输出通常要作为下一时刻的输入。
3. Seq2Seq模型示意图
4. Seq2Seq结构
这张图体现出单独seq2seq模型的缺点,即预测w时,用到的数据只能是上一点的输出以及当前点的输入,再往前的数据就拿不到了。
因此接下来引入注意力(Attention)机制。。
三、Attention机制
-
注意力机制是在序列到序列模型中用于注意编码器状态的最常用方法,它同时还可用于回顾序列模型的过去状态。
-
注意力机制的作用:
- 注意力机制不仅能用来处理编码器或前面的隐藏层,它同样还能用来获得其他特征的分布,例如阅读理解任务中作为文本的词向量。
- 减小处理高维输入数据的计算负担,通过结构化的选取输入的子集,降低数据维度。
- 让任务处理系统更专注于找到输入数据中显著的与当前输出相关的有用信息,从而提高输出的质量。
- Attention模型的最终目的是帮助类似编解码器这样的框架,更好的学到多种内容模态之间的相互关系,从而更好的表示这些信息,克服其无法解释从而很难设计的缺陷。