Если бы мы могли показать пользователям фильмы, которые они хотели бы посмотреть, то были бы больше довольны сервисом. А если бы мы могли им показать и список наших предпочтений? Это был беспроигрышный вариант.
Проще говоря. Даже если бы мы заказывали в двадцать раз больше новых релизов, чем любой Blockbuster (чрезвычайно дорогая уловка), то не смогли бы удовлетворить все запросы. А новые релизы были недешевы. Чтобы держать заказчиков довольными, а наши расходы разумными, нам нужно было переправлять пользователей на менее востребованные фильмы, которые, как мы знали, им понравятся, – и, возможно, понравятся сильнее, чем новинки.
Например, я взял напрокат «Плезантвилль», один из лучших фильмов 1998-го, умную черную комедию о том, что случится, когда двое подростков из 90-х окажутся в черно-белом телешоу про маленький американский городок 50-х. Идеальный механизм рекомендаций должен быть способен отвлечь меня от других новинок и перенаправить на фильмы, похожие на «Плезантвилль», – фильмы вроде «Доктор Голливуд».
Это была трудная задача. Такие штуки, как вкус, – субъективны. А количество факторов, играющих роль при попытках найти сходство между фильмами, почти бесконечно. Надо ли вам группировать кино по актеру, режиссеру, сценаристу, жанру, дате выпуска, номинациям на награды? Как количественно измерить такую вещь, как настроение?
Мы с Ридом и программистами искали решение месяцами. Проблема состояла в том, чтобы придумать алгоритм, который бы осмысленно группировал фильмы. Поскольку он мог использовать только доступные ему данные, – такие как жанр, актеры, локации, год выпуска, язык и так далее, – алгоритм часто выдавал предложения, которые имели смысл для компьютера, но для человека не отражали никакого реального сходства. Или выдавал бесполезные предложения: «Вам нравится «Лучший стрелок»[77]
? Предлагаем еще один фильм 1986 года!»В конце концов, мы поняли, что лучший способ дать пользователям то, что они хотят, – устроить краудсорсинг[78]
. Для начала мы сделали то же, что и Amazon. Используя процесс под названием «коллаборативная фильтрация[79]», Amazon предлагал клиентам продукты, основанные на общих шаблонах покупок. Они до сих пор так делают. Если вы, скажем, приобрели у них гаечный ключ, Amazon группирует вас с другими пользователями, купившими гаечные ключи, а потом предлагает купить другие товары из тех, что покупали они.В нашем случае это работало так. Положим, я и Рид взяли в Netflix напрокат три фильма. Я взял «Армагеддон», «Мосты округа Мэдисон» и «Касабланку». А Рид взял «Армагеддон», «Мосты округа Мэдисон» и «Могучих утят». Коллаборативная фильтрация скажет, что, если мы оба взяли два одинаковых фильма, возможно, каждому из нас понравится третий фильм, который взял другой. Поэтому сайт может посоветовать мне взять «Могучих утят», а Риду – «Касабланку».
Проблема этого метода заключается в том, что фильтрация истории заказов не скажет вам, понравилась ли мне «Касабланка» или понравились ли Риду «Могучие утята». Она просто констатирует факт: мы оба посмотрели это кино. Которое, к слову, может нам совершенно не понравиться. Мы могли взять эти последние фильмы для наших детей или жен.
Если мы собирались использовать коллаборативную фильтрацию для группировки пользователей и рекомендации фильмов, нам нужно было знать, что пользователям нравится, а не что они берут напрокат. Нам необходима была система обзоров, система рейтинга фильмов. Группировка картин по рейтигу, – их «кластеризация» по совпадающим положительным или отрицательным отзывам, – означала, что мы можем эффективно предлагать пользователям фильмы, основываясь не на том, что они взяли напрокат, а на том, что им понравилось. В конечном счете алгоритм станет намного сложнее, чем тот, что я только что описал. Но для того, чтобы он вообще работал, нам нужно было, чтобы пользователи оценили фильмы, – множество из них. В конце концов, мы решили попросить их сделать это, выставляя каждому фильму оценку от одной до пяти звезд. Пять звезд для кинокартины, которую они полюбили. Одна звезда – для полной потери времени.
Звучит достаточно просто, но эта глупая система рейтинга по звездам послужила источником споров. Больше сражений о меньшем количестве пикселей никогда не велось.
Может ли зритель поставить ноль звезд фильму, который никуда не годится? Должны ли мы дать нашим подписчикам возможность оценить кино на половину звезды?
Должен ли рейтинг отражать целые числа или числа с десятыми долями? Когда пользователю нужно предложить оценить фильм? Куда должен вести «звездный» виджет[80]
?