Twitter:Twitter推荐算法是如何架构的?已在GitHub获得62.2kStar

科技   2024-11-01 17:49   山西  

作为一个程序员,我对Twitter的推荐算法颇有兴趣。你有没有过这样的感觉:刷着刷着推特,突然觉得这内容好像就是为你量身定做的?其实背后的秘密正是Twitter那复杂到可以绕地球几圈的推荐算法系统。今天咱们就一起来探讨一下这个看似神秘的“幕后黑手”,看看它是如何在庞大的信息海洋中,精准地为我们推荐有趣内容的。

Twitter推荐算法是什么?

简单来说,Twitter的推荐算法就是一套负责在“为你推荐”时间线、搜索、探索、通知等各种界面为你展示内容的系统。它的目的就是通过分析你平时的行为(比如你都给哪些推文点了赞、回复了谁的评论、点了哪些链接)来预测你喜欢什么,然后把这些相关的推文推荐给你。

其实它就像是一个为你量身定做的“内容配送员”,随时观察着你的喜好动态,确保每次你打开推特的时候,都有一大波“适合你的推文”正在等着你刷。

Twitter推荐算法的架构

好,先来看看Twitter这套推荐系统是怎么运作的。为了让你一刷推特就欲罢不能,它的架构设计可是相当“分工明确”。从数据层到模型层,再到最后的软件框架,每一环都有专人负责,推文在“后厨”的复杂流程,简直堪比五星级餐厅。

1. 数据层组件

在数据层里,最重要的就是推文和用户行为的捕捉。可以理解为,数据层就是那个“监控器”,把你的一举一动记录下来。

  • tweetypie:这个服务是推特的“大脑”,它负责处理你写的推文以及你看到的推文。如果说推特是个“内容市场”,tweetypie就是那个记录所有商品进出库的系统。

  • unified-user-actions:听名字就很“统筹”,它能实时捕捉用户的各种动作,比如你点了哪个“赞”,回了哪条推文,转发了什么。嗯,没错,你的每一个点击都在它的“掌控”之中。

  • user-signal-service:它就像个“情报员”,负责把所有用户行为的“信号”收集起来,不管是你偷偷看了谁的个人主页,还是给谁的推文打了小红心,它都能帮你记录。

2. 模型层组件

如果说数据层是监控用户行为的“眼睛”,那么模型层就是“分析师”。它会通过各种模型分析你的行为,猜测你接下来会对哪些内容感兴趣。

  • SimClusters:它像个“社交达人”,根据你的行为,把你归类到某个“兴趣社区”。比如你喜欢的推文主题都是科技、编程,那它可能会把你划分到一个技术圈子里。

  • TwHIN:这个就更高深了,它是Twitter用来构建用户和推文之间的“知识图谱”,确保系统知道你和哪些内容有紧密联系。

  • real-graph:这个模型可厉害了,它专门负责预测你会不会跟某个用户互动,比如你是不是有很大可能会给某人的推文点“赞”或者回复。

3. 软件框架

推特推荐系统的“操盘手”就是它的软件框架。所有数据和模型都要通过这些框架来发挥作用,保证推文精准推送。

  • navi:一个高效的机器学习模型,特别为推特的推荐服务量身定做,用Rust语言实现。这东西可不是一般的推荐模型,它的效率极高,速度也非常快。

  • product-mixer:这名字听着就很“混搭”,它其实是一个框架,负责将不同的内容混合在一起,形成最终的推荐流。

  • twml:这是推特遗留的机器学习框架,主要是用来处理那些老旧的模型,不过它依然在一些地方发挥作用。

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

很多人最关心的就是推特的“为你推荐”时间线,到底是怎么给你推荐的?这背后的“水”可深了,不只是简单的点赞、评论计算。

  1. search-index:相当于一个搜索引擎,它会从推特的整个网络中抓取推文,并为你排个顺序。差不多一半的推荐推文来自这个模块。

  2. user-tweet-entity-graph (UTEG):听起来有点复杂,实际上它就是一个记录你跟哪些推文互动的图表系统,通过“图遍历”的方式找出跟你相关的内容。

  3. light-rankerheavy-ranker:这俩模型就像是“初选”和“决赛”裁判,先用轻量模型筛选一遍候选推文,再用深度神经网络进行最终排名。重头戏就在这里,你看到的推文就是它们精心挑选的结果。

    推荐通知的工作原理

    除了时间线推荐,Twitter的通知推荐功能也是很多人依赖的。这一功能背后主要有两个关键的推荐服务。

    • pushservice:负责通过通知推荐推文给你,它就像个快递小哥,把精挑细选的推文送到你眼前。

    • pushservice-heavy-ranker:这里的多任务学习模型相当于一个“超级选手”,它能预测你打开通知并和内容互动的概率。

    代码构建和测试

    想深入了解Twitter推荐算法的开发过程吗?Twitter的代码库里面有很多有趣的构建和测试信息,不过目前它的构建系统还在完善中,所以没事别乱跑去GitHub瞎鼓捣。

    如何参与改进Twitter推荐算法

    有编程技能的朋友还可以通过GitHub参与Twitter推荐算法的优化。推特不仅欢迎代码改进,还会认真对待社区提交的建议。如果你觉得自己发现了某个bug,甚至可以通过官方的HackerOne赏金计划上报,顺便赚点外快。


    总的来说,我觉得Twitter的推荐算法背后真是科技含量满满。它的复杂程度让人叹为观止,也难怪每次刷推特都能刷到不少“心头好”。如果你也对机器学习、推荐系统感兴趣,这无疑是一个值得深入研究的领域。至于我嘛,刷推特的同时,也在不断想象着,下一条推送会不会正好戳到我的笑点呢?

    点击下方公众号,回复关键字:github获取对应的软件安装文件!

    点分享

    点收藏

    点点赞

    点在看

    Python技术迷
    回复:python,领取Python面试题。分享AI编程,AI工具,Python技术栈,Python教程,Python编程视频,Pycharm项目,Python爬虫,Python数据分析,Python核心技术,Python量化交易。
     最新文章