Во всех голосованиях, типа +1/-1 должно быть на самом деле +N/-M, где N!=M (N не равно M).
Так как почти никто не понял моей гениальной гипотезы, поясню.
Но сначала — в чем смысл голосования вообще. Но это кто-то должен сказать все равно. Голосование — это выбор. Перед вами поставили пять президентов и под каждым повесили radiobutton. Выбери одного.
Понятно, что проголосовать одновременно за Жирика и за Зюгу нельза. А очень хочется.
Другое дело, когда у тебя есть много материала, и каждой твари можно проставить по паре оценку от 1 до 5. Конечная цель для голосования «на той стороне», то есть для сайта — всё тот же выбор, верней — отбор, отсеивание говна и составление более-менее адекватных топов.
Цель голосования для пользователя же совсем другая, ибо выбора нет. Пользователь может всем оцениваемым сущностям поставить 5 баллов. Полный аналог «я хочу, чтобы все были президентами одновременно». Понятно, что ценность этих голосов равна нулю, и в чистом виде такое почти не встречается, но возможность проголосовать так есть.
Ограниченного ресурса («выбери одного») нет, поэтому мотивов расходовать его экономно (или разумно) тоже нет. Но хоть какие-то мотивы нужны, поэтому и включаются эмоциональные механизмы, которые к тому же бинарны: «понравилось/не понравилось».
Разграничивать «понравилось, но не очень», то есть ставить «четверку» вместо «пятерки», смысла тоже нет: «вам что, жалко, что ли?». Нет, не жалко. Мы — добрые! А вот если нас, таких добрых, разозлить...
С точки зрения голосования, как выбора, дискретность шкалы имеет значение: чем больше шкала, тем выше точность. Наиболее подходящая шкала — стобалльная (при этом надо понимать, что голосование, типа 7.5 — это тоже стобалльная шкала, которая к тому же понятно для пользователя приводится в десятибалльной).
С точки зрения людей и особенно социально взаимодействия, наиболее удобна бинарная шкала: гавно/конфетка.
И 75-95% людей будут сводить любую шкалу к бинарной.
Отсюда промежуточный вывод: как ты шкалу ни назовешь, ее все равно будут использовать ровно одним способом, как только поймут, что в ней «хорошо», а что – «плохо».
Дискретная шкала просто имеет чуть больше смысла для 10% адекватных людей, которые будут использовать ее «идеологически верно». Еще один побочный эффект: чем больше делений у шкалы, тем больше шансов, что «щедрый» человек поставит 9.7/10 вместо 5/5: «это не так обидно».
Людей же, которые «голосуют сердцем», не пронять ничем, даже индивидуальной подписью к каждой оценке. У них все равно будет свой взгляд, «они так видят».
Налицо конфликт между авторами сайта и посетителями.
Наглядный пример: на картинке представлен результат разброса голосов на imdb.com по фильму «Крестный отец», который занимает первое место в top-250.
Видно, что 6% людей поставили фильму 1 из 10, то есть считают «Крестного отца» невероятным феерическим говном, после просмотра которого у них выпали глаза, случился самопроизвольный фимоз головного мозга и развилась патологическая боязнь кинематографа.
Очевидно, что это не так, даже чисто математически: далее график проседает аж до «семерки», и куда делись те люди, которые оценили фильм в промежутке от 1 до 7 — не понятно. Согласно математическим ожиданиям, их должно быть в разы больше.
Средний балл при этом у лучшего фильма всех времен и народов всего 8,7.
Конфликт «разруливается» элементарно: «one man, one vote» — принцип для наивных дураков, которого придерживаться не нужно.
То голосование, которое мы имеем на входе — это просто некие сырые статистические данные, которые нужно оценивать именно так — как данные. При этом вычисление среднего балла — наиболее нелепая вещь, которую можно сделать с этими данными. Средний балл не работает сразу (один проголосовавший), не работает и потом, потому что процент идиотов — величина постоянная, а бирки на них, увы, не развешены.
На imdb используется weighted vote averages:
IMDb publishes weighted vote averages rather than raw data averages. Various filters are applied to the raw data in order to eliminate and reduce attempts at ’vote stuffing’ by individuals more interested in changing the current rating of a movie than giving their true opinion of it.The exact methods we use will not be disclosed. This should ensure that the policy remains effective. The result is a more accurate vote average.
Простым языком это значит только одно: «не все голоса одинаково полезны».
Возвращаясь к «Во всех голосованиях, типа +1/-1 должно быть на самом деле +N/-M, где N!=M (N не равно M)» это значит только одно: «есть гипотеза, что люди „опускают“ с большей охотой, чем „поднимают“ (или наоборот), если эта гипотеза верна, то собранные статистические данные полезней считать не как тупую сумму, а с применением веса».
То есть, почти всё то же самое, что написано выше, но применительно к бинарной системе.
Проблема в том, что бинарную систему сложнее нормализировать. Совсем условно говоря, в стобалльной системе мы можем смело считать людей, поставивших «один», откровенными ретардами, в бинарной системе нам для этого просто недостаточно данных.
С другой стороны, «голосование», типа +1/-1 — практически идеальный инструмент для «опускания», поэтому использовать его нужно именно так: как массовое коллективное опускание. «Мне карму заминусовали». Еще один плюс такого голосования состоит в том, что влияние одного человека является понятной константой, и понятно, «как с этим бороться». В отличие от голосования по N-балльной шкале и подсчете среднего балла.
На skill.ru, кстати, я испробовал примерно четыре разных системы (с кучей вариаций), в конце концов пришел к формулам, согласно которой помимо всего прочего голоса некоторых людей в крайних случаях вообще не учитываются, причем на основе их всех предыдущих голосов. То, что вес каждого голоса учитывается индивидуально — тоже очевидно. Причем ручного «бана» там нет, все подчиняются одним и тем же математическим правилам. Теперь топы, по крайней мере, можно смотреть без содрагания.
(Не знаю, почему до сих пор никто не реализовал «спарринговую» систему голосования: пользователю дается три-пять случайных работ, но примерно одинаковых по рейтингу работ, а он должен выбрать одну).
Таким образом, идеальная система голосования:
1. Предлагает не бинарную шкалу, главным образом для себя, но еще и для маленького процента нормальных людей.
(Пользователи говорят, что им «привычна» пятибалльная, но они просто врут, ее просто проще привезти к бинарной. На «серьезных» проектах я бы делал 100 балльную и приводил всё к виду 7.5/10).
2. Не навязывает пользователям трактовку этой шкалы (!).
3. Не обязана и не должна учитывать каждый голос одинаково.
4. Имеет закрытые механизмы подсчета конечного рейтинга.
PS.
Самое главное, о чем забыл написать подробно — подумал, что это и так очевидно: для чего нужно голосование, и что оно меряет.
Голосование меряет только человеческий интерес. И всё. Те, кто думают, что голосованием можно измерять качество — в лучшем случае заблуждаются. Если будет анонимно голосовать одна и та же группа экспертов по всем работам, при этом никак с этими работами не связанная, — тогда может быть.
Голосование измеряет популярность.
В этом плане десять «четверок» гораздо ценней, чем одна «пятерка», да и вообще, количество оценок — тоже релевантный фактор.
Польза для сайта от голосования абсолютно та же: предлагать на выходе список чего-то, что может понравиться среднестатистическому посетителю.
То есть всякие артхаус и прочее geekery — это не показательный пример вообще. Другое дело, что на основе все того же голосования можно сделать фичу, типа «люди, которые поставили этому фильму „пять“, так же поставили „пять“ следующим фильмам», — тогда это будет работать даже на примере артхауса.
Принцип, кстати, всё тот же: пользователю на входе дается N-балльная шкала, всё остальное — просто работа с данными.