Twitter算法源代码

最后编辑时间: 2023-05-13

推特的推荐算法

Twitter 的推荐算法是一组服务和作业,负责在所有 Twitter 产品表面(例如,为您时间线、搜索、探索)提供推文和其他内容的提要。有关算法工作原理的介绍,请参阅我们的工程博客

建筑学

Twitter 的产品界面建立在一组共享的数据、模型和软件框架之上。下面列出了此存储库中包含的共享组件:

类型 成分 描述
数据 统一用户操作 Twitter 上的实时用户操作流。
  用户信号服务 用于检索显式(例如喜欢、回复)和隐式(例如个人资料访问、推文点击)用户信号的集中式平台。
模型 模拟集群 社区检测和稀疏嵌入这些社区。
  双核 用户和推文的密集知识图嵌入。
  信任和安全模型 用于检测 NSFW 或滥用内容的模型。
  实图 预测 Twitter 用户与另一个用户交互的可能性的模型。
  推特 用于计算 Twitter 用户信誉的 Page-Rank 算法。
  recos-注射器 流式事件处理器,用于为基于GraphJet的服务构建输入流。
  图特征服务 为一对定向用户提供图形特征(例如,有多少用户 A 的关注点赞了用户 B 的推文)。
  主题社会证明 标识与各个推文相关的主题。
  代表记分员 使用嵌入相似性计算实体对(用户、推文等)之间的分数。
软件架构 导航 用 Rust 编写的高性能机器学习模型服务。
  产品混合器 用于构建内容提要的软件框架。
  时间线聚合框架 用于批量或实时生成聚合特征的框架。
  代表经理 检索嵌入的服务(即 SimClusers 和 TwHIN)。
  twml 基于 TensorFlow v1 构建的旧版机器学习框架。

此存储库中当前包含的产品表面是为您时间线。

为你时间线

下图说明了主要服务和工作如何相互关联以构建“为您服务”时间表。

下面列出了此存储库中包含的 For You Timeline 的核心组件:

类型 成分 描述
候选来源 搜索索引 查找网络内推文并对其进行排名。约 50% 的推文来自此候选来源。
  混音器 用于从底层计算服务中获取网络外推文候选者的协调层。
  用户推文实体图(UTEG) 在内存中维护一个用户到推文的交互图,并根据该图的遍历找到候选者。这是建立在GraphJet框架之上的。其他几个基于 GraphJet 的功能和候选源位于此处
  遵循推荐服务(FRS) 为用户提供要关注的帐户的建议,以及来自这些帐户的推文。
排行 光级 搜索索引 (Earlybird) 使用的 Light Ranker 模型对推文进行排名。
  重级 用于对候选推文进行排名的神经网络。用于选择时间轴推文的主要信号之一。
推文混合和过滤 家用调音台 用于构建和服务主页时间线的主要服务。建立在产品混合器上。
  可见性过滤器 负责过滤 Twitter 内容以支持法律合规性、提高产品质量、增加用户信任度、通过使用硬过滤、可见产品处理和粗粒度降级来保护收入。
  时间线排序器 旧版服务,它提供来自 Earlybird 搜索索引和 UTEG 服务的相关性评分推文。

构建和测试代码

我们包括大多数组件的 Bazel BUILD 文件,但不包括顶级 BUILD 或 WORKSPACE 文件。我们计划在未来添加更完整的构建和测试系统。

马斯克履行诺言, Twitter 推荐算法开源了,该开源项目涵盖了推荐算法在内的许多推特源代码,包括用来控制用户在 For You 时间线上看到的推文的机制。

推特的推荐算法是一组服务和作业,负责构建和服务主页时间线。

开源项目: https://github.com/twitter/the-algorithm

官方博客:https://blog.twitter.com/engineering/en_us/topics/open-source/2023/twitter-recommendation-algorithm

请在下方留下您的评论.加入TG吹水群