Twitter推荐算法总架构和算法说明

Twitter推荐算法总架构:

这个推荐架构的作用是生成在用户首页上显示的推文列表

在这里插入图片描述



步骤:

1、从不同的推荐来源中获取最好的推文,这个过程被称为候选来源。
2、使用机器学习模型对每条推文进行排名。
3、应用启发式方法和过滤器,例如过滤掉你已经屏蔽的用户的推文、NSFW内容以及你已经看过的推文。



候选源:

来源分成两部分,网络内和网络外。这里的网络指的是Twitter的社交网络。



1、网络内来源
网络内来源是最大的候选来源,旨在提供所关注的用户的最相关、最近的推文。它使用逻辑回归模型,根据相关性对你所关注的用户的推文进行有效排名。排名靠前的推文会被送到下一个阶段。

对网络内推文进行排名的最重要组成部分是Real Graph。真实图谱是一个预测两个用户之间接触的可能性的模型。你和推文作者之间的Real Graph得分越高,将包括更多他们的推文。

网络内来源一直是Twitter最近工作的主题。最近停止了使用Fanout服务,这是一项有12年历史的服务,以前是用来从每个用户的推文缓存中提供网络内推文的。也正在重新设计逻辑回归排名模型,该模型最后一次更新和训练是在几年前!



2、网络外的来源
寻找用户网络之外的相关推文是一个比较棘手的问题:如果你不关注作者,怎么能知道某条推文是否与你有关?Twitter采取了两种方法来解决这个问题。



2.1社会图谱

第一个方法是通过分析你所关注的人或有类似兴趣的人的参与情况来估计你会发现什么是相关的。

遍历参与度和关注度的图表,以回答以下问题:

1、我关注的人最近参与了哪些推文?
2、谁喜欢与我相似的推文,他们最近还喜欢什么?
**根据这些问题的答案生成候选推文,并使用逻辑回归模型对生成的推文进行排名。**这种类型的图形遍历对网络外推荐至关重要;

**开发了GraphJet,一个图形处理引擎,维护用户和推文之间的实时互动图,以执行这些遍历。**虽然这种搜索Twitter参与和关注网络的启发式方法已被证明是有用的(目前这些方法服务于大约15%的主页时间线推文),但嵌入空间方法已成为网络外推文的更大来源。



2.2嵌入空间

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

嵌入的工作方式是生成用户兴趣和推文内容的数字表示。然后,可以计算出这个嵌入空间中任何两个用户、推文或用户-推文对之间的相似性。只要产生准确的嵌入,就可以用这种相似性作为相关性的代表。

Twitter最有用的嵌入空间之一是SimClusters。SimClusters使用一种自定义的矩阵分解算法,去发现由有影响力的用户群体关注的社区进行嵌入。这里有145k个社区,每三周更新一次。用户和推文在社区的空间中被表示,并且可以属于多个社区。社区的规模从个人朋友圈的几千个用户,到新闻或流行文化的几亿个用户。这些是一些最大的社区:

在这里插入图片描述

可以通过查看Tweet在每个社区的当前受欢迎程度,将Tweet嵌入到这些社区。一个社区的用户越喜欢一条推文,该推文就越能与该社区联系起来。



排序

为你服务 "时间轴的目标是为你提供相关的推文。在管道的这一点上,有大约1500个可能是相关的候选推文。分数直接预测每个候选推文的相关性。在这个阶段,所有的候选推文都被平等对待,不考虑它来自哪个候选推文的来源。

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



启发式方法、过滤器和产品特性

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

1、可见度过滤:根据推文的内容和你的偏好,过滤掉推文。例如,删除你屏蔽或静音的账户的推文。
2、作者多样性:避免单一作者的连续推文太多。
3、内容平衡:确保在网络内和网络外的推文中提供公平的平衡。
4、基于反馈的疲劳度:如果观众对某些推文提供了负面的反馈,则降低该推文的得分。
5、社会证明:排除没有第二层关系的网络外推文,作为一种质量保障。换句话说,确保你关注的人参与了该推文或关注该推文的作者。
6、对话:通过将回复与原始推文串联起来,为回复提供更多背景。
7、编辑过的推文:判断当前设备上的推文是否过时,并发送指示,用编辑过的版本替换它们。



混合和服务

在这一点上,Home Mixer有一组推文,准备发送到你的设备上。作为这个过程的最后一步,系统将推文与其他非推文内容混合在一起,如广告、关注建议和入职提示,这些内容将返回到你的设备上显示。

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



参考:

1、Twitter’s Recommendation Algorithm

er.com/engineering/en_us/topics/open-source/2023/twitter-recommendation-algorithm)

2、examples/lite/examples/image_classification/android at master · tensorflow/examples (github.com)

猜你喜欢

转载自blog.csdn.net/KPer_Yang/article/details/130001568