1 理论动机

1.1 短序列偏置的来源

1.1.1 基于概率/对数概率的长度不等性

在基于概率的序列建模中,常用的“序列得分”往往来自对数概率之和。由于对数概率通常按步(token 或状态)累加,序列越短,累加项越少,得分的尺度与极值分布就会与较长序列不同。即使模型在每一步的局部选择上表现一致,长度带来的累积效应也会让短序列在比较中更容易获得相对优势,从而形成偏置。

1.1.2 搜索与排序中的长度优势/劣势

在解码或候选排序中,系统通常会在同一轮比较不同长度的候选。若使用未经调整的累计得分作为排序依据,那么搜索算法会倾向于挑选得分优势来自“项数更少”的候选,而不是来自“整体质量更高”。结果可能表现为生成文本过短、路径过短或在检索场景中偏向短目标片段等。

1.2 为什么需要归一化

1.2.1 跨长度比较的公平性

长度归一化的直接目标,是让“得分-长度”的组合在比较时更接近同等对待:把原本随长度自然增长或减少的得分效应,按照某种函数进行重标度,使不同长度候选之间的排序依据更能反映模型对内容质量的偏好。

1.2.2 排序一致性超参数稳健性

在实际系统里,得分尺度会影响束搜索裁剪、重排序排序阈值以及采样策略保留集合。长度归一化后,不同长度候选的相对竞争更稳定,往往能减少对某些解码超参数的“脆弱依赖”,从而提升结果可复现性与调参效率。

1.3 与“归一化”相关的常见混淆

1.3.1 归一化 vs 标准化

“长度归一化”通常指对序列级别得分按长度进行缩放或惩罚,改变的是“比较准则”。而“标准化”一般更强调对变量进行均值方差等统计变换,使其满足特定分布性质;两者目的与落地点不同,不能混为一谈。

1.3.2 训练时处理 vs 解码时处理

长度归一化多发生在解码/搜索阶段,用于调整候选打分。若模型训练阶段就引入长度约束、长度特征或结构化损失,属于另一类机制。二者可能叠加,但含义不同:前者主要影响选择与排序,后者影响学习到的参数分布。

2 数学定义与常见形式

2.1 原始得分与长度变量

2.1.1 序列得分(log-prob、能量、启发式等)

令原始序列得分为 \(score\)。在不同体系中它可代表对数概率(或其求和形式)、能量函数、启发式分数,或组合后的中间量。长度归一化通常把 \(score\) 视作需要被重标度的标量输入,再得到 \(score'\) 作为最终比较依据。

2.1.2 序列长度的口径选择

长度 \(L\) 的定义需要明确:是包含起止符还是不含,是否把特殊 token 计入,是否以字符、子词或步数为单位。不同口径会导致归一化强度产生系统性偏移,因此在论文或工程复现中应保持一致。

2.2 幂律长度归一化

2.2.1 score / L^α

一种常见形式是幂律缩放: \[ score'=\frac{score}{L^\alpha} \] 其中 \(\alpha\) 控制缩放强度。幂律会以“随长度增长的速率”来缓解累积得分带来的长度不平等:当 \(\alpha>0\) 时,长序列会受到相对惩罚或归一化;当 \(\alpha<0\) 时则相反,可能更偏好长序列(具体方向还取决于 \(score\) 的符号约定)。

2.2.2 score · L^{-α} 的等价视角

由于除以 \(L^\alpha\) 等价于乘以 \(L^{-\alpha}\),可把它理解为对长度施加指数权重: \[ score'=score\cdot L^{-\alpha} \] 这种视角有助于在实现中统一符号,并在调参时更直观地解释“归一化强度”的变化。

2.3 对数/指数式长度惩罚

2.3.1 score + β·log(L)

另一类常用做法是加入对数长度项: \[ score'=score+\beta\log(L) \] 其中 \(\beta\) 决定长度项的贡献。对数函数增长较慢,通常对中等长度的影响更温和,同时仍能在比较中产生稳定的长度偏移修正

2.3.2 score + β·L 的线性惩罚(概念对照

作为对照,有时会使用线性长度惩罚: \[ score'=score+\beta L \] 线性项对长序列的惩罚/奖励会随长度快速放大,可能导致更强的长度偏好,且对超参数更敏感。实践中常需要更谨慎的调参,避免把排序极端拉向某一长度区间。

2.4 分段或平滑归一化

2.4.1 避免极短序列的数值不稳定

若 \(L\) 可能非常小(例如只含少量 token),直接使用 \(L^\alpha\) 或 \(\log(L)\) 可能带来数值问题。常见处理包括加入常数偏移(如 \(L+\epsilon\))、限定最小长度,或使用分段策略把极短区间映射到更稳定的尺度。

2.4.2 平滑函数与连续可导的需求

在某些需要梯度或更平滑行为的场景(例如与学习到的重标度共同优化时),会采用可导的平滑近似或连续函数。其目的不是“改变最终目标”,而是减少因为长度离散化造成的跳变,从而让优化更稳定、调参更可控。

3 应用场景

3.1 序列生成与解码

3.1.1 束搜索中的长度偏好修正

束搜索会在每一步扩展候选并按累计得分保留若干分支。若直接用原始序列得分进行裁剪,短候选更容易以较优分值存活。引入长度归一化后,束搜索的比较准则会更偏向“综合质量”,从而降低过短输出或过早收敛到短答案的现象。

3.1.2 贪心/采样策略下的打分重标

尽管贪心解码通常在每步局部决策,不像束搜索那样直接比较不同长度的整段候选,但在带有停止条件、候选重评估或“多候选再打分”的流程中,长度归一化仍可能出现。例如在采样后对多个完成序列进行重排序时,可把长度项纳入最终选择准则。

3.2 排序与候选选择

3.2.1 n-best 重排序

生成或检索常会先得到若干完成候选(n-best),再用更符合目标的准则重排。长度归一化可用于把“得分高但过短/过长”的候选拉回到更合适的长度区间,提高整体排序稳定性

3.2.2 检索任务中的长度公平化

在检索或匹配任务里,系统有时比较不同长度的片段或不同步数的路径。若打分是累计式的,长度会影响得分尺度。长度归一化可以减少偏向短片段或短路径的倾向,让排名更体现语义匹配或结构吻合程度。

3.3 结构化预测与路径打分

3.3.1 图搜索中的路径长度偏置

图模型中,路径得分往往沿边累加。若边权与概率或能量有关,路径更长意味着累积项更多,从而在比较上产生偏置。长度归一化可视为对路径得分的重标度,使算法更能比较“单位长度的质量”而非“边数多寡”。

3.3.2 序列标注的步数/跨度归一化

序列标注可把输出视作由多个状态变化或片段跨度组成。若得分与步数高度相关,模型可能偏好较短或较长的跨度结构。通过在候选评估中引入长度项,可以在不同切分粒度或跨度方案之间进行更公平的比较。

4 与超参数选择的关系

4.1 归一化强度参数的含义

4.1.1 α、β 等参数如何影响长度偏好

幂律形式中的 \(\alpha\) 控制长度在缩放中的权重,对长序列的压制或鼓励由符号与 \(score\) 定义共同决定;对数惩罚中的 \(\beta\) 则决定长度项对最终得分的增益或抵消幅度。一般来说,参数越“强”(绝对值越大),长度对排序的影响越显著。

4.1.2 从极端情况理解参数方向

理解参数方向可从极端出发:当 \(\alpha=0\) 时,缩放退化为不做长度归一化;当 \(\alpha\) 或 \(\beta\) 很大时,长度项会主导排序,可能出现明显的长度集中现象。通过观察生成长度分布的移动方向,通常能快速定位“应当加强短序列惩罚还是加强长序列惩罚”。

4.2 选择策略

4.2.1 验证集网格搜索/贝叶斯优化

常见做法是在验证集上对 \(\alpha\) 或 \(\beta\) 进行网格搜索或贝叶斯优化,选择在目标指标上最佳的一组参数。由于长度归一化会同时影响排序、输出质量与长度分布,建议把指标与长度期望一并纳入约束或观察。

4.2.2 与其他校准手段的联动(如温度)

长度归一化并非独立于其他“重标度”机制。温度缩放会改变采样或概率分布的尖锐程度,从而改变候选质量分布;与长度归一化联动时,可能出现“某一项补偿另一项”的效果,导致需要联合调参或至少在报告中说明调参次序。

4.3 指标与评估

4.3.1 比较不同长度下的排序准确性

评估时不仅看整体准确率或整体困惑度,还可以按输出长度分桶统计排序正确率,观察归一化是否改善了短长两端的不公平竞争。

4.3.2 与质量指标(如困惑度/人评)的一致性

长度归一化改变的是比较准则,因此在指标上可能出现“短度提升但人评下降”或“困惑度不变但主观质量改善”等差异。较稳妥的做法是同时报告自动指标与人工或任务级质量指标,以判断归一化是否带来真正的质量收益。

5 影响与权衡

5.1 生成长度分布的改变

5.1.1 平衡“过短”和“过长”的倾向

合理的归一化通常会把长度从单边偏置拉回到更符合数据或任务需求的区间。过度的归一化则可能把偏置从“过短”翻转为“过长”,表现为冗长、啰嗦或路径拖长。

5.1.2 多样性与连贯性的潜在副作用

长度偏好改变了选择空间的几何结构,可能影响多样性:例如更强的长度约束会减少长度差异带来的候选多样性。与此同时,连贯性也可能受影响,因为某些模型偏好在固定长度附近更稳定,而在其他长度上容易生成不完整或断裂的内容。

5.2 校准与可解释性

5.2.1 得分尺度变化带来的解释难度

归一化后得分不再是原始概率语义的直接映射。若需要解释“某个得分对应多大概率”,则必须明确归一化形式与参数,或提供额外校准步骤,否则不同系统之间难以比较得分绝对量。

5.2.2 归一化后概率语义是否保持

若 \(score\) 本身是对数概率的和,对数长度惩罚或幂律缩放会破坏严格的概率一致性:得到的 \(score'\) 不一定对应某个可解释的归一化概率模型。实践中更常把它视作“用于排序/选择的打分函数”,而不强求其严格概率含义。

5.3 与其他偏置修正的比较

5.3.1 长度惩罚 vs 覆盖惩罚(思想对照)

长度归一化侧重调节输出长度带来的得分偏移;覆盖惩罚则常见于翻译或图像到文本等任务,旨在控制“重复或遗漏某些内容”的倾向。二者目标不同:一个关注整体长度尺度,一个关注内容覆盖程度,但在效果上可能共同影响生成风格。

5.3.2 长度归一化 vs 训练时长度约束

训练时约束会改变模型学习目标,使模型本身在参数层面适应长度偏好;解码时归一化则是在选择阶段“后处理”。若只做解码归一化,模型内部仍可能对长度有偏见,只是被外部裁剪规则抵消。

6 实践实现要点

6.1 数值稳定性

6.1.1 对数域计算与溢出/下溢问题

当使用幂律或指数形式时,可能出现大数或小数导致的溢出/下溢。工程上常在对数域中计算,或对 \(L^\alpha\)、\(\log(L)\) 进行安全处理,必要时使用 \(\epsilon\) 避免除以零。

6.1.2 极短长度的处理规则

当 \(L\) 接近最小可能值时,归一化项可能过强或不稳定。常见策略包括设置最小长度阈值、对极短序列采用分段函数,或在归一化中加入平滑常数,使得比较更符合直觉。

6.2 代码层面的常见坑

6.2.1 length 的定义是否一致(含/不含特殊符号)

实现中最容易出错的是长度口径不一致:例如某些代码把结束符计入,另一些不计入;或把填充 token(padding)错误纳入有效长度。需要在编码、解码与评估的所有阶段保持统一。

6.2.2 batched 解码中长度张量的对齐

在批量解码(batched)里,不同样本的完成时刻不同,会导致长度张量与得分张量的对齐方式出错。应确保对每条候选使用正确的有效步数,并在重排序阶段同样使用一致的长度索引。

6.3 复现与报告规范

6.3.1 公开参数与归一化公式

报告时应给出具体公式(如除以 \(L^\alpha\) 或加 \(\beta\log(L)\))、参数取值、以及 \(L\) 的定义与单位。否则即便读者知道“使用长度归一化”,也难以复现同等效果。

6.3.2 指明口径与版本差异

不同版本的模型可能使用不同的 tokenization 方案、不同的特殊符号集合或不同的解码停止规则。复现实验应明确这些差异,并说明长度归一化是在何阶段应用(例如在 n-best 重排序前后)。

7 相关概念

7.1 损失函数中的长度处理

7.1.1 token-level vs sequence-level

训练损失可能按 token 平均或按序列汇总。token-level 的平均化在某种程度上缓解了长度导致的损失尺度变化,而序列级损失则更直接受长度影响。长度归一化更多发生在推断阶段,但与训练阶段的长度处理方式存在概念联系。

7.2 评分函数与校准

7.2.1 温度缩放与归一化的关系

温度缩放常改变概率分布的“分散程度”,而长度归一化改变“比较时的长度权重”。两者都可被看作打分函数的重标度,但作用对象不同:一个影响分布形状,一个调节长度相关偏差。

7.2.2 Kalibrated decoding 的思路对照

校准式解码的目标是让得分或概率更符合某种可比尺度,使选择更可靠。长度归一化属于常见的启发式校准手段之一,常与其他重标度方法一起使用,以改善排序一致性。

7.3 解码策略的选择

7.3.1 束宽、采样温度与长度归一化耦合

束宽影响候选多样性与分支探索深度,采样温度影响输出分布的熵;长度归一化则在候选完成后重新分配长度相关偏好。三者耦合会让“某个超参数单独调优”效果不稳定,因此实践中常需要联合观察输出长度与质量指标。