Занимающаяся видеопрокатом в сети компания Netflix использует рекомендации, чтобы помочь своим клиентам найти (и взять) фильмы, о которых они могли и не слышать. Это серьезная проблема для компании, поскольку многие клиенты, начиная пользоваться сервисом, берут сразу несколько десятков фильмов, которые они хотели посмотреть, после чего перестают пользоваться и оплачивать ежемесячную подписку. А высококачественный рекомендательный сервис может помочь Netflix удержать клиента.
Netflix дает рекомендации на основе принципа «коллективного фильтра». Принцип работает так: вы обозначаете свои предпочтения, назвав несколько фильмов, которые вам нравятся, и несколько, которые не нравятся, и система ищет пользователей с похожими на ваш вкусами, потом собирает информацию об их любимых фильмах и рекомендует вам те, что вы не видели. Вся фишка в том, как вычислить пользователей с похожими вкусами.
Один из популярных методов подобных вычислений называется «коэффициент Отиаи» или «косинус сходства». Компьютерная программа собирает ваши рейтинги ряда фильмов и сравнивает с рейтингами всех остальных пользователей. Если ваши рейтинги полностью совпали с рейтингами другого пользователя – к примеру, вы оба присвоили фильму «Касабланка» пять звезд, а киноленте «Миссия невыполнима» одну, – вы получаете одно очко. Если у вас вообще нет совпадений – получаете ноль. За этим стоят потрясающе эффектные, хоть и слегка головоломные математические расчеты. Представьте себе мир, в котором есть только два фильма – «Касабланка» и «Миссия невыполнима». Первой картине я даю пять звезд, второй одну. Теперь на графике, где «Касабланка» – это ось X, а «Миссия невыполнима» – ось Y, ставим точку в месте пересечения 5 и 1 и проводим линию, проходящую через точки 0,0 и 5,1. Получился вектор моих кинопредпочтений.
Теперь представим, что «Миссия невыполнима» вам очень понравилась, а «Касабланку» вы считаете сильно переоцененной. Тогда вы ставите точку на пересечении 1 и 5, а вектор, проходящий через 0,0 и 1,5, представляет ваши кинопредпочтения. Угол между вашим вектором и моим является мерой нашей с вами схожести, а с помощью косинуса этого угла легко будет вычислить точное выражение этой схожести в диапазоне между 0 и 1 для углов от 0 до 90 градусов. Сложность, конечно, в том, что в мире много больше двух фильмов. С помощью косинуса сходства можно добавить к нашему графику по измерению на каждый новый фильм. Поэтому, когда мы сравниваем наши с вами вкусы в кинематографе, мы играем с векторами, существующими в стотысячемерном пространстве, где на каждый фильм из коллекции Netflix приходится по одному измерению. Можете даже не пытаться представить себе стотысячемерное пространство. Достаточно будет представить трехмерное, в котором два вектора выходят из точки 0, 0, 0 и оба проходят через конкретную точку в обозначенном осями X, Y и Z пространстве. А потом просто поверьте на слово, что математически то же самое можно сделать и в гораздо более многомерном пространстве.
Отбор фильмов с помощью линейной алгебры может привести к самым неожиданным результатам. Вам нравятся старые фильмы со Стивом Мартином и японский мультсериал FLCL? Мне тоже. А еще мне нравятся эпические роуд-муви Вима Вендерса. Ни одна здравая система, основанная на истории кинематографа, не предложит вам новое немецкое кино, исходя из вашего увлечения американским фарсом и японским аниме… а вот коллективный фильтр может, если в системе будет по крайней мере несколько людей с похожими на мой вкусами.
Коллективный фильтр работает, и работает неплохо. Если вы когда-нибудь покупали книгу, рекомендованную Amazon на основе ваших предыдущих покупок, эта система знакома вам, и, скорее всего, с хорошей стороны. Однако Netflix хочет, чтобы коллективный фильтр работал еще лучше. Компания пообещала приз в 100 тысяч долларов любому, кто сможет существенно улучшить алгоритм их системы. Netflix располагает огромными массивами данных о персональных рейтингах, поэтому сравнить новый алгоритм с уже существующим не составляет труда: на основе 50 оцененных пользователем фильмов спрогнозируйте, какую оценку он поставит «Клубу “Завтрак”»? Сравните ваш прогноз с реальным поведением пользователя, и вы поймете, насколько оказались близки. Если предложенные вами прогнозы будут заметно точнее сегодняшнего алгоритма Netflix, считайте, что приз ваш.
Приз выиграла команда компьютерщиков из AT&T и Yahoo!. Ни одного концептуального прорыва они не предложили, тем не менее, найдя сотни мелких недочетов в действующем алгоритме Netflix и исправив их, они добились заметного результата. Компания выплатила полагающийся приз, система стала работать лучше, однако ничего такого сотрясающего основы представлений о коллективном фильтре мы не узнали.
Читать дальше
Конец ознакомительного отрывка
Купить книгу