偏好学习:从比较和排序数据中学习奖励模型
什么是偏好学习?
偏好学习(Preference Learning)是机器学习的一个分支,核心是从比较或排序数据中学习。与传统的回归或分类不同,我们并不直接观察某个对象的绝对分数,而是观察“A 比 B 更好”这类相对偏好。这一思想在推荐系统、信息检索以及近年来的**基于人类反馈的强化学习(RLHF)**中扮演了关键角色。
偏好学习的终极目标是构建一个奖励模型(Reward Model),它能够对任意给定的选项给出一个一致的分数,使得这些分数与观察到的偏好关系相符。
为什么需要偏好学习?
在许多现实场景中,直接获取精确的评分非常困难,但获取比较结果却自然得多:
- 主观评价:让用户给一部电影打 1-5 星往往不够稳定,但问“电影 A 和电影 B 你更喜欢哪一个”要可靠得多。
- 人类反馈:训练大语言模型时,标注员很难写出一个完美的“理想回答分数”,但很容易指出“回答 B 比回答 A 更有帮助”。
- 无法量化的指标:产品的设计美感、文本的连贯性,都更适合用排序来捕捉。
偏好学习将相对判断转化为绝对分数,使得模型可以泛化到未见过的选项上。
偏好数据的数学表达
假设我们有一组选项 $x_i, x_j \in X$。一条偏好数据可以表示为: $$x_i \succ x_j \quad (\text{即 } x_i \text{ 优于 } x_j)$$ 有时数据也会包含偏好强度或完全排序。我们的目标是学习一个奖励函数 $r_\theta(x)$,使得当 $x_i \succ x_j$ 时,$r_\theta(x_i) > r_\theta(x_j)$。
Bradley-Terry 模型:将偏好转化为概率
最经典的偏好建模方法是 Bradley-Terry 模型。它假设每个选项都有一个隐含的“能力值” $r(x)$,那么 $x_i$ 优于 $x_j$ 的概率为: $$P(x_i \succ x_j) = \frac{e^{r(x_i)}}{e^{r(x_i)} + e^{r(x_j)}} = \sigma\big(r(x_i) - r(x_j)\big)$$ 其中 $\sigma$ 是 sigmoid 函数。这个模型将二选一比较变成了一个“逻辑回归”问题:以分数差 $r(x_i)-r(x_j)$ 作为输入,预测偏好概率。
从比较中学习奖励模型
给定一批比较数据 $\mathcal{D} = {(x_i, x_j)}$,其中 $x_i$ 被偏好。我们可以通过最大似然估计来训练奖励模型。损失函数为负对数似然: $$\mathcal{L}(\theta) = -\sum_{(x_i, x_j) \in \mathcal{D}} \log \sigma\big(r_\theta(x_i) - r_\theta(x_j)\big)$$
这就构成了一个可微的目标函数。我们可以用任何神经网络作为 $r_\theta(x)$,利用随机梯度下降优化参数 $\theta$。
扩展到排序数据
当一次给出 $K$ 个选项的完全排序时(例如 $x_1 \succ x_2 \succ \dots \succ x_K$),可以将其分解为多个两两比较。为了提高效率,通常会使用Plackett-Luce 模型,但实践中简化为取相邻项的比较也能取得不错效果。
偏好学习中的常见陷阱
奖励黑客(Reward Hacking)
如果奖励模型只在有限的偏好数据上训练,它可能会学到一些“捷径”。例如,对于语言模型,它可能仅仅根据回答的长度给出高分,而忽略了内容质量。这种与真实目标不一致的现象被称为“奖励黑客”,需要通过多样化数据、正则化与对抗训练来缓解。
比较数据中的噪声与冲突
人类标注并非完全一致:同一对选项不同人可能给出相反偏好,甚至同一个人在不同时间判断不同。处理噪声的常见方法是:
- 引入标签平滑
- 使用贝叶斯方法建模标注员特异性
- 收集多个标注并采用多数投票或 Soft Label
偏好学习的典型应用流程
- 数据收集:让标注员对模型生成的输出进行两两比较或打分排序。
- 奖励建模:使用 Bradley-Terry 类模型在比较数据上训练奖励模型 $r_\theta$。
- 策略优化:将 $r_\theta$ 作为奖励函数,利用强化学习(如 PPO)微调生成模型,使其输出能获得更高奖励。
- 迭代:使用新模型生成新的输出,再收集偏好数据,持续改进奖励模型。
总结
偏好学习提供了一条从比较和排序中提取知识的优雅路径。其核心在于 Bradley-Terry 概率框架和最大似然估计,使得任意可微模型都可以转化为奖励模型。理解它的数学基础和实践陷阱,是掌握现代 RLHF 技术栈的第一步。