题目重点:设计广告排序,解释特征、模型结构、概率校准和线上收入与用户体验取舍。
题意与假设
这道练习题保留了面经中值得训练的核心约束,并将需要澄清的条件单独列出。现场拿到变体时,先和面试官确认这些条件。
- 训练是展示场景的广告精排,目标为合规广告的增量业务价值与用户体验;不是仅最大化离线AUC。竞价规则、计费方式、转化窗口需题面明确。
- 示例score采用bid×pCTR作为按点击付费的简化排序,不称真实拍卖公式;质量门槛、频控、预算与用户体验作为独立约束。
- 点击与曝光以eventId去重,转化延迟与归因政策固定。个性化数据必须是当时可用且有授权的特征。
解题路线
- 从业务定义label:clicked是曝光后固定窗口动作,conversion可延迟;未等到转化窗的曝光不能直接标负。训练使用完整样本或延迟转化处理,按用户/广告主/时间拆分防副本泄漏。
- 特征分user、ad、context、cross和实时campaign状态:历史兴趣/新鲜度、创意embedding、地区语言/设备、相似交互、预算与频控。所有聚合采用point-in-time join,避免把未来点击统计带入历史曝光。
- baseline逻辑回归或树模型对稀疏特征/交叉特征核对,升级deep多塔/交叉网络与多任务CTR/CVR头;给出选择理由、延迟、稀有广告冷启,而不堆模型名。
- 校准检查可靠性曲线、log loss/Brier以及按广告主/语言/位置切片。用保留验证集拟合校准器;AUC只看排序不保证0.2真对应20%点击,价×概率会直接受失准影响。
- 负样本抽样后修正先验或用采样权重,不能把抽样分布上的输出当线上概率。位置偏差用随机探索/倾向权重与审慎评估,观测点击不自动代表内容内在偏好。
- serving批量取得用户/广告特征、过滤无预算/频控/无权限候选,再预测与排序。缓存key绑定model+featureVersion;新广告/失败走基线。实验监测增量收入、负反馈、频率、用户长期留存与延迟。
手动走一遍
广告A bid2/pCTR0.1得期望score0.2,B bid1/pCTR0.3得0.3。若B模型把真实0.03误校准成0.3,就会错误优先;即使模型跨样本AUC不错,也不足以保证金额加权排序正确。
规模与取舍
候选M、每候选模型成本C时精排约O(MC),批推理减少调度开销但不消除运算;feature远程查找常占端到端延迟。模型更新/特征延迟/预算状态需各自版本与监控。
易错点与追问
容易失分的边界
- 用训练AUC当上线成功指标会忽略收入、校准、用户疲劳与预算。
- XGBoost对高维稀疏ID、新类别和非结构化图文不能自动泛化;需encoding、冷启与feature drift解释。
- 未来聚合与未成熟转化标签造成“漂亮离线分数”,部署后可能全面下滑。
继续深挖
- 实验收入提高但负反馈也升,如何决策?预定义guardrail与分组效果,不能事后只挑显著收入。
- 校准按全局还是分位置?分组有足够样本才独立拟合,小组可分层收缩避免过拟合。
