前言

曝光误差(exposure bias)简单来讲是因为文本生成在训练和推断时的不一致造成的。不一致体现在推断和训练时使用的输入不同,在训练时每一个词输入都来自真实样本(GroudTruth),但是在推断时当前输入用的却是上一个词的输出。

解决方案

1.使用scheduled-sampling,简单的做法就是在训练阶段使用的输入以p的概率选择真实样本,以1-p的概率选择上一个词的输出。而这个概率p是随着训练次数的增加衰减,可以使用指数函数的衰减,或者反sigmoid函数或者线性函数。

概率随着函数的变化

2.在loss中增加一定约束(曾经见到有人这么做过,但是我后面想仔细查阅时却发现一直都找不到这篇文章了)。
3.强化学习+GAN,就是SeqGAN的方法。这个Exposure Bias也是从《SeqGAN: Sequence Generative Adversarial Nets with Policy Gradient》这篇文章我看到的,但是作者阐述了这个问题(作者阐述的是用极大似然估计法会导致这个问题),不过SeqGAN并未阐述如何解决这个问题的。后来仔细思考,可以发现在SeqGAN训练阶段给于每个词是对应的奖励而不是像极大似然估计一样来提高这个词的概率,所以不会导致这个Exposure Bias。

相关资料

在BERT训练的任务通过预测Mark(掩盖)的词(这些词用一个标记来表示),然而下游任务并没有这个标记,所以在BERT中也采用了类似做法,就是训练时句子有p的概率是有掩盖的词,有q的概率是替换的词,有1-p-q的概率没有掩盖。然而这种做法就跟scheduled-sampling非常相似(或者是借鉴)。

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐