Перейти в форум
все форумы все темы добавить тему
Обсуждение рейтинга
Loki
0 за против
11:16 16.11.2011
Пришло время немного поговорить о том, что позволяет двум благородным донам измерить, кто же из них благороднее. Речь, конечно же, о рейтинге.
Прежде всего, следует заметить, что не существует универсальной, а тем более - идеальной, системы рейтинга. Для каждого проекта и аудитории нужен свой рейтинг. Более того, даже для одного проекта в разные периоды его существования рейтинг нужен разный.
 
Тем не менее, необходимо некоторое решение, которое бы позволило корректно работать в большом количестве, а лучше - в подавляющем большинстве случаев.
 
Сегодня многие (если не все) пытаются копировать систему рейтинга действующую на Хабрахабре. Система состоит из двух показателей. Один показывает (точнее, должен показывать) отношение к пользователю сообщества, другой - оценку сообществом контента, произведенного пользователем. Система замечательная, но мне она не нравится. И в первую очередь не нравится наличием двух несвязных показателей. Я понимаю для чего они введены, понимаю какие они дают рычаги для управления и, тем не менее, считаю систему неочевидной и неудобной. Больше всего мне не нравится необходимость голосования за пользователя. В результате чего должно происходить это голосование? В результате вдумчивого анализа поведения пользователя на сайте? Или просто можно проголосовать за пользователя с симпатичной аватаркой? Я все же придерживаюсь мнения, что рейтинг пользователя должен состоять из того, что пользователь сделал. То есть рейтинг пользователя должен состоять из суммы рейтинга произведенного им контента.
 
Вторым важным моментом я бы назвал защиту рейтинга. Причем, не только от злоупотреблений (хотя, они наиболее ярко отражают проблему), но и просто от перекосов связанных с особенностями сообщества. Например, рейтинг должен быть устроен таким образом, чтобы его невозможно было бесконечно поднимать внутри закрытой группы.
 
На основании вышеизложенного, я сформулировал несколько требований:
1. Рейтинг должен состоять из суммы рейтингов контента, произведенного пользователем. Понятно, что комментарий нельзя приравнивать к статье или посту в форуме. Каждый тип контента должен иметь свои коэффициенты.
2. Больший рейтинг должен давать больший вес голоса его обладателю.
3. Вес голоса не должен расти линейно. Пользователь с рейтингом 1000 не должен иметь возможности одним ударом увести рейтинг новичка в бездонный минус. Зависимость должна быть логарифмическая или приближенная к ней.
4. Для исключения роста рейтинга в замкнутой группе должно быть введено ограничение на количество передаваемого рейтинга, либо на количество голосов.
То есть один пользователь не может проголосовать за другого больше N раз или передать другому больше K рейтинга (еще не знаю какой из вариантов лучше). Точнее, проголосовать-то он может, но после достижения указанных порогов, его голос не должен прибавлять рейтинг.
5. Развитие мысли высказанной в п.4: вероятно, ограничение на передаваемый рейтинг должно быть таково, чтобы один пользователь не мог дать другому достаточное количество рейтинга для участия в голосовании. То есть чтобы нельзя было в одиночку создавать и "прокачивать" армии витруалов.
 
При этом остаются вопросы:
1. не слишком ли при такой системе получается высокий порог входа в сообщество на сайте?
2. не возникнет ли трудностей с набором рейтинга для сообществ малого размера?
3. надо ли ограничивать возможность пользователя голосовать (например, не больше M голосований за X часов)?
 
Собственно, на этом количество сформулированных мыслей заканчивается. Есть еще немного несформулированных, но ухватить их пока никак не получается
Может быть вы мне поможете в их поимке
mushtat
0 за против
12:10 16.11.2011
1. не слишком ли при такой системе получается высокий порог входа в сообщество на сайте?
На мой взгляд именно первое требование должно регулировать порог входа. За что же ещё, в первую очередь, как не за контент, награждать пользователя? И отсюда выплывает ответ на второй вопрос - для сообществ малого размера рейтинги (коэффициенты) должны быть тоже маленькими и должна быть для таких случаем предусмотрена система регулирования рейтинга руками.
 
Затрудняюсь ответить по третьему пункту.
Loki
0 за против
12:17 16.11.2011
Как раз первый вопрос мне не представляется сложным. Для малых сообществ перекосы вполне допустимы: если для голосования нужен рейтинг 5, а один пользователь может передать другому 50, то не вижу тут ничего страшного - на сообществе в 1000 человек не так просто незаметно накрутить рейтинг. Вот когда участников 100 тысяч, то логичнее поменять коэффициенты таким образом, чтобы порог входа был 5, а один пользователь другому мог передать только 4... В общем, этот вопрос мне кажется сравнительно очевидным.
Defari
0 за против
12:33 16.11.2011
Порог входа можно высчитывать непосредственно исходя от количества пользователей на сайте, и делать это автоматически по ранее указанным параметрам. Например, если пользователей < 1000 = нужен рейтинг 2, и т.д.
Loki
0 за против
12:41 16.11.2011
Defari: и делать это автоматически
Мне бы не хотелось делать что-либо автоматически. Рейтинг - это прежде всего элемент управления (если рассматривать его с позиции администрации), и текущие задачи вполне могут не совпадать с заложенным алгоритмом. Скажем, на каком-нибудь условном "вконтакте" уже сам факт регистрации должен давать пользователям право голоса - иначе им неинтересно, а на каком-то узкоспециальном или обучающем ресурсе, вполне может быть высокий порог входа при 100 участниках.
Defari
0 за против
13:11 16.11.2011
То есть, нужно сделать возможность админу самому задавать нужный порог входа?
Loki
0 за против
13:53 16.11.2011
Конечно. Порог входа, веса для разного контента, объем передаваемого рейтинга и т.п.
Loki
0 за против
09:47 25.11.2011
Голоса закрепляются к каким-то материалам (сообщения в блоге, форуме, комментарии и т.п.). Голоса за каждый из типов должны иметь собственный вес при вычислении рейтинга. Самое правильное, конечно, чтобы каждый тип сообщений учитывался отдельно, но при этом возникает трудность: при добавлении нового модуля надо вносить изменения в конфигурацию движка (добавлять новый тип). Более удобным решением мне кажется добавление предопределенных типов контента (материал, сообщение, комментарий,...) и чтобы модули использовали именно их. Вопрос, собственно, в том, какое количество таких типов надо заложить, чтобы не возвращаться к этом в будущем?
mushtat
0 за против
00:05 26.11.2011
А что Вы подразумеваете под сообщением? Сообщение на форуме?
Фотографии, посты в блоге (новостях), товары каталога, и другие возможные варианты предполагаемых модулей - материал?
Я думаю что всё вышеперечисленное, включая комментарии можно свести к этим трём группам, возможно двум даже. Но тут уж я не знаю как лучше.
Я больше интересуюсь возможностями регулирования и настройки рейтинговой системы. Гибкость и масштабируемость ведь тоже крайне важна, не так ли? А если материалы будут идти в разных весовых категориях? Например новости и фотографии в альбоме, и то, и другое - материал. Но мб по задумке авторов, должны иметь разное влияние на рейтинг при их оценке. Возможно ли заложить в систему рейтинга возможность вносить эти типы с указанием параметров или только намертво в код?
Loki
0 за против
20:56 26.11.2011
Вносить типы, на мой взгляд, лишнее. Достаточно заложить необходимое количество типов и использовать их в дальнейшем.
mushtat
1 за против
02:52 21.02.2012
А в каком режиме настроен рейтинг сейчас на форуме?
В профиле я не увидел никаких новых полей или записей о рейтинге.
Сейчас на сайте это просто как оценка материала без влияния на рейтинг пользователя в целом?
 
Не получилось плюсануть, ничего не происходит. Хром 17.
Посмотрю версию из транка. Отпишусь.
 
Спасибо, Loki!
Loki
0 за против
08:36 21.02.2012
На сайте рейтинг работает сейчас на полную мощность. Просто пока не решил где и в каком виде выводить данные о нем.
 
Голосование действительно не работало - в спешке забыл обновить сайт. Сейчас все должно быть в порядке.
mushtat
1 за против
11:40 21.02.2012
Сейчас на сайте установлены какие-либо ограничения для групп?
Почему-то сейчас тоже не хочет голосовать.
Или может быть причина в другом...
 
UPD:
Кстате, посмотреть профиль другого пользователя (не себя) в фронтэнде нельзя.
по ссылке /login-profile.id/ показывает только имя пользователя с этим id.
Loki
1 за против
12:22 21.02.2012
mushtat: Сейчас на сайте установлены какие-либо ограничения для групп?
Почему-то сейчас тоже не хочет голосовать.
Или может быть причина в другом...
 
UPD:
Кстате, посмотреть профиль другого пользователя (не себя) в фронтэнде нельзя.
по ссылке /login-profile.id/ показывает только имя пользователя с этим id.

Да нет, причина как раз в этом. Изначально хотел сделать разграничение возможности голосовать по группам, а потом подумал что минимальный рейтинг - уже сам по себе ограничение. В итоге остались проверки и те и другие. Пока что убрал - вроде бы все работает. Надо будет к этому вопросу еще вернуться.
 
А просмотр профиля поправил. Спасибо.