Seq2Seq+Attention+Beam Search

开篇

Seq2Seq算是我NLP里面接触比较早的模型,它来源于机器翻译,我用来做文本自动摘要。当然它在文本自动摘要领域的效果并不好。

Seq2Seq

Seq2Seq本质上是条件生成模型(Conditional Generation),在现有的模型中,看图说话(Image caption)也是类似的条件生成模型,它们的结构很类似,如下图所示

都是Encoder-Decoder的结构。

下面我们看一下Seq2Seq的具体结构

Encoder会通过一个RNN把输入的单词序列编码成一个向量输出,Decoder接受这个向量去解码成新的句子。这里可以把它看做一个条件语言模型,Decoder就是一个语言模型,我们使用这个模型去生成新的句子,但我们的起始输入不是0向量,我们生成的句子也不再是随机的。

Beam Search选择最可能的句子

我不每次选择概率最大的单词的主要原因是我们希望找到总体概率最大的句子,使用贪心的算法去选择,最坏的情况就是第一个单词的概率最大,之后在第一个单词条件概率的影响下,之后的单词概率都不高,导致整体句子的概率并不大。

猜你喜欢

转载自blog.csdn.net/Ding_xiaofei/article/details/81559653