Twitter 推荐算法开源,马斯克被“特殊照顾”

485aa71161c758fc4969854b4b30d6f1.gif

整理 | 梦依丹   责编 | XXXXX

出品 | CSDN(ID:CSDNnews)

在马斯克反复承诺表示要开源 Twitter 推荐算法之后,3 月 31 日,Twitter 部分推荐算法源码正式在 GitHub 上开放,采用 GNU Affero General Public License v3.0 许可证。

929133b82f85d994449e9454306e4ec8.png

Twitter 开放推荐算法源码

8fe29bddd6e495de8be8c7594449a1b4.png

https://github.com/twitter/the-algorithm

Twitter 在 GitHub 上发布了两个代码库,包括用于控制用户在 For You 时间线上看到推文的机制。Twitter 将此举描述为“更透明的第一步”,同时还可以“防止风险”,既可以保护 Twitter 本身,也可以保护平台上的人。

此次开源不包括驱动 Twitter 广告推荐的代码或用于训练 Twitter 推荐算法的数据。Twitter 表示:“[我们排除了]任何可能危及用户安全和隐私或破坏我们打击儿童性侵犯和操纵等恶意行为的能力的代码。”

马斯克在 Twitter Spaces 上提到:

“算法的初始版本会比较尴尬,人们会发现许多错误,但我们会很快修复。即使你不同意某些内容,但至少你会知道它为什么在那里,而且你不会被秘密操纵...这里的类比是我们所追求的 Linux 作为开源操作系统的伟大范例...在理论上,人们可以发现许多 Linux 的漏洞。事实上,发生的是社区识别和修复这些漏洞。”

后续 Twitter 将开源所有显示展示推文相关的代码。

548dd47ea04ac60c492ab59749ee9107.png

在 Twitter 源码公布后,新浪微博新技术研发负责人张俊林在朋友圈中提到:

Twitter 开源了推荐系统源代码,发现排序模型用的是我们两年前发布的 MaskNet 模型,Twitter 的研发人员也在开源当天给我们发了一封邮件,他们和其他排序模型做过效果对比,发现 MaskNet 是效果最好的,所以最终 Twitter 排序采用了这个模型。我们自己内部评估,这个模型也是我们自己过去几年摸索的几个模型里(FiBiNet、GateNet、MaskNet、ContextNet)综合效果最好的一个。

要说搜广推模型,卷得最狠的应该还是国内互联网公司,不过,随着 GPT 4 的降临,很可能这个赛道未来用什么模型已经不那么重要了。

a0f1eed8865629b8778a24a322f195cb.png

如何从 5 亿条推文中精选内容给用户?

一条推文从发布到展示,期间都经历了哪些奇妙的旅程呢?Twitter 官博重点介绍了“For You”列表下的算法相关推荐机制和排名,每天从 5亿条推文中展示部分精选内容的背后,正式揭晓。

Twitter 算法推荐的基础是一组核心模型和特征,从推文、用户和互动数据中提取潜在信息。推荐流水线由三个主要阶段组成,这些阶段使用这些特征:

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

负责构建和提供 For You 时间线的服务称为 Home Mixer。Home Mixer 基于 Product Mixer 构建,Product Mixer 是 Twitter 自定义的 Scala 框架,可以帮助构建内容流。该服务充当软件骨干,连接不同的候选源、评分函数、启发式和过滤器。

下面的图表说明了构建时间线所使用的主要组件:

6ed969b6a6ee49f3cffd256e2b44e333.png

作为该系统的核心部分,大致按照单个时间线请求期间被调用的顺序,从检索候选推文开始。

候选推文来源

Twitter 有几个候选推文作为来源,它们为用户检索最近和相关的推文。对于每个请求,推荐算法会尝试通过这些来源从数亿条推文中提取最佳的 1500 条。会从用户关注的(内部网络)和不关注的人中(外部网络)找到候选者。目前, For You 时间线平均由 50% 的内部网络推文和 50% 的外部网络推文组成,也存在因用户而异的情况。

内部网络资源

内部网络资源是最大的候选推文来源,旨在提供你关注的用户最相关、最新的推文。它使用逻辑回归模型高效地对你关注对象的推文进行排名。然后将排名靠前的推文发送到下一个阶段。

这里最重要的组件是真实图(Real Graph)模型,用于预测两个用户之间的互动可能性。用户和推文作者之间的真实图得分越高,For You 下面即会展示更多两者之间的推文。

内部网络资源目前已停用 Fanout Service,这是一个 12 年前的服务,用于为每个用户提供缓存的内部网络推文。目前 Twitter 还在重新设计逻辑回归排名模型,该模型最近几年已经更新和训练过!

外部网络资源

相较于内部网络资源,在用户关注之外找到相关的推文是一个更加棘手的问题, Twitter 采取了两种方法来解决这个问题。

1、社交图谱,首先通过分析你所关注用户或兴趣相似的用户互动来推出你可能会感兴趣的内容;其次会通过一些问题来遍历互动和关注的图形来对结果进行逻辑回归模型排名,如 Twitter 开发的 GrapJet 图形处理引擎,可以维护用户和推文之间的实时互动图形。

2、嵌入空间,旨在回答关于内容相似性的更一般的问题:哪些推文和用户与我的兴趣相似?Twitter 最有用的嵌入空间之一是 SimClusters。SimClusters 使用自定义矩阵分解算法发现由一群有影响力的用户锚定的社区。有 145k 个社区,每三周更新一次。

排名

内容源确定好,那如何来确定内容的时间线呢?排名是通过一个约 48M 个参数的神经网络实现的,该神经网络持续根据推文互动进行训练,以优化积极的参与度(例如,点赞、转发和回复)。这种排名机制考虑了数千个特征,并输出十个标签,以给每个推文打分,其中每个标签表示参与的概率。Twitter 根据这些分数对推文进行排名。

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

在排名阶段之后,Twitter 会应用启发式和过滤器来实现各种产品特性。这些特性共同工作,创建一个平衡和多样化的信息流。其中包括:

  • 可见性过滤:根据内容和用户偏好过滤推文。例如,删除用户屏蔽或静音的帐户的推文;

  • 作者多样性:避免连续太多来自单个作者的推文;

  • 内容平衡:确保提供公平的网络内资源和网络外推文平衡;

  • 基于反馈的打分机制:如果查看者在某些推文周围提供了负面反馈,则降低该推文的分数;

  • 社交证明:该机制通过排除没有与推文具有二度连接的网络外推文来实现这一点。这意味着,为了被推荐给用户,推文必须与用户的关注者或关注者的关注者有一定的连接;

  • 对话:通过将回复与原始推文串在一起,为回复提供更多上下文;

  • 编辑的推文:确定设备上当前的推文是否过时,并发送指令以用编辑版本替换它们。

混合和推送

作为推文展示到用户面前的最后一步,系统将推文与其他非推文内容(如广告、关注建议和入门提示)混合在一起,返回用户的设备上显示。

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

33290ae32325fffaf8fa0a1053d18c29.png

ce9aa5a2faf1fd0fe806601c63602db0.png

被特殊照顾的马斯克

Twitter 算法开源引起了用户的强烈兴趣,用户很快发现 Twitter CEO 马斯克(Elon Musk)得到了特别对待。上个月马斯克的推文曾一度展示给几乎所有 Twitter 用户。相关算法代码特别提到了 author_is_elon、author_is_power_user、author_is_democrat、author_is_republican...

("author_is_elon",candidate =>candidate.getOrElse(AuthorIdFeature, None).contains(candidate.getOrElse(DDGStatsElonFeature, 0L))),("author_is_power_user",candidate =>candidate.getOrElse(AuthorIdFeature, None).exists(candidate.getOrElse(DDGStatsVitsFeature, Set.empty[Long]).contains)),("author_is_democrat",candidate =>candidate.getOrElse(AuthorIdFeature, None).exists(candidate.getOrElse(DDGStatsDemocratsFeature, Set.empty[Long]).contains)),("author_is_republican",candidate =>candidate.getOrElse(AuthorIdFeature, None).exists(candidate.getOrElse(DDGStatsRepublicansFeature, Set.empty[Long]).contains)),)

这段代码地址:https://github.com/twitter/the-algorithm/blob/7f90d0ca342b928b479b512ec51ac2c3821f5922/home-mixer/server/src/main/scala/com/twitter/home_mixer/functional_component/decorator/HomeTweetTypePredicates.scala#L224-L246

随后,一位 Twitter 工程师表示,这些标签仅用于指标。但马斯克表示,他不知道这些标签之前没有出现过,并表示它们不应该存在。

参考链接:

https://blog.twitter.com/engineering/en_us/topics/open-source/2023/twitter-recommendation-algorithm

https://techcrunch.com/2023/03/31/twitter-reveals-some-of-its-source-code-including-its-recommendation-algorithm/

 

b2a9c3e7c18414a083aa47af8ef1195b.gif

☞ChatGPT 大规模封号亚洲节点,并停止注册;Google 否认 Bard 窃取 ChatGPT 数据进行训练|极客头条
☞ChatGPT 类大语言模型为什么会带来“神奇”的涌现能力?
☞让模型理解和推断代码背后的意图是预训练模型的核心挑战 | NPCon演讲实录

691a6c078168e74b357b28bef98ea97f.jpeg

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Twitter部分源代码泄漏、疑遭离职员工报复:马斯克要求GitHub交出所有上传、下载人员名单

最近的法律文件显示,Twitter 的部分源代码已经在网上泄露。这是一次罕见的、严重的知识产权泄露事件。为防止该事件对其服务产生潜在的破坏性损失,Twitter 已经采取了法律行动。 部分源代码在线泄露 根据文件显示,上周五 Twitter 采取了行动…

一个命令行的 Copilot:ai-shell

目录 简介 安装 使用 特殊字符 静默模式(跳过解释) 自定义 API 端点 聊天模式 设置语言 配置界面 版本升级 Github 之前发布了 GitHub Copilot CLI,有了它你可以在你的命令行控制台中通过自然语言让它帮你写出 shell 命令&#xff…

Java枚举意外触发了Mybatis Plus的BUG

点击关注公众号:互联网架构师,后台回复 2T获取2TB学习资源! 上一篇:Alibaba开源内网高并发编程手册.pdf 问题 昨天用mybatis-plus写了一段crud,代码如下: TransactionalOverridepublic boolean updateTaskS…

亚马逊加入大模型竞赛/ 滴滴可打自动驾驶车/ 百度副总裁回应王小川…今日更多新鲜事在此...

日报君 发自 凹非寺量子位 | 公众号 QbitAI 大家好,今天是4月14日星期五,马上又要到周末啦~ 今天科技圈有哪些新鲜事儿,和日报君一起来看看~ 百度副总裁回应王小川:确实不在一个宇宙 无论国内还是国外,人工智能的竞争可…

不用任何软件,批量转化图片格式

不用任何软件,批量转化图片格式 文件夹里有上百张图片,如何批量修改格式? 其实不用任何软件,不用任何转化工具就能实现这一目的。 这是Windows系统自带ren(rename-重命名)命令,利用rename命令…

3个无敌实用的图片转换器,上百种图片格式任意转

分享3个万能的图片格式转换工具,每个基本上都提供了上百种图片格式转换,而且压缩后的图片一点都不会损坏原画质,压缩完成后还能自动下载保存到相册,转换速度不仅快而且还提供了其他的图片处理功能。 1、万能图片转换器 一个超级丰…

使用手机将图片转换成PNG格式怎么做?教你三种转换方法

怎么使用手机把图片的格式转换成PNG格式呢?现如今的图片格式种类非常之多,有很多种格式的图片我们甚至都打不开它。有时我们需要上传一些照片文件,会有要求照片只能是PNG格式,遇到这种情况我们该怎么使用手机就能够就能将图片格式…

PNG图片怎么转成ICO?分享两种思路

ICO作为一种图标文件随处可见,在设计的时候偶尔会需要将PNG图片转为ICO格式。那么PNG图片怎么转成ICO呢?我们可以使用转换工具或登录在线网站进行处理,下面推荐两种方式,点赞收藏不迷路哦。 一、格式转换工具拥有对PDF文件全面的格…

微信电脑版DAT图片文件转JPG/PNG图片的简单工具

平常微信聊天中发出和接收到的图片,都是经过编码后再保存在电脑中的,普通方法打不开 如果需要整理,则是个问题 本文详细说明如何快速地把平常微信聊天中存储在电脑中的聊天图片转换成普通图片 支持JPG和PNG 文件存储位置 首先找到这些图片 …

IMZO创建高品质免费图片库,图片可全球范围免版税商业使用

美通社消息:IMZO是免费提供海量高分辨率图像的全球平台。该平台无需订阅,无附加条件,无隐藏收费。用户只需点击并下载最大8100x5400像素的300dpi最佳创意照片。 平台的全部收藏中包括生活方式、商业、医疗保健、技术等诸多类别的海量图片。IM…

iOS 摸鱼周报 #84 | 开箱即用的云服务 AirCode

本期概要 本期话题:开发加速器:在 App 或游戏内创造无障碍体验本周学习:Any 和 AnyObject 以及 AnyClass 内容推荐:依赖注入、自定义 Button 外观与行为、正则表达式、创建 XCFramework 以及创建可配置的小组件文章推荐摸一下鱼&a…

企业流程中心BPM产品搭建

一、为什么要搭建企业流程中心 企业发展初期,会制定一堆制度,用来规范企业管理,但制度更多是奖励和惩罚的作用,并不能提升管理和业务效率。 比如,我们开车走高速的时候,超速会扣分、会罚款,这是…

Python彩色图片转手绘风格

Python彩色图片转手绘风格 from PIL import Image # 图像的手绘 """黑白风格边界的位置比较重相同或相近色彩趋近于白色咯有光源效果 """ # 读取彩色图片并转化为np数组 a np.array(Image.open(r114362.jpg).convert(L)).astype(float)depth 1…

值得拥有的手绘风格画图工具

一直在找一款手绘风格的画图工具,好的图表总能传递更多的信息。最初用微软 Visio 工具画图,但依赖于安装软件,无法轻量级使用,效果也有些僵硬,后来改用 ProcessOn 在线画图,免费版有数量限制。后面使用 Dra…

为什么有计算机绘图了还要学手绘,设计师有必要学习手绘吗?

文/刘伦利 当前,电脑及相关软件的应用已经越来越普遍,特别是艺术设计专业,各种设计软件已作为设计专业中的辅助工具,占有重要的地位和作用。很多初学者认为只要学了计算机就可以做所想的设计图,并没有认识到没有原始的…

教你如何几行python代码实现图片转手绘

这里是运行效果 先展示一下完整代码,后面在进行分析 # -*- coding: utf-8 -*- from PIL import Image import numpy as npim Image.open(really.jpg).convert(L)#really.jpg是这里将用于转换的原图 a np.asarray(im).astype(float) # 将图像以灰度图的方式打开并…

如何用计算机制作pop海报,ai怎么制作pop海报字体?ai简单快速制作pop字体教程

版权申明:本文原创作者“xifenu”,感谢“xifenu”的原创经验分享! 怎么用ai制作海报上的pop字体?接下来小编就给大家分享一篇非常实用的ai简单快速制作pop字体教程,希望对你们学习ai制作pop海报字体有帮助,…

diy机器人图片 手绘纸箱_环保手工制作大全:手绘纸箱机器人

这是我的第一个机器人。性别男。 跟真人比一下大小。原本的纸箱全是快递用的,我把那些质地不错无明显褶皱损伤的纸箱都留着,有空就画个。 上帝造物,有男就得有女。于是。。。给他找了个不错的老婆。 然后生了个儿子。 机器人的繁殖能力不错&a…

python实例练习(9)图像的手绘效果

文章目录 简介图像的数组表示图像的手绘处理 简介 在之前的学习笔记的实例中,我们曾经使用PIL库获取了图像的轮廓,虽然我们成功提取出来了,但是这个轮廓缺少了立体感,视觉效果上缺少了丰满度,光线照射的明暗变化是空间…

python 实现图像的手绘效果

图像的数组表示 1、图像一般使用RGB色彩模式,即每个像素点的颜色由红(R)、绿(G)、蓝(B)组成。 RGB三个颜色通道的变化和叠加得到各种颜色,其中 • R 红色,取值范围,0‐255 • G 绿色,取值范围,0‐255 •…