2023年双11前两周,某女装店铺的推荐点击率从4.1%掉到2.7%。运营团队排查了3天,发现问题出在「曝光去重」的统计口径上——同一用户在同一天内看到同一商品6次,系统只记1次点击,但分母按6次算,点击率被稀释了将近40%。这类陷阱在中小团队的推荐系统里非常常见,整理5个高频错误。
陷阱1:把「历史行为」当「偏好信号」。某生鲜平台2022年6月的日志显示,一位用户连续7天下单矿泉水,模型判定为「水饮重度偏好」,于是首页推了12款气泡水,结果7天内零点击。连续复购往往意味着刚需补货,不是探索意愿。正确做法是给复购品类单独建「消耗周期」特征,而不是堆到兴趣标签里。
陷阱2:训练集和线上特征时间错位。常见场景:离线用T+1的销量做特征,线上实时请求拿不到,只能用T+2的旧值兜底。2023年3月某3C店铺的A/B测试中,实验组CTR虚高18%,原因是离线评估时用了未来信息。校验办法很简单——在特征表里加一列「特征生成时间戳」,回放时严格截断到预测时刻之前。
陷阱3:冷启动用户直接套用热门榜。某母婴App在2021年给新用户推全站销量Top20,7日留存只有11%,改推「同城市+同年龄段」的局部热门后升到19%。区别在哪?局部榜的前3名商品,价格带集中在59-129元,和新人礼包券的门槛刚好匹配。冷启动不是没数据,是没用到对的数据。
陷阱4:把曝光未点击全当负样本。某内容社区2022年做过一组对比:A组把曝光未点击标为0,B组把停留超过2秒但未点击的样本剔掉。B组的AUC从0.71升到0.76。原因很直白——用户看到但没点的原因太多,可能是图片加载慢、可能是已买过,统一打成负样本等于往模型里灌噪声。
陷阱5:只看排序指标,不看供给端。某服饰平台2023年5月把排序模型换了一版,NDCG涨了0.03,但一周后GMV跌了4%。拆开看,模型把流量集中到了30款爆品,长尾8000款商品曝光下降62%,动销率从41%掉到33%。排序优化必须和「曝光覆盖率」「动销商品数」一起看,否则是在透支生态。
一个自查清单,5条,每条1分钟能做完:1)抽100条日志,人工核对特征时间戳;2)统计负样本里「停留时长>3秒」的占比,超过15%就要重新定义;3)对比新老用户的CTR分桶,差距超过2倍说明冷启动策略有问题;4)算一次曝光集中度(Top1%商品拿到的曝光比例),行业参考值35%-50%;5)把线上最近7天的排序结果和离线回放对比,Top10重合率低于60%就要查特征一致性。