它想解决什么问题?
“北京到东京,8 月 10 日出发”是一条精确搜索,目的地和日期都很明确。可用户也可能搜索:“下个月任意一个周四出发,玩三到五天,去哪里都可以。”
面对这类模糊需求,候选结果会跨越多个目的地、日期、机场和价格区间。系统很难判断用户究竟更看重价格、时间还是目的地。更麻烦的是,模糊搜索的成交数据较少,模型可以学习的有效信号非常稀疏。
SkyDistill 的核心想法是:
精确搜索积累了大量清晰的用户选择,可以让这个经验丰富的“老师”,去帮助数据较少的模糊搜索“学生”。
它是怎么教的?
第一,学生不仅学习用户最终点了或买了哪张票,也学习教师对每个候选的细致判断。相比简单的“买或没买”,这些概率能够告诉学生:即使两张票都没有被购买,其中一张也可能明显比另一张更符合需求。
第二,学生不仅模仿最终答案,也学习教师如何理解价格、时间、目的地和用户偏好的组合。可以理解为,不只是抄老师的答案,还要学习老师分析问题的方式。
第三,教师也可能遇到自己不熟悉的模糊需求。因此,模型会根据教师的信心决定应该听多少:教师越确定,学生越多参考;教师自己都很犹豫时,学生就更多相信模糊搜索中的真实反馈,避免把错误经验一起学走。
第四,模型还会学习候选之间的先后顺序。机票排序真正关心的是候选 $A$ 和候选 $B$ 谁更应该靠前,而不只是孤立预测每张票的点击概率。
训练完成后,教师模型和辅助模块都会被移除,线上只保留轻量的学生模型,因此不会明显增加服务负担。
背后的理论与公式
普通标签只告诉学生“用户最后选了谁”,却没有说明其他候选之间有多接近。教师模型可以给每个候选一个完整的概率分布。设教师和学生对第 $i$ 个候选的原始分数分别为 $z_i^T$ 和 $z_i^S$,经过温度 $\tau$ 调整后,教师概率为:
\[p_i^T=\frac{\exp(z_i^T/\tau)}{\sum_j\exp(z_j^T/\tau)}\]当 $\tau>1$ 时,概率差距会被适当拉平。例如,原始标签可能只是“选了 A、没选 B 和 C”,而教师概率可以进一步表达“B 其实比 C 更接近用户需求”。学生通过下面的蒸馏损失模仿这组概率:
\[\mathcal{L}_{\text{soft}} =\sum_i p_i^T\log\frac{p_i^T}{p_i^S}\]当学生概率 $p_i^S$ 与教师概率 $p_i^T$ 完全一致时,损失为 0;差异越大,损失越大。因此,学生学习到的不只是最终答案,还有教师对所有候选的相对判断。
只模仿输出还不够,学生还要学习教师的中间表示。设教师表示为 $h^T$、学生表示为 $h^S$,因为两者维度可能不同,先用投影矩阵 $P$ 对齐:
\[\mathcal{L}_{\text{hint}}=\left\|P h^S-h^T\right\|_2^2\]这个平方距离越小,说明学生对价格、时间、目的地和用户偏好的综合表示越接近教师。投影矩阵只在训练阶段使用,上线时可以移除。
问题在于,教师是在精确搜索中训练的,面对陌生的模糊需求也可能判断错误。SkyDistill 用预测熵衡量教师有多犹豫:
\[H(p^T)=-\sum_j p_j^T\log p_j^T, \qquad \alpha=\alpha_0\exp\left(-\gamma\frac{H(p^T)}{H_{\max}}\right)\]如果教师把概率集中在少数候选上,熵较低,说明它比较确定,蒸馏权重 $\alpha$ 较大;如果概率平均分散,熵较高,说明教师也拿不准,$\alpha$ 就会减小。对熵求导可以直接看到这种关系:
\[\frac{\partial\alpha}{\partial H} =-\frac{\gamma}{H_{\max}}\alpha<0\]导数恒小于 0,因此教师越犹豫,学生听教师的程度一定越低。这就是“老师有把握时多听,没把握时少听”的数学保证。
最后,搜索排序真正关心候选之间的次序。对于教师认为 $i$ 优于 $j$ 的候选对,学生使用成对损失:
\[\mathcal{L}_{\text{pair}} =-\log\sigma(z_i^S-z_j^S)\]学生只有让 $z_i^S-z_j^S$ 变大,也就是把 $i$ 排在 $j$ 前面,才能持续减小这项损失。最终训练目标把真实标签、教师软判断、中间表示和候选顺序结合起来:
\[\mathcal{L}=\mathcal{L}_{\text{base}} +\lambda_1\alpha\mathcal{L}_{\text{soft}} +\lambda_2\mathcal{L}_{\text{hint}} +\lambda_3\mathcal{L}_{\text{pair}}\]$\mathcal{L}_{\text{base}}$ 让学生尊重模糊搜索的真实反馈,其余三项分别传递教师的概率判断、内部表示和排序关系。这样既能利用精确搜索的丰富经验,又不会让学生盲目服从教师。
一句话类比
SkyDistill 像让一位经验丰富的旅行顾问培训新人:
“条件明确的问题我见得多,可以把判断价格、时间和目的地的经验教给你;但遇到我也拿不准的模糊需求,你要更多相信现场的真实反馈。”
效果
论文使用约 15 亿条、覆盖 100 天的样本训练。在两周线上实验中,点击率提升约 2.14%,转化率提升约 1.56%,在线推理延迟保持在 30 毫秒以内。