500px.com 排名算法

Posted

技术标签:

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

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

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

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

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

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

【问题讨论】:

我不确定问题是什么?要制定算法,您需要定义规则,然后实施它们。您尚未真正定义任何规则,也尚未尝试实施它们。 我还没有任何规则。我想知道他们的 规则可能是什么。这更像是为了找到我自己的规则/算法而找出其他人是如何做到的。 【参考方案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】:

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

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

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

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

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

上述规范化示例:

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

    (vists / 50000 ) * 100

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

    (likes / 10000) * 100

    = 喜欢它的访问者百分比

    (likes / vists) * 100

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

    (likesIn30Days / 1000) * 100

    =作者的任意评分

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

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

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

更新

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

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

【讨论】:

感谢您的大力投入,这绝对有助于我了解幕后可能发生的事情的要点。您对有关排名系统的链接/书籍有什么建议吗?【参考方案3】:

您可能还想参考以下内容

How Reddit ranking algorithms work How Hacker News ranking algorithm works How to Build a Popularity Algorithm You can be Proud of

【讨论】:

以上是关于500px.com 排名算法的主要内容,如果未能解决你的问题,请参考以下文章

搜索引擎对SEO优化工作排名算法及影响因素的现状分析

啥是佩奇排名算法

文件内容排名算法,输入排名函数,返回排名后的文件名

手撸golang 基本数据结构与算法 网页排名/PageRank,随机游走

计算并列排名的算法

找到加权排名的算法?