【每周一文】Sequence to Sequence Learning with Neural Networks(2014)

概述

DNN已经被成功用于多种AI任务,并取得很多可喜的成绩,例如语音识别、图片分类等。然而它们都不能处理序列到序列的任务,该文提出了一个端到端的(End To End)模型处理序列到序列的任务。
本文主要介绍:

1.Seq2Seq任务描述
2.Seq2Seq模型介绍

任务描述

在自然语言处理中有很多任务都可以归约为序列到序列的任务,例如:
1.机器翻译问题
2.语音识别
3.图片添加注释
4. 问答系统
5. 文本摘要

这些问题都1)输入和输出可能都是不同领域2)输入和输出可能长度不一致。

该文提出的Seq2Seq的模型能够处理上述问题,并且能够端到端处理不需要额外其他操作。

Seq2Seq模型

模型简单描述如下:
这里写图片描述

1.其中序列ABC是输入序列,WXYZ是输出序列,EOS是结束符号
2.模型分为两个阶段1)encode阶段,该阶段将输入序列编码成一个定长维度的向量2)decode阶段,根据编码后向量预测输出向量。
3.编码过程,可以使用标准的RNN模型,例如

htyt=f(Whxxt+Whhht1)=Whyht

4.解码过程,也可以使用一个标准的RNN模型进行解码,例如RNN-LM
p(y1,y2...yM|x1,x2...xN)=t=1MP(yt|v,y1,y2...yt1)
其中v为编码后的定长向量。
5.该文应用该模型去处理机器翻译问题,从英语翻译为法语,还发现1)使用LSTM进行编码和解码2)深层的LSTM比浅层效果好很多3)将输入序列进行逆序编码后在进行训练能够对模型进行优化。

模型扩展

Seq2Seq模型基本上可以等价于编码和解码模型即encode-decode,对于不同的问题编码和解码可以选择不同的模型。

编码模型

编码模型需要解决问题是将变长的输入编码成定长向量,可选模型包括:
1. CNN
2. RNN,包括LSTM、GRU以及其他变形单元
3. BIRNN双向RNN,被证明在多种任务中效果优于RNN
4. fasttext:将词向量进行求和

解码模型

1.RNN
2.AttentionModel

总结

通过本文能够了解Seq2Seq模型以及能够解决的问题。具体应用需要具体语境选择不同模型。

猜你喜欢

转载自blog.csdn.net/fangqingan_java/article/details/53232030