如何使用众包排序对一百万张图像进行排名

时间:2020-03-06 15:03:11  来源:igfitidea点击:

我想通过制作一个游戏来对风景图像的排名进行排名,网站访问者可以对它们进行评分,从而找出人们最喜欢的图像。

这样做的一个好方法是什么?

  • 流行还是不流行? IE。显示单个图像,请用户将其排名为1-10. 正如我所看到的,这使我可以对分数进行平均,而我只需要确保在所有图像上获得均匀的投票分布即可。实施起来相当简单。
  • 选择A还是B? IE。显示两张图片,请用户选择更好的一张。这很吸引人,因为没有数字排名,这只是一个比较。但是我将如何实施呢?我的第一个想法是将其作为快速排序进行,由人提供比较操作,完成比较后,只需无限次重复排序即可。

你会怎么做?

如果我们需要数字,那么我说的是一个每天访问量为20,000次的网站上的一百万张图片。我猜想为了争辩,一小部分人可能会玩游戏,可以说我一天可以进行2,000次人工排序操作!这是一个非营利性网站,终极好奇的人会通过我的个人资料找到它:)

解决方案

我们可能需要组合使用。

第一阶段:

烫手或者不烫手的风格(尽管我会选择3票:糟透了,嗯/好。很酷!)

将集合分类到3个存储桶中后,我将从同一个存储桶中选择两个图像,然后选择"哪个更好"

然后,我们可以使用英语足球系统的升迁和降级,将前几个"吸盘"移至Meh / OK区域,以优化边缘情况。

我不喜欢"热卖或者不热卖"的风格。即使他们都完全一样喜欢图像,不同的人也会选择不同的数字。我也讨厌对事物进行评分,满分为10,但我永远不知道该选择哪个数字。

选择A或者B更为简单和有趣。我们将看到两个图像,并且在站点上的图像之间进行了比较。

排名1-10无效,每个人都有不同的级别。总是给3-7评分的人的排名会被总是给1或者10评分的人黯然失色。

a或者b更可行。

选择A-or-B是最简单且不易产生偏见的方法,但是,在每次人与人之间的互动中,它都会给我们带来更少的信息。我认为由于减少了偏见,Pick更具优势,并且在一定程度上为我们提供了相同的信息。

一个非常简单的计分方案是对每张图片进行计数。当有人给出一个正比较结果时,计数​​增加,当有人给出一个负比较结果时,计数​​减小。

对一百万个整数列表进行排序非常快,并且在现代计算机上只需不到一秒钟的时间。

就是说,问题很不恰当。我们只需要花50天的时间就可以显示每张图像一次。

我敢打赌,尽管我们对排名最高的图像更感兴趣?因此,我们可能希望按预测等级对图像检索进行偏倚,以便更有可能显示已经取得一些积极比较的图像。这样,我们将更快地开始显示"有趣"的图像。

解决该问题的大多数幼稚方法都有一些严重的问题。最糟糕的是bash.org和qdb.us如何显示报价,用户可以对报价进行向上(+1)或者向下(-1)投票,并且最佳报价列表按总净得分排序。这是因为时间偏差令人恐惧,旧的报价通过简单的寿命就积累了大量的正面投票,即使它们只是些许幽默。如果笑话随着年龄的增长变得越来越有趣,但相信我没有,这种算法可能会有意义。

为了解决这个问题,人们进行了各种尝试,以查看每个时间段的正面投票数,对较新的投票进行加权,为较旧的投票实施衰减系统,计算正面与负面投票的比率等。大多数方法都存在其他缺陷。

The system gives each one a number based on, out of the things that it has faced, what percentage of them it usually beats. So each one gets the percentage score NumberOfThingsIBeat / (NumberOfThingsIBeat + NumberOfThingsThatBeatMe). Also, things are barred from the top list until they've been compared to a reasonable percentage of the set.
  
  If there's a Condorcet winner in the set, this method will find it. Since that's unlikely, given the statistical nature, it finds the one that's the "closest" to being a Condorcet winner.

我认为最好的解决方案是"最有趣的","最可爱的","最美丽的"和"最好的东西"网站使用改良的Condorcet投票系统的解决方案:

有关实施此类系统的更多信息,排名对上的Wikipedia页面应该会有所帮助。

该算法要求人们比较两个对象(Pick-A-or-B选项),但是坦率地说,这是一件好事。我认为决策理论已被人们很好地接受,人类比两个对象在抽象排名上的表现要好得多。数百万年的演变使我们擅长从树上摘下最好的苹果,但在决定我们摘苹果与苹果柏拉图式的真正柏拉图式紧密度方面却很糟糕。 (顺便说一下,这就是为什么分析层次结构流程如此精巧的原因……但这有点离题了。)

最后一点是,SO使用一种算法来找到最佳答案,这与bash.org的算法中找到最佳报价非常相似。它在这里效果很好,但在那儿却非常失败,因为在这里很旧的,评级很高但现在已经过时的答案很可能会被编辑。 bash。取决于问题的详细信息。 :-)

就像其他人所说的那样,排名1-10的效果并不理想,因为人们的级别不同。

Pick A-or-B方法的问题在于不能保证系统具有传递性(A可以击败B,但是B可以击败C,而C可以​​击败A)。使用非传递比较运算符会破坏排序算法。使用快速排序,在此示例中,未选择为枢轴的字母将彼此错误地排名。

在任何给定时间,我们都希望对所有图片进行绝对排名(即使其中一些/全部并列)。我们还希望除非有人投票,否则排名不会改变。

The Elo player-rating
  system compares players’ match records
  against their opponents’ match records
  and determines the probability of the
  player winning the matchup. This
  probability factor determines how many
  points a players’ rating goes up or
  down based on the results of each
  match. When a player defeats an
  opponent with a higher rating, the
  player’s rating goes up more than if
  he or she defeated a player with a
  lower rating (since players should
  defeat opponents who have lower
  ratings).

我将使用Pick A-or-B(或者平局)方法,但确定类似于Elo评分系统的排名,该系统用于2个玩家游戏(最初是国际象棋)的排名:

  • 所有新手的初始评分为1600
  • WinProbability = 1 /(10 ^((对手当前评分玩家当前评分)/ 400)+ 1)
  • 如果他们赢得比赛,ScoringPt = 1分;如果输掉比赛,ScoringPt = 0分;如果平局,则为0.5分。
  • 玩家新评分=玩家旧评分+(K值*(ScoringPtPlayers获胜概率))

Elo系统:

用图片替换"玩家",我们就可以根据公式简单地调整两张图片的等级。然后,我们可以使用这些数字分数进行排名。 (这里的K值是锦标赛的"级别"。小型本地锦标赛是8-16,大型邀请赛/地区是8-32. 我们可以只使用20这样的常数)。

使用这种方法,我们只需要为每个图片保留一个数字,这比将每个图片的各个等级彼此保持一致要少得多。

编辑:根据评论增加了一些肉。

已停业的网站whatsbetter.com使用了Elo样式方法。我们可以在Internet存档上的FAQ中阅读有关该方法的信息。

  • 从数据库中获取Ne,mA,mB和等级RA,RB。
  • 通过执行比较次数(Ne)以及比较图像的次数(m)和当前额定值,计算KA,KB,QA和QB:
  • 计算EA和EB。
  • 将获胜者的S得分:获胜者为1,失败者为0,如果平局为0.5,
  • 使用以下两种方法计算新的评级:
  • 更新新的额定值RA,RB并在数据库中计数mA,mB。

来自Wikipedia的这些等式使计算Elo评级变得更加简单/有效,图像A和B的算法将很简单:

  • 将"比较"结果保存在数据库中,然后取平均值。
  • 通过为用户提供4-6张图像并对它们进行排序,可以使每个视图获得多个比较。
  • 通过运行qsort并记录和修剪没有足够数据的任何内容,选择要显示的图像。然后,当我们记录了足够的项目时,吐出一页。

我喜欢快速排序选项,但是我会花几个星期的时间:

另一个有趣的选择是使用人群来教授神经网络。

我知道这个问题已经很老了,但我认为我会有所作为

我将看一下Microsoft Research开发的TrueSkill系统。就像ELO一样,但是收敛时间要快得多(与线性相比,它看起来是指数级的),因此我们可以从每次投票中获得更多收益。但是,它在数学上更加复杂。

段落数量不匹配