#科技之巅#? 虽然最近一段时间大模型十分火爆,但是传统的推荐依然是当前很多业务的核心能力,就在几个小时前,Twitter官方开源了自己的推荐系统,并详细介绍了它们的推荐算法。本文将简单介绍一下推特的推荐算法和架构!

重磅好消息!推特开源自家的推荐系统算法!推特推荐系统的流程与算法简介! | 数据学习者官方网站(Datalearner)

本文将描述推特推荐系统的整个流程以及每个流程里面具体做了什么!

一、推特推荐系统的概览

三、排序

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

五、Mixing and Serving

六、推特算法服务和组件介绍

七、总结与算法开源地址

一、推特推荐系统的概览

Twitter推荐算法是一组服务和任务,负责构建和提供主页时间线。它将每天发布的大约5亿条推文精简到一小部分顶尖推文,最终显示在For You时间线上。

推荐流水线由三个主要阶段组成,这些阶段使用这些功能:这三个主要阶段包括:

使用机器学习模型对每个推文进行排名。

应用启发式算法和过滤器,例如过滤已经被您屏蔽的用户的推文、不适宜儿童的内容以及您已经看过的推文。

下面的图表说明了主要服务和任务之间的相互连接。


二、候选集选择

社交图

第一种方法是通过分析您关注的人或具有类似兴趣的人的互动情况来估计您可能感兴趣的内容。

通常通过遍历互动和关注的图来回答以下问题:

我关注的人最近互动了哪些推文?

谁喜欢与我类似的推文,他们最近还喜欢过什么?

嵌入空间方法

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

嵌入工作是通过生成用户兴趣和推文内容的数值表示来实现的。然后,我们可以在这个嵌入空间中计算任意两个用户、推文或用户-推文对之间的相似度。只要我们生成准确的嵌入,我们就可以将这种相似度用作相关性的替代指标。

Twitter最有用的嵌入空间之一是SimClusters。SimClusters使用自定义的矩阵分解算法发现由一组有影响力的用户锚定的社区。每三周更新一次,共有145,000个社区。用户和推文在社区空间中表示,并可以属于多个社区。社区的规模从个人朋友圈的几千个用户到新闻或流行文化的数亿个用户不等。

以下是一些最大的社区:


三、排序

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

在排序阶段之后,Twitter应用各种启发式和过滤器来实现各种产品特性。这些特性共同作用,创建一个平衡和多样化的Feed。

一些例子包括:

可见性过滤:基于内容和您的偏好过滤推文。例如,删除您屏蔽或静音的帐户的推文。

内容平衡:确保提供公正的In-Network和Out-of-Network推文。

基于反馈的疲劳:如果观看者提供了负面反馈,则降低某些推文的分数。

对话:通过将回复与原始推文进行线程连接,提供更多上下文。

五、Mixing and Serving

以上是 Twitter 推荐算法的流程。在此之后,Home Mixer 会将一系列推文混合在一起,与其他非推文内容,如广告、关注推荐和入门提示等,一起返回到用户设备上显示。

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

六、推特算法服务和组件介绍

前面已经介绍了Twitter总体的算法服务和组件,下面是每个组件的介绍:

Type

Component

Description

Feature

SimClusters

Community detection and sparse embeddings into those communities.

TwHIN

Dense knowledge graph embeddings for Users and Tweets.

trust-and-safety-models

Models for detecting NSFW or abusive content.

real-graph

Model to predict likelihood of a Twitter User interacting with another User.

tweepcred

Page-Rank algorithm for calculating Twitter User reputation.

recos-injector

Streaming event processor for building input streams for GraphJet based services.

graph-feature-service

Serves graph features for a directed pair of Users (e.g. how many of User A’s following liked Tweets from User B).

Candidate Source

search-index

Find and rank In-Network Tweets. ~50% of Tweets come from this candidate source.

cr-mixer

Coordination layer for fetching Out-of-Network tweet candidates from underlying compute services.

user-tweet-entity-graph (UTEG)

Maintains an in memory User to Tweet interaction graph, and finds candidates based on traversals of this graph. This is built on the GraphJet framework. Several other GraphJet based features and candidate sources are located here

follow-recommendation-service (FRS)

Provides Users with recommendations for accounts to follow, and Tweets from those accounts.

Ranking

light-ranker

Light ranker model used by search index (Earlybird) to rank Tweets.

heavy-ranker

Neural network for ranking candidate tweets. One of the main signals used to select timeline Tweets post candidate sourcing.

Tweet mixing & filtering

home-mixer

Main service used to construct and serve the Home Timeline. Built on product-mixer

visibility-filters

Responsible for filtering Twitter content to support legal compliance, improve product quality, increase user trust, protect revenue through the use of hard-filtering, visible product treatments, and coarse-grained downranking.

timelineranker

Legacy service which provides relevance-scored tweets from the Earlybird Search Index and UTEG service.

Software framework

navi

High performance, machine learning model serving written in Rust.

product-mixer

Software framework for building feeds of content.

twml

Legacy machine learning framework built on TensorFlow v1.

七、总结与算法开源地址

以上就是Twitter开源的推荐流程算法。不过,这些只是官方博客透露的内容,更重要的是他们将算法代码也开源了!

推特算法介绍中文地址:

重磅好消息!推特开源自家的推荐系统算法!推特推荐系统的流程与算法简介! | 数据学习者官方网站(Datalearner)

Twitter推荐服务开源项目地址:https://github.com/twitter/the-algorithm/

Twitter推荐服务中算法模型开源地址:https://github.com/twitter/the-algorithm-ml

Twitter推荐算法官方博客介绍:https://blog.twitter.com/engineering/en_us/topics/open-source/2023/twitter-recommendation-algorithm