twitter开源算法(1)For You推荐系统架构

1 Twitter’s Recommendation Algorithm

我们的推荐系统由许多互相关联的服务(services)和工作(jobs)组成,本节这要是聚焦home timeline的for you feed流。

the-algorithm开源地址:https://github.com/twitter/the-algorithm
本篇博客来源:https://blog.twitter.com/engineering/en_us/topics/open-source/2023/twitter-recommendation-algorithm

2 Home Mixer 的For You 推荐架构

主要由以下三步组成
1 从不同的推荐候选集获取最合适的推文——(召回)
2 使用机器学习进行排序——(排序)
3 使用启发式的过滤方法,过滤掉用户拉黑,NSFW(not suit for work)和已经看过的推文——(重排序)

构建timeline 的主要架构
构建timeline 的主要架构

3 召回源

Twitter 有很多召回来源,每次从几亿的推文中请求1500左右的推文,候选集有从用户关注(In-Network)的的部分选择,还有从用户没有关注的部分选择(out-of-Network),针对For you推荐,有50%来自于用户关注,还有50%来自于用户未关注部分。

In-NetWork Source

In-Network Sorce 是从你关注的用户中分发最相关,最新的推文。搞笑的推文排序是使用逻辑回归。

排序最主要的部分是使用Real Graph,实时图用来预测两个用户的相关性,你和推文作者的实时图得分越高,给你推荐他的推文越多。

out-of-Network Sources

Twitter 有两种方法去召回用户未关注过的用户的推文。
1 social Graph
第一种方法是,通过分析和你关注的用户的相似用户,或者形同兴趣的人。

根据业务,需要回答以下两个问题
a . 我关注的用户的最近都参与了哪些推特
b. 谁喜欢和我相似的推文,他们最近点赞了哪些推文。

我们根据这些问题的答案生成候选推文,并使用逻辑回归模型对结果推文进行排名。这种类型的图遍历对于我们的网络外是必不可少的

recommendations : 我们开发了GraphJet(git地址)(用户和推特实时交互的图处理引擎),这些启发式的搜索发布和关注推文的网络结构是非常有用的(目前,服务了15%左右的Home Timeline 推文)。embedding space 方法已经变成了最大的 out-of-network 推特召回来源。

2 Embedding Spaces
Embedding 方法旨在回答一个关于内容相似性的更普遍的问题:哪些推文和用户与我的兴趣相似?

Embedding工作原理是生成用户兴趣和推特内容的数字表示。然后,我们可以计算这个embedding 空间中任何两个用户、推特或用户-推特对之间的相似性。只要我们生成准确的embedding,我们就可以使用这种相似性作为相关性的替代。

Twitter最有用的嵌入空间之一是SimClusters。SimClusters使用自定义矩阵分解算法发现由一群有影响力的用户锚定的社区。有145k个社区,每三周更新一次。用户和推特在社区的空间中被代表,并且可以属于多个社区。社区的规模从个人朋友群的几千名用户到新闻或流行文化的数亿用户不等。

我们可以通过查看推文在每个社区中的流行程度,将推文嵌入到这些社区中。来自社区的用户越喜欢推特,推特与该社区的联系就越多。

4 排序 Ranking

For You时间表的目标是为您提供相关的推文。目前,我们有大约1500名候选人可能是相关的。评分直接预测每个候选推文的相关性,是在时间线上对推文进行排名的主要信号。在这个阶段,所有候选人都得到平等对待,而不考虑其来源。

排名是通过一个~48M参数的神经网络实现的,该网络在推特互动上不断训练,以优化积极参与(例如点赞、转发和回复)。这种排名机制考虑了数千个特征,并输出十个标签,为每条推文打分,其中每个标签代表参与的概率。我们根据这些分数对推特进行排名。

5 重排序 Heuristics, Filters, and Product Features

在排名阶段之后,我们应用启发式和过滤器来实现各种产品功能。这些功能共同作用,创建了一个平衡和多样化的提要。一些例子包括:

  1. Visibility Filting:根据推文的内容和您的偏好过滤推文。例如,从您屏蔽或静音的帐户中删除推文。
  2. Author Diversity:避免单个作者连续发太多推文。
  3. Content Balance:确保我们提供网络内和网络外推文的公平平衡。
  4. Feedback-based Fatigue:如果观众提供了负面反馈,则降低某些推文的分数。
  5. social Proof:排除没有二级连接的网络外推文作为质量保障。换句话说,确保你关注的人参与推特或关注推特的作者。
  6. Conversations:通过将回复与原始推文连接在一起,为回复提供更多上下文。
  7. Edited Tewwts:确定当前设备上的推文是否过时,并发送指示将其替换为编辑的版本。

6 Mixing And Serving

此时,Home Mixer已经准备好了一组推文,可以发送到您的设备。作为该过程的最后一步,系统将推文与其他非推文内容混合在一起,如广告、关注建议和登录提示,这些内容将返回到您的设备中显示。

上述管道每天运行约50亿次,平均在1.5秒内完成。单个管道执行需要220秒的CPU时间,几乎是你在应用程序上感知到的延迟的150倍。

猜你喜欢

转载自blog.csdn.net/weixin_42529756/article/details/129895753