March 12, 2026
Недавно я создал W8PollBot — бота для создания взвешенных голосований. Во взвешенных голосованиях учитываются полные предпочтения каждого участника, а не только один верхний выбор. Ниже — зачем это нужно и как это работает.
Представим ситуацию: Чат на 8 человек. Группа собирается посмотреть фильм. Создается голосование из 6 фильмов, все голосуют за самый предпочтительный вариант. Но победитель набирает 3 голоса из 8. Остальные пять голосовали за другие варианты. И более того, не хотят смотреть победивший фильм.
И формально тут нет ничьей вины: у каждого просто свой вкус. Но для пяти человек результат всё равно ощущается несправедливым.
Схема голосования с выбором вариантов предполагает, что каждый голос имеет одинаковую интенсивность предпочтения. Но это не так, обычно люди предпочитают некоторые выбранные варианты больше других.
Один человек голосует за фильм, потому что давно хотел его посмотреть и не особо хочет смотреть что-либо другое. Но другие голоса которые он отдает в оцениваются равносильно первому выбору! Или другой человек может быть вовсе не против вариантов, но может выбрать только . И как же тогда выбрать оптимальное ?
Single-choice системы ничем не лучше. Они ограничивают весь спектр предпочтений до единственного варианта. Теряется очень много важной информации которая могла бы существенно повлиять на исход голосования.
Как вы могли уже понять, корень проблемы в том, что обычные голосования не передают степень предпочтения. Это особенно критично в ситуациях, где выбор чисто вкусовой. Нет правильного ответа, который можно доказать аргументами. Нельзя убедить человека, что ему «на самом деле» понравится этот фильм. Есть только то, кто чего хочет и насколько сильно.
Идея простая: вместо одного голоса каждый участник расставляет варианты по порядку предпочтения.
Пусть первое место получает 100 очков, второе — 80, третье — 64 и так далее: каждая следующая позиция умножается на коэффициент 0.8. Побеждает вариант с наибольшей суммой очков по всем участникам.
Так можно получить полную информацию о том чего хочет каждый человек.
Восемь человек расставляют три фильма по приоритету ( очка за 1-е, 2-е, 3-е место):
| Участник | Дюна | Интерстеллар | Всё везде и сразу |
|---|---|---|---|
| Аня | 100 | 80 | 64 |
| Борис | 100 | 80 | 64 |
| Вера | 100 | 80 | 64 |
| Гриша | 100 | 80 | 64 |
| Даша | 64 | 100 | 80 |
| Егор | 64 | 80 | 100 |
| Женя | 64 | 80 | 100 |
| Зоя | 64 | 100 | 80 |
| Итого | 656 | 680 | 616 |
Обычное голосование: «Дюна» побеждает с 4 первыми местами. Но нижняя четвёрка поставила её последней — то есть половина группы смотрит фильм, который для них наименее предпочтительный.
Взвешенное: побеждает «Интерстеллар» с 680 очками. Даже фанаты «Дюны» поставили его вторым — это лучший вариант в среднем для большинства участников.
Взвешенное голосование находит не «фаворита самого активного меньшинства», а вариант, который большинство готово принять с удовольствием.
Другой показательный контрпример. 5 вариантов, 8 участников, очки за места: :
В обычном голосовании побеждает А (4 первых места из 8). Во взвешенном побеждает Б (648 против 614), имея всего два первых места. А — яркий фаворит большинства, но те, кому он не нравится, ставят его на последние места. Б — компромисс, который устраивает всех.
Именно это свойство важно, когда речь идёт о вкусовых решениях. Если четырем людям придётся смотреть фильм, который они сами поставили последним, это не самая приятная ситуация.
Система работает там, где выбор сугубо вкусовой, а не фактический. Никто не «неправ» в своём вкусе, но какой-то вариант должен победить, и важно сделать это честно.
Хорошие примеры:
Менее подходящий случай: дата встречи. Там звучат аргументы («не могу в среду, у меня врач»), а не предпочтения. Для согласования дат и прочих аргументированных решений лучше работают другие инструменты.
Коэффициент выбран не случайно. Были проведены тесты для различных значений по следующим метрикам:
Я обнаружил что метрики всеобщей максимизации среднего удовлетворения достигают своего максимума , но . Однако при таких значениях сильно меньше учитываются предпочтения меньшинств в группе. Это приводит к тому, что лидирующие варианты слишком сглажены и часто не являются самым предпочтительным вариантом для большинства. Также стоит учитывать психологический эффект: Разница в очках между весами должна ощущаться значительной. Например , ощущается странным выбором весов.
Детальный разбор исследования будет в отдельной статье.
Для создания и проведения взвешенных голосований можете воспользоваться моим телеграм ботом W8PollBot
В боте все очень просто: Создать голосование, поделиться ссылкой с группой. Участники расставляют варианты по приоритету прямо в чате удобными кнопками, бот считает взвешенные очки и показывает итог. Голосование можно сделать анонимным или публичным. Для публичных есть таблица голосов и график динамики голосования.
Если в следующий раз группа зависнет над вопросом «Что смотрим сегодня?», вы знаете что делать!