Прежде чем перейти к статье, хочу вам представить, экономическую онлайн игру Brave Knights, в которой вы можете играть и зарабатывать. Регистируйтесь, играйте и зарабатывайте!
В прошлой статье я рассказал, как безуспешно пытался применить алгоритмы коллаборативной фильтрации для практически ценной рекомендации фильмов. Однако в процессе экспериментов обнаружилось, что простое усреднение оценок фильма пользователями сервиса (рейтинг IMDB, Кинопоиска и т.д.) является очень неплохим предсказателем оценки фильма новым зрителем, что было продемонстрировано математически. Это, в частности, объясняет, почему все знают рейтинг Кинопоиска, а о рекомендациях Кинопоиска никто не слышал, хотя такой сервис у них есть.
Однако и у усредненных оценок (рейтингов) есть свои проблемы. Посмотрим, как выглядит топ фильмов по рейтингу в киносоциальной сети Letterboxd:
Многие из этих фильмов не знакомы даже киноманам. Например, на 18 месте находится фильм "The Human Condition III: A Soldier’s Prayer" с рейтингом 4.52 и 12K оценками, а на 29 - "The Lord of the Rings: The Return of the King" (третья часть "Властелина колец") с рейтингом 4.48 и 792К оценками. Первый фильм имеет немного более высокий рейтинг, но он в 70 раз менее популярен. Хотелось бы построить такой список фильмов, который бы отражал как рейтинг фильма, так и его популярность одновременно.
Так я и пришел к идее "композитного" рейтинга. Рейтинг умножается на некую производную от популярности фильма, повышая рейтинг, если фильм популярнее среднего, и понижая в обратном случае. Можно сказать, что популярность фильма становится мерой "достоверности" его рейтинга. Композитный рейтинг используется только для сортировки фильмов, отражая сравнительную предпочтительность фильма для просмотра. В соответствии с этим рейтингом, фильмы из примера выше перемещаются с 18 на 780 место и с 29 на 10 место соответственно.
Эксперименты с композитным рейтингом оказались настолько интересными, что я решил создать небольшое приложение для поиска фильмов с его помощью. Я назвал его CineFilter.
CineFilter - это дополнение к англоязычной киносоциальной сети Letterboxd. С его помощью вы можете выбирать фильмы, соответствующие различным критериям (режиссер, актер, комбинации жанров, год выпуска и т.д.), и фильмы будут отсортированы по их композитному рейтингу.
Этот сервис можно рассматривать как IMDB Top 250, который можно отфильтровать множеством различных способов. CineFilter содержит более 25000 фильмов с самым высоким композитным рейтингом.
Примеры возможных поисков:
Научная фантастика 80-х и 90-х годов
Лучшая анимация, начиная с 2020 года
Лучшая адаптация Бэтмена, не анимация
Лучшие фильмы на французском за последнее десятилетие
Даже романтические комедии не выглядят банально с композитным рейтингом
В Letterboxd жанры фильмов проставлены очень адекватно, поэтому поиск по жанрам может быть очень интересным. Например:
Фильмы с жанрами, как у фильма "The Fall" (2006), но не анимация
Кроме сортировки по композитному рейтингу, можно отсортировать фильмы по популярности, обычному рейтингу и дате выхода.
Если сервис будет пользоваться популярностью, я планирую добавить больше критериев для поиска, например: оператор, сценарист или студия (возможность увидеть фильмы A24 или Miramax в одном списке и отфильтровать их по жанрам). Также было бы очень интересно добавить фильтры по кинофестивалям, но, к сожалению, этой информации в Letterboxd нет, и не ясно, как это реализовать.
Приложение является Progressive Web App и может быть установлено как "родное" на все платформы, включая мобильные, через меню браузера "Add to Home screen" и аналогичные.
Планирую обновлять данные в приложении раз в месяц.
Я создал форум в Discord, где можно оставлять пожелания и сообщать об обнаруженных ошибках. Также надеюсь прочитать комментарии и пожелания здесь.