标准回答
一、先给出结论和背景
- 需求与指标:CTR 模型输出「这条广告被这个用户点击的概率」,用于 eCPM = CTR × 出价 排序与计费。离线评估用 AUC/GAUC(按用户/请求分组更贴近线上),还要看概率校准;线上看 CTR、CPM、收入,A/B 验证。
- 特征:大规模稀疏类别特征是核心:用户 ID/画像、广告/创意 ID、上下文(位置/时段/设备)、统计特征(历史 CTR)、行为序列。高维稀疏,需 embedding 化。
二、拆开关键步骤和判断点
- 整体架构 / 模型:每个稀疏特征查 embedding 表降到低维稠密向量,再做特征交叉:
- LR/FM:线性 + 二阶交叉,简单可解释;
- Wide&Deep:wide 记忆 + deep 泛化;
- DeepFM:FM 显式二阶交叉 + DNN 高阶隐式交叉,免人工特征工程;
- DIN:用 attention 建模用户行为序列与目标广告的相关性。
损失用交叉熵(logloss)。 - 工程:embedding 表巨大需分布式参数服务器;在线特征用 Feature Store 保证线上线下一致;模型分钟级/天级更新,热门特征可增量学习。
三、补上落地边界和取舍
- 评估与上线:离线 AUC/GAUC + 校准曲线,线上灰度 A/B 监控 CTR 与收入,再放量。
常见误区
⚠️ 常见踩坑
误区一:容易答偏的地方:只追 AUC 不看概率校准——AUC 只反映排序,但计费按预估 CTR 算,校准差会直接亏钱;以及忽略线上线下特征不一致导致的离线高线上崩。
追问
追问 1:为什么用 GAUC 而不是普通 AUC?
普通 AUC 把所有样本混在一起算排序能力,但线上排序是在「同一个用户/同一次请求内」对候选广告排序。GAUC 按用户(或请求)分组分别算 AUC 再加权平均,更贴近线上真实的组内排序场景,能避免「跨用户排序对、组内排序错」的虚高。
追问 2:CTR 预估的概率校准为什么重要,怎么做?
因为 eCPM 排序和计费直接用预估概率值,不只是相对顺序。若整体高估/低估会导致出价错误、亏损或丢量。校准方法有 Platt scaling、保序回归(isotonic regression),负采样训练时还需做采样率修正还原真实概率。
追问 3:稀疏特征 embedding 表太大怎么办?
用分布式参数服务器存储与更新;对低频 ID 做特征准入(出现次数不足不建 embedding)和特征淘汰(长期不活跃则清退)控制规模;还可用 hash trick、embedding 量化压缩。同时冷启动 ID 用默认/共享 embedding 兜底。
🔗 相似问题
同一考点的不同问法,换着练更稳
延伸学习
按主题分类的相关资源,便于系统复习
