1 目的和思想
seq2seq 模型的目的:通过一个序列得到另一个序列,例如:问答、翻译
seq2seq 的整体思想:利用了 LSTM
模型出自论文: Sequence to Sequence Learning with Neural Networks
2 模型原理
模型实现(基础模型):
- 将输入的序列通过 encoder 编码为定长向量 c
- 再将 c 输入decoder 解码输出序列
左边是lstm作为encoder,右边是lstm作为decoder
训练时为监督
预测时为无监督
3 优化
在基础的seq2seq模型上,会存在几种问题需要解决:
- 输入的序列长度不定长,很难用 c 来表示,直接编译会导致梯度消失
3.1 Teacher Forceing
Teacher Forcing 用于训练阶段,是上一个神经元得出的结果不一定是正确的,会根据一定比例使用上个神经元输出的结果
3.2 Attention
在注意力机制下,decoder 的输入就不是固定的上下文向量 c 了,而是会根据当前翻译的信息,计算当前的 c
3.3 beam search
4 seq2seq 总结
seq2seq 能使用长度不同长度的输入和输出序列,可以适用很多任务
5 应用任务
文中应用任务:
-
对话系统
-
机器翻译
-
阅读理解