题目重点:区分生成候选、可检索性与点击排序,给受约束目标、日志偏差、离线回放和线上实验方案。
题意与假设
这道练习题保留了面经中值得训练的核心约束,并将需要澄清的条件单独列出。现场拿到变体时,先和面试官确认这些条件。
- 训练采用搜索框建议:给用户上下文生成候选query,展示少量建议,点击建议计一次目标点击。
- 主指标为建议点击数/有效曝光数,另以成功检索、满意度和低质/安全率约束;若题目为自动改写则目标和日志需另改。
- 实时上下文仅使用当前允许获取的特征,模型与业务数据未给;不声称某生成模型必然优于词典基线。
解题路线
- API输入prefix、会话上下文和允许的用户特征,输出候选query/score/version。先给词典prefix与热门查询基线,明确点击后的落地搜索必须能找到有用内容,避免只生成吸引点击的空结果。
- 候选产生可组合历史prefix、语义近邻和语言模型生成。离线缓存热门query,长尾才调用高成本生成;每项候选去重、过滤敏感/不可检索内容,生成概率不是点击概率。
- 排序模型估计P(click|用户、query、展示上下文),训练标签绑定曝光与位置。日志只显示旧策略选出的项,未展示不等于不点击,需受控探索或显式倾向权重处理选择/位置偏差。
- CTR优化加入约束:低质量率≤阈值、无结果率≤阈值、延迟budget和多样性。单纯把耸动建议放第一位可能短期CTR增、成功搜索降;指标必须用同一曝光定义和回访窗口比较。
- 离线验收拆候选覆盖/可检索率、排序logloss/校准、分prefix/新用户质量,确保时间切分与训练特征按曝光时点回放。模型能记住未来热门词时会虚高,不能随机打散所有日志评估。
- 线上随机化单位选用户或会话并固定bucket,记录曝光时的真实候选位置与模型版本。统计样本量前先定最小可检测效应,监测护栏和延迟,出现安全/满意度劣化可回退词典建议。
- 服务故障路径要说明:生成超时回退缓存/词典,空候选返回无建议,旧上下文响应不能覆盖更新prefix的结果。缓存键含prefix/语言/权限/模型版本,个性化内容不能跨用户混用。
手动走一遍
模型A曝光1000次点击200次,CTR20%;模型B点击230次但无结果率从1%升到8%,不能仅凭CTR23%认定方案合格。用户已经从“ca”输入到“camera”,迟到的“ca”生成结果要按请求版本丢弃。
规模与取舍
词典prefix查询约O(prefix长度+候选数),排序按候选数×模型成本,LLM生成按上下文与输出token计。缓存规模与prefix/语言/用户维度有关;容量必须把生成并发和TTFT分开估算。
易错点与追问
容易失分的边界
- 把生成概率直接当CTR。
- 未曝光候选全当负样本。
- CTR分母前后变化。
- 点击上升掩盖无结果和低质。
- 旧请求覆盖新输入。
继续深挖
- 如何估计未展示候选的效果?
- 隐私限制下个性化怎样降级?
- 候选多样性与点击目标怎样组合?
- 用户输入极快如何取消和复用生成?
