序列到序列的网络seq2seq

1、seq2seq

使用两个循环神经网络,将一个语言序列直接转换到另一个语言序列。

2、序列到序列的模型

是循环神经网络的升级版,其联合了两个循环神经网络。一个神经网络负责接收源句子;另一个循环神经网络负责将句子输出成翻译的语言。这两个过程分别称为编码和解码的过程。

示意图如下:
序列到序列的网络seq2seq_第1张图片

3、编码

编码过程实际上使用了循环神经网络记忆的功能,通过上下文的序列关系,将词向量依次输入网络。对于循环神经网络,每一次网络都会输出一个结果,但是编码的不同之处在于,其只保留最后一个隐藏状态,相当于将整句话浓缩在一起,将其存为一个内容向量(context)供后面的解码器(decoder)使用。

4、解码

解码和编码网络结构几乎是一样的,唯一不同的是在解码过程中,是根据前面的结果来得到后面的结果。编码过程中输入一句话,这一句话就是一个序列,而且这个序列中的每个词都是已知的,而解码过程相当于什么也不知道,首先需要一个标识符表示一句话的开始,然后接着将其输入网络得到第一个输出作为这句话的第一个词,接着通过得到的第一个词作为网络的下一个输入,得到的输出作为第二个词,不断循环,通过这种方式来得到最后网络输出的一句话。

5、使用序列到序列网络结构的原因

翻译的每句话的输入长度和输出长度一般来讲都是不同的,而序列到序列的网络结构的优势在于不同长度的输入序列能够能到任意长度的输出序列。使用序列到序列的模型,首先将一句话的所有内容压缩成一个内容向量然后通过一个循环网络不断地将内容提取出来,形成一句新的话。

你可能感兴趣的:(自然语言处理,文本摘要,机器学习,深度学习)