站群导航· 游戏攻略 / 礼包码 / 配置 / 换算 / 查询 / 手册
导航菜单
首页 全部文章 留言本

推荐系统离线评估:3个数据集切分错误与修正步骤

某视频平台推荐团队月度评审,离线指标NDCG@10做到0.42,线上人均播放却连续两个月下降。查了两周,问题出在数据集切分:训练集和测试集都随机采样自同一时间段,同一用户的行为同时出现在两边,模型相当于「见过答案」。改成时间切分后,NDCG掉到0.36,这才是真实水平。

三种常见切分错误:1)随机切分导致用户泄漏,同一用户训练集有、测试集也有;2)时间切分但特征用了未来信息,比如用测试期的播放量做特征;3)负样本采样比例训练和评估不一致,训练1比4,评估1比1,指标虚高。修正步骤:按时间切,训练用前28天,验证用第29到31天,测试用第32到35天;特征只用到预测时刻之前。

概率上,负样本采样会改变点击率的绝对水平。真实点击率2%,按1比4采样后训练集点击率约9.1%。评估时若也用采样数据,模型看起来很好;还原到全量候选集,指标会掉。正确做法:训练可采样,评估必须用全量或固定比例采样并做校准。某团队评估时用1比1,线上是1比50,排序效果差了一截。

模型评估指标要分组看。按用户活跃度分3组:高频(周活跃5天以上)、中频(2到4天)、低频(1天及以下)。某平台整体NDCG 0.38,拆开看高频0.45、低频0.29。低频用户占35%,是留存关键。后来针对低频用户加探索策略,低频组NDCG提到0.33,整体留存涨了1.8个百分点。只看整体指标会掩盖问题。

案例:两个排序模型对比。模型A离线NDCG 0.40,模型B 0.39,团队想上A。加做一个评估:按内容类别分5组算NDCG,B在4组更均衡,A只在娱乐类领先。线上A/B跑14天,模型B的人均时长高3.2%。原因是A过拟合娱乐类,其他类别体验变差。评估要加「分组稳定性」这一项,别被单一总分误导。

修正流程固定5步:1)写清切分口径和特征时间边界,存档;2)跑基线模型,记录全量和分组指标;3)新模型用同一份测试集,禁止调参后再换测试集;4)做显著性检验,样本量按日均曝光算,至少覆盖7天;5)离线提升小于1%的,不上线,先查原因。某团队连续3次离线提升0.5%以内就上线,线上无一例外没效果。

成本与节奏:一次规范的离线评估,数据处理加训练约4小时,人工分析约1人日。建议每两周做一次全量评估,每周做一次快速验证。存储上,保留最近6个月的训练和测试快照,约需2TB,按每GB每月0.12元算,月成本约240元。花小钱把评估口径固定下来,比反复上线回滚省得多。

站群互链

攻略窝 · 礼包窝 · 配置窝 · 换算窝 · 算法窝 · 查文窝 · 手册窝 · 问答窝 · 全文搜 · 手册库
上一篇 推荐排序冷启动:3类数据常识与7步排查清单 下一篇 模型上线后效果变差的数据原因