去年双十一,某服饰平台把首页推荐位曝光点击率从4.2%做到5.9%,团队庆功。复盘时发现:把「已购买用户看到同款商品」的曝光也算进推荐成功率,虚高约40%。修正口径后真实点击率只有4.6%。三个陷阱:1)曝光去重窗口从1天改成7天,重复计数减少;2)把「商品详情页内推荐」和「首页推荐」分开统计;3)剔除机器人流量,凌晨2点到5点异常点击占比约3%。
推荐排序里最容易被忽略的是位置偏差。同一批商品放第1位和第8位,点击率能差5到8倍。正确做法是用交换实验:随机让10%流量把第3位和第10位互换,跑满7天、每组至少5万次曝光,再用推理修正。常见错误是直接拿线上日志训练模型,模型学到的是「用户爱点第一位」,不是「用户爱这个商品」。
数据统计有个反直觉案例。某生鲜App统计「加购后48小时下单率」,得出62%,运营很满意。但分母只算了「加购且未删除」的用户,删掉购物车的约18%用户被排除。把删除行为计入分母后,真实转化率降到51%。统计口径写进文档、每次改口径都留版本号,比多跑几个模型更重要。
概率常识:推荐系统里「千分之一点击率」意味着1000次曝光约1次点击,波动很大。用二项分布算,1000次曝光、真实点击率0.1%,观测到0次点击的概率约37%。所以新策略上线前3天、每天曝光不足2万时,别急着下结论。建议每组至少累积10万次曝光,或看7日累计指标。
模型评估别只看AUC。某资讯推荐把AUC从0.72提到0.75,线上人均阅读时长却降了4%。原因是模型更准地预测「点不点」,但把标题党排前面了。后来加了两层约束:单用户单作者曝光上限3条/天,完读率低于30%的内容降权。评估指标从1个扩到4个:AUC、人均时长、7日留存、负反馈率。
排序模型上线流程建议固定5步:1)离线用时间切分验证,训练集截止到前30天,测试集用后7天;2)做A/B实验,流量各10%,跑满14天;3)看核心指标和护栏指标(举报率、卸载率);4)灰度到50%;5)全量并保留回滚开关。某视频平台省略第3步,举报率涨了0.3个百分点,两周后才被发现。
最后说价格与成本。一个小型推荐系统,特征工程加训练,单次全量训练在8卡机器上约6小时,云成本每小时约30到50元。每天重训一次,月成本约6000到9000元。若改成增量训练,成本降到三分之一,但AUC可能掉0.01到0.02。这笔账要提前算,别等账单出来才问「为什么模型这么贵」。