MLE / RS · ML System Design

Meta News Feed 排序:新鲜度、质量与反馈循环

设计好友内容流的ML排序,兼顾互动、内容质量和用户长期价值,分析标签与拉取线程追问。

题目重点:设计好友内容流的ML排序,兼顾互动、内容质量和用户长期价值,分析标签与拉取线程追问。

题意与假设

这道练习题保留了面经中值得训练的核心约束,并将需要澄清的条件单独列出。现场拿到变体时,先和面试官确认这些条件。

  • 训练先区分Feed主帖排序与评论排序;本文以主帖为主,评论以post上下文的候选集与对话结构作为变体。
  • 用户互动不等于内容质量真值;长停留可能是困惑或争议。安全与可见性约束在排序前过滤,不能用点击收益抵消。
  • 训练假设两阶段召回/精排,候选规模与更新频率依据给定容量决定,不声称具体线上模型配置。

解题路线

  1. 候选来自关注关系、互动相近内容与新鲜探索,各通道保留source及采样概率。过滤删除/屏蔽/私密内容后再打分,召回覆盖需与精排单独衡量。
  2. label设计多目标:有效阅读、主动互动、隐藏/举报、满意度、长期回访。按曝光真实可见与动作窗口定义,记录负反馈延迟;未点击不必都为厌恶,曝光位置强影响机会。
  3. 特征明确user/content/context/cross:近期兴趣与衰减、内容年龄与作者、语言/设备/时段、用户作者关系、重复曝光;聚合按历史时刻计算,不能把本次互动带进输入。
  4. baseline按新鲜度+关系权重,升级多任务模型预测各目标,再在固定安全约束下用可解释效用/受约束排序。多样性与频率限制在re-rank层,防同一作者/主题占满页面。
  5. 针对label/XGBoost追问,讨论噪声/延迟/曝光偏差、分布漂移与新类别编码,不把“树模型无法用”当结论;文本embedding可预计算,在线交互特征需新鲜度与fallback。
  6. 实验按用户或社交干扰合适的cluster,监测长期指标与分组;上线shadow、流量canary和feature/model回滚。数据循环用探索流量与审核纠偏,避免推荐只强化旧热点。

手动走一遍

一个争议帖有高comment但高hide,另一个普通帖read满意却少comment,单一互动label会错优先前者。评论排序还需thread关系、作者/对话上下文和重复垃圾检测,不能原样用帖子label。

规模与取舍

每请求召回多通道O(sumCandidates),精排O(MC),重排若做所有两两相似度O(M²)需预算或近似。precompute内容embedding降低在线成本,但编辑和模型版本必须使缓存失效。

易错点与追问

容易失分的边界

  • 只说用户embedding+dot product无法回答结构化特征、实时关系与多目标冲突。
  • 将有争议引发的大量回复等同质量,可能提升短期engagement并损害长期满意。
  • 缓存已删除私密内容而只靠TTL,会造成可见性风险。

继续深挖

  • pull thread要求不断深挖一个选择,怎样回答?给该组件输入、输出、不变量、量测与fallback,而非转去堆新组件。
  • 如何衡量召回错误与排序错误?检验候选覆盖,再在固定候选集对比排序,两层归因。
✓已复制微信号!