推特的推荐算法:推文是如何为你策划的

Twitter的推荐算法通过数据模型和机器学习框架,为用户生成个性化的推文推荐。本文详细介绍了这些组件和其工作方式,包括For You时间线和推荐通知。
直达下载
回到上一页
clickgpt_line.png_noView
介绍

Twitter的推荐算法负责在平台的各个界面上(例如“为你推荐”时间线、搜索、探索、通知)展示推文和其他内容。其核心目标是根据用户的兴趣和行为,生成个性化的推文推荐。这套算法基于一组共享的数据、模型和软件框架构建,涵盖从推文获取到用户互动的方方面面。

github_study_twitter_algorithm_1

Twitter推荐算法的架构

整个系统包含许多不同的服务与模块,每个模块都有特定的任务来确保推文能够精准地出现在用户面前。以下是主要组件的分类和描述:

github_study_twitter_algorithm_2

1. 数据层组件

  • tweetypie:核心的推文服务,处理推文的读取和写入操作。
  • unified-user-actions:实时捕捉用户在Twitter上的各种操作,如点赞、回复等。
  • user-signal-service:中央平台,用于检索用户的显性和隐性行为信号,如点击推文、访问个人主页等。

2. 模型层组件

  • SimClusters:基于稀疏嵌入的社区检测,用来发现用户之间的共同兴趣。
  • TwHIN:用于用户和推文的密集知识图谱嵌入。
  • trust-and-safety-models:检测不适当内容(例如NSFW或滥用内容)的模型。
  • real-graph:预测某个用户与其他用户互动可能性的模型。
  • tweepcred:基于PageRank算法,计算用户的信誉度。
  • recos-injector:流事件处理器,负责为基于GraphJet的服务构建输入流。
  • graph-feature-service:为用户之间的定向关系提供图特征,例如某个用户的多少关注者点赞了另一个用户的推文。
  • topic-social-proof:识别与特定推文相关的主题。
  • representation-scorer:基于嵌入相似度计算实体(用户、推文等)之间的分数。

3. 软件框架

  • navi:高性能机器学习模型的Rust实现,用于推荐服务。
  • product-mixer:用于构建内容推荐流的软件框架。
  • timelines-aggregation-framework:用于实时或批量生成时间线特征的框架。
  • representation-manager:检索嵌入的服务,例如SimClusters和TwHIN的嵌入。
  • twml:基于TensorFlow v1的遗留机器学习框架。

"为你推荐"时间线的工作原理

Twitter的"为你推荐"时间线是许多核心服务协同工作的结果。以下是其中几个关键组件:

  • search-index:在网络内找到并对推文进行排名,大约50%的推文来自该候选源。
  • cr-mixer:用于从计算服务中协调获取网络外推文候选的层。
  • user-tweet-entity-graph (UTEG):维护用户与推文的交互图,基于GraphJet框架,通过图遍历找到推荐候选推文。
  • follow-recommendation-service (FRS):为用户提供推荐关注的账户以及来自这些账户的推文。
  • light-ranker:搜索索引使用的轻量化排名模型,用于对推文进行早期排序。
  • heavy-ranker:神经网络模型,主要用于对候选推文进行深度排名,是决定推文出现在时间线上的关键。
  • home-mixer:构建并提供主页时间线的主要服务,基于product-mixer。
  • visibility-filters:负责过滤推特内容,以支持法律合规、产品质量提升、用户信任增强等功能。

推荐通知的工作原理

推荐通知是另一项推特的关键功能。核心组件包括:

github_study_twitter_algorithm_3

  • pushservice:主要的推荐服务,通过通知为用户提供推文和其他内容的推荐。
  • pushservice-light-ranker:轻量级排名模型,用于从初始候选集中预先选择高度相关的推文。
  • pushservice-heavy-ranker:多任务学习模型,用于预测用户打开和与通知内容互动的可能性。

代码构建和测试

Twitter推荐算法的代码中包含了大多数组件的Bazel BUILD文件,但目前没有顶层BUILD或WORKSPACE文件。未来Twitter计划添加更完整的构建和测试系统。

如何参与改进Twitter推荐算法

Twitter鼓励全球社区通过GitHub提交问题和PR,帮助改进推荐算法。Twitter正在开发工具来管理这些建议,并将改进同步到内部代码库。任何安全问题或漏洞应通过官方的HackerOne漏洞赏金计划上报。

我的感受是,Twitter的推荐算法结构相当复杂,结合了多种先进的模型和技术来确保用户看到的内容尽可能相关和有趣。无论是时间线推文还是通知推送,Twitter都在背后利用大量的数据和计算模型来提供更好的用户体验。如果你对机器学习和推荐系统感兴趣,这无疑是一个值得深入研究的领域。

编程学习
编程学习 免费领取编程学习资料 进编程学习交流群
订阅号
视频号
公众号 关注公众号,回复关键字java领取大厂最新面试题
×
编程学习
免费领取编程学习资料 进编程学习交流群