揭密Tweepcred:Twitter推荐引擎背后的力量


您已经在 Twitter 上看到一些人具有某种影响力,他们的推文以近乎神奇的效率获得点赞、转发和回复。但是你有没有想过这种影响力是什么?

今天,我们将深入 Tweepcred 的神秘世界,这是计算用户在 Twitter 上的声誉的幕后服务。您无需成为 Spark 或批处理方面的专家——我们将以一种友好、平易近人的方式对其进行分解,您可以毫不费力地消化。

什么是 Tweepcred?
Tweepcred 是一种社交网络分析工具,可以根据推特用户与其他用户的互动来计算他们的影响力。将其视为您在平台上获得的声誉点数,Twitter 使用它来确定应该推荐关注谁或应该突出显示谁的内容。

Tweepcred 利用 Google 的 PageRank 算法根据提及、转推和更多互动对用户进行排名。

PageRank 最初由 Google 开发,用于在搜索结果中对网页进行排名,现已成为现代搜索引擎技术的基石。

PageRank 是由谷歌创始人拉里佩奇和谢尔盖布林在他们还是斯坦福大学学生时创建的。该算法的主要目的是根据链接到每个网页的其他页面的数量和质量为每个网页分配一个数字分数。页面拥有的高质量链接越多,其 PageRank 得分就越高。这使 Google 能够为用户提供更相关的搜索结果,彻底改变了在线搜索世界。

在高层次上,PageRank 将网页视为图中的节点,超链接充当连接这些节点的边。

该算法迭代地在图中分布分数,经过一定次数的迭代后,分数停止变化或变化很小。当达到这一点时,算法被认为已经达到稳定状态。这种稳定状态表示 PageRank 分数已经平衡,有效地根据节点在网络中的重要性或影响力对节点进行排名。

此过程有助于识别网络中最重要的页面,确保它们在搜索结果中排名更高。现在,您可能想知道这种以网页为中心的算法如何应用于 Twitter 用户及其影响力。好吧,这就是 Tweepcred 的用武之地,它采用 PageRank 算法以类似的方式分析 Twitter 用户及其互动。因此,让我们回到 Tweepcred,看看它如何使用 PageRank 来衡量您最喜欢的 Twitter 人物的影响力!

Tweepcred 的工作原理:高级概述
在高层次上,Tweepcred 使用 PageRank 算法创建 Twitter 用户(节点)及其交互(边)图。然后,它根据每个用户与其他用户交互的数量和质量,为每个用户分配一个数字分数。用户与其他优质用户的互动越多,他们的 Tweepcred 得分就越高。Tweepcred 背后的魔力来自于一系列 Scala 类,它们协同工作以计算用户的信誉分数。为了让您清楚地了解系统的工作原理,我们将讨论主要类及其功能。

用户质量
UserMass 类在计算 Twitter 用户的“质量”方面起着至关重要的作用,代表他们在平台上的声誉。在各种应用程序中使用质量分数来确定应推荐关注哪些用户或应突出显示哪些用户的内容。

为了计算质量,UserMass 类采用了一种复杂的算法,该算法考虑了与用户个人资料及其在 Twitter 上的活动相关的多个因素。

UserMass 类的 getUserMass 方法接收一个包含有关 Twitter 用户信息的 CombinedUser 对象。它返回一个可选的 UserMassInfo 对象,其中包含用户 ID 和计算的质量分数。

在计算质量分数时,该算法会考虑几个因素,例如:

  • 帐户年龄:用户在 Twitter 上活跃的持续时间。更老、更成熟的帐户往往具有更高的质量分数。
  • 关注者数量:关注者数量越多,通常意味着影响力越大,因此质量得分越高。
  • 追随者数量:一个人追随的用户数量也会影响他们的质量分数,尤其是与他们的追随者数量相比时。
  • 设备使用:用于访问 Twitter 的设备类型也可能影响用户的质量得分。
  • 安全状态:用户的帐户是否被限制、暂停或验证可以在确定他们的质量分数方面发挥作用。

该算法通过使用各种权重和调整组合这些因素来计算质量分数。例如,它可以添加或乘以与每个元素关联的权重因子来计算最终分数。此外,该算法可以为朋友和追随者的数量应用阈值,以根据用户在平台上的整体参与度来调整质量分数。

https://github.com/twitter/the-algorithm/blob/main/src/scala/com/twitter/graph/batch/job/tweepcred/UserMass.scala

Tweepcred批处理作业
此类表示使用加权或未加权的 PageRank 算法计算 Tweepcred 分数的批处理作业。

它扩展了 AnalyticsIterativeBatchJob 类,该类是用于 Hadoop 上数据处理的 Scalding 框架的一部分。该类负责配置和运行批处理作业。

它接受命令行参数,如 --weighted 标志,决定是否使用加权 PageRank 算法。run 方法在作业完成后打印批处理统计信息,而 children 方法定义需要作为批处理作业的一部分执行的子作业列表。

 https://github.com/twitter/the-algorithm/blob/main/src/scala/com/twitter/graph/batch/job/tweepcred/TweepcredBatchJob.scala

提取Tweepcred
此作业根据给定的 PageRank 文件计算 Tweepcred。如果设置了 post_adjust 标志,它会根据用户的关注者与关注者的比例调整分数。该类读取 PageRank 文件和 TSV 格式的用户批量文件,并将它们组合以生成具有调整值的新 PageRank 文件。调整后的 PageRank 然后用于计算写入输出文件的 Tweepcred 值。

https://github.com/twitter/the-algorithm/blob/main/src/scala/com/twitter/graph/batch/job/tweepcred/ExtractTweepcred.scala

准备PageRankData
此类为 PageRank 计算准备图形数据,生成初始 PageRank 并启动 WeightedPageRank 作业。它读取用户质量和图形数据,从图形数据生成初始 PageRank,将节点数写入 TSV 文件,并将节点转储到另一个 TSV 文件。该类还有几个用于微调 PageRank 计算的选项。
https://github.com/twitter/the-algorithm/blob/main/src/scala/com/twitter/graph/batch/job/tweepcred/PreparePageRankData.scala

加权网页排名
WeightedPageRank 是一个在给定图上执行加权 PageRank 算法的类。该算法从给定的 PageRank 值开始并执行一次迭代,然后测试收敛性(当数字不再变化或变化很小时)。

如果未达到收敛,算法将自我克隆并以更新后的 PageRank 作为输入启动下一个 PageRank 作业。如果已达到收敛,则该算法将启动 ExtractTweepcred 作业。

该类接受几个选项,包括工作目录、节点总数、节点文件、PageRank文件、绝对差值、是否进行加权PageRank、当前迭代、运行的最大迭代次数、随机跳转的概率、是否进行做后期调整。

https://github.com/twitter/the-algorithm/blob/main/src/scala/com/twitter/graph/batch/job/tweepcred/WeightedPageRank.scala

名声
这个辅助类 Reputation 包含计算用户信誉分数的方法。缩放信誉方法采用原始 PageRank 分数并返回 0 到 100 范围内的信誉分数。adjustReputationsPostCalculation 过程降低了关注者数量少但关注者数量多的用户的 PageRank,计算基于邪教与追随者的比率,并将用户的 PageRank 除以该因子。该方法返回调整后的 PageRank。

https://github.com/twitter/the-algorithm/blob/main/src/scala/com/twitter/graph/batch/job/tweepcred/Reputation.scala

把它们放在一起
现在我们已经了解了为 Tweepcred 提供支持的主要类,让我们看看它们如何协同工作来计算用户的信誉分数。

  • 首先,TweepcredBatchJob 通过运行批处理作业来启动该过程,以使用加权或未加权的 PageRank 算法计算 Tweepcred 分数。
  • PreparePageRankData读取用户海量和图数据,生成初始PageRank,启动WeightedPageRank作业。
  • WeightedPageRank 对图形数据执行 PageRank 算法,在每次迭代后检查收敛性。如果算法收敛,它会启动 ExtractTweepcred 作业。
  • ExtractTweepcred 根据用户的关注率调整 PageRank 分数并计算最终的 Tweepcred 分数。
  • Reputation helper 类在整个过程中用于将原始 PageRank 分数转换为信誉分数并在计算后调整分数。
  • UserMass 计算用户在 Twitter 上的“质量”,有助于声誉计算。

Twitter 的最大排名因素
与 SEO 排名因素一样,了解并关注这些因素可以帮助您优化您的 Twitter 形象并增强您的影响力。根据 Tweepcred 的逻辑,以下是影响 Twitter 排名的一些最关键因素:

  • 提及和转推:在 Tweepcred 服务中,提及和转推等交互构成了网络图的边缘。您被其他有影响力的用户提及或转发的次数越多,您的 PageRank 得分就越高,表明您对该平台的影响力越大。
  • 质量连接:PageRank 算法会考虑交互次数以及与您交互的用户的质量。与您的利基市场中有影响力的用户互动可以帮助提高您的排名,因为他们的高 PageRank 分数会对您的分数产生积极影响。
  • 一致的活动:UserMass 类在计算用户的质量时会考虑年龄。通过定期发布引人入胜的内容并与他人互动来保持在平台上的持续存在有助于提高您的声誉并有助于获得更高的 Tweepcred 分数。
  • Follower-to-Following Ratio:Tweepcred 算法根据用户的follower-to-following 比率调整PageRank 值。更高的百分比表示帐户更有影响力,可以增加您的 Tweepcred 分数。
  • 安全状态:UserMass 类还考虑了用户的安全状态,例如帐户是否被限制、暂停或验证。经过验证的帐户或信誉良好的帐户更有可能获得更高的质量分数,这反过来又可以提高 Tweepcred 的排名。

要提高你的 Tweepcred 排名和在 Twitter 上的整体影响力,请专注于培养高质量的联系、始终如一地与你的观众互动,并保持健康的追随者与追随者的比例。通过将这些因素纳入您的 Twitter 策略,您可以提高您在该平台上的影响力并取得长期成功。

Tweepcred 是一个强大的工具,可以帮助 Twitter 了解其用户的影响力和声誉。PageRank 算法和一系列 Scala 类可以根据用户与平台上其他人的交互来计算用户的信誉分数。这有助于 Twitter 推荐用户关注并突出显示有影响力的用户的内容。