NLG的Decoding方法相关论文笔记(1)—— Unlikelihood Training

Neural Text Degeneration With Unlikelihood Training

Summary

文章介绍了一种新的语言模型训练方法unlikelihood training,在MLE的基础上对于设定的negative candidate中的token使用unlikelihood loss做出限制,用于解决MLE的训练方法中存在的重复和unique token少(模型很少输出富有含义的低频词)这些问题。(我私觉得文中实验的评价指标都是对文章提出的方法有利的

Research Objective

文本生成中的文本退化的问题。

Problem Statement

最大化log-likelihood的目标函数使得文本生成任务的模型过于单调无趣,高频词被反复地使用,而富有含义的低频词却很少被利用。最近的解决方法是用一些采样和复杂的beam search的变种,但治标不治本。

文本退化的可能原因有三:1、Transformer之类的模型更偏爱重复;2、是人类语言的内在属性,而不是模型的缺陷;3、依赖于固定的语料库,而不能考虑到语言的真实目的。

文章使用unlikehood training,对于真实的target token使用likehood update,对于非真实(其他的)token使用unlikelihood update。

Neural Text Degeneration

主要的问题包括,重复token分布的差距

重复的问题包括sequence-level的重复和next-token预测的重复。前者体现在greedy decoding的方法n-grams相比真实数据,模型的预测很容易出现重复;后者体现在模型在做t timestep时的next-token prediction时使用前文出现的token的概率要比真实数据时t timestep的token是前文出现的token的概率高。

token分布的差距是指模型生成的文本的unique token的数目要比真实数据的少40%。

The Unlikelihood Training Objective

Unlikelihood Training

定义一个negative candidates,unlikelihood loss的思想就是降低negative candidates出现的概率,其定义step t的unlikelihood loss为

定义negative candidates为上文的token:

再把这个unlikelihood loss加到每一步的maximum likelihood training当中,得到以下公式:

上式中的第一项是文中改进的unlikelihood loss,第二项是MLE中log条件概率。这样的改进使得(i)来自上文token的重复更少,(ii)高频词出现的可能更小,因为高频词经常性地在上文中出现。

文中接着给出了关于上式的梯度分析。设定,a是模型预测的logits,为了便于分析,假定negative candidate集合只有一个token 。那么负的token-level loss可以表示成:

接下来计算上式对于神经网络输出的logits a的导数,这个logits a也就是神经网络预测timestep t是出现vocab中各个单词的概率,经过softmax归一化,即可得到

softmax的导数

使用以上softmax的求导公式则有:

而和考虑i的各种情况:ground-truth的next-token;negative candidate中的token,其他的token。

  • ground-truth的next-token
  • negative candidate中的token
  • 其他的token

于是最终可以得到论文中的结论:

Sequence-level Unlikelihood Training

另外,文中还有针对sequence-level的unlikelihood的训练方法,如下式所示:

从表达式上看与next-token level的没差,但主要的区别在于关于negative candidates的定义。sequence-level的unlikelihood training是针对经过模型解码之后的decoded sequence而言,每个time step的negative candidate指可能为空或当前token ,当 是与相重复的某个的n-gram的其中一个token的时候,negative candidate设为。在代码实现中实际上是使用关于的伯努利分布来随机设定negative candidate,随机变量取1,则当前timestep的negative candidate取,否则为空。

Evaluation

文中用token的重复率:任意timestep t时刻的argmax的token在出现重复的占比;以及unique n-grams的占比作为评价指标,经过token-level和sequence-level的unlikelihood的训练Transformer模型,这些评价指标相较于基础的MLE训练都有较大的改进。

但是,这些指标并不是常见的文本生成问题指标BLEU,而是文章针对自己解决的问题所对应的重复占比,unique占比这些指标,以及通过众包和专家对不同的策略生成文本的质量的评判。

Reference

改进的decoding算法

  1. 不同的beam search的变体,hard or soft的beam blocking。
  2. Top k-sampling(来自于18年ACL的《Hierarchical neural story generation》)以及nucleus sampling的方法(下一篇笔记)。

改进的learning算法

改进learning算法包括energy-based model和最近的reflective likelihood,以及一个特殊的算法变体族,negative training。

Expression Record

post-hoc fixes,文章表示某个方法之后提出的一些事后修补

sth indicates a discrepancy(mismatch) between the human and model

These issues are not remedied by …(这些问题不能用…纠正)