一、前言
马斯克在推特上多次承诺将Twitter的核心推荐算法开源,并于2023年3月31日兑现了这个承诺。此次开源的代码包括在用户时间线中推荐推文的算法。马斯克表示,此次发布的是”大部分推荐算法”,其余的算法也将陆续开放。这个开源项目在GitHub上得到了 10k+ 的点赞。新开源了两个新的存储库 the-algorithm 和 the-algorithm-ml,该算法控制着时间轴上 “为您推荐” 推文。
二、算法
Twitter 推荐算法是一组服务和作业,负责构建并提供主页时间轴。下面的图示说明了主要服务和作业之间的相互连接。
这些是此存储库中包含的推荐算法的主要组件:
类型 | 组件 | 说明 |
---|---|---|
功能 | SimClusters | 社区检测和稀疏嵌入到这些社区中。 |
TwHIN | 用户和推文的密集知识图谱嵌入。 | |
trust-and-safety-models | 用于检测 NSFW 或滥用内容的模型。 | |
real-graph | 用于预测 Twitter 用户与其他用户互动的可能性的模型。 | |
tweepcred | 用于计算Twitter用户声誉的页面排名算法。 | |
recos-injector | 流事件处理器,用于为基于 GraphJet 的服务构建输入流。 | |
graph-feature-service | 为一对定向用户提供图形功能(例如,有多少用户 A 关注了来自用户 B 的推文)。 | |
数据来源 | search-index | 查找网络内推文并对其进行排名。~50% 的推文来自此候选来源。 |
cr-mixer | 协调层,用于从基础计算服务中提取网络外推文候选项。 | |
user-tweet-entity-graph | 维护内存中的用户到推文交互图,并根据此图的遍历查找候选项。这是建立在GraphJet 框架之上的。 | |
follow-recommendation-service | 为用户提供要关注的账号建议,以及来自这些账号的推文。 | |
排名 | light-ranker | 搜索索引用于对推文进行排名的轻度排名模型。 |
heavy-ranker | 用于对候选人推文进行排名的神经网络。用于选择时间线的主要信号之一 推文发布候选人来源。 | |
推文混合和过滤 | home-mixer | 用于构建和服务主页时间线的主要服务。 |
visibility-filters | 负责过滤 Twitter 内容以支持法律合规性、提高产品质量、增加用户信任度、通过使用硬过滤、可见产品处理和粗粒度降级来保护收入。 | |
timelineranker | 传统服务,提供来自早鸟搜索索引和 UTEG 服务的相关性评分推文。 | |
软件框架 | navi | 高性能,机器学习模型服务,用 Rust 编写。 |
product-mixer | 用于构建内容源的软件框架。 | |
twml | 基于 TensorFlow v1 构建的传统机器学习框架。 |
三、开发语言
这个代码库包含哪些编程语言?
-
🥇Scala – 一种JVM语言 -
🥈Java – 必须的! -
🥉Starlark – 一种Python方言,修正了许多Python的缺点 -
最后是 Python、C++和 Rust。
四、Github 地址
-
算法主库:https://github.com/twitter/the-algorithm/ -
ML 模型库:https://github.com/twitter/the-algorithm-ml
0 条评论