一个电商广告系统,排序分 = pCTR × pCVR × bid,CTR 和 CVR 是两个独立模型。已知点击率约 2%,点击后下单率约 3%,且下单行为有约 30% 发生在点击后 24 小时之后。你们的 CVR 模型用「有点击的样本」训练,标签只回捞到 T+1 天的数据。请指出这样训练上线后会出什么问题、偏差的方向是什么,以及你会怎么修。
面试官在考什么
判断候选人是否分得清样本选择偏差和延迟反馈这两类问题,并能给出方向正确的修法,而不是只会调模型结构。
回答框架 · 前两步
- 样本选择偏差:CVR 模型在点击空间训练(P(转化|点击)),线上却要在曝光空间对所有曝光做预估,两个空间的特征分布不同,直接相乘会让排序产生偏差。
- 延迟反馈:只回捞 T+1 的标签,会把「还没下单但最终会下单」的样本当成负样本,pCVR 被系统性低估;越靠近数据截止时间的样本,负例噪声越大。
还有 3 条答案要点、 3 层追问、 5 个常见坑, 以及针对你简历的追问路径,在定制报告里。
同一能力域的其他题
- 冷启动问题你会怎么处理?新用户和新物品的策略一样吗?请分别说。
- 离线 AUC 涨了但线上 CTR 没涨,你会按什么顺序排查?请给出具体清单。
- CTR 模型里为什么要用 GAUC 而不只看 AUC?GAUC 是怎么算的、它解决了什么问题?
- 特征工程里你会怎么做特征穿越(label leakage)的检查?请举一个推荐场景里常见的穿越例子。
- 你做过线上 A/B 实验,请说明分流、样本量、显著性判断的要点。如果一个实验 p 值不显著,你怎么处理?
- 你在做一个首页信息流的 CTR 模型,要加一维特征「用户过去 7 天在该一级类目下的点击率」。训练样本取自 8 月 1 日–8 月 7 日的曝光日志(每天约 2 亿条),你打算 1–6 日做训练、7 日做验证。请说明:这个特征的统计窗口在离线训练和线上 serving 分别应该怎么算?为什么不能直接对整份日志算一个「过去 7 天」的统计再 join 回每条样本?