题目重点:拆开即时会话状态、长期兴趣与噪声负反馈,控制探索、重复曝光和创作者影响。
题意与假设
这道练习题保留了面经中值得训练的核心约束,并将需要澄清的条件单独列出。现场拿到变体时,先和面试官确认这些条件。
- 训练设计把快速划走定义为可能的负反馈,但单次划走可能由网络、时间或偶然情境造成;具体 watch-time 阈值需用数据校准。
- 题目没有要求特定召回/排序模型,下述双层兴趣与在线更新是可讨论方案。
解题路线
- 事件端记录曝光、播放开始、停留、划走时间、重复观看、互动与网络/设备上下文,按 event_time 和用户会话去重;未成功播放的曝光不能简单判为内容不喜欢。
- 用户表示拆长期兴趣与短期会话状态。连续划走相似主题时,短期状态对该主题降权并迅速刷新候选;单次划走幅度小,重复证据累积,设时间衰减和上下限,避免一夜之间永久屏蔽。
- 召回池保留内容/主题多样性和有限探索;排序结合预估满意度、短期厌恶、质量、时效和曝光频次。作者或主题过度惩罚会让冷启动内容失去反馈,应设探索配额与公平监控。
- 在线更新路径把负反馈写入低延迟会话特征,下一批请求即可读;离线训练使用时序样本和延迟完整反馈,避免只看 watch time。模型更新和特征更新分离:快速变化用特征,慢速参数靠稳定训练周期。
- 实验同时观察短视频会话时长、长期留存、主动隐藏/投诉、内容多样性、新作者曝光及延迟;对极端划走用户做切片,防止短期 CTR 改善却长期体验下降。
手动走一遍
用户连续快速划过 3 条同类视频,且均成功加载。在线会话状态对该主题降权,下一次召回保留少量探索但不再连续推荐;若随后用户主动搜索并完整观看该主题,短期负反馈衰减并更新。
规模与取舍
设每秒 E 条行为、每用户短期保留 K 个主题状态,在线事件处理 O(E) 流量和约 O(活跃用户×K) 状态;召回/排序成本取决于候选数 C 和模型。题目没有量级,不填固定毫秒 SLA。
易错点与追问
容易失分的边界
- 把任何划走都当强负样本。
- 只更新离线模型,用户下一分钟仍看到同类视频。
- 连续划走后彻底封死主题,失去探索和意图恢复。
- 用未成功播放的曝光计算停留负反馈。
- 只看观看时长,不看长期负反馈与多样性。
继续深挖
- 如何区分内容不喜欢与网络卡顿?
- 用户兴趣突然转变时短期和长期权重怎么调?
- 如何避免热门内容一直赢、冷启动作者无曝光?
- 划走反馈怎样做反事实评估?
