Twitter的推荐系统开源了,Twitter的推荐系统是什么样的呢?Twitter推荐系统的架构说明

news2025/1/15 23:30:57

Twitter的推荐系统开源了,Twitter的推荐系统是什么样的呢?Twitter推荐系统的架构说明

  • 01. Twitter的推荐系统是什么样的?
  • 02. Candidate Sources
    • 2.1 In-Network Source
    • 2.2 Out-of-Network Sources
  • 03. Ranking
  • 04. Heuristics, Filters, and Product Features
  • 05. Mixing and Serving
  • 06. 大规模专有网络图
  • 07. 排名信息
  • 08. 小结

来源:https://www.theverge.com/2023/3/31/23664849/twitter-releases-algorithm-musk-open-source

01. Twitter的推荐系统是什么样的?

在这里插入图片描述

Twitter的推荐系统由三大部分构成:

  • Candidate Sources:从不同的推荐源获取最好的推文。
  • Rank:使用机器学习模型对每条推文进行排名。
  • 后处理逻辑:应用heuristicsfilters,例如过滤来自已屏蔽用户的推文、NSFW内容和已看到的推文。

负责构建和提供推荐时间轴的服务被称为“Home Mixer”。

Home Mixer”建立在“Product Mixer”之上,这是定制的Scala框架,有助于构建内容的动态流。

这项服务作为推荐系统主干,连接不同的候选源、评分函数、heuristics和filters。

在这里插入图片描述

02. Candidate Sources

Twitter使用多个候选源来为用户检索最近的推文或者相关的推文。

对于每个请求,推特尝试通过这些源从数亿条推文池中提取最佳的1500条。

从您关注的人(内部网络)和不关注的人(外部网络)中寻找候选人。

如今,“为您推荐”Home Mixer平均由50%的内部网络推文和50%的外部网络推文组成(尽管这可能因用户而异)。

2.1 In-Network Source

内部网络资源是最大的候选来源,旨在提供关注的用户最相关、最新的推文。

它使用逻辑回归模型,高效地对关注的人的推文进行排名,以其相关性为基础。然后将排名最高的推文发送到下一阶段。

排名内部网络推文最重要的组成部分是Real Graph

Real Graph是一种模型,用于预测两个用户之间的互动可能性。用户和推文作者之间的Real Graph分数越高,就会包括更多他们的推文。

内部网络来源最近成为Twitter的研究对象。最近Twitter停止使用Fanout服务,这是一个12年前用来从每个用户的推文缓存中提供内部网络推文的服务。

2.2 Out-of-Network Sources

在用户网络之外寻找相关的推文是一个棘手的问题。

因为如果你不关注作者,怎么知道某条推文是否与你相关?

为此,Twitter采取了两种方法来解决这个问题。

一个是社交图(Social Graph)。

这个方法是通过分析你关注的人或有相似兴趣的人的活动,来估计你会发现什么是相关的。

主要遍历参与的图,并按照以下步骤回答以下问题:

  • 我关注的人最近在Twitter上发了什么消息?
  • 谁和我一样喜欢类似的推文,他们最近还喜欢什么?

团队根据这些问题的答案生成候选推文,并使用Logit模型对产生的推文进行排名。

这种类型的图形遍历对于外部网络推荐是必不可少的;团队开发了 GraphJet,一个维护用户和推文之间实时交互图的图形处理引擎,来执行这些遍历。

虽然这种搜索Twitter参与和关注网络的启发式方法已经被证明是有用的,但嵌入式空间方法已经成为外部网络推文的更大来源。

第二个是嵌入空间(Embedding Spaces)。

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

Embeddings通过生成用户兴趣和推文内容的数字表示来工作。然后可以计算这个嵌入空间中任意两个用户之间的相似度,推文或 用户-推文 对。

只要生成准确的embedding,就可以使用这种相似性作为相关性的替代。

Twitter 最有用的嵌入空间之一是 SimClusters。

SimClusters 使用自定义矩阵分解算法发现由一群有影响力的用户锚定的社区(有14.5万个社区,每三周更新一次)。

用户和推文在社区空间中表示,并且可以属于多个社区。社区的规模从个人朋友群的几千名用户到新闻或流行文化的数亿用户不等:

在这里插入图片描述

03. Ranking

大约1500相关候选。评分直接预测每个候选推文的相关性,在这个阶段,所有候选推文权重一致,而不考虑其来源。

排序是通过一个48M参数的神经网络实现的,该网络在推特互动数据上不断训练,以优化积极参与等行为的权重(例如点赞、转发和回复)。

考虑了数千个特征,并输出十个标签,为每条推文打分,其中每个标签代表参与的概率,根据这些分数对推特进行排序。

04. Heuristics, Filters, and Product Features

在排序阶段之后,应用启发式和过滤器来实现各种产品功能。这些功能共同作用,实现推荐内容的平衡和多样化。

  • Visibility Filtering: Filter out Tweets based on their content and your preferences. For instance, remove Tweets from accounts you block or mute.

  • Author Diversity: Avoid too many consecutive Tweets from a single author.

  • Content Balance: Ensure we are delivering a fair balance of In-Network and Out-of-Network Tweets.

  • Feedback-based Fatigue: Lower the score of certain Tweets if the viewer has provided negative feedback around it.

  • Social Proof: Exclude Out-of-Network Tweets without a second degree connection to the Tweet as a quality safeguard. In other words, ensure someone you follow engaged with the Tweet or follows the Tweet’s author.

  • Conversations: Provide more context to a Reply by threading it together with the original Tweet.

  • Edited Tweets: Determine if the Tweets currently on a device are stale, and send instructions to replace them with the edited versions.

05. Mixing and Serving

在这里插入图片描述

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

上述Pipeline每天运行约50亿次,平均在1.5秒内完成。单个Pipeline执行需要220秒的CPU时间。

在这里插入图片描述

06. 大规模专有网络图

像 Twitter 这样的社交网络就是超大图的实例,节点是用户和推文的模型,边则是回复、转发和喜欢等互动的模型。

在这里插入图片描述
Twitter 的核心商业价值有很大一部分来自于这个庞大的由用户、推文和互动构成的基础数据集。 用户登录、查看推文、点击推文、查看用户资料、发布推文、回复推文等,在 Twitter 上的每一次互动都会被记录到内部数据库。

从 Twitter 的公共 API 获得的数据只是 Twitter 内部跟踪数据中的一小部分。这一点很重要,因为 Twitter 的内部推荐算法可以获得所有这些丰富的互动数据,而任何开源工作都可能仅能使用一个有限的数据集。

07. 排名信息

2017 年,Twitter 的研究人员曾在一篇名为《在 Twitter 时间线上使用大规模深度学习》的文章中提到,为了预测某条推文是否会吸引用户,Twitter 的模型考虑了以下几个要点:

  • 推文本身:它的新近度,存在的媒体卡(图像或视频),总互动数(如转发和喜欢的数量)。

  • 推文作者:用户过去与这个作者的互动,用户与他们联系的强度,用户关系的起源。

  • 用户:用户在过去觉得有吸引力的推文,用户使用推特的频率和程度。研究人员表示,“我们考虑的特征及其各种互动的清单在不断增加,为我们的模型提供了更多存在细微差别的行为模式。”

这些 2017 年的排名信息描述可能有点过时,但这些核心信息在今天仍然与 Twitter 高度相关。因为这份清单很可能已经推广到几十甚至几百个重点机器学习模型,它们支撑着 Twitter 的算法。

在这里插入图片描述

一个深度学习模型的可视化,用于确定一个用户在未来关注另一个用户的可能性。这个模型代表了 Twitter 内部各种推荐系统的一小部分。

08. 小结

Travis Fischer 认为,将 Twitter 推荐算法开源难免会遇到一些重大的工程挑战。

比如,Twitter 的网络图非常庞大,包含数以亿计的节点和数十亿的边。Twitter 的实时性带来了另一个独特的挑战:用户希望 Twitter 尽可能地接近实时,这意味着底层网络图是高度动态的,延迟成为一个真实的用户体验问题。此外,还有可靠性、安全与隐私方面的挑战。

但无论如何,马斯克还是兑现了他的开源承诺,Twitter 推荐算法开源也标志着,这类平台的透明度正在迈出关键一步。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/415778.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

VR虚拟核电设备拆除模拟培训降低风险

核电站设备拆除是一项高危、复杂的任务,因此进行安全、有效的培训至关重要。为此,将VR虚拟现实技术应用于核电厂中,通过100%模拟还原真实的拆除操作场景,广泛应用到核电厂展示、巡检和拆除等环节中,极大提高了生产效率…

单片机学习之中断与定时/计数器

记录学习中断的使用。 1. 使用工具 使用开发板: 普中科技开发板 编译软件: keil 2. 复习中断及相关概念 CPU在处理 事件A 时,中断源 发出中断请求,请求cpu处理事件B ,cpu 中断 当前工作,转去处理事件B&a…

HTML5 视频 Video

文章目录HTML5 视频 VideoWeb站点上的视频浏览器支持HTML5 (视频)- 如何工作视频格式与浏览器的支持视频格式HTML5 \<video> - 使用 DOM 进行控制HTML5 Video 标签HTML5 视频 Video 很多站点都会使用到视频. HTML5 提供了展示视频的标准。 Web站点上的视频 直到现在&am…

详解数据恢复多少一个g以及如何恢复

整理电脑硬盘数据的时候不小心删除了重要的文件该如何么恢复呢?硬盘修复数据恢复价格都爱的贵不贵?今天小编就来给大家重点当前市场上硬盘数据恢复的价格相关内容&#xff0c;那么数据恢复多少钱一个g呢?下面就来给大家揭晓一下数据恢复多少钱一个g以及如何恢复。 工具/原料…

全国青少年电子信息智能创新大赛(决赛)python·模拟三卷,含答案解析

全国青少年电子信息智能创新大赛(决赛) python 模拟三卷 一、程序题 第一题:描述 现有 n 个人依次围成一圈玩游戏,从第 1 个人开始报数,数到第 m 个人出局,然 后从出局的下一个人开始报数,数到第 m 个人又出局,...,如此反复到只剩下 最后一个是胜利者。设 n 个人的编号…

常用 Composition API--工程文件及setup

官方文档: https://v3.cn.vuejs.org/guide/composition-api-introduction.html 分析工程结构 vue3新添加的东西或修改的内容 首先import { createApp } from vue引入的不再是Vue的构造函数了&#xff0c;而是一个createAPP的工厂函数&#xff0c;什么是工厂函数&#xff1f; …

【TimeSerias】Transformer

Sequence 1. rnn 和 cnn RNN 很难并行化CNN很难捕捉较远的信息 2. Self-attention 拿每个query q去对每个 key k做attention 计算输出 Self-attition 矩阵计算 qiWqaikiWkqiviWvaiQWqAKWkAVWvA(1.1)\begin{align*} q^i & W^q a^i \\ k^i & W^k q^i \\ v^i & W…

WordPress图片水印插件 Easy Watermark

1、概述 WordPress图片水印插件Easy Watermark 是一款实现上传图片自动添加水印LOGO功能的高效插件。当我们在WordPress网站后台上传图片文件到媒体库时&#xff0c;或者在发布文章上传图片时&#xff0c;Easy Watermark 都能为图片自动添加水印&#xff0c;同时&#xff0c;还…

《计算机网络-自顶向下》06. 链路层和局域网

文章目录链路层概述链路层提供的服务链路层在何处实现差错检测和纠正技术奇偶校验循环冗余检测多路访问协议信道划分协议随机接入协议时隙 ALOHAALOHA载波侦听多路访问 —— CSMA具有碰撞检测的载波侦听多路访问 —— CSMA/CDCSMA/CD 效率轮流协议DOCSIS&#xff1a;用于电缆因…

c++11 标准模板(STL)(std::stack)(五)

定义于头文件 <stack> template< class T, class Container std::deque<T> > class stack; std::stack 类是容器适配器&#xff0c;它给予程序员栈的功能——特别是 FILO &#xff08;先进后出&#xff09;数据结构。 该类模板表现为底层容器的包…

C++实现:学生管理系统(详细解析)

目录 1.题目要求 2.需求分析 3.整体设计 4.详细设计 主函数设计 学科科目类 主菜单 读取文件与写入文件 效果如下 添加学生信息 删除学生信息 ​编辑 修改学生信息 显示信息列表 显示学生列表 将学生列表按学号升序排列 将学生列表按平均分降序排列&#xff0c;平…

文件操作File类,OutputStream、InputStream、Reader、Writer的用法

文章目录File 类OutputStream、InputStreamInputStreamOutputStreamReader、WriterReaderWriter注意事项简单模拟实战File 类 Java标准库中提供的File类是对硬盘上的文件的抽象&#xff0c;每一个File对象代表了一个文件&#xff0c;因为文件在硬盘上存储&#xff0c;而直接操…

4月11日作业修订

A.这主要看你互斥锁锁的资源是那部分的&#xff0c;如果是进程内资源&#xff0c;则可以实现同一进程不同线程之间的互斥&#xff0c;而如果将共享内存作为互斥锁进行操作则可以实现不同进程之间的互斥。 B.这是必然的&#xff0c;加锁是为了防止数据的二义性 C.信号量同时使…

代码规范(以后会补充)

目录 为什么要规范代码 不规范的代码有什么特点 ​编辑 不规范的坏处 规范代码是什么样的 如何规范代码 1.代码中不要出现莫名其妙的数字 2.深度嵌套 3.注释 4.避免创建大函数 5.重复代码 6.变量命名 7.函数命名 8.命名时注意动词的使用 9. 常量值所有都大写 10. 避免变…

Bossies 2016:最佳开源大数据工具

导读在今年的 Bossie开源大数据工具中&#xff0c;你会发现最新最好的方法是利用大型集群进行索引、搜索、图形处理、流处理、结构化查询、分布式OLAP和机器学习&#xff0c;因为众多处理器和RAM可降低工作量级。 处理大数据可能会遇到各种各样的问题&#xff0c;目前没有任何工…

SpringMVC简介及入门

SpringMVC SpringMVC简介 一、三层架构和MVC 1、三层架构概述 &#xff08;1&#xff09;开发架构&#xff1a;一是 C/S 架构 (客户端/服务器)&#xff0c;二是B/S架构&#xff08;浏览器/服务器)。在JavaEE开发中&#xff0c;几乎全部是基于 B/S架构的开发。在B/S 架构中&…

最简单IDEA社区版构建SpringBoot项目

一、环境准备 IDEA Community Edition jdk8 maven 二、下载SpringBoot项目 https://start.spring.io/ 项目名称自己修改下。 点击ADD DEPENDENCIES&#xff0c;添加Web依赖。 下载构建好的SpringBoot项目的压缩包 三、idea中打开SpringBoot项目 使用maven加载依赖。 四、测…

【数据库原理 • 三】关系数据库标准语言SQL

前言 数据库技术是计算机科学技术中发展最快&#xff0c;应用最广的技术之一&#xff0c;它是专门研究如何科学的组织和存储数据&#xff0c;如何高效地获取和处理数据的技术。它已成为各行各业存储数据、管理信息、共享资源和决策支持的最先进&#xff0c;最常用的技术。 当前…

4.7 AOP底层源码原理

4.7.1 AOP源码 进入到这里 F8跳过assertBeanFactoryActive方法&#xff0c;因为spring它方法调用太乱了&#xff0c;如果不挑“核心”去看&#xff0c;很快你就会被绕晕&#xff0c; 那么我们怎么判断这个assertBeanFactoryActive不是核心&#xff0c;注意前面getbean方法返回…

《淘宝网店》:计算总收益

目录 一、题目 二、思路 1、当两个年份不一样的时候 &#xff08;1&#xff09;from年剩余之后的收益 &#xff08;2&#xff09;中间年份的全部收益 &#xff08;3&#xff09;to年有的收益 2、同一个年份 三、代码 详细注释版本&#xff1a; 简化注释版本&#xff…