Глава 10
Выжить на «Титанике»
Как работают алгоритмы соцсетей, и почему они вводят нас в заблуждение
Facebook работает через алгоритмы. ‹…›
Пожалуйста, скопируйте и вставьте это на стену.
Дано: список пассажиров и экипажа «Титаника», где 1502 из 2224 человек на борту погибли в день столкновения корабля с айсбергом, 15 апреля 1912 года. Подробности про каждого второго из них – пол, возраст, порт отправления, где и за какие деньги куплен билет, первым классом плыл или третьим, сколько членов семьи было на борту – собраны в таблицу.
Предсказать: кто утонет, а кто выживет, основываясь только на данных из таблицы. Психологические портреты, воспоминания современников и дневники, которые могли бы что-нибудь объяснить про мотивы спасшихся и рассказать конкретную историю спасения, использовать, конечно, нельзя. Все выводы нужно делать на основе голых анкетных характеристик.
Это учебная задача на сайте Kaggle.com, с которого часто начинается карьера разработчиков искусственного интеллекта. Обычно сюда приходят решать задачи за деньги – участвовать в конкурсах с призовым фондом в десятки или сотни тысяч долларов. Крупные компании, от банков до медицинских клиник и трубопрокатных заводов, выкладывают порции своих больших данных и предлагают придумать алгоритм, который сделает из них какие-нибудь полезные выводы. Например, случится ли поломка на конвейере, есть ли на рентгеновском снимке указания на рак, и стоит ли выдавать человеку кредит. В каждом таком конкурсе соревнуются сотни, а иногда и тысячи команд программистов и программистов-одиночек. Те, кто войдет в первую тройку, разделят между собой призовые деньги, а люди из первой десятки могут быть уверены, что в ближайшие дни после оглашения результатов им напишут рекрутеры крупных компаний, работающих с данными.
Что общего у таких практических задач с вопросом о жизни и смерти пассажиров «Титаника»? С математической точки зрения они ничем не отличаются. Есть таблица, где для каждого человека записаны какие-то его признаки, а напротив части записей стоит пометка «да» или «нет» (вернул кредит или не вернул, пережил кораблекрушение или не пережил). Алгоритм должен увидеть скрытые закономерности в примерах и научиться угадывать «да» или «нет» как можно чаще.
Можно сказать, что и алгоритмы Facebook решают задачу того же сорта. Вот два человека и разные характеристики конкретной записи их дружбы в цифрах – сколько комментариев они написали друг другу за месяц, лайкает ли первый второго, часто ли оба одновременно ставят галочку «пойду» на страничке какого-нибудь концерта – и нужен однозначный ответ, показывать одному свежую запись другого или не показывать. Искусственному интеллекту достаточно сказать «да» или «нет».
К слову, на сайте Kaggle – да и вообще среди тех, кто обучает алгоритмы, – словосочетание «искусственный интеллект» не слишком популярно. Вместо него предпочитают употреблять термин «машинное обучение». (Если вы заявляли в 1990-е, что занимаетесь «искусственным интеллектом», объяснял кто-то из классиков этой науки, вас автоматически записывали в философы или футурологи, которые любят поговорить об отвлеченных сущностях, и математики стали говорить про «машинное обучение», чтобы их с футурологами не путали.)
Нейросети – частный случай машинного обучения, и не всегда самый эффективный (например, в задаче про «Титаник»). Наверное, самый популярный способ решать задачи на Kaggle (которыми пользуются и Google, и Facebook в промышленных масштабах) – это алгоритмы под странноватым названием «ансамбли решающих деревьев» (справедливости ради, «лес» и «пень» – тоже популярные герои мира алгоритмов). А самый простой способ – линейные модели.
Проходной балл: линейные модели
Представьте себе тест вроде тех, которые печатали когда-то рядом с кроссвордами в газетах, где за каждый односложный ответ начисляют баллы. С пассажирами «Титаника» алгоритм – линейная модель – проделывает это так. Купили билет второго класса? 10 баллов. Первого класса? 100 баллов. Взошли на борт в английском порту Саутгемптон? 50 баллов. Во французском Шербуре? 5 баллов. (Этот признак не самый бесполезный для прогноза, потому что косвенно указывает, на каком языке – английском или французском – пассажир разговаривал, и легко ли ему было объясниться во время эвакуации с командой, состоящей преимущественно из англичан.) В конце концов баллы складываются, и если сумма больше пороговой, модель отвечает: «Выживет».
Откуда алгоритм знает, какую характеристику оценить в 500 баллов, а какую – всего в 10? Он начинает раздавать баллы наобум и потом уточняет их раз за разом на каждом примере, для которого известен правильный ответ, – это и есть обучение. Так выясняется, какие признаки важные, какие нет. Например, класс каюты: в первом выжили 63 % пассажиров, в третьем – всего 24 %. Или пол пассажира «Титаника»: среди женщин из списка – 74 % выживших, среди мужчин – всего 19 %.
В случае с записями в Facebook, про которые алгоритму надо ответить «показывать / не показывать», есть еще один небесполезный источник информации – это слова, из которых составлена запись. Если модель знает, что вы любите читать про ракеты, Марс и Илона Маска, то за каждое из этих слов выдаст много баллов, и случайные знакомые, делами которых вы не интересовались последние пять лет, имеют шанс пробиться к вам во френд-ленту со своими рассуждениями про запуск автомобиля в космос.
К чему простые и быстрые алгоритмы безнадежно глухи – так это к интонации и стилю. Они не отличают стихов от прозы. Скрытые цитаты и сарказм за пределами их понимания, потому что для простой модели ваша запись – мешок слов (у специалистов по машинному обучению это устоявшийся термин): слова либо есть, либо нет, а в каком порядке идут и что означают вместе, уже неважно. И если вы из чувства возмущения приводите кусок чужой прямой речи, который вас задел, и как угодно его комментируете – вас запросто заблокируют за оскорбительный контент.
Еще простые линейные модели не умеют видеть смысл в комбинациях признаков. Если на «Титанике» выжили все мужчины из второго класса, которые сели на лайнер в Саутгемптоне (потому что, скажем, всех их разместили в удачных каютах рядом со спасательной шлюпкой), то модель выдаст только скромную порцию баллов за Саутгемптон и за второй класс, а более тонких закономерностей не увидит – и ошибется в прогнозе.
Консилиум врачей: решающие деревья
Ситуация: врач скорой зашел в дом и, чтобы решить, надо ли везти пациента в больницу, начинает с вопроса «на что жалуемся?». С точки зрения математики это по-прежнему все та же задача про «Титаник»: есть люди, у них много характеристик (медики называют их словом «симптомы»), и в конце нужно ответить «да» или «нет».
Сценарии диалога врача с больным можно нарисовать в форме ветвящегося дерева: каждый следующий вопрос зависит от ответа на предыдущий. Если у пациента болит горло, надо спросить про температуру. Если хватается за сердце – проверить пульс.
Такие ветвящиеся деревья в мире алгоритмов – проверенный способ искать и находить то, что вам нужно, в огромных множествах. В 2007 году появилась интернет-игра «Акинатор», где ее главный персонаж – одноименный джин – предлагал угадать какого угодно персонажа (реального человека, героя мультфильма, историческую личность) за 15–20 вопросов, на которые можно ответить «да», «нет» или «не знаю». «Ваш персонаж существовал в реальности?» «Ваш персонаж женского пола?» «Ваш персонаж старше сорока лет?» «Ваш персонаж умер?» «У вашего персонажа больше одной головы?»
Каждый правильно заданный вопрос сужает поле вариантов – миллионы имен, упомянутых в кино и книгах, – примерно вдвое, следующий – еще вдвое, пока в итоге, на конце одной из ветвей дерева поиска, не остается один наиболее реальный кандидат. На десятом или двадцатом ходу (как повезет) Акинатор выдает ответ: царь обезьян Хануман, Емельян Пугачев, Человек-Паук. Хотя иногда и промахивается – вместо контрреволюционера и живого монгольского бога барона Унгерна предлагает революционера Григория Котовского.
Дерево решений в голове у врача точно так же позволяет проделать путь от общей ситуации к конкретной гипотезе. Подозрение на инфаркт: надо срочно вызывать скорую. Подозрение на ОРЗ: пусть пациент сидит дома и пьет чай под одеялом.
Все просто, когда правильные вопросы уже известны. Но сначала есть только десятки или сотни признаков в случайном порядке: пульс, давление, температура, диаметр зрачка, бледность кожи, громкость кашля, хрипы в груди или их отсутствие – и вопросы нужно научиться задавать в единственно верной последовательности.
Простой выход из положения: созвать консилиум из многих врачей, пусть даже мегаэрудированного доктора Хауса среди них и нет. Каждый врач знает все про три-четыре случайных симптома и делает все выводы только на их основе. Потом врачи голосуют, и консилиум записывает мнение большинства. Если, скажем, шесть из десяти говорят «везти в больницу» – больного везут в больницу. В машинном обучении это называют «ансамбль случайных деревьев».
Но можно опрашивать врачей и по очереди. Спросили первого про сотню пациентов. Второму предъявляем в основном пациентов, на которых ошибся первый, и уточняем его диагнозы. Третьему – тех, на которых ошибся второй. И так далее. Выглядит все так, как будто по поводу каждого нового больного эти врачи тоже голосуют, но их голоса весят по-разному. Примерно так работает «градиентный бустинг на деревьях» – кажется, самый мощный класс алгоритмов после нейросетей.
В чем его слабость? Он хорошо справляется с десятками и сотнями признаков, но дальше начинает буксовать. Тексты, в которых десятки тысяч разных слов, или картинки, где пикселей миллионы, – неподъемная для него информация. Вся она поддается обработке только в полупереваренном виде, когда текст или картинку кто-то уже превратил в ограниченный набор признаков: «доля красного на картине», «число жирафов на снимке», «длина текста в словах», «как часто в тексте встречаются местоимения». Но как раз со всем этим на порядок лучше обращаются нейронные сети. Они же – глубинное обучение, deep learning.
Логическая многоэтажка: нейросети
Корень «нейро» в названии нейросетей намекает на прототип – нейроны, то есть нервные клетки живого мозга. С точки зрения математики каждый нейрон по отдельности – все та же линейная модель: он получает электрические сигналы от других нейронов, оценивает их (в условных баллах) и выдает суммарную оценку в виде собственного электрического сигнала.
Но один нейрон редко принимает окончательное решение: в мозгу они часто организованы в слои, и ответ будет готов, когда нервный импульс пройдет их все насквозь, от верхних к самым глубоким. Нейроны первого слоя получают «сырые» сигналы – например, они могут быть палочками или колбочками сетчатки, которые реагируют на свет. Каждый нейрон второго слоя будет обрабатывать импульсы от многих клеток первого и сформирует свой электрический импульс, чтобы передать его дальше.
Возвращаясь к «тестам» и «баллам», можно представить себе другую картину: вместо слоев нейронов – этажи офисного здания, где сидят HR-специалисты. И на первом этаже они заставляют людей проходить разные тесты – на IQ, на эмоциональный интеллект и на то, как хорошо кандидат разбирается в покемонах. Каждый тест оценивается в баллах.
Кадровики на втором этаже не видят уже никакой информации о том, как соискатель ответил на какой-нибудь конкретный вопрос. Все, что у них есть, – это набор итоговых оценок за тесты. Например: «IQ высокий, эмпатия низкая, в покемонах не разбирается». Каждый кадровик со второго этажа делает на основании этих признаков свой вывод. Один может решать, годится ли соискатель в уборщики, другой – есть ли у него задатки менеджера. Эти свои соображения они передают на третий этаж, где директор по кадрам на основе признаков вроде «хороший уборщик» или «посредственный менеджер» и секретного списка открытых вакансий принимает окончательное решение – брать или не брать человека на работу.
Нейросети на разных своих «этажах» извлекают признаки разной степени обобщения. Если на входе картинка, то самые первые слои, глядя на отдельные пиксели, будут отвечать на вопрос «есть ли здесь перепад яркости?» или «какой наклон у линии?», более глубокие – на вопрос «есть ли на небольшом участке картинки глаз или ухо?», а самые последние предельно конкретны: «собака на фото – это пудель? или той-терьер?».
C 2012 года, когда благодаря нейросетям случился прорыв в компьютерном зрении, компьютеры лучше человека справляются с ответом на вопрос, кто изображен на фотографии – собака или кошка. А программа AlphaGo (создана в 2015 году) всухую обыгрывает лучших мастеров игры го благодаря нейросетям, которые оценивают расстановку фишек на доске и выбирают оптимальный ход.
Почему бы не доверить нейросетям вообще все? Потому что крупным нужны слишком большие вычислительные мощности: «многоэтажные» алгоритмы требуют более громоздких расчетов, чем «одноэтажные». В ноябре 2016 года Google переключил на нейросети свою систему машинного перевода (и то – сначала для небольшого набора языков), но пользователи нуждаются в переводе текстов все-таки реже, чем обновляют ленту Facebook. А в мае 2017 года в блоге компании Twitter появилась новость, что теперь нейросети участвуют и в ранжировании твитов (то есть решают, какие показывать выше, а какие ниже). Ключевое слово здесь «участвуют»: они по-прежнему берут на себя только часть работы. Поэтому судьбу нашей френд-ленты по-прежнему решает более простая математика.
Стоит ли верить роботам: «исследование» и «эксплуатация»
Если нейросети такие умные, а линейные модели чуть-чуть им уступают в качестве, то почему бы не доверять им больше, чем собственному мозгу, от рождения склонному к ошибкам? Отвечает служба знакомств OkCupid.
Этот сервис, куда ежедневно заходит больше 1 млн человек, запустили еще в 2004 году. «Вы – больше, чем ваше селфи», – сообщает главная страница сайта. Его цель – помочь не тратить время на свидания с людьми, с которыми вам будет не о чем поговорить. Алгоритмы оценивают сходство, сравнивая ответы на вопросы длинной анкеты и, разумеется, историю поведения онлайн: как часто вы отвечаете и кому. Про каждого, с кем вы подумываете сходить на свидание, сообщается, на сколько процентов он вам подходит: на 94 % – идеально, на 30 % – подумайте дважды.
Представьте, что однажды вы видите рядом с чьей-то фотографией «90 %» – и удивляетесь, заглянув к нему в профиль. Допустим, этот кто-то слушает прогрессивного рэпера Икс и все свободное время уделяет занятиям кроссфитом, а сами вы любите романы Джейн Остин, кошек и теплый клетчатый плед. Но роботы со своей математикой решили, что вам непременно надо выпить вместе кофе – так почему бы и нет? И действительно, в кафе вы обнаруживаете, что искусственный интеллект и в самом деле знает про вас что-то такое, и вам стоит присмотреться друг к другу получше. Нейросети – тонкая вещь, за искусственным интеллектом – будущее.
На самом деле вы просто попали в выборку, на которой OkCupid проводил эксперимент. Вскоре после скандала с экспериментом Facebook в блоге OkCupid появилась запись «Да, мы ставим опыты на людях»{98}. Некоторым своим пользователям сервис месяцами подсовывал «плохие пары» (с уровнем совпадения 30 %) под видом «хороших» (90 %). Что удивительно, пользователи довольно охотно поддавались на манипуляцию: чаще вступали в переписку и чаще обменивались телефонами – что, как правило, означало свидание в близком будущем.
Зачем обманывать людей? В машинном обучении есть известная дилемма «исследование – эксплуатация» (exploration/exploitation). «Эксплуатация» – это использовать лучшую информацию из имеющейся. Например, чтобы порекомендовать пользователю партнера, кино или музыку. Но тогда мы не будем знать, например, как пользователи реагируют на совершенно новые фильмы или альбомы, по которым статистика еще не собрана. В каком-то смысле все новое будет худшей рекомендацией, чем проверенное старое, – но если его никому не рекомендовать, мы так и не узнаем, кому оно подходит, а кому нет. Поэтому вторая стратегия, «исследование» – это раздавать некоторые рекомендации наобум и смотреть, кто на что среагирует.
Вторая причина рекомендовать наобум – смотреть, сильно ли отличаются в лучшую сторону умные алгоритмы от попугая, который вынимает клювом из шляпы фокусника бумажку со случайным предсказанием будущего. В таких сравнениях нужна контрольная группа – как при испытаниях лекарств, где половина подопытных обязательно получает таблетку-пустышку. И в качестве рекомендации от сервиса, который разрекламирован как территория сплошного искусственного интеллекта, кто-то неизбежно будет получать советы, вытянутые из шляпы вслепую.
Допустим, «пустышка» – одна рекомендация искусственного интеллекта из ста. Тогда, может быть, все не так и страшно? Логика обычно другая: если не повезет, то конкретно вы будете получать 100 % вредных советов. Или читать у себя в ленте 100 % записей друзей, отобранных экспериментаторами с умыслом. В том же блоге OkCupid можно найти статью с малопонятным техническим названием «Недостатки A/B-тестирования в соцсетях»{99}, где объясняют: если пользователь оказался внутри эксперимента, проще всего его оттуда не выпускать, по крайней мере временно. И вот почему. Предположим, что сервис интересует реакция на два разных дизайна страницы – один, например, в красных тонах, другой – в синих. Если человек будет по очереди видеть у себя на экране то одно, то другое, то необъяснимая смена синего на красный введет его в ступор. Поэтому лучше сделать так, чтобы одни видели только синий сайт, а другие только красный. Ясно, что такой подход годится не только для экспериментов с дизайном.
В отличие от эксперимента Facebook, в случае OkCupid речь идет уже не об испорченном настроении на ближайшие пару дней. Свидание может иметь последствия длиной в десять, двадцать и даже тридцать лет – и на совести авторов эксперимента наверняка какое-то количество несостоявшихся свадеб людей, которые друг другу подходят, и несчастливых отношений среди тех, кого искусственный интеллект убедил, что они идеальная пара друг другу.
Плохо, если вас подводят алгоритмы сайта знакомств, но гораздо хуже, когда такой алгоритм определяет все ваши жизненные перспективы. Правительство Китая несколько лет назад запланировало запустить к 2020-му «систему социального кредита» на основе машинного обучения, которая вычисляет для каждого гражданина страны специальный рейтинг{100}. Если он низкий, человеку запросто могут не продать билет на самолет и не выдать велосипед без залога. Совершенно неясно, какие конкретно алгоритмы будут за это отвечать – нейросети, линейные модели или решающие деревья, – но все их недостатки до 2020 года совершенно точно никуда не денутся. Пилотный проект уже работает в нескольких десятках городов.
С точки зрения разработчиков, было бы неразумно обойтись в такой сложной системе без контрольной группы хотя бы в 1 %. При населении страны в 1,4 млрд это будет примерно 14 млн человек, пораженных в правах по неизвестной для них причине.
Что с алгоритмами не так в целом
Кэти О’Нил защитила диссертацию по математике в Гарварде и много лет преподавала аспирантам алгебраическую теорию чисел (область математики, выросшую когда-то из попыток доказать Великую теорему Ферма). Но в нулевые лучших математиков стали переманивать из университетов финансисты – им нужны были математические модели, предсказывающие поведение рынка. Представители новой профессии стали называть себя «кванты» (квантовая механика здесь ни при чем: слово quant – сокращение от термина quantitative analyst, «количественный аналитик»). И университетская преподавательница ушла работать в хедж-фонд на Уолл-стрит.
А потом случился финансовый кризис 2008 года, одной из причин которого называли как раз работу «квантов» – прежде всего, модели, которые слишком оптимистично оценивали риск, что кто-нибудь не расплатится с долгами. В следующем году жюри конкурса World Press Photo объявило «фотографией года» черно-белый снимок фотожурналиста Энтони Сво: полицейский с пистолетом осматривает дом, откуда только что выставили семью, не справившуюся со своими ипотечными платежами.
Обнаружив, что ее работа с числами привела к появлению новых бездомных, О’Нил уволилась из хедж-фонда и села писать книгу «Оружие математического поражения» – про то, как алгоритмы из лучших соображений портят людям жизнь. Книга вышла в 2016-м и сразу попала в длинный список Национальной книжной премии США{101}.
Кто будет сомневаться в пользе алгоритма, который помогает предотвращать преступления? У полиции есть многолетняя статистика убийств, грабежей и наркоторговли – а нейросеть на основе этой статистики решает, когда и в какие районы города стоит перебросить больше полицейских патрулей. Анализ данных доказывает, что прогнозы программы сбываются: в проблемных районах, на которые указал искусственный интеллект, в итоге действительно ловят больше нарушителей.
Что здесь не так? К примеру, часто такие алгоритмы ведут себя как расисты. Ясно, что расу потенциальных преступников в США никто не станет использовать как явный фактор математической модели, но алгоритмы настойчиво ведут полицейских в «черные» кварталы. Кэти О’Нил предлагает представить себе патруль, который выехал на дежурство и третий час кружит по району. Если ему попадется подросток с пивом, спрятанным в бумажном пакете, – его, скорее всего, задержат (хотя никакая патрульная машина не выехала бы специально по вызову «мы подозреваем, что тут подросток на улице пьет пиво»). В сводке о правонарушениях появится новая запись, и алгоритм будет иметь больше оснований считать район криминогенным. В таких районах будет больше арестов за преступления без жертв (такие как распитие пива на улице или марихуана в кармане). Для самих же правонарушителей, у которых в личном деле появляются записи об аресте, перспективы найти работу и зажить спокойной благополучной жизнью падают, а шансы стать преступниками в условиях сузившегося выбора, наоборот, возрастают. Потому что для окружающих они теперь подростки, у которых проблемы с полицией. У их белых сверстников, которые точно так же пьют пиво, спрятанное в бумажные пакеты, или курят марихуану в благополучном, по мнению алгоритма, районе, риск быть задержанными намного ниже. Физики называют такой эффект «петлей положительной обратной связи», а социологии – «самосбывающимися прогнозами».
Математическим моделям доверяют оценивать людей, не только когда речь идет о преступлениях. Их используют банки для оценки вашей платежеспособности, университеты при отборе абитуриентов и американское министерство образования при анализе работы учителей.
И если алгоритмы приемной комиссии Гарварда отбракуют 5 % соискателей, которые на самом деле заслуживают там учиться, нет простого механизма обратной связи, который мгновенно продемонстрирует этому университету, каких гениев он упустил.
Во всех этих случаях способов понять, что модель систематически промахивается, рассуждает О’Нил, нет – и пока система, работающая на основе машинных прогнозов, в целом справляется, нет поводов менять алгоритмы. Особенно пока (и если) компания, которая использует алгоритмы, воспринимает термин «искусственный интеллект» всерьез. Это тот случай, когда выбор слов определяет отношение к технологии. «Алгоритмы» и «машинное обучение» – просто способы превращать одни цифры в другие, таких способов может быть много, и алгоритмы естественно улучшать. А вот «искусственный интеллект» обозначает какую-то загадочную разумную силу, про которую естественно думать, что она заведомо разбирается в предмете лучше нас. Чем дальше заказчики математических моделей от математики – тем естественней ждать, что они будут относиться к каким-нибудь решающим деревьям именно так, с благоговением, а ставить под сомнение их рекомендации не будут.
Без алгоритмов машинного обучения все эти проблемы исчезнут. Но только потому, что не станет ни сайтов знакомств, ни соцсетей, ни рекомендательных сервисов, которые, не исключено, показали вам эту книгу.
Краткое содержание главы 10
1. По анкетным данным пассажира «Титаника» – пол, возраст, класс каюты, сколько стоил билет, сколько членов семьи было с ним на борту – можно с 80 %-ной точностью предсказать, выжил он или погиб при кораблекрушении.
2. Машинное обучение – это способ свести задачу про «Титаник» или вопрос, показывать ли вам запись друга в ленте Facebook, к универсальной математической процедуре. На входе – характеристики пассажира или записи в цифрах, на выходе – односложный ответ: «выживет – не выживет», «показывать – не показывать».
3. Нейросети – самый модный, но не единственный и даже не самый популярный на практике пример таких алгоритмов. У каждого семейства таких алгоритмов свои недостатки, которые мешают им правильно реагировать, например, на иронию или скрытые цитаты – и Facebook без повода блокирует вас на неделю.
4. Чтобы алгоритмы хорошо обучались, им необходим «режим исследования», когда искусственный интеллект дает пользователю случайные или даже вредные советы. Сайт знакомств OkCupid признался, что в этом режиме намеренно предлагал людям неподходящих партнеров.
5. Есть риск, что соцсеть определит вас в небольшую «контрольную группу» пользователей, которая получает неудачные рекомендации (или видит френдленту без самых важных записей друзей) из раза в раз.
6. Эффект под названием «петля положительной обратной связи» ухудшает реальную жизнь, когда машинное обучение берут на вооружение чиновники. Например, у американских подростков, которых алгоритм маркирует как неблагополучных, вырастает шанс стать преступниками.
7. И именно такие, несовершенные, алгоритмы – то, без чего все привычные нам способы отличить правду от неправды, найти единомышленников и поделиться этим знанием с ними перестанут работать.