菜单

系统架构

相关源文件

本文档概述了 Twitter 推荐算法系统的高级架构。它涵盖了核心组件、它们之间的交互以及为 Twitter 内容推荐功能提供支持的整体系统设计。有关具体数据流详细信息,请参阅数据流。有关主页时间线生成等特定组件的实现细节,请参阅主页时间线生成

核心系统组件

Twitter 的推荐系统建立在模块化架构之上,该架构结合了数据服务、机器学习模型、候选生成器和排序系统。以下图表说明了主要组件及其关系

核心系统架构图

来源:README.md31-36

关键系统组件

推荐系统由以下主要组件构成

组件类型姓名描述代码路径
数据服务Tweetypie核心推文服务,处理推文数据的读写tweetypie/server/
用户信号服务用于检索显式和隐式用户信号的平台user-signal-service/
图特征服务为用户对提供图特征graph-feature-service/
机器学习模型SimClusters社区检测和稀疏嵌入src/scala/com/twitter/simclusters_v2/
TwHIN稠密知识图谱嵌入外部仓库
信任与安全模型NSFW/滥用检测模型trust_and_safety_models/
真实图谱用户互动预测src/scala/com/twitter/interaction_graph/
Tweepcred用户信誉的PageRanksrc/scala/com/twitter/graph/batch/job/tweepcred/
机器学习基础设施Navi高性能机器学习模型服务navi/
候选来源搜索索引查找并排名站内推文(约占内容的50%)src/java/com/twitter/search/
CR-Mixer站外推文的协调层cr-mixer/
UTEG用户-推文互动图src/scala/com/twitter/recos/user_tweet_entity_graph/
FRS关注推荐follow-recommendations-service/
排序轻量级排序器候选人的初步评分src/python/twitter/deepbird/projects/timelines/scripts/models/earlybird/
重量级排序器用于最终排序的神经网络外部仓库
混合与过滤Home-Mixer时间线构建的主要服务home-mixer/
可见性过滤器内容过滤和安全visibilitylib/
TimelineRanker用于推文相关性评分的旧服务timelineranker/

来源:README.md9-27 README.md38-50

产品推荐流程

以下图表说明了不同组件如何交互以生成用户时间线推荐

推文推荐流程图

来源:README.md38-50 home-mixer/README.md

机器学习服务架构

Navi 是为推荐算法提供支持的核心机器学习服务系统。它为各种排序模型提供高性能、低延迟的模型推理。

机器学习服务架构图

来源:navi/README.md README.md23-24

嵌入和表示系统

Twitter 的推荐算法严重依赖各种嵌入和表示系统来理解内容和用户关系。

嵌入和表示系统图

来源:README.md14-16 representation-manager/README.md representation-scorer/README.md

内容过滤和可见性系统

可见性系统确保内容在向用户展示之前符合质量和安全标准

内容过滤和可见性系统图

来源:visibilitylib/README.md README.md48-49

推送通知系统架构

推送通知系统通过通知向用户提供推荐

推送通知系统图

来源:pushservice/README.md1-45

软件框架

推荐系统依赖于多个关键软件框架以高效运行

框架描述代码路径
Product-Mixer用于构建内容流的框架product-mixer/README.md
Navi高性能机器学习模型服务navi/README.md
表示管理器用于检索嵌入的服务representation-manager/README.md
时间线聚合框架用于生成聚合特征的框架timelines/data_processing/ml_util/aggregation_framework/README.md
TWML旧版机器学习框架twml/README.md

来源:README.md23-27

系统集成

推荐系统与各种 Twitter 产品界面集成,包括

  1. 为你推荐时间线
  2. 搜索
  3. 探索
  4. 通知

每个产品界面都使用核心组件的不同组合,为用户提供个性化内容。

来源:README.md3-4 README.md29-30