- 一些概念
1. seq2seq模型
seq2seq模型是由编码器(Encoder)和解码器(Decoder)组成的。其中,编码器会处理输入序列中的每个元素,把这些信息转换为一个向量(称为上下文(context))。当处理完整个输入序列后,编码器把上下文(context)发送给解码器,解码器开始逐项生成输出序列中的元素。
在编写seq2seq模型的时候设置上下文向量的长度。这个长度是基于编码器 RNN 的隐藏层神经元
的数量。
如何把每个单词都转化为一个向量呢?我们使用一类称为 "word embedding" 的方法。这类方法把单词转换到一个向量空间,这种表示能够捕捉大量单词之间的语义信息。可以使用预训练好的 embeddings,或者在数据集上训练自己的 embedding。
2. RNN 的机制
由于编码器和解码器都是 RNN,RNN 会根据当前时间步的输入,和前一个时间步的 hidden state(隐藏层状态),更新当前时间步的 hidden state(隐藏层状态)。
解码器持有 hidden state(隐藏层状态),而且需要把 hidden state(隐藏层状态)从一个时间步传递到下一个时间步。
3.Attention 讲解
注意力模型不同于经典的序列到序列(seq2seq)模型,
主要体现在 2 个方面:
首先,编码器会把更多的数据传递给解码器。编码器把所有时间步的 hidden state(隐藏层状态)传递给解码器&#