论文笔记-unlikelihood training

基于标准的似然训练的语言模型在解码时会出现很dull的重复问题。如下图所示:

诚然将likelihood作为训练目标,能得到强大的具有语言理解能力的模型。但是将似然作为目标会导致语言的平淡和奇怪的重复。而且基于强大的GPT2-117M,使用beam search,理论上beam size越大,生成的句子概率越大,效果越好才对。但事实却是反直觉的,beam size越大,语言的退化效果更明显。(我猜这也是很多时候beam size设为10左右,而不会更大。)

Holtzman1 揭示了语言模型的这种退化现象,他们将机器生成的语言和人类语言进行对比,如下图所示,人类文本在生成每个token的困惑度中表现出相当大的波动,而由最大似然解码产生的机器文本的分布则出现不自然的平坦和较高的token概率.

事实上,语言模型在生成词的时候,大部分的概率集中在几百个tokens上。这限制了机器文本的多样性,也是导致模型在长文本生成退化的原因。基于此,如下图所示,top-k, nucleus sampling是不错的方法。

但是sampling的方法并没有改变模型生成的概率其本身。生成文本退化的真正原因还未知,已有的论文认为有以下几种可能:

  • 模型架构选择的by-product,例如 Transformer 更喜欢重复;
  • 人类语言的内在属性,而不是模型缺陷;
  • 语料有限;

相比之下,Welleck2 认为生成模型以最大似然最为训练目标会导致文本生成退化。其原因有:
- 将注意力集中在argmax或top-k,而不是优化整个distribution
- 只是集中于下一个token的生成,而不是整个句子的优化

为此,Welleck3 提出了 unlikelihood training:
- 依据likelihood来优化target tokens,并给予较大的概率
- 依据unlikelihood来更新,避免给予target tokens太大的概率。(不知理解的对错,原文如下)

Unlikelihood training works by combining two types of updates: a likelihood update on the true target tokens so they are assigned high probability, and an unlikelihood update on tokens that are otherwise assigned too high a probability.

unlikelihood loss

unlikelihood loss的核心就是降低negative condidates \(C^t\) 的似然概率。

token-level unlikelihood loss

以自回归的语言模型为例,下一个时间步的loss计算包括target的似然最大化,以及negative candidates的似然最小化。

negative candidates 是当前试了之前的词汇。

sequence_level unlikelihood loss

我们知道基于自回归模型的训练和解码是存在exposure bias的,也就是解码的时候有误差累积。其实这种distribution mismatch是maxmimum-likelihood追求当前时刻的概率最大话。而没有从整个句子的层面去考虑。比如重复问题,你上一个词出现过了,下一个词还出现它;你这句话说过一遍了,你还要再说一遍。。这不离谱吗。但是模型就是这么傻,或者说模型没有大局观的原因是之前的优化都是在token-level层面。

因此,Welleck4 提出了sequence-level unlikelihood loss.

这个公式看起来跟前面一样,但是区别在于 negative condidates的选择。这里的negative是从n-gram层面来考量的。

也就是对于当前时间步,如果它是重复的n-gram的一部分,那么它就是negative candidate.

这里有点不太好理解,token-level就是把之前出现的词作为negative candidate. 如果有些词在前面并没有出现,但它的出现会导致重复的n-gram?这不合理啊,它都没出现,怎么可能出现包含它的n-gram呢?? 这样想 sequence-level 不就是 token-level的一种特殊形式。

带着疑问去看代码吧。看完代码,sequence-level是在训练完token-level之后,再进行finetune,对导致出现重复的ngram的某个time-step进行惩罚。。在我的实验上不太靠谱,重复反而变多了


  1. The Curious Case of Neural Text Degeneration

  2. Neural text degeneration with unlikelihood training

  3. Neural text degeneration with unlikelihood training

  4. Neural text degeneration with unlikelihood training