4、推荐系统指标体系:离线指标与在线指标的对应关系

做推荐系统AB测试,最头疼的问题是什么?

我告诉你,不是算法调参,也不是数据清洗。

而是——离线指标涨了,线上效果却跌了。

这种情况我遇到过不下十次。每次团队里都会有人问:「AUC涨了0.5个点,为什么CTR反而掉了?」

嗯,今天我们就来彻底讲清楚这件事。

4.1 离线指标:实验室里的「模拟考」

离线指标,说白了就是在历史数据上跑出来的分数。它像高考前的模拟考,能反映一部分实力,但跟真实战场总有差距。

4.1.1 AUC:排序能力的「体检报告」

AUC衡量的是模型把正样本排在负样本前面的能力。取值范围0.5到1,越大越好。

核心理解:AUC = 随机抽一个正样本,它排在随机一个负样本前面的概率。

我个人习惯把AUC当作「模型的天花板指标」。为什么这么说?

因为AUC只看排序,不看具体分数。你想想看,模型把所有分数都乘以0.5,AUC完全不变。但线上CTR会崩。

我的经验:在电商场景中,AUC做到0.75以上算及格,0.8以上算优秀。但别迷信这个数字——我见过AUC 0.82的模型上线后CTR反而下降的案例。

4.1.2 NDCG:带位置的「排序质量」

NDCG比AUC更「现实」一点。它考虑了排序的位置权重——排在第1位的推荐,比第10位重要得多。

公式我就不贴了,你记住一句话:NDCG惩罚「好内容排得太靠后」

我在做视频推荐时遇到过一个问题:模型AUC很高,但用户总说「推荐不相关」。后来一查,NDCG@5很低——好内容都排在后面去了。用户根本没耐心往下翻。

注意:NDCG对截断位置k非常敏感。k=5和k=20,结果可能天差地别。我建议你至少看三个位置:@5、@10、@20。

4.1.3 Recall:到底「漏掉」了多少?

Recall(召回率)衡量的是:用户真正喜欢的内容,模型找出来了多少。

公式很简单:

Recall = 模型推荐中用户喜欢的数量 / 用户实际喜欢的总数量

举个例子:用户历史点击了100个商品,模型推荐了20个,其中包含了15个用户喜欢的。那Recall就是15/100=15%。

嗯,这个数字通常不会太高。我见过很多团队把Recall做到30%就沾沾自喜,结果线上留存率纹丝不动。为什么?因为Recall高不代表推荐「精」——可能模型只是把热门内容全推了一遍。

4.2 在线指标:真实世界的「期末考」

离线指标再漂亮,最终还是要看线上数据。在线指标是用户用「手指投票」的结果。

4.2.1 CTR:点击率的「第一印象」

CTR = 点击次数 / 曝光次数。它衡量的是推荐内容对用户的「吸引力」。

我做过一个实验:把推荐标题从「猜你喜欢」改成「你可能也喜欢」,CTR涨了3%。你看,有时候跟算法无关,跟文案有关。

但CTR有个大坑——它容易被「标题党」带偏。用户点了,但内容质量差,CTR高但留存率低。这种情况我踩过好几次。

4.2.2 CVR:转化率的「真金白银」

CVR = 转化次数 / 点击次数。在电商场景里,转化就是下单;在广告场景里,转化就是注册或购买。

CVR是离「钱」最近的指标。我见过很多团队只盯着CTR,忽略了CVR。结果CTR涨了,GMV(成交总额)反而跌了——因为推荐的都是便宜货,用户点得多但买得少。

核心观点:CTR看「吸引力」,CVR看「购买力」。两者要一起看,不能偏废。

4.2.3 留存率:推荐系统的「终极审判」

留存率是推荐系统的「照妖镜」。它衡量的是:用户明天、下周、下个月还会不会回来。

我做过一个项目,CTR和CVR都涨了,但7日留存率掉了2个点。后来发现,模型过度推荐了「爆款」内容,用户看腻了就不来了。

留存率是慢变量,需要观察至少一周。我个人习惯看三个时间点:次日留存、7日留存、30日留存。

4.3 离线指标 vs 在线指标:对应关系

现在我们来回答最核心的问题:离线指标和在线指标到底怎么对应?

离线指标 对应在线指标 对应关系说明
AUC CTR / CVR AUC高 → 排序好 → 点击/转化概率高(但不绝对)
NDCG CTR(位置相关) NDCG@k高 → 前k位推荐质量好 → 用户更愿意点击
Recall 留存率 Recall高 → 覆盖用户兴趣广 → 长期留存可能更好

这张表是我多年总结出来的,但我要提醒你:对应关系不是绝对的

举个例子:AUC和CTR的关系。理论上AUC越高,CTR应该越高。但实际中,我见过AUC涨了0.02,CTR反而跌了0.5%的情况。为什么?

因为AUC是在「全量候选集」上算的,而线上只展示Top-N。AUC涨了,可能只是尾部排序变好了,头部排序反而变差了。

避坑指南:我曾经因为只看AUC,忽略了头部排序质量,导致线上CTR暴跌。后来我养成了一个习惯:离线评估时,除了看AUC,还要看NDCG@5和NDCG@10。

4.4 实战建议:如何建立指标监控体系

说了这么多,给你三个实操建议:

  1. 离线指标做「筛选器」:AUC低于0.7的模型,直接淘汰,不用上AB测试。
  2. 在线指标做「验证器」:AB测试至少跑7天,观察CTR、CVR、留存率三个指标。
  3. 建立「指标对照表」:每次实验后,记录离线指标和在线指标的变化,积累经验。

我的习惯:每次实验结束后,我会画一张「离线-在线指标对照图」。横轴是AUC变化,纵轴是CTR变化。时间久了,你就能看出规律——比如AUC涨0.01,CTR大概涨多少。

最后说一句:离线指标是「地图」,在线指标是「路况」。地图再精确,也要看路况开车。别把地图当路况,也别不看地图瞎开。

嗯,这一章就到这里。下一章我们聊聊AB测试的「样本量计算」——这可是个容易翻车的环节。