李沐第十八课《seq2seq》
这节课主要讲了两个东西,一个是seq2seq(编码器-解码器),一个是attention机制
seq2seq
当输入和输出都不是定长的时候,比如翻译等,我们可以采用编码器-解码器机制,编码器对应输入序列,解码器对应输出序列。
1,编码器的作用是将一个不定长的输入序列转换为一个定长的背景向量c
2,编码器最终输出的背景向量c,这个背景向量c编码了输入序列X1,X2,X3..XT的信息,
3,解码器的作用具体如下图
如上的解码器工作时,主要用到的都是相同的背景向量c,但是我们会希望解码器在解码时能用到不同的背景向量c,因此这就引入了attention知识。同时我们应该要知道,在解码时我们的除了用到背景向量c外,还有在t时刻的隐层变量St,以及t-1时刻的输出Yt-1.这是我们引入attention时计算所需要的变量,如下图
Attention
截图如图,主要是其用来构造不同时刻的背景向量c引入了attention知识,也就是权重a的计算,注意下图圈出来的四个计算公式。
结论:1,编码器-解码器(seq2seq2)的输入和输出可以都是不定长的序列
2,在解码器上应用attention机制可以在解码器的每个时刻使用不同的背景向量c,每个背景向量相当于对输入序列的不同部分分配了不同的注意力。
参考资料:http://zh.gluon.ai/chapter_natural-language-processing/seq2seq-attention.html