前言
首先本文主要是对《 Neural Text Generation: Past, Present and Beyond 》这篇论文的总结,该论文是上海交通大学团队写的,查阅过数次,觉得写得很棒,在此总结一下,以此共勉。
要点
这篇的文章关注点在于神经网络的文本生成。
极大似然估计
首先,最开始的是用神经网络语言模型(NNLM)。以及的后来的RNNLM(基于RNN循环神经网络)。
是基于生成序列
生成下一次词
的概率。
由此得到似然函数
取对数,得到目标函数
。
以上就是极大似然估计法。
不过极大似然估计存在着曝光误差(exposure bias)。这个就是训练的时候都是用真实的样本进行训练的。但是在推理的时候,是基于上一个词生成当前的词,而上一个词本来就是生成的(有误差)。
解决这个问题的一个办法是采用计划采样(Scheduled Sampling)。
策略梯度(强化学习)
生成模型也可以视为马尔科夫序列决策过程,这样就可以使用策略梯度算法进行训练。
比如PG-BLEU就是以BLEU作为Reward对策略梯度
。
随着GAN的提出,SeqGAN使用了判别器判别句子的真实性,得到概率作为Reward。
SeqGAN也存在着两个问题。
1.梯度消失(Gradient vanishing)问题,就是判别器经常训练得太好,容易会把生成的句子判别出来(概率非常小)。
为了解决以上这个问题,都对reward进行了修改,有MaliGAN,RankGAN。
2.模式崩塌(Model collapse),总是生成短而且重复的句子(生成器学习数据分布的时候只能学到一部分)。
为了解决模式崩塌,大家根据Wasserstein GAN提出的方法,在此进行改进,比如DP-GAN。或者是对结构进行改进,比如LeakGAN。
总结
从NNLM到RNNLM,从极大似然估计到强化学习。目前比较流行还是以生成对抗网络进行文本生成,但是也存在着问题,许多学者都提出了自己的方法,比如MaliGAN,RankGAN,DP-GAN和LeakGAN,但是文本生成仍然存在着一些挑战需要大家去解决。