去年双十一前两周,某女装店铺的推荐位点击率稳定在0.8%,但加购转化只有1.1%。运营团队拿出7天的曝光日志,共42万条记录,按小时切片后发现:晚8点到10点的点击率是凌晨的3.6倍,但客单价反而低18元。这说明流量质量和时段强相关,不能只看整体均值。
先把数据按「时段×价格带」做交叉统计。价格带分4档:0-99元、100-199元、200-399元、400元以上。结果200-399元档在晚8点后的点击率2.4%,转化率3.2%;而0-99元档点击率1.9%但转化率仅0.7%。常见错误是直接把点击率最高的商品堆到首位,忽略了转化漏斗的下游衰减。
排序公式做了三步调整。第一步,把单一CTR排序改为CTR×CVR的加权分,权重各0.5,离线A/B测试用过去30天数据回放。第二步,加入价格带惩罚项:0-99元商品乘以0.85系数,避免低价引流品挤占高价值位。第三步,对晚8-10点时段单独训练一个轻量排序模型,特征从12个增到19个,包含时段标识和用户近7天客单价分桶。
模型评估不能只看AUC。离线AUC从0.71升到0.76,但业务方更关心Top10位置的GMV贡献。于是补了两个指标:NDCG@10(衡量排序相关性)和Top10 GMV占比。调整前Top10贡献全店推荐GMV的34%,调整后升到41%,同时曝光覆盖率没降。
线上灰度跑了5天,每天分流10%流量。第1天转化率2.1%,第3天到2.8%,第5天稳定在3.2%。有个反直觉发现:加入价格带惩罚后,200-399元档的曝光量只涨了9%,但GMV涨了27%,说明排序精度比曝光数量更关键。
概率常识在这里很实用。42万条曝光里,某单品点击次数38次,粗算点击率0.9%,但按贝叶斯平滑(先验取全店均值0.8%,等效样本量50)修正后是0.82%。避免小样本商品因偶然高点击被误推到首位,这是推荐排序里最常见的统计陷阱之一。
落地检查清单共6项:①日志时间戳统一到秒级;②价格带边界左闭右开;③A/B分流按用户ID哈希而非随机数;④每天10点跑一次数据质量校验,空值率超2%报警;⑤模型版本和特征版本绑定记录;⑥上线后48小时内不做二次调参,避免震荡。
一次完整迭代周期约9天:2天取数清洗、2天离线实验、1天评估复核、3天灰度、1天全量复盘。团队3人分工,数据工程1人、算法1人、运营1人。按这个节奏,季度内可完成4轮排序优化,每轮预期转化率提升0.3到0.6个百分点。