这是 Beta 探索课程,内容结构、实验步骤和示例可能会继续调整。
完整系统
系统演进路线
从首页视频列表到可迭代的推荐平台
第 1 版
人工精选 Feed
先把编辑挑选的视频按时间倒序返回,让首页能刷起来。
视频表审核状态游标分页播放 URL
首帧时间、Feed 响应延迟、不可播放率
第 2 版
内容生产链路
创作者开始上传视频,系统必须处理转码、封面、审核和 CDN。
上传服务转码任务对象存储CDN内容审核
转码延迟、CDN 命中率、审核通过延迟
第 3 版
多路召回排序
热门列表无法个性化,需要从用户兴趣、关注、热门和相似内容召回候选。
用户画像召回通道排序模型曝光去重重排规则
点击率、完播率、连续跳过率、多样性
生产版
数据闭环平台
推荐策略每天迭代,必须用实验、特征、治理和监控控制结果。
行为日志特征平台A/B 实验风控治理降级策略
留存、投诉率、实验显著性、模型超时率
完整的视频推荐流系统可以分成四条链路:
内容链路:上传 -> 转码 -> 审核 -> 入推荐池
分发链路:对象存储 -> CDN -> 播放器
推荐链路:召回 -> 排序 -> 重排 -> Feed 返回
反馈链路:曝光 -> 行为 -> 特征 -> 模型/策略更新
四条链路缺一不可。只有算法没有内容供给,推荐会枯竭;只有内容没有反馈,推荐无法个性化;只有推荐没有分发,播放体验会拖垮留存。
最终请求流程
一次 Feed 请求可以这样发生:
- 客户端带上用户、设备、网络和游标请求下一页。
- 推荐服务读取用户画像、最近行为和曝光历史。
- 多路召回生成候选视频。
- 候选经过过滤和去重,去掉已曝光、违规或不可播放内容。
- 排序模型为候选打分。
- 重排层控制多样性、新鲜度、作者频率和探索内容。
- 返回视频卡片、播放 URL、封面和推荐上下文。
- 客户端上报曝光、播放、完播、点赞、跳过等行为。
这些行为数据会进入实时和离线链路,影响下一次推荐。
核心数据
推荐流至少需要这些数据:
| 数据 | 作用 |
|---|---|
| video_metadata | 视频状态、作者、时长、标签、播放资源 |
| user_profile | 用户兴趣、长期偏好、风险状态 |
| behavior_log | 曝光、播放、完播、互动、负反馈 |
| feature_store | 在线和离线特征 |
| experiment_log | 策略版本、实验分组、效果指标 |
曝光日志尤其重要。没有曝光,就无法判断用户没有互动是因为不喜欢,还是根本没看到。
关键决策
- 推荐是否只靠模型:不应该。召回、过滤、重排、治理和实验同样重要。
- 点击率是否是唯一目标:不是。完播、留存、投诉、多样性和生态健康都要进入评估。
- 新视频如何获得机会:需要探索流量,否则系统会只推荐历史热门内容。
- 视频不可播放怎么办:推荐服务要感知转码、审核和 CDN 状态,避免推荐坏内容。
- 高峰期如何降级:特征服务或排序模型超时时,要降级到缓存、热门或轻量模型。
上线检查清单
- 视频是否只有在转码完成、审核通过后进入推荐池?
- 播放 URL 是否稳定,CDN 命中率和首帧时间是否可监控?
- Feed 是否使用游标分页和曝光去重?
- 召回通道是否有配额、去重和质量监控?
- 排序是否有多目标和护栏指标?
- 是否记录曝光、播放、完播、跳过、举报等行为?
- A/B 实验是否能追踪策略版本和用户分组?
- 低质、违规、重复内容是否能被过滤和降权?
课程总结
视频推荐流是一套数据闭环系统。它的复杂度不只在算法,而在内容生产、播放体验、候选生成、在线排序、用户反馈和治理机制如何协同。
设计这类系统时,先问五个问题:
- 内容能否稳定进入系统并被审核?
- 用户请求能否在低延迟下返回可播放视频?
- 候选集是否覆盖相关性、新鲜度和探索?
- 排序是否平衡多个目标,而不是只追点击?
- 用户行为是否完整回流,支撑下一轮优化?
能回答这些问题,视频推荐流才具备完整的系统设计基础。
