论文阅读笔记 (LS导致隐式长度惩罚)
题目 | The Implicit Length Bias of Label Smoothing on Beam Search Decoding |
---|---|
论文链接 | https://arxiv.org/pdf/2205.00659.pdf |
作者列表 | Bowen Liang, Pidong Wang, Yuan Cao |
作者单位 | |
文章类型 | 短文 |
撰写人 | C.Y. |
核心任务和思想
通过数学推导在理论上说明训练时采用标签平滑会隐式地导致beam search解码机器翻译任务时存在长度惩罚,使得解码倾向于给出较短的结果,且理论上,标签平滑的模型会使得解码的长度存在与输入无关的常数上界。作者在实验中也发现了上述现象,并提出了修正方法。
背景知识
标签平滑是一种正则化防止过拟合的方法,它将独热的标签平滑为实数向量,计算方法如下:
其中q是平滑前的概率向量(向量的维度为词表大小V,向量中每个元素代表对应索引的词的概率),它是独热的。α是超参数,一般取为0.1。平滑后,原来为1的元素会略微减小,原来为0的元素会略微增大。
我们设模型给出的最后一层输出为向量q,在充分训练后,q
可以视为模型给出的下一个时间步每个单词的概率,即有:
在beam search解码时,我们的目标是得到一个对数概率尽量大的序列,但由上文可知,我们使用的p_hat和真正的概率q存在一定偏差,因此有下式:
其中T是序列长度,y_t是t时间步的输出(序列的第t个词),可以看到最后序列的对数概率与真实的对数概率存在与序列长度线性相关的偏差,而log(1-α)是一个负值,当α取0.1时为-0.105,导致T越小,序列越短,对数概率越大,因此解码倾向于给出越短的序列。
继续计算,我们可以得到p_hat的上下界:
那么对于空序列(仅由EOS构成)和某个序列,有:
两式比较,可以得到T有如此上界:
方法
通过上述的理论推导,将第一个公式逆过来,得到修正公式:
由于模型训练的结果不完全是概率,这样计算后概率值可能会超出[0, 1],因此作者又增加了ReLU来避免这种情况。
加上归一化,最终结果如下:
其中δ=α / V 。
作者使用修正后的概率值,使用beam search进行实验。
作者将模型的 δ 设为 n / V,其中n = 0.1、1、100,同时也探究了beam size分别为1、4、8、25、100、200的结果。
实验
-
数据集
-
WMT19 EnDe, EnCs, EnZh 和 WMT15 EnFr.
-
评测指标
-
BLEU值
-
翻译长度 / 源句子长度
-
基线方法
-
基于Transformer训练的机器翻译模型,没有标签平滑。
-
基于Transformer训练的机器翻译模型,采用α = 0.1的标签平滑,但在解码时不采用上述偏差修正,即δ = 0。
-
主实验结果及分析
-
所有模型解码时不采用长度惩罚(因为这会使上述推导的T项被除去)
-
结果1:
- 在EnDe数据集上BLEU值与δ、beam size的关系如下:
-
可以看到修正对贪心搜索没有影响,而随着k增大,修正的影响更大,在beam size = 200时,修正在横轴范围内使得BLEU值持续增大。
-
结果2:
- 在EnDe数据集上,当beam size = 200时,BLEU值与源句子长度,是否标签平滑、修正程度的关系如下:
-
可以看到没有标签平滑的模型在较长查询中性能优于标签平滑模型。而修正后也能让较长查询的结果更好。
-
结果3:
- 在EnDe数据集上,长度比值和源句子长度、δ的关系如下:
-
可以看到没有标签平滑、修正后的标签平滑均有利于生成更长的句子,且有利于更长的查询。
-
结果4:
- 不同数据集上的结果(BLEU值):
-
可以看到beam size为4时,δ = 1 / V是一个峰值,beam size为200时,随δ上升模型性能都有上升。这与预期相符。
-
副实验设置、结果、分析
-
副实验主要探究修正后是否会让模型过度自信(因为设置标签平滑就是为了防止过拟合)。
-
数据集和模型:仍采用上述数据集和模型
-
评测指标:Set-Level Calibration analysis。对于每个查询,将前 200 个beam搜索输出的预测概率相加,用 S 表示,并将参考句子包含在S中的实际频率进行比较,模型校准越好,两个数字越匹配。
-
结果如下:
标签平滑且无修正的系统过于自信,而经过修正后可以非常匹配。
个人点评和启发
用理论推导出beam search解码中存在的问题,并通过实验验证。
我认为最后合适的δ取1 / V暗示着模型在其他地方还有系统误差(如果只是标签平滑带来的误差,那应该在0.1 / V左右达到最佳)。
如果是我来修正,根据理论用[0, 1]外的值截断更合理。因为ReLU解决了修正后小于0的概率修正为0的问题,但不会把修正后超过1的概率截断为1,用ReLU后的结果归一化就让人感觉怪怪的。不过由于修正后概率超过1的其实很少(至多有1个,至少有0个),所以应该不会特别影响实验结果。