Seq2seq LSTM 无法生成合理的摘要

Posted

技术标签:

【中文标题】Seq2seq LSTM 无法生成合理的摘要【英文标题】:Seq2seq LSTM fails to produce sensible summaries 【发布时间】:2018-09-28 16:54:54 【问题描述】:

我正在 keras 中训练一个编码器-解码器 LSTM,用于文本摘要和具有以下架构的 CNN 数据集

Picture of bidirectional encoder-decoder LSTM

    我正在使用 skip-gram 和

    预训练词嵌入(大小为 256)

    然后我用零填充输入序列,这样所有文章的长度都相等

    我在每个摘要中放了一个 1 的向量作为“开始”标记

    稍后在解码器输出中使用 MSE、RMSProp、tanh 激活

    训练:20 个 epoch,batch_size=100,clip_norm=1,dropout=0.3,hidden_​​units=256,LR=0.001,训练示例=10000,validation_split=0.2

    网络训练以及训练和验证 MSE 降至 0.005,但在推理过程中,解码器不断重复生成一些没有意义的单词,并且与真正的摘要相去甚远。

我的问题是,我的训练方法、填充、损失函数、数据大小、训练时间是否存在根本性错误,导致网络无法泛化?

【问题讨论】:

【参考方案1】:

您的模型看起来不错,除了损失函数。我不知道 MSE 如何适用于单词预测。 交叉熵损失在这里看起来是一个自然的选择。

生成的单词重复可能是由解码器在推理时的工作方式引起的:您不应该简单地从分布中选择最可能的单词,而应该从中选择 sample。这会给生成的文本带来更多变化。开始查看beam search

如果我要选择一种技术来提高序列到序列模型的性能,那肯定是注意机制。有很多关于它的帖子,例如您可以以this one开头。

【讨论】:

以上是关于Seq2seq LSTM 无法生成合理的摘要的主要内容,如果未能解决你的问题,请参考以下文章

尝试对带有掩码输入的 LSTM Seq2Seq 执行推理时的 CUDNN_STATUS_BAD_PARAM

深度学习核心技术精讲100篇(四十二)-Seq2seq框架下的文本生成

DL4NLP —— seq2seq+attention机制的应用:文档自动摘要(Automatic Text Summarization)

DL4NLP —— seq2seq+attention机制的应用:文档自动摘要(Automatic Text Summarization)

seq2seq 入门

探索ChatGPT技术在文本生成机器翻译领域的简单应用