题目重点:从浏览日志、候选召回、库存约束和反馈偏差切入,设计题目中的大规模电商推荐系统。
题意与假设
这道练习题保留了面经中值得训练的核心约束,并将需要澄清的条件单独列出。现场拿到变体时,先和面试官确认这些条件。
- 训练目标是提升有质量的商品发现和最终下单,而非仅延长浏览时长;先问页面位置、用户群、商品量和延迟目标。
- 浏览历史含商品 ID、时间、停留和来源,均需按隐私/保留政策处理;库存、地区和配送可行性是硬过滤约束。
解题路线
- 日志摄入后按用户与时间生成短期会话兴趣和长期偏好,过滤机器人/重复曝光,维护训练与线上一致的特征版本。
- 多路召回可从最近浏览的相似商品、类目热门、协同过滤或向量索引获取候选;先做库存、地区、年龄限制等硬过滤,再排序。
- 排序目标结合下单、加购、退货和用户体验,校准不同任务的概率与价值;新用户靠上下文/热门,新商品靠内容和类目特征,避免只推荐已有热门。
- 线上服务给每段设预算,例如特征 20ms、召回 40ms、排序 30ms;超时退回安全热门候选。离线评估按时间切分并注意曝光偏差,线上 A/B 看订单、留存、退货和多样性。
- 反馈闭环要记录候选、位置、曝光概率和实际动作;若只用已曝光商品训练,容易把旧策略偏好强化成“用户兴趣”。
手动走一遍
用户刚浏览登山鞋,短期召回给户外鞋及相关装备;过滤无库存或无法配送商品,再按购买概率、价格与体验排序。若鞋类模型服务超时,退回有库存的同类热门列表,保持页面可用。
规模与取舍
用户数 U、商品数 I、每次召回候选 C;若直接扫描全商品每次 O(I) 难以服务高 QPS,应靠索引或离线候选缩到 C,在线排序通常 O(C·模型计算)。存储和更新量与事件速率及特征保留期相关。
易错点与追问
容易失分的边界
- 仅根据浏览次数推荐,忽略位置偏差、误触和重复曝光。
- 排序后才过滤库存,浪费延迟且可能返回不可买商品。
- 只看 CTR,不看下单、退货与长期体验。
- 没有冷启动与模型超时降级。
继续深挖
- 匿名用户只能看到会话浏览,如何实时更新兴趣且保护隐私?
- 大促时库存快速变化,特征与候选缓存如何失效?
- 如何做反事实或随机探索以减轻曝光偏差?
