题目重点:构建Reels式短视频推荐,区分完成率、有效观看和长视频天然时长偏差。
题意与假设
这道练习题保留了面经中值得训练的核心约束,并将需要澄清的条件单独列出。现场拿到变体时,先和面试官确认这些条件。
- 目标是有价值的观看与长期体验,不是简单最大化总秒数;视频长度、滑动/自动播放与重复播放需明确。
- 训练label包括有效watch、完成、skip、负反馈;播放日志结束缺失时要处理censoring,不假设每条都有完整时长。
- 用户近期兴趣变化快,但不无限收集敏感数据;最小化授权特征并明确删除。
解题路线
- 日志以viewSessionId串起曝光/start/progress/end/skip,去重乱序,watchTime不能把重试progress累加翻倍。valid watch定义前后台/静音/可见性条件,自动播放不自动算满意。
- 召回通道包括关注、内容embedding相近、趋势和探索,按language/region/权限过滤。新视频用内容特征与受控探索,不等到大量互动才有展示机会。
- 特征user近期序列、video视觉/音频/文本、长度年龄、context设备网络、cross主题偏好;长/短期兴趣可分塔融合,在线序列更新有序及期限。
- 模型预测多目标watch/complete/skip/hide,长度归一化或按时长分桶评估;不能只用完成率偏向3秒视频,也不能只用秒数偏向10分钟视频。重排控制重复作者、主题集中与疲劳。
- 训练按eventTime并等待label成熟,探索样本纠正曝光反馈循环;样本权重和位置/渠道偏差明确。比较baseline与复杂序列模型需同候选、同延迟预算。
- AB主指标包括满意有效watch及长周期留存,guardrail负反馈、过度重复和延迟,分新老用户/语言/网速。网络弱时预取/降码率改善体验,不能把模型优化与播放器改善混为一因果结果。
手动走一遍
5秒视频完整看5秒与60秒视频看45秒,完成率分别100%/75%,绝对watch5/45,两指标会反向排序。应根据目标并按视频长度对照,而非任选一个证明更好。
规模与取舍
实时序列特征更新与推理队列决定P99;序列长度L的标准attention可能O(L²d),截断/缓存与兴趣漂移取舍。内容embedding离线计算、召回ANN近似有recall/延迟权衡,实际容量需load test。
易错点与追问
容易失分的边界
- 只看播放start数量会把自动播放当用户主动选择。
- 新视频无历史CTR被零填导致永不召回,探索和内容冷启必需。
继续深挖
- 如何处理一次session兴趣骤变?近期序列加权,但保留长期prior并防一条异常反馈完全覆盖。
- 曝光策略改变后离线watch label分布变了,如何区分模型提升与选择偏差?探索对照与线上随机实验。
