☰
推荐系统QA-损失函数选择
2026/10/29 11:06:30 网站建设 项目流程

目录

一、先公布答案

二、解释

三、扩展补充

一、二分类概率类损失

1. Binary Cross-Entropy(BCE,二元交叉熵)

2. Focal Loss

二、排序类损失(pairwise / listwise)

3. BPR Loss(Bayesian Personalized Ranking)

4. Hinge Loss(合页损失)

5. ListNet

6. ListMLE

7. LambdaRank

三、表征学习类损失

8. InfoNCE(Information Noise Contrastive Estimation)

9. Triplet Loss(三元组损失)

四、回归/连续值类损失

10. MSE / L2 Loss

11. MAE / L1 Loss

12. Huber Loss

13. Tweedie Loss

14. Poisson Loss

五、分布对齐/蒸馏类损失

15. KL Divergence(KL 散度)

16. 蒸馏损失(软标签回归 / MSE on logits)

六、多任务与融合类

17. 多任务加权损失

汇总对照表


一、先公布答案

  • ctr预测用交叉熵
  • 向量表征用infonce
  • 预测gmv用回归

二、解释

损失函数的选择取决于任务输出的数学性质:

  • CTR 预测用 Binary Cross-Entropy:点击是一个二分类事件(点/不点),输出是概率值。BCE 直接优化伯努利分布的似然,是二分类任务的标准选择。
  • 学表征用 InfoNCE:表征学习的目标不是预测某个标量,而是让正样本对在向量空间中靠近、负样本对远离。InfoNCE 本质是对比学习损失,它最大化正样本对之间的互信息下界,迫使模型学到判别性的表示。它关心的是“排序关系”而非绝对数值,适合召回双塔、序列表征等场景。
  • 预测 GMV 可能用回归损失:GMV 是连续值(金额),回归损失(如 MSE、Tweedie 损失)直接优化预测值与真实值的数值误差。不过 GMV 分布通常零膨胀且长尾,实际中也会用 Tweedie 这类能同时处理“是否购买”和“买多少”的损失函数,但本质上仍是回归框架。

概括来说:分类任务用交叉熵,排序/表征任务用对比损失,连续值预测用回归损失——三者对应的输出空间和目标不同,不能随意替换

三、扩展补充

一、二分类概率类损失

1. Binary Cross-Entropy(BCE,二元交叉熵)

形式:

优化目标:让模型输出的概率 y^ 逼近真实标签 y∈{0,1}。它等价于最小化伯努利分布的负对数似然。

适用场景:CTR 预估、CVR 预估等标准二分类任务。输出是校准过的概率值,便于后续做 pCTR×pCVR×price 之类的乘性融合。

注意:BCE 是逐点损失,每个样本独立计算,不直接约束正负样本之间的相对顺序。在样本极度不平衡时,大量简单负例会主导梯度。

2. Focal Loss

形式:,

其中 p^t是模型对真实类别的预测概率,γ 是聚焦参数(常取 2),αt 是类别权重。

优化目标:在 BCE 基础上加一个调制因子 (1−p^t)γ。当样本容易分(p^t 接近 1)时,该因子趋近 0,损失被大幅压低;当样本难分时,因子接近 1,损失保留。效果是让模型把梯度集中在难样本上。

适用场景:CTR 或转化预估中简单负样本占绝对多数、模型被易分样本主导时。也可用于目标检测等类别不平衡场景。它是对 BCE 的加权改进,不是全新框架。


二、排序类损失(pairwise / listwise)

这类损失不关心分数的绝对校准,只关心正样本是否排在负样本前面,或整个列表的排序质量。

3. BPR Loss(Bayesian Personalized Ranking)

形式:

其中 y^+​ 是正样本得分,y^− 是负样本得分。

优化目标:最大化正样本得分高于负样本的概率。它假设用户对正样本的偏好强于负样本,直接优化这个成对比较的似然。

适用场景:召回阶段的隐式反馈建模(用户有点击=正,无交互=负),也常用于粗排。不需要分数是概率,适合只关心相对顺序的场合。

4. Hinge Loss(合页损失)

形式:,

m 是 margin。

优化目标:要求正负样本得分差至少达到 margin m,超过则损失为零。它比 BPR 更“宽容”——只要差距够大就不再惩罚,而不是持续拉大差距。

适用场景:成对排序、SVM 类模型。在推荐中可用于粗排或召回,强调“分开即可”而非“越开越好”。

5. ListNet

形式:对每个候选列表,用 softmax 把模型得分转成排列分布 P,用真实标签(或真实排列)构造目标分布 Q,然后计算交叉熵

优化目标:从整个列表层面优化“预测排列分布”与“真实排列分布”的接近程度,而不是逐对比较。它考虑了一个正样本与列表中所有负样本的关系。

适用场景:精排、粗排中候选以列表为单位打分的场景。阿里粗排实践中采用 listwise softmax 损失,匹配“从一批候选中选最优”的任务本质。

6. ListMLE

形式:基于 Plackett-Luce 模型,对真实排列的似然取负对数:,

其中 π 是真实排列。

优化目标:最大化真实排列在模型下的似然,是 ListNet 的另一种 listwise 实现,直接对排列建模而非对分布做交叉熵。

适用场景:同上,列表级排序优化。

7. LambdaRank

形式:不显式定义损失函数,而是直接构造梯度:

,其中 ∣ΔNDCGij∣ 是交换两个样本位置带来的 NDCG 变化量。

优化目标:直接以 NDCG 等排序指标为优化目标,把“交换这对样本对最终排序指标的影响”作为梯度权重,让模型优先修正对指标影响大的排序错误。

适用场景:精排中直接优化 NDCG、MAP 等列表指标。LambdaRank 是 LambdaMART 等 learning-to-rank 方法的核心。


三、表征学习类损失

8. InfoNCE(Information Noise Contrastive Estimation)

形式:,

其中 q 是查询表征,k+ 是正样本表征,ki包含正样本和负样本,τ 是温度系数。

优化目标:在表征空间中,让正样本对的相似度高于查询与所有负样本的相似度。它最大化正样本对之间的互信息下界,学到的表征具有判别性。

适用场景:双塔召回、序列表征、多模态对齐等表征学习任务。它关心的是向量空间的相对结构,而非绝对数值预测。

9. Triplet Loss(三元组损失)

形式:,其中 a 是锚点,p 是正样本,n 是负样本,d 是距离度量,m 是 margin。

优化目标:让锚点与正样本的距离比锚点与负样本的距离至少小一个 margin。它是 InfoNCE 之外另一种常用的度量学习损失。

适用场景:物品 Embedding 学习、人脸识别式的相似度建模、I2I 召回中的物品表征训练。与 InfoNCE 相比,triplet 每次只用一对负样本,InfoNCE 用一批负样本,后者通常更稳定。


四、回归/连续值类损失

10. MSE / L2 Loss

形式:

优化目标:最小化预测值与真实连续值的平方误差,假设误差服从高斯分布。

适用场景:GMV、客单价、时长等连续值预测。对异常值敏感,长尾分布下可能被大值主导。

11. MAE / L1 Loss

形式:

优化目标:最小化绝对误差,假设误差服从拉普拉斯分布。对异常值比 MSE 稳健。

适用场景:连续值回归中对离群点敏感的场景,或需要稳健估计时。

12. Huber Loss

形式:误差小于 δ 时用平方(),大于 δ 时用线性()。

优化目标:结合 MSE 和 MAE 的优点——小误差时平滑可导(像 MSE),大误差时不被异常值主导(像 MAE)。

适用场景:GMV 等长尾连续值回归,兼顾收敛稳定性和鲁棒性。

13. Tweedie Loss

形式:基于 Tweedie 分布(指数族,power 参数 p 控制零膨胀程度),。

优化目标:同时建模“是否发生”(零膨胀)和“发生多少”(正值大小)。当 p 接近 1 时接近泊松,接近 2 时接近伽马,介于两者之间可处理大量零值加连续正值的分布。

适用场景:GMV、保费、用户消费金额等零膨胀长尾目标。比纯 MSE 更贴合“大量用户不购买、少数购买且金额差异大”的实际分布。

14. Poisson Loss

形式:(忽略常数项),假设 y∼Poisson(y^)。

优化目标:建模计数型目标,预测值 y^ 是事件发生的期望次数。

适用场景:曝光量、点击量、转化量等计数型目标。有专利方案对展现量/点击量/转化量用泊松损失,对率值用 MSE,再加权融合。


五、分布对齐/蒸馏类损失

15. KL Divergence(KL 散度)

形式:,衡量两个分布的差异。

优化目标:让预测分布 P 逼近目标分布 Q。在蒸馏中,Q 是教师模型的软标签分布,P 是学生模型的输出。

适用场景:知识蒸馏(精排→粗排、大模型→小模型)、ListNet 中的分布对齐。阿里粗排用蒸馏损失让粗排分数拟合精排分数分布。

16. 蒸馏损失(软标签回归 / MSE on logits)

形式:常用 MSE 或 KL 散度,作用在教师模型和学生模型的输出(logits 或概率)上。

优化目标:让学生模型不仅拟合真实标签,还拟合教师模型的打分排序和置信度,从而继承教师的排序知识。

适用场景:粗排学习精排打分、级联排序中的阶段对齐。本质是软标签监督,可与真实标签损失加权组合。


六、多任务与融合类

17. 多任务加权损失

形式:,各任务损失加权求和。权重可以是固定的,也可以动态调整(如不确定性加权、GradNorm)。

优化目标:在共享底层表征的同时,平衡多个目标(CTR、CVR、时长等)的优化。

适用场景:多目标排序模型(如 MMoE、PLE 的输出层),CTR 用 BCE、CVR 用 BCE、GMV 用 Tweedie,再按业务权重融合。


汇总对照表

类别损失函数核心优化目标典型场景
二分类概率BCE概率逼近 0/1 标签CTR、CVR
二分类概率Focal Loss聚焦难样本的 BCE类别极不平衡的 CTR
排序 pairwiseBPR正样本得分高于负样本召回、粗排隐式反馈
排序 pairwiseHinge正负得分差达到 margin成对排序
排序 listwiseListNet排列分布交叉熵粗排、精排列表打分
排序 listwiseListMLE真实排列的似然列表级排序
排序 listwiseLambdaRank直接优化 NDCG 梯度精排排序指标优化
表征学习InfoNCE正对相似度高于负对双塔召回、多模态对齐
表征学习Triplet锚-正距离小于锚-负距离物品 Embedding、I2I
回归MSE平方误差GMV、时长
回归MAE绝对误差稳健回归
回归Huber小误差平方、大误差线性长尾连续值
回归Tweedie零膨胀+连续正值联合建模GMV、消费金额
计数Poisson计数型目标似然曝光/点击/转化量
分布对齐KL 散度预测分布逼近目标分布蒸馏、ListNet
蒸馏软标签 MSE/KL学生拟合教师输出粗排学精排、级联对齐
多任务加权求和平衡多目标MMoE/PLE 输出层

选择逻辑的一句话总结:输出是概率用 BCE(不平衡加 Focal),输出是顺序用 pairwise/listwise(BPR、ListNet、LambdaRank),输出是表征用对比损失(InfoNCE、Triplet),输出是连续值用回归(MSE/Huber/Tweedie),输出是计数用泊松,需要继承另一个模型的知识用蒸馏损失,多目标则加权融合。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询