真实面经题目 · 原创解析
推荐系统的离线特征与样本流水线如何设计?线上服务消费离线结果时,如何在固定周期刷新、近实时更新和特征滞后补偿之间取舍?
这道题考察推荐系统离线特征、样本流水线与线上服务消费的工程设计。好的回答要讲清固定周期刷新、近实时更新和特征滞后补偿的取舍。
真实面经题目 · 原创解析
这道题考察推荐系统离线特征、样本流水线与线上服务消费的工程设计。好的回答要讲清固定周期刷新、近实时更新和特征滞后补偿的取舍。
推荐系统的离线特征流水线通常从日志采集开始,经清洗、去重、归因、样本构造、label 生成、特征统计、训练集产出和特征写入 feature store。线上服务消费的可能是用户画像、item 统计、交叉统计、embedding、召回索引或模型参数。设计时要先区分特征时效性:长期稳定特征可以天级刷新,热门度、库存、价格、用户近期行为需要小时级或分钟级,强实时信号应走流式或在线特征,而不是硬塞进离线批处理。 固定周期刷新简单、成本低、可复现,适合稳定统计和训练样本;缺点是滞后。近实时更新能更快捕捉兴趣和物品变化,但成本、乱序、延迟、数据质量和一致性更难。补偿方案包括离线长期特征加在线实时特征、增量聚合、时间衰减、特征 TTL、缺失默认值、延迟标签回填和训练-serving 一致性校验。上线评估要看特征新鲜度、覆盖率、延迟、数据漂移、线上 CTR/CVR/GMV,以及特征滞后造成的错误案例,例如热点已过仍高排、库存变化未同步、用户兴趣已变但画像未更新。
从日志采集、清洗、join、label 归因、样本生成、特征统计、训练集产出到 feature store 写入,每一步都要有时间窗口、去重和质量校验。
稳定画像、长期统计和离线 embedding 可批量刷新;价格、库存、热点、近期行为和会话兴趣需要近实时或在线特征。不同特征不应使用同一刷新策略。
天级或小时级批处理可复现、成本低、易回溯,适合训练和长期统计。但对热点、库存和兴趣变化慢,可能造成线上滞后。
流式处理或增量更新能降低特征延迟,但要处理乱序、重复、窗口聚合、幂等写入、状态膨胀和数据质量。适合高价值时效特征。
常见做法是离线长期特征加在线短期特征,使用时间衰减、TTL、缺失兜底、版本标记和延迟回填,避免过期特征误导模型。
监控特征新鲜度、覆盖率、训练-serving skew、分布漂移、join 成功率和线上指标。样本构造必须避免 label leakage 和未来信息穿越。
样本特征只能使用样本曝光或决策时刻之前可获得的数据,label 生成要和特征时间窗隔离。构造训练样本时必须做 point-in-time join。
用户长期画像、item 长期质量、历史统计、离线 embedding 和低频业务属性适合天级。会话兴趣、库存价格和热点趋势不适合只天级刷新。
要有默认值、缺失标记、特征版本、降级策略和监控。缺失不是静默填 0 就完事,因为 0 可能有业务含义。
只为高收益高时效特征做近实时,其他保持批量;也可以用分层更新、热点 item 优先、近似统计和降频刷新平衡成本。