1.Seq2eq模型包括RNN、LSTM、GRU
Seq模型是输入是一系列单词,输出是被翻译过后的另外一个系列的单词
2.Seq2seq编码器(Encoder)
Encoder是一个RNN,也可以是LSTM、GRU等,接收的是每一个单词的词向量,和上一个时间点的隐藏状态。输出的是这个时间点的隐藏状态。其中激活函数可以是sigmoid、tanh、Relu、softmax等。
3.Seq2seq解码器(Decoder):
Decoder是个RNN,也可以是LSTM、GRU等,将encoder得到的语义向量作为初始状态输入到Decoder的RNN中,得到输出序列。可以看到上一时刻的输出会作为当前时刻的输入,而且其中语义向量只作为初始状态参与运算,后面的运算都与语义向量无关。
decoder处理方式还有另外一种,就是语义向量参与了序列所有时刻的运算,上一时刻的输出仍然作为当前时刻的输入,但语义向量会参与所有时刻的运算。
解码器的输出通常有如下几种方法:
(1)贪婪:输出对应最大概率值的单词,计算代价低。
(2)采样:通过对众多概率值采样输出单词。
(3)集束搜索:是一种启发式的算法,提高多个预测创建一个可能结果的扩展树。