YouTube 推荐系统深度排序架构全景解密

237 阅读3分钟

🔍 一、业务背景

YouTube 每天有超 5 亿用户活跃,推荐系统需要:

  • 对 1 亿+ 视频进行个性化筛选
  • 支撑首页推荐、播放页推荐、短视频推荐、频道推荐等多种场景
  • <200ms 内完成 召回+排序+多目标融合

挑战:

维度描述
实时性必须根据最新行为快速更新兴趣画像
多目标不仅考虑点击(CTR),还要兼顾观看时长(Watch Time)、用户满意度(Satisfaction)等
海量数据视频数亿级、Embedding 上亿维
冷启动新视频、新用户要快速得到合理推荐

🏗 二、核心架构图

image.png

🧠 三、三塔深度排序模型架构

📌 模型结构:User Tower + Video Tower + Context Tower

# 三塔结构伪代码示例
user_emb = UserTower(user_features)  # 如性别、兴趣、订阅频道
video_emb = VideoTower(video_features)  # 视频内容、标签、作者历史
context_emb = ContextTower(context_features)  # 设备、时间、地域等

# 融合三塔特征
x = tf.concat([user_emb, video_emb, context_emb], axis=1)

# 深度排序网络
x = Dense(256, activation='relu')(x)
x = Dense(128, activation='relu')(x)
logits = Dense(1)(x)

最终模型产出分数为用户对某个视频的偏好预测。


🧩 四、多目标融合:点击、观看时长、满意度

YouTube 不是只优化 CTR,而是三个目标联合训练:

# 多目标损失函数
loss = w1 * ctr_loss + w2 * watch_time_loss + w3 * satisfaction_loss
  • CTR 使用 sigmoid + Logloss
  • Watch Time 使用回归 MSE
  • Satisfaction 使用 NPS 标签分类(满意、中立、不满)
# 示例:点击预测分支
click_logits = Dense(1, activation='sigmoid')(x)
ctr_loss = tf.keras.losses.binary_crossentropy(label_ctr, click_logits)

⚡ 五、工程系统拆解

✅ 实时行为特征计算(Flink)

// 5分钟滚动窗口内统计点赞、播放、浏览
val stats = events
  .keyBy(_.userId)
  .timeWindow(Time.minutes(5))
  .aggregate(new UserFeatureAgg())

✅ Embedding 服务系统(Faiss + LevelDB + TensorStore)

  • 所有视频 Embedding 定期离线更新(每天训练)
  • 热门视频实时 Embedding 在线训练并写入 KV Store
  • 使用 Faiss 进行近似向量检索,加速相似视频查找
# 使用 Faiss 查询 128 维相似视频
faiss_index = faiss.read_index('video_index.bin')
D, I = faiss_index.search(np.array([video_emb]), k=20)

✅ 在线推理系统部署(TensorRT + Triton)

  • 模型由 TFX 导出 SavedModel → TensorRT 加速推理
  • 使用 Nvidia Triton Server 部署模型,多路流式并发推理
curl -X POST http://triton-server/v2/models/ranker/infer \
  -d '{"inputs": [...], "outputs": ["score"]}'

📊 六、AB 实验数据对比(真实示例)

指标老版本模型三塔+多目标融合模型提升
首页 CTR8.1%9.5%↑17.2%
平均观看时长 WatchTime4.3 分钟5.8 分钟↑34.9%
用户满意度(NPS)62.770.4↑12.3%
新视频冷启动曝光数0.9 万次3.5 万次↑288%

🔐 七、冷启动机制

  • 为新视频构建“标签 + 相似视频”虚拟 Embedding
  • 为新用户使用“地域 + 性别 + App 初始行为”构建启动兴趣向量
  • 结合强化学习探索冷启动内容(Epsilon-Greedy)

🔍 八、真实推荐逻辑例子(排序 Top3)

用户行为:男性,观看大量科技短视频,最近 30 天平均 WatchTime 为 6 分钟

系统返回推荐顺序:

视频标题综合打分(Score)解释
MKBHD 新品测评0.984相关性 + 高 CTR
Pixel 9 发布会解读0.973用户兴趣强,长时间观看记录
“科技内幕”纪录片剪辑0.965推理模型 WatchTime 倾向强

✅ 九、总结(YouTube 推荐排序负责人寄语)

推荐不是猜测用户想看什么,而是 用多种信号理解用户是什么样的人,并精准地在对的时间、推对的内容。