【问题标题】:500px.com Ranking Algorithm500px.com 排名算法
【发布时间】:2012-04-24 17:04:17
【问题描述】:

我最近想知道http://500px.com 如何计算他们的“Pulse”评级。 “Pulse”是根据照片的受欢迎程度从 1..100 分得出的分数。

我认为它可能会使用以下一些标准:

  • 点赞数
  • “收藏夹”的数量
  • cmets 数量
  • 总观看次数
  • 可能是照片上传后的时间
  • 可能是其他一些非显而易见的标准,例如用户关注者数量、用户等级、相机型号或类似指标

我将如何实现这样的某种算法?

任何关于如何使用此标准(可能还有一些代码)实现算法的建议也将不胜感激。

【问题讨论】:

  • 我不确定问题是什么?要制定算法,您需要定义规则,然后实施它们。您尚未真正定义任何规则,也尚未尝试实施它们。
  • 我还没有任何规则。我想知道他们的 规则可能是什么。这更像是为了找到我自己的规则/算法而找出其他人是如何做到的。

标签: algorithm comments ranking rating-system social-media-like


【解决方案1】:

500px 在他们的博客中解释了他们的(同时已经过时的)Pulse 排名算法: https://500px.com/blog/52/how-rating-works-and-why-there-s-a-lot-more-to-a-rating-than-just-a-number

非常有趣,并且与 SO 上的解决方案到目前为止所建议的不同。

【讨论】:

    【解决方案2】:

    我对该网站了解不多,但像这样的系统通常以相同的方式工作。对一组加权值进行归一化以生成单个可比较值。

    定义您的规则列表,根据重要性对它们进行加权,然后将它们一起运行以获得最终值。

    在这种情况下,它会是这样的。

    1. 总访问次数 = 10%
    2. 点赞总数 = 10%
    3. 访问次数/点赞数 = 40%(受欢迎程度 = 点赞的访问者百分比)
    4. 最近 30 天的点赞数 = 20%(当前受欢迎程度)
    5. 作者评分 = 20%

    现在我们需要标准化这些规则的值。根据您的数据是什么、数字的比例等,这对于每个规则都会有所不同,因此我们需要一个可行的值,比如 1 到 100 之间。

    上述规范化示例:

    1. = 50,000 次访问中的访问者百分比(良好的访问次数)

      (vists / 50000 ) * 100

    2. = 10,000 次喜欢中喜欢的百分比(喜欢的好数量)

      (likes / 10000) * 100

    3. = 喜欢它的访问者百分比

      (likes / vists) * 100

    4. = 过去 30 天内 1,000 次点赞中的点赞百分比(30 天内的点赞数不错)

      (likesIn30Days / 1000) * 100

    5. =作者的任意评分

    确保所有这些的最大值都为 100(如果超过了,请将其重新降低)。然后我们需要根据它们的权重将所有这些组合起来:

    人气 = (1 * 0.1) + (2 * 0.1) + (3 * 0.4) + (4 * 0.2) + (5 * 0.2)

    这一切都在我的脑海中,而且很粗糙。显然还有更有效的方法,因为您不需要在每个阶段都标准化为百分比,但我希望它可以帮助您了解要点。

    更新

    我真的没有任何参考资料或额外阅读。我从来没有真正将它作为一个更大的概念来处理,只是在小型实现中。

    我认为您阅读的大部分内容将是一般的方法排名系统和理论。因为根据你的规则和数据格式,你的实现会有很大的不同。这似乎是一个巨大的概念,但实际上它可能会归结为大约 10 行代码,这还不包括聚合数据。

    【讨论】:

    • 感谢您的大力投入,这绝对有助于我了解幕后可能发生的事情的要点。您对有关排名系统的链接/书籍有什么建议吗?
    【解决方案3】:
    猜你喜欢
    • 2015-04-15
    • 2013-06-06
    • 2015-02-16
    • 2019-10-16
    • 2023-03-25
    • 2012-10-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多