Twitter推荐算法解读

本文介绍了Twitter的推荐算法,包括候选推文采集(使用RealGraph和GraphJet技术)、推文排名(HeavyRanker神经网络)和推文过滤过程。HomeMixer服务则负责构建用户的ForYou时间线。Twitter已将其开源在GitHub上。
摘要由CSDN通过智能技术生成

Twitter推荐算法解读

最近 Twitter 开源了其最宝贵的财产——推荐算法!

在这里插入图片描述

每天,人们会在 Twitter 上发布超过 5 亿条推文,Twitter 会向用户推送超过 1500 亿条推文。Twitter 的推荐算只会向用户推荐少数与其相关且有吸引力的热门推文。跟抖音等UGC平台类似,好的推荐算法是 Twitter 成功的制胜法宝。本文将带你了解 Twitter 是如何做内容推荐的。

推荐算法组成

推荐算法由很多部分组成,它是不同模型、特征和服务的集合。这些组件如何协同工作,请参考下图:

Major components of Twitter’s recommendation algorithm

Twitter 推荐算法的主要组成部分

所有组件共同尝试回答两个重要问题:

  • 您将来与其他用户互动的可能性有多大
  • Twitter 上有哪些社区,其中有哪些热门推文?

这就是社区的样子……

An illustration of Twitter communities

Twitter 社区概念插图

Twitter 目前有 145,000 个社区,有些社区已经数百万人,每三周更新一次。

揭秘推荐算法

推荐算法由三个阶段构成,这三个阶段由一个管线串联起来:

  1. 候选推文采集
  2. 推文排名
  3. 推文过滤

1. 候选推文采集

首先,从数亿条推文中提取与用户相关的最佳 1500 条候选推文。

候选推文主要有两个来源:你关注的人和你不关注的人。推文以 50-50 的比例来自这两个来源。

推文来源使用两种图形处理技术:Real GraphGraphJet,前者是一种称为 SimClusters 的嵌入技术,后者是一种自定义矩阵分解算法。

简单地说,候选推文采集系统中的组件试图回答这些问题:

  • 两个用户之间参与的可能性有多大?
  • 如果你不关注作者,我们如何判断某条推文是否与你相关?
  • 我关注的人最近与哪些推文进行了互动?
  • 谁喜欢与我相似的推文,他们最近还喜欢什么?
  • 哪些推文和用户与我的兴趣相似?

2. 推文排名

这一步使用称为 Heavy Ranker 的神经网络对每个候选推文的相关性进行评分。这个神经网络大约有约 48M 参数。该系统考虑了数以千计的特征,为每条推文打分。

以下是对输入到 Twitter Heavy Ranking 模型的主要特征组的描述。

聚合特征

Twitter的聚合特征构成了Twitter的大部分特征,并且是通过特定时间窗口内维护特定范围内特征值的滚动聚合生成的。 Twitter 计算长期(50 天计算)和短期(“实时”- 3 天以内,通常为 30 分钟计算)的聚合。

聚合特征列表如下:

  • author_aggregate
  • author-topic_aggregate
  • list_aggregate
  • user_aggregate
  • user_author_aggregate
  • user_engager_aggregate
  • user_inferred_topic_aggregate
  • user_media_annotation_aggregate
  • user_mention_aggregate
  • user_request_context_aggregate
  • user_topic_aggregate
  • topic_aggregate
  • tweet_aggregate
非聚合特征

Twitter 还有许多独立特征用于捕获有关用户、推文、作者和推文上下文的信息。

  • two_hop
  • realgraph
  • authors.realgraph
  • recap.tweetfeature, recap.searchfeature
  • tweetsource
  • in_reply_to_tweet
  • timelines.earlybird
  • realtime_interaction_graph
  • user_tweet.recommendations
  • other
嵌入特征

Twhin 是在 Twitter 数据上训练的大型图嵌入。我们使用来自 Twhin 算法的三个200维嵌入。

  • Twhin Follow Embeddings
  • Twhin Engagement Embeddings

⚠注意,由于用户设置或其他限制,对于每个请求并非所有特征都可用,并且基于不同变量的“为你推荐”排名可能存在一些差异。

3. 推文过滤

基于各种因素过滤候选推文,从而建立均衡且多样化的提要,例如

  • 被冻结的账户
  • 重复推文
  • 不同的作者
  • 编辑过的推文
  • NSFW 内容等

使用 Home Mixer 服务提供推文

上面三个阶段完成后,就可以将选定的推文推送给用户了。

Twitter 有一个名为 Home Mixer 的服务,专门用于构建 为你推荐(For You) 时间线。Home Mixer 主要基于 Scala 编程语言开发,将所有推荐阶段连接在一起。它还负责将推文与其他非推文内容混合在一起,例如广告、关注推荐和登录提示。

我们上面讨论的整个流水线每天运行大约 50 亿次,平均完成时间不到 1.5 秒。

总结

尽管本文没有深入到算法的技术细节,但所有的代码和资料 Twitter 都已经开源到 GitHub 上。后面我会带大家逐个模块探索实现细节。Twitter 肯将自己最宝贵最核心的算法开源出来非常伟大,正如Elon Musk说的,他确实在试图解放这只蓝鸟,并使其对用户更加透明。

  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

JarodYv

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值