特征工程里你会怎么做特征穿越(label leakage)的检查?请举一个推荐场景里常见的穿越例子。
面试官在考什么
考察数据严谨性——穿越是造成离线虚高最常见的坑
回答框架 · 前两步
- 原则:样本在时间点 t 的特征只能用 t 之前可获取的信息,标签才看 t 之后的行为
- 常见穿越:用全量数据算历史统计特征(含未来信息,也含样本自身标签)、用行为发生后的画像、时间戳对齐错误
还有 2 条答案要点、 3 层追问、 3 个常见坑, 以及针对你简历的追问路径,在定制报告里。
同一能力域的其他题
- 冷启动问题你会怎么处理?新用户和新物品的策略一样吗?请分别说。
- 离线 AUC 涨了但线上 CTR 没涨,你会按什么顺序排查?请给出具体清单。
- CTR 模型里为什么要用 GAUC 而不只看 AUC?GAUC 是怎么算的、它解决了什么问题?
- 你做过线上 A/B 实验,请说明分流、样本量、显著性判断的要点。如果一个实验 p 值不显著,你怎么处理?
- 你在做一个首页信息流的 CTR 模型,要加一维特征「用户过去 7 天在该一级类目下的点击率」。训练样本取自 8 月 1 日–8 月 7 日的曝光日志(每天约 2 亿条),你打算 1–6 日做训练、7 日做验证。请说明:这个特征的统计窗口在离线训练和线上 serving 分别应该怎么算?为什么不能直接对整份日志算一个「过去 7 天」的统计再 join 回每条样本?
- 某信息流推荐的排序模型里,你打算把「item 近 1 小时实时 CTR」(曝光做分母、点击做分子、分钟级更新)作为特征。离线看这个特征和 label 的相关性很高,但你把低曝光 item 单独拉出来看,它们的 CTR 分布方差极大:曝光 5 次点击 1 次的 item,CTR=20%;曝光 200 次点击 3 次的 item,CTR=1.5%。请回答:(a) 你会怎么把这个特征喂给模型;(b) 平滑参数怎么定;(c) 线上和离线怎么保证算的是同一个东西。