定义

Seq2seq是用于NLP的一系列机器学习方法的统称,应用领域包括机器翻译、人机对话、图像描述、文本摘要生成。

内容

Seq2seq的目的是将输入序列转化为输出序列。它利用循环神经网络(递归神经网络)或者更有效的LSTM、GRU网络来避免梯度消失问题。当前项的内容总是来源于前一步的输出。Seq2seq的结构为一个编码器和一个解码器。编码器的作用是将输入序列转化为一个隐藏状态向量,该隐藏向量包含有输入序列的信息。解码器执行相反的过程,它将隐藏状态向量转化为输出序列,之后的每一步的输出作为下一步的输入。

优化方法

注意力机制(attention)

解码器的输入只有一个单独的向量,这个向量包含输入序列的全部信息。这里注意力机制允许解码器有选择的分块地使用输入序列的信息。

束搜索

使用束搜索,而不是选择单一的输出(文字)作为输出,多极有可能选择是保留,结构化作为一个树(使用softmax上设置的注意力的分数)。

存入桶

变序列长度是可能的,因为填补0,这可以做到的输入和输出。 然而,如果的序列长度为100和输入只有3项长、昂贵的空间被浪费。 桶可以不同规模和指定的输入和输出的长度。

在该模型的训练过程中,一般使用的是交叉熵损失函数作为目标函数来进行优化。