欢迎来到CL境外营销平台,平台经营Instagram、Facebook、YouTube、TIKTOK、Twitter粉丝、点赞、播放量服务、客服微信:coolfensi 24小时在线欢迎咨询购买!
公告:
欢迎来到CL境外营销平台,平台经营Instagram、Facebook、YouTube、TIKTOK、Twitter粉丝、点赞、播放量服务、客服微信:coolfensi 24小时在线欢迎咨询购买!

脸书涨赞平台--脸书涨赞

首页 Facebook   作者:coolfensi  2023年02月21日  热度:63  评论:0     
时间:2023-2-21 15:21   热度:63° 

原文链接:https://engineering.fb.com/2021/01/26/ml-applications/news-feed-ranking/

此篇文章是facebook公开的信息流推荐系统的细节。

首先为超过20亿人设计一个个性化排序系统同时提供大量可选择的内容是一下重大而复杂的挑战。如果没有机器学习(ML),人们的新闻提要可能会充斥着他们认为不相关或不有趣的内容,包括过度的促销内容或频繁发帖的熟人的内容,这些内容可能会掩盖最亲近的人的内容。因此Facebook使用ML来预测哪些内容对每个人都最重要,以支持更引人入胜的积极体验。

构建一个排序算法。

由于Juan与该内容的制作者有关系或选择关注该内容的制作者,因此所有这些都可能与他相关或者说他对这些内容感兴趣。要在Juan的新闻提要中将其中某些东西排序高于其他东西,我们需要学习对Juan最重要的事情,以及哪些内容对他具有最高价值。用数学术语,我们需要为Juan定义一个目标函数并执行单目标优化。

以Saanvi的跑步视频为例,在Facebook可以通过点赞来作为一种可靠的观察信号表示一个item对于人而言是价值的。对于给定item 的所有属性我们可以预测浏览者是否喜欢这个item。Yijt= f(xijt1;xijt2;… xijtC)。其中其中c表示特征c(1..C)。Xit代表j在时间t.Yijt代表juan是否喜欢,f(.)将属性合并为单个值。

但是,喜欢Juan表达自己偏好的唯一方式吗?当然不会。他可能会分享他发现有趣的文章,观看他最喜欢的游戏彩带中的视频,或者在朋友的帖子中发表深思熟虑的评论。当需要针对多个目标进行优化时,事情在数学上会变得更加复杂,这些目标都有助于实现总体目标(为人们创造最大的长期价值)。每个人可以有多个值(Yijtk),例如喜欢,评论和分享,每个值对应不同的k值,所有这些值都需要以某种方式汇总到单个Vijt

如何选择Facebook大小的生态系统的总体价值?

Facebook希望为使用他们服务的人们提供长期价值。看到这位朋友的正在播放的视频或阅读有趣的文章,对Juan有多大的价值?Facebook认为,评估某事物是否正在为某人创造长期价值的最佳方法是选择与人们认为对他们重要的内容一致的指标。因此,他们对人们进行调查,以了解他们发现与朋友互动的意义如何,或者帖子是否值得他们花费时间来确保Facebook的价值观(Yijtk)能够反映人们说的有意义的事情。

多个预测模型为我们提供了对Juan的多个预测:他会与(例如喜欢或发表评论)Wei的cocker spaniel图片,Saanvi的运行视频,在页面上共享的文章以及烹饪小组帖子相关的概率。这些模型中的每一个都将尝试对Juan的所有这些内容进行排序。有时模型会不同意(例如,Juan可能喜欢Saanvi的正在播放视频的概率要比Page文章高,但他可能比Saanvi的视频更喜欢分享文章),而Facebook将Juan的每个预测考虑在内的方式是基于人们通过调查告诉我们的行动更有意义,更值得他们花费时间。

在弹性的排序系统中的近似的理想排序函数

Facebook的系统架构使用Web / PHP层,该层查询提要聚合器。 feed聚合器的作用是收集有关帖子的所有相关信息并分析所有功能(例如,之前有多少人喜欢此帖子),以便预测该帖子对用户的价值以及最终排序通过汇总所有预测为Yijtk评分。

当有人打开Facebook时,无论前端界面如何(例如iPhone,Android手机,Web浏览器),该界面都会向Web / PHP(前端)层发送请求,然后该层会查询Feed聚合器(后端层)。在从前端接受请求后,Feed聚合器从Feed叶子数据库中获取操作和对象以及对象摘要,以便它可以处理,聚合,排序并将排序后的FeedStories的结果列表返回到前端用于渲染。

首选是Query inventory。Facebook首先需要收集所有可能为Juan排序的候选集合(可卡犬图片,正在运行的视频等)。第一部分非常简单:合格的item list 包括与他联系的朋友,与Juan共享的Group或Page,自他上次登录以来与他共享的任何未删除的帖子。(可以理解为召回)

为每个Xit预测(Yijt)评分。现在我们有了Juan的可能性列表,接下来我们将使用多任务神经网络对每条item进行评分。我们可以使用许多特征(xijtc)来预测Yijt,包括帖子的类型,embedding(即深度学习模型生成的特征表示)以及观看者倾向于与之交互的内容。要为十亿个用户中的每一个实时计算1000多个帖子的数量,我们在多台机器上并行的运行所有候选item的模型。

从许多预测中计算一个分数:Vijt现在我们有了所有的预测,我们可以将它们合并为一个分数。为此,我们需要通过一些规则进行来进行打分来节省算力。首先,某些完整性处理应用于每个item。然后,在第0阶段,运行轻量级模型以从Juan中选择大约500个最有资格排序的item(粗排)。这有助于我们在以后的过程中对具有较高回想度的item进行排序,从而可以使用更强大的神经网络模型。第1阶段是主要的得分阶段,其中每个item均独立得分,然后按得分对所有〜500个合格帖子进行排序(精排)。最后,我们有第二阶段,这是上下文遍历。在此添加了上下文功能,例如内容类型多样性规则,以帮助使Juan的新闻提要多样化。(重排)

大多数个性化操作都发生在第一阶段中。优化如何组合Yijtk变成Vijt。对于某些人来说,喜欢的得分可能比评论更高,因为有些人喜欢通过喜好表达自己而不是评论。为了简单和易于处理,Facebook以线性方式对预测进行评分,以使Vijt = wijt1Yijt1 + wijt2Yijt2 + … + wijtkYijtk。这种线性表述有一个优势:人很少参与的任何动作(例如,非常接近0的类似预测)都会自动在排序中发挥最小的作用,因为该事件的Yijtk非常低。为了超越此维度进行个性化设置,Facebook将继续基于观察数据研究个性化设置。只要在此方法递增并控制潜在的混杂变量,相关性较高的人将从该特定事件中获得更多价值。