Может быть, можно найти способ получения такой двумерной тени этих многомерных пространств пользователей и фильмов, в которой отображения пользователей оказываются рядом с отображениями фильмов, нравящихся этим пользователям. Нужно только найти правильную тень, в которой будут видны основополагающие характеристики фильмов и пользователей. Ниже приведен пример такой тени, созданной на основе данных Netflix по 100 пользователям и 500 фильмам. Видно, что тень выбрана правильно, потому что две характеристики, которые она оценивает, по-видимому, выражаются весьма отчетливо. Это видно из того, что точки не разбросаны по всей плоскости. Тень выявляет в данных некую закономерность.
Если посмотреть на названия реальных фильмов, отображенных на графике, легко увидеть, что эта тень действительно отражает характеристики, которые мы посчитали бы ясными отличительными чертами фильма. В правом верхнем квадранте оказываются кинодрамы, а в левом нижнем – боевики.
Именно этот подход применила команда, которой в конце концов и достался в 2009 году приз Netflix. Ее члены решили попытаться выделить тень в 20 измерениях, соответствующих 20 независимым характеристикам фильмов, которые должны были помочь предсказывать, какие фильмы нравятся пользователям. Преимущество компьютера в том, что он может перебрать целый спектр разных теней и выбрать ту из них, которая лучше всего отражает структуру, чего наш мозг и наши глаза никак не могут сделать.
Интересно отметить, что некоторые из характеристик, которые выбрала эта модель, были вполне явными – например, выделение боевиков или кинодрам. Но другие были гораздо менее заметными и трудноопределимыми. Тем не менее компьютеру удалось найти в данных закономерность.
Как мне кажется, этим и интересны такие алгоритмы нового типа. Они могут сказать нам нечто новое о нас самих. В некотором смысле алгоритм глубокого обучения находит в нашем человеческом коде черты, которые мы пока что не умеем выразить словами. Как если бы мы не знали, что такое цвет, и не имели слов для различения красного и синего, но алгоритм, исходя из выражения наших симпатий и антипатий, распределял объекты, находящиеся перед нами, на две группы, соответствующие объектам синим и красным. Мы не можем внятно сказать, почему нам нравится тот или иной фильм, потому что это предпочтение определяется слишком большим числом параметров. Человеческий код, порождающий эти предпочтения, скрыт от нас. Компьютерный же код выявил характеристики, определяющие наши предпочтения, которые мы можем интуитивно ощущать, но не можем высказать.
26 июня 2009 года команда под названием BellKor’s Pragmatic Chaos предъявила результат, преодолевший 10 %-й порог: ее алгоритм показал улучшение на 10,05 %. Компания Netflix разделила засекреченные данные на две половины. Одна половина использовалась для оценки результатов команд. Другую придержали для выявления окончательного победителя. После преодоления 10 %-го порога другие команды получали еще месяц на улучшение своих результатов. 25 июля команда Ensemble представила алгоритм, добившийся улучшения на 10,09 %. На следующий день компания Netflix перестала принимать заявки. К этому моменту обе команды снова несколько усовершенствовали свои алгоритмы: BellKor’s Pragmatic Chaos дошла до 10,09 %, но Ensemble продвинулась еще чуть дальше – до 10,1 %. Приз должен был достаться команде, показавшей лучшие результаты на второй половине данных. В итоге результаты обеих команд оказались одинаковыми, но команда BellKor’s Pragmatic Chaos прислала свои на 20 минут раньше, и миллион долларов достался ей.
Учитывая успех своего первого соревнования, компания Netflix собиралась устроить второе, чтобы стимулировать появление еще более новаторских идей, но с этим возникла одна проблема. Данные должны были быть анонимными. Компания опубликовала на сайте соревнования следующий комментарий относительно конфиденциальности данных:
Вся информация, указывающая на личность пользователей, удалена; оставлены только оценки и даты. Это сделано в соответствии с нашими правилами конфиденциальности. Даже если, например, вы знаете все свои оценки и даты их выставления, вы, вероятно, не сможете с уверенностью распознать их в данных, потому что используется лишь малая выборка (менее одной десятой всего нашего массива данных) и в эти данные вносились искажения. Но, разумеется, поскольку вы и так знаете все свои собственные оценки, в этом на самом деле не было бы нарушения конфиденциальности, не правда ли?
Два исследователя из Техасского университета в Остине взяли эти данные и, сопоставив их с пользователями, оценивающими фильмы на другом сайте, Internet Movie Database, определили личности некоторых из этих пользователей.
17 декабря 2009 года четверо пользователей подали на Netflix в суд, утверждая, что обнародованием этих данных компания нарушила закон о защите конфиденциальности видеоинформации. Одна из пользователей утверждала, что она – мать семейства и лесбиянка, держащая свою ориентацию в секрете, который раскрывают данные о ее кинематографических предпочтениях. То обстоятельство, что по кинематографическим предпочтениям можно догадаться о сексуальной ориентации или политических пристрастиях человека, стали называть фактором «Горбатой горы»[34]. Тяжба закончилась внесудебным соглашением сторон, но привела к отмене второго тура состязания Netflix.
Данные – это новая нефть, но мы расплескиваем ее по всему интернету. По мере того как мы вступаем в будущее, топливом которого будет эта нефть, вопросы о том, кому принадлежат данные и что с ними можно сделать, будут приобретать все большее общественное значение.
Может показаться, что, когда алгоритм говорит вам, что вам может понравиться, в этом есть нечто пугающее – если это означает, что вы никогда не увидите того, что, по его мнению, вам не понравится. Мне лично очень нравится, когда мне предлагают музыку, которую я, возможно, иначе не нашел бы. Я очень легко вхожу в накатанную колею и слушаю по кругу одни и те же песни. Поэтому я всегда любил радио. Но алгоритмы, перемещающие меня вперед и назад по фонотеке, прекрасно справляются с поиском жемчужин, способных мне понравиться. Сначала меня беспокоило, что такие алгоритмы могут загнать всех в определенные разделы фонотеки, оставив остальные ее разделы совсем без слушателей. Могут ли они вызвать слияние вкусов? Но, так как математика, лежащая в их основе, часто бывает нелинейной и хаотической, этого не происходит. Даже маленькое расхождение между моими предпочтениями и вашими способно развести нас в фонотеке в совершенно разных направлениях.
Я слушаю много музыки, которую рекомендует мой алгоритм, на пробежках. Это отличное место для исследования нового. Но несколько недель назад я совершил крупную ошибку. Жена попросила меня помочь в составлении музыкальной программы для празднования дня ее рождения. Она хотела танцев. Она хотела атмосферы восьмидесятых. Поэтому пару вечеров мы слушали то, что нравится ей. Я обычно выбираю другую музыку, но совместными усилиями мы составили отличную музыкальную программу, которая не дала никому из наших гостей усидеть на месте – все они танцевали. Проблемы начались, когда я вышел на первую после этого праздника пробежку. Мой алгоритм завел меня в раздел фонотеки, полный танцевальной музыки 1980-х. Я то и дело нажимал на бегу кнопку «Пропустить», но все равно никак не мог выбраться из этой ловушки. Чтобы вернуться в привычное состояние, мне потребовалось в течение нескольких недель переобучать свой алгоритм на произведениях Шостаковича и Мессиана.
Еще один аспект обучения того алгоритма, с которым мы взаимодействуем, касается спам-фильтров наших приложений электронной почты. Обучение начинается с тренировки на целой куче сообщений, часть которых помечены как спам, а остальные считаются доброкачественными. На этом этапе в их число не входят сообщения, адресованные именно вам. Алгоритм анализирует слова, появляющиеся в этих сообщениях, и начинает создавать профиль спама: 100 % сообщений, в которых встречалось слово «Виагра», были спамом; 99 % сообщений, в которых встречалось слово «рефинансирование», были спамом; 100 % сообщений, в которых встречалось сочетание «аппетитные русские», были спамом. Труднее разобраться со словом «диабет». По-видимому, по электронной почте рассылается множество спама с рекламой лечения от диабета, но это же слово встречается и в некоторых доброкачественных почтовых сообщениях. Алгоритм просто подсчитывает соотношение тех и других случаев в своих тренировочных данных. Скажем, если одно из двадцати сообщений, содержащих слово «диабет», оказывается доброкачественным, алгоритм будет считать, что это слово является признаком спама с вероятностью 95 %.
В фильтре электронной почты можно установить разные уровни фильтрации. Можно сказать ему, что сообщения следует отправлять в папку нежелательной почты, только если он на 95 % уверен, что это спам. Но тут и начинается самое интересное. Алгоритм обучался на наборе обезличенных сообщений, но ваши действия учат его распознавать то, что интересует именно вас. Он учится реагировать на сообщения именно такого типа, какой получаете вы. Предположим, например, что вы действительно больны диабетом. Сначала все сообщения со словом «диабет» будут отбраковываться. Но постепенно, по мере того как вы будете помечать все большее число сообщений со словом «диабет» как доброкачественные, алгоритм перенастроит свою калибровку вероятности, пока она не снизится до уровня гораздо более низкого, чем 95 %, и такие сообщения не станут поступать в папку «Входящие».
Устройство этих алгоритмов таково, что они начинают замечать другие ключевые слова, по которым связанный с диабетом спам можно отличить от нормальных сообщений. Например, наличие в письме слова «исцеление» вполне может быть признаком фальшивки. Машинное обучение заставляет алгоритм просматривать все входящие сообщения в поисках закономерностей и связей, в результате чего в конце концов получается индивидуализированный алгоритм, приспособленный именно к вашему личному образу жизни.