4、预测准确度指标(下):分类准确率、召回率、精确率、F1-score 在推荐中的特殊含义

好,咱们接着聊预测准确度。上一节我们把 RMSE、MAE 这些回归指标讲透了。这一节,我重点聊聊分类指标——准确率、召回率、精确率、F1-score。

你可能会问:「这些指标不是分类任务里常用的吗?跟推荐系统有什么关系?」

关系大了。推荐系统本质上就是一个二分类问题——用户会不会点击?会不会购买?会不会看完?

只不过,推荐场景下的「正负样本」分布极其不均衡。我做过一个电商推荐项目,正样本(点击)占比不到 0.5%。这种情况下,你拿准确率去评估,基本就是自欺欺人。

4.1 准确率(Accuracy)——最容易被误解的指标

准确率的公式很简单:

Accuracy = (TP + TN) / (TP + TN + FP + FN)

说白了就是「猜对了多少」。但在推荐系统里,这个指标几乎没用

为什么?我给你算一笔账。

假设你的推荐列表有 100 个 item,用户只点击了 1 个。你只要全部预测为「不点击」,准确率就是 99%。

听起来很厉害对吧?但你的推荐系统就是个废物——因为它什么都没推荐出来。

⚠️ 避坑指南: 我曾经在一个新闻推荐项目里,老板只看准确率。我花了三天时间解释为什么准确率 99% 的系统其实是个「零推荐」系统。后来我改用召回率和精确率,他才明白问题出在哪。

所以,我个人习惯:只有在正负样本均衡时,才看准确率。比如用户对物品的评分预测(1-5 星),每个星级样本量差不多,这时候准确率才有参考价值。

4.2 精确率(Precision)——推荐的东西到底准不准?

精确率的公式:

Precision = TP / (TP + FP)

翻译成人话:你推荐了 10 个物品,用户点了 3 个,精确率就是 30%。

这个指标在推荐系统里非常直观。我经常跟产品经理说:「精确率就是你推荐列表的命中率。」

但这里有个坑——精确率只看推荐列表内部。它不管用户还有多少喜欢的物品你没推荐到。

举个例子:

  • 你推荐了 5 个电影,用户点了 4 个 → 精确率 80%,看起来不错
  • 但用户其实喜欢 100 部电影,你只推荐了其中 4 部 → 召回率只有 4%

你看,只看精确率,你会觉得自己做得很好。实际上你漏掉了 96% 的用户兴趣。

💡 我的经验: 在电商场景中,精确率通常比召回率更重要。因为用户刷推荐列表时,如果连续 3-5 个都不感兴趣,他可能直接划走了。所以我会把精确率作为「第一道防线」。

4.3 召回率(Recall)——你有没有漏掉用户喜欢的?

召回率的公式:

Recall = TP / (TP + FN)

说白了就是:用户喜欢的 100 个物品里,你推荐出来了多少个?

召回率在推荐系统里有个特殊含义——它衡量的是推荐系统的「覆盖面」

我记得有一次做视频推荐,用户历史观看记录里有 2000 部电影。我们的推荐列表只有 20 个位置。我算了一下召回率,只有 1%。

当时团队很沮丧。但我说:「别急,召回率在推荐系统里不能这么算。」

为什么?因为推荐系统的召回率是「Top-K 召回率」。我们只关心用户最近、最可能感兴趣的物品有没有被推荐到。

正确的做法是:

  1. 取用户最近 30 天的交互行为作为「正样本池」
  2. 看推荐列表里有多少命中这个池子
  3. 计算召回率 = 命中数 / 池子大小

🔑 关键点: 推荐系统的召回率不是「全量召回」,而是「近期兴趣召回」。我建议你只关注用户最近 7-30 天的行为,否则召回率永远低得没法看。

4.4 F1-score——精确率和召回率的「和事佬」

F1-score 的公式:

F1 = 2 * (Precision * Recall) / (Precision + Recall)

它是精确率和召回率的调和平均数。为什么用调和平均而不是算术平均?

你想想看:如果精确率 100%,召回率 0%,算术平均是 50%,看起来还行。但调和平均是 0——因为有一个指标是 0,系统就是废的。

我个人习惯:在模型调参阶段,优先看 F1-score。因为它能帮你找到一个平衡点。

举个例子:

模型版本 精确率 召回率 F1-score
V1(保守推荐) 0.85 0.12 0.21
V2(激进推荐) 0.30 0.80 0.44
V3(平衡推荐) 0.55 0.60 0.57

你看,V3 的 F1-score 最高。虽然精确率和召回率都不是最优,但整体效果最好。

⚠️ 注意: F1-score 不是万能的。在有些场景下,精确率比召回率重要 10 倍。比如医疗推荐——你宁可少推荐几个药,也不能推荐错的。这时候我会用 Fβ-score,把 β 设成 0.5,让精确率的权重更高。

4.5 推荐系统中的「特殊含义」总结

好了,我把这四个指标在推荐场景下的特殊含义总结一下:

  • 准确率:只在正负样本均衡时有用。推荐场景下,基本可以忽略。
  • 精确率:衡量推荐列表的「命中率」。用户容忍度低时(比如广告推荐),优先优化它。
  • 召回率:衡量推荐系统的「覆盖面」。注意要用 Top-K 召回率,别算全量召回。
  • F1-score:模型调参的「平衡器」。但要根据业务场景调整权重。

嗯,这里要注意一点:这些指标都是基于「用户行为」计算的。而用户行为本身就有噪声——用户没点击不代表不喜欢,可能只是没看到。

我曾经在一个音乐推荐项目里,发现召回率突然下降了 20%。排查了半天,发现是用户换了手机,新手机没登录账号,历史行为全丢了。

所以,指标只是工具,不是真理。你要结合业务逻辑去解读它。

下一节,我会讲排序类指标——NDCG、MRR、MAP。这些指标在推荐系统的排序阶段非常关键。到时候我会分享一个我踩过的坑:为什么 NDCG 在冷启动场景下会「失灵」。

咱们下节见。