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 排名算法的主要内容,如果未能解决你的问题,请参考以下文章