Распределение среди пользователей алгоритма совместного голосования

Пользователи моего приложения (на самом деле это игра) отвечают на вопросы, чтобы набрать очки. Вопросы задают другие пользователи. Из-за объема я не могу все проверить сам, поэтому решил передать процесс фильтрации пользователям (игрокам) краудсорсингом. Правила просты:

  • каждому пользователю показывается вопрос, который оценивается как хороший / плохой / неуверенный
  • , когда вопрос оценивается 5 раз как «плохой», он удаляется из пула
  • , когда вопрос оценивается 5 раз как "хороший" он удаляется из опроса и помечается, чтобы в него играли другие игроки, которые его не видели

. Если бы все могли видеть все, это было бы легко. Однако на более позднем этапе игры пользователи не должны получать вопросы, которые они уже видели. Это означает, что пользователи не должны видеть все вопросы, и именно те, которых они не видят, они смогут сыграть (ответить) позже в игре.

Общее количество вопросов намного больше, чем количество игроков, новые вопросы добавляются ежедневно, а новые игроки приходят постоянно, поэтому я не могу просто распределить их заранее.

Я ищу алгоритм, который максимизирует количество рейтинговых игровых (т. Е. Невидимых) вопросов для всех игроков.

Я попытался погуглить, но я даже не уверен, какие термины ввести в поле поиска, а использование таких вещей, как «распределение», «голосование», «совместная фильтрация» дает очень интересные, но непригодные для использования результаты.

Соотношение хороших и плохих вопросов составляет 1: 3, т.е. 25% вопросов оцениваются как хорошо. Количество уже отправленных вопросов без рейтинга превышает 10000. Количество активных пользователей с правом голоса составляет около 150.

В настоящее время я рассматриваю возможность разделения пула вопросов и базы пользователей на 2 части. Одна часть пользовательской базы будет проверять вопрос для другой части и наоборот. Разделить вопросы легко (например, нечетные и четные). Однако я до сих пор не знаю, как разделить пользовательскую базу. Я подумал об использовании нечетной / четной позиции в списке «проверяющих наиболее часто задаваемых вопросов», однако позиции в списке меняются ежедневно по мере проверки новых вопросов.

Обновление: Я только что задал продолжение этого вопроса - мне нужно периодически удалять фиксированное количество вопросов из пула.

6
задан Community 23 May 2017 в 12:11
поделиться