当多目标排序遇上知识蒸馏:精读《Multi-objective Learning to Rank by Model Distillation》
当多目标排序遇上知识蒸馏:Airbnb如何用软标签平衡搜索的“不可能三角”
一篇关于《Multi-objective Learning to Rank by Model Distillation》的深度技术解读
排序系统早已不只是"把用户最可能点击的放在前面"那么简单——在真实商业场景中,我们必须在点击率、转化率、取消率、用户评分、长期生态健康等数十个目标间寻找微妙的平衡。传统方法要么简单加权难以调优,要么陷入多目标优化的数学困境,直到这篇论文提出了一种优雅的解决方案:用知识蒸馏的框架重新思考多目标排序问题。
一、 多目标排序:商业需求与工程现实的两难
想象一下你正在设计Airbnb的搜索排序系统。理想情况下,你希望:
- 高转化率:用户快速找到并预订心仪房源
- 低取消率:预订后不轻易取消,减少交易摩擦
- 高评分:用户入住后给好评,提升平台信誉
- 生态健康:新房东有机会曝光,老房源保持活跃
- 用户体验:搜索结果相关、多样、新鲜
这就像要求一位运动员同时是百米飞人、跳远冠军、铅球高手——每个目标都指向不同的优化方向,甚至相互矛盾。提升转化率最简单的方式是把评分最高、历史数据最多的"爆款"房源排在前面,但这会扼杀新房东的成长机会;过分降低取消率可能意味着过度保守,错过潜在的预订转化。
工业界之前的解决方案主要分为两大流派:
流派一:模型融合(Model Fusion)
训练多个单目标模型,线上加权融合分数。简单直接,但问题明显——各个模型独立优化,可能彼此拆台,加权系数难以调优,且线上融合增加延迟。
流派二:多任务学习(Multi-task Learning)
共享底层特征表示,多个任务头分别优化不同目标。这解决了特征共享问题,但当目标相关性低甚至冲突时(长期增长 vs 短期转化),共享表示可能学不好,而且损失函数权重调优依然痛苦。
更棘手的是两个工程现实:
- 数据极度不均衡:预订数据可能比取消数据多几十倍
- 存在不可微目标:比如"给新房东一定曝光比例"这种业务规则
二、 核心洞察:当约束优化遇见知识蒸馏
论文最精彩的贡献在于一个思维转换——将多目标约束优化问题,重新表述为**知识蒸馏(Knowledge Distillation)**问题。

2.1 重新定义问题:从ε-约束到专家模仿
让我们先形式化问题。给定K个排序目标,通常我们选取一个作为主目标(如预订转化率CVR),其他作为约束:
minC1(f)(最小化主目标损失)\min C_1(f) \quad \text{(最小化主目标损失)}minC1(f)(最小化主目标损失)
s.t.Ck(f)≤εk,k=2,...,K(次目标损失不超过阈值)\text{s.t.} \quad C_k(f) \leq \varepsilon_k, \quad k=2,...,K \quad \text{(次目标损失不超过阈值)}s.t.Ck(f)≤εk,k=2,...,K(次目标损失不超过阈值)
这直接求解很困难。论文的第一步妙招是:先训练K个专家模型,每个都在单一目标上做到极致。让fk∗f_k^*fk∗表示第k个目标的专家模型,其损失Ck∗C_k^*Ck∗是理论下界。
约束条件可以重写为:
∣Ck(f)−Ck∗∣≤εk′(允许比专家差一点)|C_k(f) - C_k^*| \leq \varepsilon_k' \quad \text{(允许比专家差一点)}∣Ck(f)−Ck∗∣≤εk′(允许比专家差一点)
2.2 关键转化:从损失约束到输出约束
接下来是理论的核心跃迁。如果损失函数满足Lipschitz连续性(在深度学习模型中通常成立),那么存在常数M使得:
∣Ck(f)−Ck(fk∗)∣≤M×∣f−fk∗∣|C_k(f) - C_k(f_k^*)| \leq M \times |f - f_k^*|∣Ck(f)−Ck(fk∗)∣≤M×∣f−fk∗∣
这意味着:控制损失差距 ≤ 控制模型输出差距。
原本的约束优化问题变为:
minC1(f)\min C_1(f)minC1(f)
s.t.∣f−fk∗∣≤εk′′,k=2,...,K\text{s.t.} \quad |f - f_k^*| \leq \varepsilon_k'', \quad k=2,...,Ks.t.∣f−fk∗∣≤εk′′,k=2,...,K
现在约束变成了:学生模型f的输出应该接近各个专家模型的输出。
2.3 拉格朗日松弛:从硬约束到软惩罚
带约束优化依然难解,我们使用拉格朗日松弛将其转化为无约束问题:
L(f)=C1(f)+∑k=2Kωk×∣f−fk∗∣L(f) = C_1(f) + \sum_{k=2}^K \omega_k \times |f - f_k^*|L(f)=C1(f)+k=2∑Kωk×∣f−fk∗∣
这里的ωk\omega_kωk是拉格朗日乘子,物理意义是惩罚权重——如果ωk\omega_kωk很大,任何与专家fk∗f_k^*fk∗的偏差都会受到重罚,相当于严格约束;如果ωk\omega_kωk很小,约束就比较宽松。
2.4 蒸馏视角:从绝对值惩罚到分布匹配
传统知识蒸馏中,我们用学生模型去匹配教师模型的软化输出分布。论文发现,拉格朗日松弛项∑k=2Kωk×∣f−fk∗∣\sum_{k=2}^K \omega_k \times |f - f_k^*|∑k=2Kωk×∣f−fk∗∣ 可以被重新解释。
在排序场景中,我们关心的是物品之间的相对顺序,而非绝对分数。因此,更适合使用交叉熵(Cross Entropy)来衡量分布差异。进一步,作者证明了:
∑k=1Kωk×CE(f,fk∗)=CE(f,∑k=1Kωk×fk∗)\sum_{k=1}^K \omega_k \times \text{CE}(f, f_k^*) = \text{CE}\left(f, \sum_{k=1}^K \omega_k \times f_k^*\right)k=1∑Kωk×CE(f,fk∗)=CE(f,k=1∑Kωk×fk∗)
这个等式是全文的数学精髓!它意味着:让学生同时模仿多个专家的加权惩罚,等价于让学生模仿一个"虚拟融合专家"。
三、 软标签:多目标知识的载体
基于上述推导,论文提出了最终的损失函数:
Loss=α×CE(f,硬标签)+(1−α)×CE(f,软标签)\text{Loss} = \alpha \times \text{CE}(f, \text{硬标签}) + (1-\alpha) \times \text{CE}(f, \text{软标签})Loss=α×CE(f,硬标签)+(1−α)×CE(f,软标签)
其中:
- 硬标签:主目标的真实用户反馈(如是否预订)
- 软标签:多个专家模型输出的加权融合,即 ∑k=1Kωk×fk∗\sum_{k=1}^K \omega_k \times f_k^*∑k=1Kωk×fk∗
3.1 硬标签的稀疏与局限
硬标签是用户行为的直接记录,比如在一次搜索中,用户最终预订了房源C,那么硬标签就是类似[0,0,1,0,0]的one-hot向量。这种标签极其稀疏,只告诉我们"C比其他都好",但没告诉我们A和B谁更好、D和E有多差。
3.2 软标签的丰富信息
软标签则提供了完整的排序先验。假设有三个专家:
- 预订专家:认为A最好,C次之
- 取消专家:认为B最稳定,A风险高
- 评分专家:认为C评价最好,E最差
加权融合后,我们可能得到[0.3, 0.25, 0.2, 0.15, 0.1]这样的软标签。它不仅编码了各个专家的知识,还通过权重ωk\omega_kωk体现了业务上对不同目标的重视程度。
3.3 α:经验与数据的平衡
参数α控制着学生模型应该多大程度上相信硬标签(真实数据)vs 软标签(专家先验)。实验中作者发现α=0.2效果最好,这意味着80%的学习信号来自专家共识,20%来自真实用户反馈。
这其实很符合直觉:在数据稀疏、目标冲突的场景下,专家经验往往比有限的用户行为信号更有指导意义。
四、 自蒸馏:知识的传承与进化
论文另一个重要贡献是**自蒸馏(Self-distillation)**机制,解决了工业系统模型更新的实际问题。
4.1 模型更新的困境
生产环境中的排序模型需要频繁更新(天级甚至更频繁),以捕捉用户偏好的变化。传统方法每次重新训练,模型都会"忘记"之前学到的知识,导致:
- 性能不稳定:新模型可能偶然变差
- 重新调优成本:每次更新都要重新调参
- 知识断层:历史经验无法积累
4.2 自蒸馏的优雅方案

作者提出了一个简单的迭代方案:
- 第一代模型V0V_0V0:从多个专家教师蒸馏得到
- 第二代模型V1V_1V1:从硬标签 + V0V_0V0的输出(作为软标签)蒸馏得到
- 第三代模型V2V_2V2:从硬标签 + V1V_1V1的输出蒸馏得到
…
这样,每一代模型都将自己的知识通过软标签传递给下一代,形成了知识的持续传承。实验证明,这种自蒸馏不仅保持了性能,还显著提升了模型训练的可复现性(不一致性降低53%)。
五、 处理不可微目标:软标签的灵活性
商业场景中总有些目标难以用损失函数表达,比如"给新房东一定曝光机会"。传统方法只能在模型外做后处理,往往破坏模型的一致性。
论文展示了软标签的灵活性:直接在生成软标签时给新物品的分数加一个偏置β。这样,学生模型在学习过程中就会自然地学会给新物品一定程度的优待,而且这个优待程度可以通过β精细控制。
相比于直接在线上分数加偏置,这种"从数据层面注入业务规则"的方式更加柔和,让模型有机会在多目标间找到更好的平衡点。
六、 实验启示:理论优美,实践有效
Airbnb的实验结果验证了方法的有效性:
- 离线指标:NDCG提升1.1%
- 在线AB测试:预订转化率提升0.37%(p=0.02),其他目标保持中立
- 训练效率:减少30%训练数据,无需线上分数融合权重调优
- 稳定性:模型不一致性降低53%
更重要的是,这些提升是在简化系统架构、降低运维成本的前提下实现的——从需要维护多个模型的多任务系统,变为只需要维护单个学生模型的自蒸馏流水线。
七、 未竟问题与未来方向
论文也留下了一些开放问题:
- 软标签权重ωk\omega_kωk如何自动学习而非手动设定?
- 自蒸馏多代后知识是否会退化?
- 如何动态调整α平衡系数?
作者在展望部分提到了使用**混合专家(MoE)**层来自动学习权重,这是很有前景的方向。
八、 结语:在复杂世界中寻找简单之美
在多目标排序这个充满权衡与妥协的领域,这篇论文提供了一种难得的简洁方案。它不追求在每个单独目标上做到极致,而是寻找那个让整体系统健康运转的平衡点。
从技术角度看,这是一次漂亮的跨领域迁移——将知识蒸馏的思想创造性地应用于多目标优化。从工程角度看,这是复杂系统设计的典范——用简单的架构解决复杂的问题。
这篇论文最动人的地方在于:面对一堆互相打架的目标,它没有硬拼,而是用蒸馏的巧思把“约束”变成了“示范”,让模型在跟随中学着平衡。原来复杂问题还能解得这么优雅。
更多推荐

所有评论(0)