标准回答
需求与指标
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 兜底。
延伸学习
与本题相关的知识库文章、术语、工具与行业资讯。