Language Modeling 中的negative diversity ignorance问题
Auto-regressive language modeling 使用 cross-entropy 作为 loss function,会导致一个问题:negative diversity ignorance 这个概念在ICLR'2020的论文 《Data-dependent gaussian prior objective for language generation》 中被首次提出,然而其背后的Cross-entropy loss的缺陷其实已被广泛讨论,除了Text generation之外,在经典的classification中,已经有很多工作致力于改进 CE loss,例如 label smoothing方法、经典的knowledge distillation、Label Enhancement、笔者曾经提出的的 Label Confusion Model 方法等等。
这里回到text generation的场景,language model pretraining中的 negative diversity ignorance 是啥意思呢?这里进行简单的解释。
简单推导
假设真实的语言概率分布为
代表了给定前文(t之前的tokens)的条件下下个token为
的概率。由于是真实语料,我们观测到了
,那么这个概率就是1(其实可以感觉到一丝不合理了...)。
假设要训练的语言模型对应的概率分布为
,那么对于一整句话
,计算 CE loss为:
其实这里可以省略掉概率里的条件,不影响推导:
对于第 t 个token,其 CE loss就是
,也就是上面
的第t项。
注意到,
就是模型的输出概率,即
其中
就是所谓的logits,
是 vocabulary size。
softmax 的导数很有意思,简记
为
,求偏导:
那么求 CE loss对于logits的偏导,可得:
也就是说,对于ground truth的token,也就是这里的t位置的token,梯度下降会让
的预测概率往1的方向优化,而其他位置的预测概率往0的方向优化,而且是平等地往 0 优化。这有什么问题呢?给定上文后,下一个 token 除了ground truth的那个token之外,可能有很多其他的token都是合适的,或者说至少会有一个合适程度的排序。然而,CE Loss 的这个特点,导致所有其他 token (又被称为 negative tokens) 都被同等地惩罚了,导致了多样性的降低,即所谓的 negative diversity ignorance 问题。
正是因为这个特点的存在,我们往往需要极为庞大的语料库去预训练,才能达到比较好的效果。所以 CE Loss 并不是学习语言模型的最优损失函数。
缓解方法
由前面的介绍可以看出,出问题的根源就在于对于ground truth distribution的构造不合理,即
不应该等于1,而应该是能反映不同token相对匹配程度的一个概率。
如何缓解这个问题,本文开头提到的 Data-dependent gaussian prior objective for language generation (ICLR'2020) 以及其后续工作 EMO: Earth Mover Distance Optimization for Auto-Regressive Language Modeling (ICLR'2024) 分别提出了一些思路,后面有空进行解读。
领取专属 10元无门槛券
私享最新 技术干货