【发布时间】:2012-01-13 16:13:26
【问题描述】:
我正在构建一个网站,让用户能够通过拖放来订购项目列表,从而根据他们的“个人观点”对它们进行排名。他们可以选择移除某个项目以将其隐藏在“个人视图”中。
我的问题是如何公平地实施排名算法来确定不惩罚新项目的共享视图的项目排序。
如果它也可以用于对新项目在用户个人列表中的显示位置进行排名,这也会有所帮助。
因此,如果出现了一个被其他用户高排名的新项目,我们可以将其显示在我们预测用户会根据他们的其他排名对其进行排名的位置。
我最初的想法是给用户排名的每个项目加分=在用户排名列表中的位置。 (例如,如果有 10 个项目,则给排名 1 10 分、2 9 分等,对于用户隐藏的项目给予负分)。共享视图将根据总分进行排序。但这对于基本上没有排名的新项目并不适用,并且不会轻易提升阶梯。
那么对于可以预测新项目的公平算法有什么想法吗?
【问题讨论】:
-
Ravloony 的评论让我对这个问题有了更好的思考,这是我认为可行的算法。当用户对列表进行排序时,给每个项目一个分数 = 项目数 + 1 - 在列表中的排名 / 项目数。 (3 个中的 1 个 = 1、3 个中的 2 个 = .667、5 个中的 2 个 = .8)。项目分数是所有用户分数的平均值。因此,随着更多项目的添加,排名更高的新项目将浮到顶部。这通常应该有效,但会使新条目很容易以很少的评级获得高排名。关于如何将排名数量添加到权重的任何想法?