本文档概述了 Twitter 推荐算法系统的高级架构。它涵盖了核心组件、它们之间的交互以及为 Twitter 内容推荐功能提供支持的整体系统设计。有关具体数据流详细信息,请参阅数据流。有关主页时间线生成等特定组件的实现细节,请参阅主页时间线生成。
Twitter 的推荐系统建立在模块化架构之上,该架构结合了数据服务、机器学习模型、候选生成器和排序系统。以下图表说明了主要组件及其关系
核心系统架构图
推荐系统由以下主要组件构成
| 组件类型 | 姓名 | 描述 | 代码路径 |
|---|---|---|---|
| 数据服务 | 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 | 用户信誉的PageRank | src/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
推送通知系统通过通知向用户提供推荐
推送通知系统图
推荐系统依赖于多个关键软件框架以高效运行
| 框架 | 描述 | 代码路径 |
|---|---|---|
| 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 |
推荐系统与各种 Twitter 产品界面集成,包括
每个产品界面都使用核心组件的不同组合,为用户提供个性化内容。