用户对于协同表决算法之间的分布 [英] Distribution among users for collaborative voting algorithm

查看:213
本文介绍了用户对于协同表决算法之间的分布的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

用户(它是一个游戏实际上)答题拿分。问题由其他用户提供的。由于体积,我无法检查自己的一切,所以我决定来围观源过滤过程中对用户(玩家)。规则很简单:

Users of my application (it's a game actually) answer questions to get points. Questions are supplied by other users. Due to volume, I cannot check everything myself, so I decided to crowd-source the filtering process to the users (players). The rules are simple:

  • 在每个用户显示一个问题,评价为好/坏/不确定
  • 当问题被评为5倍的坏是从池中删除
  • 当问题被评为它是从民意调查中删除5次为好和标记被谁没见过其他播放器上播放

如果每个人都可以看到的一切,这很容易。然而,后面的比赛阶段,用户不应该得到他们已经看到了问题。这意味着用户不应该看到所有的问题,而这些人恰恰是他们没有看到,他们会得到发挥(回答)在后面的比赛。

If everyone could see everything, this would be easy. However, later in the game phase, users shouldn't get questions they have already seen. This means that users should not see all the questions, and exactly those they don't see would they get to play (answer) later in the game.

问题总数比玩家数量要大得多,新问题每天都会增加新的球员来了所有的时间,所以我不能只是分布在前进。

Total number of questions is much larger than number of players, new questions are added daily and new players come all the time, so I cannot just distribute in advance.

我在寻找某种算法,将最大限度地发挥额定播放(即看不见的)问题,对于所有玩家的数量。

I'm looking for some algorithm that would maximize the number of rated playable (i.e. unseen) questions for all players.

我试图谷歌,但我什至不知道摆在搜索框中该条款,使用的东西,如分配,投票,协同过滤给了非常有趣的,但不可用的结果。

I tried to google, but I'm not even sure which terms to put in the search box, and using stuff like "distribution", "voting", "collaborative filtering" gives very interesting but unusable results.

好的比VS坏的问题是1:3,即。问题25%被评为良好。已经提交的未分级的问题数量是活跃用户的权限进行投票超过10000人数约为150人。

Ratio of good vs bad questions is 1:3, ie. 25% of questions are rated good. Number of already submitted unrated questions is over 10000. Number of active users with privilege to vote is around 150.

我目前正在考虑分拆问题泳池和用户群分为2部分。在用户群中的一部分将检查该问题的另一部分,反之亦然。分割问题是很容易(奇VS即使为例)。不过,我仍然不知道如何划分用户群。我想到了用顶问题跳棋名单奇/偶位置,但在列表中的位置以每天新的问题被选中的变化。

I'm currently considering splitting the question pool and user base into 2 parts. One part of the user base would check the question for the other part and vice versa. Splitting the questions is easy (odd vs even for example). However, I'm still not sure how to divide the user base. I thought about using odd/even position in "top question checkers" list, however the positions on list changes daily as new questions are checked.

更新:我刚问了一个<一个href="http://stackoverflow.com/questions/8747354/removing-items-from-unevenly-distributed-set">sequel这个问题 - 我需要周期性地从池中删除的问题一个固定数量

Update: I just asked a sequel to this question - I need to periodically remove a fixed number of questions from the pool.

推荐答案

,我不知道是否有特定的,公知的算法为这个。然而,这将是我的思路:

I'm unaware if there is a specific, well known algorithm for this. However this would be my line of thinking:

  1. 最大化​​额定播放(即看不见的)问题,对于所有玩家的数量的手段既 +5 和不被看见的数量最大化问题的数量从每个球员的问题。
  2. 不管是什么算法会,其效力是联系在一起的问题,无论是质量提交的贡献者,并在愿意被其他玩家评分(除非你的他们打分的问题)。
  3. 您的系统的目标不应该是让所有玩家有看不见的问题[这其实无关紧要]相同数额的,而是对总是有每个球员的后备看不见的问题,让他/她在其正常gamerate 播放。例如:假设你有两个用户A和B谁经常在你的网站上播放。一常回答每天80小测验,而B只有40.如果你的系统中平均得到100个新批准的问题每天,在原则上,你想一个球员就再也见不到超过20的每一天,当游戏者B可以安全地看60对他们。
  4. 提交问题和批准问题之间的也很重要。如果每一秒提交的问题是不好的,那么用户A和B从上面可以每天为40和120个问题
  1. "maximize the number of rated playable (i.e. unseen) questions for all players" means both maximising the number of questions with +5 and the number of not-seen questions from each player.
  2. Whatever the algorithm will be, its effectiveness is tied to both the quality of the questions submitted by the contributors and the willingness to rate by other players (unless you force them to rate questions).
  3. The goal of your system should not be that of making all players to have the same amount of "unseen questions" [this is in fact irrelevant], but rather that of always having for each player a "reserve" of unseen questions that allows him/her to play at its normal gamerate. For example: say you have two users A and B who play regularly on your site. A normally answers 80 quizzes per day, while B only 40. If your system in average get 100 new approved questions daily, in principle you would like player A to never see more than 20 of those every day, while player B could safely see 60 of them.
  4. The ratio between submitted question and approved question is also important: if every second submitted question is not good, then users A and B from above could rate 40 and 120 questions daily.

所以,我的做法最终使用的算法是:

So my approach to the final algorithm would be:

  1. 跟踪以下内容:
    • 在每天提交的新问题数(F =流量)
    • 在好/总提出的问题之间的比值(Q =质量)
    • 的使用问题(打,而不是等级),每个玩家每天数(GR =游戏速度)
    • 在额定每个球员在某一天的问题数(RC =评论计数器)
  1. Keep track of the following:
    • Number of submitted new question per day (F = Flow)
    • Ratio between good/total submitted questions (Q = quality)
    • Number of questions used (for playing, not for rating) by each player per day (GR = Game Rate)
    • Number of questions rated by each player on a given day (RC = Review Counter)
  • 在已经收集upvotes已经问题
  • 在提交谁拥有的其他问题,历史问题,用户在已经被接受。

[以上可以进一步调整,考虑到一个事实,当用户第一次注册,将有已经在网站上的批准,但看不见的问题,一个游泳池]

[The above can be further tweaked, considering the fact that when the user first register, there will be already a pool of approved but unseen questions on the site]

当然,你可以很大程度上受到给予奖励立功活动影响用户的行为(的徽章和信誉点,这样是一个不言自明的例子)。

Of course you can heavily influence the behaviour of users by giving incentives for meritorious activity (badges and reputation points on SO are a self-explanatory example).

编辑/附录:的意见的讨论澄清,GR是固定的,它是每天一个问题。此外,在OP指出,有将在系统每24小时至少1个新批准的问题。这意味着,有可能简化上述算法中的两种形式之一:

EDIT/ADDENDUM: The discussion in the comments clarify that the GR is fixed, and it is one question per day. Furthermore, the OP states that there will be at least 1 new approved question in the system every 24 hours. This means that it is possible to simplify the above algorithm in one of the two forms:

如果用户只能投后,他回答了他的日常问题:

If the user can vote only AFTER he answered his daily question:

如果至少有一个批准,看不见的系统问题,让随意的用户投票。

If there is at least one approved, unseen question in the system, let the user vote at will.

如果用户可以在回答他的日常问题,连投:

If the user can vote even BEFORE answering his daily question:

如果至少有两个批准,在系统中看不见的问题,让随意的用户投票。

If there are at least two approved, unseen questions in the system, let the user vote at will.

这是这样的:如果用户投票系统上的所有votable问题和然后的回答他的每日一23:59,仍然会有可在00:00得到回答的问题加24小时时间,以便系统获得用于以下天的新问题。

This is such that if a user is voting all votable questions on the system and then answers his daily one at 23:59, there will still be a question available to be answered at 00:00, plus 24h time for the system to acquire a new question for the following day.

心连心!

这篇关于用户对于协同表决算法之间的分布的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆