在 Twitter 推荐系统的候选召回阶段,In-Network 源是最主要的候选来源,负责从用户关注的人中筛选最相关的推文。这一阶段的核心模型并非深度神经网络,而是一个基于特征工程的逻辑回归模型,其威力来源于底层图特征系统 RealGraph。理解 RealGraph 的特征设计思路,对于构建任何依赖用户交互行为的推荐系统都有直接参考价值。
RealGraph 的图结构与特征空间定义
RealGraph 本质上是一个有向、带标签、加权图。图的节点是 Twitter 用户,而边则表示两个用户之间的交互行为。关键的设计决策在于将边不仅标记为简单的「是否交互」,而是预定义了一组可扩展的交互类型集合。每条边携带的权重被赋予明确的语义:它表示从边的源用户到目标用户,未来发生任意交互的概率。
这种设计将用户间的社交关系量化为一个连续的概率值,而非离散的二值标签。在特征空间的构建上,RealGraph 为每一对用户 (u, v) 生成一组特征向量,核心特征包括:双边交互频率统计、交互时间衰减因子、共同好友数量、回复与提及的比例、以及基于图距离的可达性指标。这些特征被输入到逻辑回归模型,预测用户 u 未来与用户 v 产生交互的可能性。
值得注意的是,特征空间的设计遵循了「可解释性优先」的原则。Twitter 的工程博客明确指出,RealGraph 主要侧重于特征工程工作,这是因为传统机器学习模型对特征质量高度敏感。每个特征都有明确的业务含义,便于后续的特征重要性分析和模型迭代。
增量计算管线的工程挑战
在日均处理五亿条推文、数十亿次用户行为的规模下,实时维护完整的用户交互图面临巨大的工程挑战。Twitter 采用了分层计算策略来解决这一问题。全量图计算负责周期性的全局特征刷新,例如用户的长期兴趣画像和社区归属向量;而增量计算则聚焦于捕捉短期行为变化,用于实时调整用户间的连接强度。
增量管线的核心在于高效识别「变化边」。当用户 A 回复了用户 B 的推文时,不仅需要更新 A 与 B 之间「回复」类型的边权重,还需要重新计算涉及这两者的聚合特征。工程实现中通常采用基于时间窗口的流式处理框架,将最近 N 天的交互事件作为增量计算的数据源。窗口大小的选择需要平衡计算开销与特征时效性 —— 窗口过短会导致特征波动剧烈,过长则增加计算成本。
另一个关键设计是特征预计算与实时聚合的分离。对于查询频率高、计算复杂的特征(如多跳邻居聚合),系统在离线阶段完成预计算并存储结果;在线阶段仅需根据用户的短期行为进行微调。这种读写分离的架构有效降低了推理延迟,使得每次时间线请求能够在百毫秒量级完成特征组装。
采样聚合策略与资源权衡
图特征的实时计算面临计算复杂度的根本性挑战。即使对于单个用户,计算其与所有潜在候选用户的完整特征向量也是不可行的。Twitter 在实践中采用了采样聚合策略来控制计算开销。具体而言,在计算聚合特征时,并非遍历所有邻居节点,而是采用重要性采样:与当前用户互动更频繁的邻居获得更高的采样权重。
采样深度的控制是另一个关键参数。对于需要多跳聚合的特征(如「我关注的人点赞过的推文」),遍历深度直接决定了特征的计算成本和语义丰富度。实践中发现,三跳以内的聚合能够捕捉大部分有价值的社交信号,而超过五跳的聚合带来的边际收益迅速递减,同时计算成本呈指数级增长。
工程实现中还需考虑特征的稀疏性处理。并非所有用户对都存在交互边,对于缺失的特征值,系统采用默认值或基于全局统计的估计值填充。这一设计避免了存储完整稠密矩阵的巨大开销,转而采用稀疏图结构存储活跃边,仅在推理时根据需要补全缺失特征。
工程实践中的关键参数与监控点
从 RealGraph 的设计中可以提炼出几个对等系统有直接参考价值的工程参数。首先是交互类型集合的规模与粒度:过于粗粒度的分类会丢失行为细节,过于细粒度则导致数据稀疏和过拟合,Twitter 的实践表明十到二十个交互类型是一个合理的区间。其次是时间衰减函数的指数参数,它决定了历史行为的遗忘速度,通常根据业务场景在零点一到零点三之间调优。
监控层面需要重点关注特征分布的漂移。由于 RealGraph 依赖历史交互数据,用户群体的行为模式变化会直接影响特征有效性。Twitter 的工程博客提到,团队会持续监控交互概率的分布变化,并在发现显著漂移时触发特征重训练。此外,边的存活时间管理也是重要一环 —— 长期无互动的用户对应该被自动剪枝,以控制图规模并保持特征的新鲜度。
RealGraph 的价值不仅在于它是一个有效的推荐特征系统,更在于它展示了一种将复杂社交关系转化为可计算特征的工程化路径。这种思路在社交网络、信任评估、欺诈检测等依赖关系数据的场景中都有广泛适用性。
资料来源:Twitter Engineering Blog 关于推荐算法的介绍(https://blog.x.com/engineering/en_us/topics/open-source/2023/twitter-recommendation-algorithm)以及 Twitter 开源算法仓库中的 graph-feature-service 实现(https://github.com/twitter/the-algorithm)。