Seq2seq LSTM无法生成合理的摘要

时间:2018-04-18 12:34:47

标签: nlp keras lstm encoder-decoder seq2seq

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

Picture of bidirectional encoder-decoder LSTM

  1. 我正在使用skip-gram和

  2. 预训练单词嵌入(大小为256)
  3. 然后我用零填充输入序列,以便所有文章长度相等

  4. 我在每个摘要中添加了一个1的向量,以作为" start"令牌

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

  6. 培训:20个纪元,batch_size = 100,clip_norm = 1,dropout = 0.3,hidden_​​units = 256,LR = 0.001,training examples = 10000,validation_split = 0.2

  7. 网络训练以及训练和验证MSE下降到0.005,但是在推理过程中,解码器不断产生一些没有意义的单词的重复,并且远不及真正的总结。
  8. 我的问题是,我的培训方法,填充,丢失功能,数据大小,培训时间是否存在根本错误,以至于网络无法概括?

1 个答案:

答案 0 :(得分:1)

  • 除损失功能外,您的模型看起来没问题。我无法弄清楚MSE如何适用于单词预测。 交叉熵损失在这里看起来很自然。

  • 生成的单词重复可能是由解码器在推理时的工作方式引起的:你不应该简单地从分布中选择最可能的单词,而应该从中选择 sample 。这将为生成的文本提供更多变化。开始查看波束搜索

  • 如果我选择一种技术来提升序列以模拟序列模型,它肯定是注意机制。有很多关于它的帖子,你可以从this one开始,例如。