Наблюдая за одним из фильмов на кинопоиске, я обнаружил, как в один день неожиданно его рейтинг резко упал. Намеренно не буду указывать названий фильмов и ников пользователей, чтобы не вызвать непредвиденных последствий. Я попытался выяснить, в чем же причина, и обнаружил следующее: оказывается рейтинг рассчитывается не всегда одинаково. Все пользователи кинопоиска разделены на 2 сорта: оценки которых учитываются в рейтинге, и соответственно не учитываются. Изучив статистику, профили и историю оценок множества пользователей, и написав небольшую программу для анализа распределения оценок, я выяснил, как это происходит.
Сначала, когда голосов совсем мало, рейтинг вообще не показывается, но его все равно можно увидеть — в профиле режиссера или актеров. Затем, когда число голосов всё ещё мало, рейтинг рассчитывается просто как среднее арифметическое. И уже потом, когда фильм набирает достаточное количество голосов (обычно 50-100), вступает в дело основная формула. В справке кинопоиска про расчет топ-250 написано:
На основании оценок пользователей КиноПоиск формирует рейтинг Лучших фильмов Топ-250. Некоторые пользователи хотят повлиять на рейтинг лучших фильмов, регистрируя несколько аккаунтов и/или выставляя фильмам только единицы или десятки. Поэтому в расчете этого рейтинга принимают участие только регулярно голосующие пользователи, которые честно оценивают фильмы и свое впечатление от них.
Про рейтинги на страницах фильмов там ничего не сказано, однако очевидно подобный фильтр применяется не только при расчете топ-250, но и для всех остальных фильмов. Выяснив это, я естественно заинтересовался, как же они определяют, чьи оценки учитывать, а чьи нет. Администрация не раскрывает эту информацию, что и понятно: основной целью введения такого фильтра было отсеять недобросовестных пользователей, которые намеренно занижали оценки у одних фильмов, и завышали у других.
На кинопоиске рейтинг показывается с точностью до тысячных долей, поэтому для любого фильма, где менее 100 голосов, можно легко определить, сколько же именно голосов было учтено. Вариантов количества, когда деление целочисленной суммы оценок будет с учетом округления точно равно заданному числу, не так велико, обычно 1-3 варианта. Надо просто посчитать сумму для каждого возможного числа оценок от 1 до 100, округлить, поделить обратно и сравнить с искомым рейтингом.
Таким образом я определил, что из почти 100 оценок, выставленных интересующему меня фильму, учитывалось только 30. А надо сказать, что это один из редких фильмов, о которых широкая общественность узнала благодаря посту на хабре, это хорошо видно по графику количества голосов (не оценок) за фильм по временной шкале:
Ясно, что большинство оценок было выставлено именно хабрапользователями после публикации поста. Выходит, что 70% этих оценок не учитывается. Если судить по моим знакомым, люди, связанные с IT-тематикой, нечасто являются активными участниками кинопоиска, и хотя многие из них зарегистрированы там уже много лет, за это время они поставили совсем немного оценок. Вот и для данного фильма, если судить по отзывам на рутрекере, наблюдалась подобная картина:
Первый раз кому-то на трекере спасибо говорю.
Наконец-то что-то действительно заинтересовавшее меня настолько, чтобы каждый день бегать в раздачу и смотреть наличие обновлений !
Было довольно много таких сообщений, причем в том числе от людей, которые за много лет написали первый раз на рутрекере. Фильм настолько уникален, что из-за него люди впервые поставили оценку на кинопоиске. Картинка в начале статьи — графическое отображение именно этого случая: статистика оценок, состоящая из одной оценки. А многие только для того и зарегистрировались, чтобы поставить эту единственную оценку. И их мнение не учитывается? Мне кажется это несправедливо.
Определить, учитываются ли именно ваши оценки, просто. Надо найти фильм с числом оценок примерно 50-100. Если число голосов слишком велико, изменение рейтинга от вашей оценки просто не будет заметно, а если слишком мало, он попадет в категорию фильмов, где пока ещё учитываются все оценки. Затем надо проголосовать. Если рейтинг изменится (а он меняется сразу после обновления странички) — значит ваше мнение учитывается. Для верности попробуйте несколько фильмов. Но потом удалите оценки, ведь мы как честные пользователи, должны голосовать только за те фильмы, которые смотрели.
Я решил выяснить, какие же были критерии выбора. Все оценки и их точная сумма нам известна. Осталось узнать, какие именно из оценок учитываются. Некоторое время я пытался вручную подбирать варианты, чтобы сумма всех оценок дала требуемое число, но это занимало много времени. Поэтому я написал небольшую программку, которая методом рекурсии перебирала все возможные варианты распределения того, сколько именно десяток, девяток и т.д. из всех оценок учитывалось в итоговом рейтинге.
Вот её основной цикл:
private void count_cases(int iter, int prev_sum, int max_rest)
{
// уменьшить макс.сумму всех оставшихся оценок
max_rest = max_rest - max[iter] * iter;
// минимальное число оценок, которым можно покрыть оставшуюся сумму
// даже если кол-во остальных оценок будет максимальным
int cmin = (sum - prev_sum - max_rest + iter - 1) / iter;
if (cmin < min[iter]) cmin = min[iter];
// максимальное число оценок, которым можно покрыть оставшуюся сумму
// в случае если остальных оценок больше не будет
int cmax = (sum - prev_sum) / iter;
if (cmax > max[iter]) cmax = max[iter];
// Цикл по числу оценок
for (int i = cmin; i <= cmax; i++)
//переход на следущий уровень рекурсии
count_cases(iter - 1, prev_sum + i*iter , max_rest);
}
В итоге, несмотря на 10-вложенную рекурсию, программа быстро выдает все возможные варианты, например:
Теперь остается только посмотреть профили пользователей, и предположить, почему оценки каждого конкретного из них могут не учитываться. Критерии могут быть следующие: маленький стаж, мало оценок, либо, как мы это узнали раньше, сами оценки таковы, что кинопоиск им не доверяет.
Конкретные цифры пока точно определить не удалось, так как вариантов много, и статистики пока недостаточно, но можно уже сказать, что примерно надо иметь стаж не менее года, и поставить несколько сотен оценок, чтобы ваше мнение учитывалось. Причем поставить их не в один день, а на протяжении достаточно большого времени. Все это довольно тривиально. А вот изучая историю оценок, я обнаружил много интересного. Хотя большинство их выглядит довольно стандартно:
Или оценки смещены немного вниз или вверх:
Но бывают и особые случаи, например, типичный категоричный — одни единицы и десятки. Бывает даже вообще 1000 оценок, одни 10-ки. Надо сказать, это встречается довольно часто, то есть если посмотреть 10ки, поставленные обычному фильму, вы скорее всего обнаружите именно такую картину:
Также встречаются люди с «сомнительным прошлым». В начале они ставили одни 10ки, а потом их оценки приобрели нормальное распределение:
В итоге всё равно выходит, что из 1000 фильмов, которые посмотрел человек, половина — шедевры. Понятно, что кинопоиск считает такое мнение неадекватным. Таким пользователям, чтобы «исправиться», остается только нажать кнопку «удалить все оценки», либо аккуратно пересмотреть все свои десятки и единицы, и расставить их дифференцированно.
Встречаются также люди, которым вообще ничего не нравится:
Я видел еще много любопытных графиков, фактически по ним можно изучать линии жизни пользователей кинопоиска. Анализируя их, подбирая возможные варианты распределения оценок и сравнивая все эти данные между собой в каждом случае, мне удалось определить, какие именно оценки учитываются, о чем я написал выше. Конечно я могу ошибаться, ведь могут существовать и другие, совсем нестандартные критерии отбора, о которых мы можем только догадываться. Не буду сейчас описывать процесс подробно, об этом можно еще целую статью написать, но в итоге можно сказать так:
На кинопоиске, если вы не активный пользователь, ваши оценки совсем не повлияют на рейтинг фильма, даже если он вам очень нравится. Но это не значит, что вы поставили их совсем зря. Они учитываются у редких фильмов, где всего 5-10 голосов. Они учитываются при поиске друзей по интересам и подбору рекомендаций, что посмотреть. Ну и конечно, если вы хотите, чтобы ваши оценки учитывались, ставьте больше оценок, и в конце концов, со временем, вы перейдете в категорию пользователей, с мнением которых считаются.
Автор: ID_Daemon