seq2seq的机制原理
seq2seq模型,全称为Sequence to Sequence,它是一种通用的编码器—解码器框架,可用于机器翻译、文本摘要、会话建模、图像字幕等场景中。
前面已经介绍过Sequence-to-Sequence模型,即Encoder-Decoder模型。在实际聊天系统中,解码器和编码器一般都采用RNN模型和LSTM模型,编码器和解码器之间的唯一联系就是一个固定长度的上下文向量c,编码器要将整个序列的信息压缩进一个固定长度的向量中去。这样做有两个弊端,一是语义向量无法完全表示整个序列的信息,二是先输入的内容携带的信息会被后输入的信息稀释,输入序列越长,这个现象就越严重,这就使得解码时没有获得输入序列足够的信息,使解码时的准确率打折扣。
为了解决上述问题,在seq2seq出现后,Attention模型被提出。该模型在产生输出的时候,会生成一个注意力范围来表示接下来输出的时候要重点关注输入序列的哪些部分,然后根据关注的区域产生下一个输出,如此反复。Attention和人的一些行为特征有一定相似之处,人在读一段话的时候,通常只会重点注意具有信息量的词,而非全部词,人会赋予每个词不同的注意力权重。Attention模型虽然提高了模型的训练难度,但提升了文本生成的效果。