G9 MLE · Onsite System Design

Airbnb 房源推荐系统:双侧指标、召回排序与在线评估

MLE Onsite 题目明确推荐系统 SD 和下游评估输出影响在线指标的追问;用训练假设说明目标、召回/排序与实验。

题目重点:MLE Onsite 题目明确推荐系统 SD 和下游评估输出影响在线指标的追问;用训练假设说明目标、召回/排序与实验。

题意与假设

这道练习题保留了面经中值得训练的核心约束,并将需要澄清的条件单独列出。现场拿到变体时,先和面试官确认这些条件。

  • 训练版目标是给搜索/首页访客推荐可预订房源,最终目标兼顾 guest 预订质量、host 有效曝光和平台可靠性;具体核心指标需面试官定义。
  • 价格、日期与可用性是查询时条件,不能把离线训练时可用房源直接视为在线可订。
  • 更改下游 evaluation output 可指评估分数、阈值或特征语义;回答先核输出契约/版本/消费路径,不假定一定改善转化。

解题路线

  1. 先明确推荐面向谁、场景、成功指标、延迟与候选库存;区分点击、收藏、预订、取消、投诉等多阶段标签,并控制位置/展示偏差。
  2. 召回层从地理位置、日期、预算与偏好过滤出可住候选,再混合内容/协同/热门等召回;排序层用 guest 相关性、可订概率、价格、host 质量与约束进行多目标优化。
  3. 训练切分按时间与用户/房源实体,记录曝光分母、负样本和当时特征;离线看 ranking 指标与分群,不能把未曝光房源当已被明确拒绝。
  4. 在线服务在出榜前复核库存/价格新鲜度,缓存只作候选;A/B 以用户或合适实验单位稳定随机化,监控预订率、取消/投诉、host 分布、公平性与延迟。
  5. 若下游 evaluation output 变化,画数据流查看字段类型、阈值、排序方向、校准和缓存版本,做 shadow 对比,再预测受影响人群/候选集合,最后用线上实验验证 metric 变化。

手动走一遍

训练例:下游把 score 从概率 0..1 改成 0..100,但排序端仍按阈值 0.8 过滤,候选数大增,可能提高点击却降低预订质量;先做契约与分布对照,再小流量实验。数字只用于解释接口风险,不是题目系统。

规模与取舍

在线开销由召回候选 C、排序模型单项成本和库存复核次数决定;库存过滤前置可减推理量但增加过滤 IO。题目无延迟/吞吐,不能给具体机器配置。

易错点与追问

容易失分的边界

  • 只优化 CTR,不看预订/取消/host 侧。
  • 离线可住性当作实时库存保证。
  • 更改下游评估分数就直接推断线上收益。
  • 训练负例与曝光偏差混淆。
  • 实验随机化单位造成跨用户/房源干扰却未评估。

继续深挖

  • 冷启动房源怎样获得合理曝光?
  • 位置偏差怎样校正?
  • 怎么在推荐与搜索之间共享特征?
  • 下游输出变更影响哪条线上指标链?
✓已复制微信号!