seq2seq
seq2seq又叫Encoder-Decoder模型。它可以实现从一个序列到任意一个序列的转换,模型如下所示,其左半部分为Encoder部分,右半部分为Decoder部分。
在翻译的应用中,可以理解为看完一个句子,提炼出它的大意
Seq2Seq模型中的向量 c就代表着context vector,即含有所有输入句信息的向量。
缺点
基础的Seq2Seq有一些缺点,因为Encoder将输入编码为固定大小状态向量的过程实际上是一“信息有损压缩”的过程,如果信息量越大,那么这个转化向量的过程对信息的损失就越大,基础的模型连接Encoder和Decoder模块的组件仅仅是一个固定大小的状态向量,这使得Decoder无法直接去关注到输入信息的更多细节。相当于是在输入一句话之后,看完一遍,立刻要求进行翻译;对于人而言,长句子的效果也不会很好。
改进
seq2seq +attention
则类似于翻译人员从头到尾阅读德语文本,同时写下关键字,然后他开始翻译成英语。 在翻译每个德语单词时,他使用了自己写下的关键字。
总结:翻译每一个单词时,阅读的文本内容里面不是每个单词都是一样重要,而是应该有不同权重,这就体现了attention机制的重要。