Манн, Иванов и Фербер

Научно-популярные книгоиздатели

«Десять уравнений, которые правят миром»

Сегодня мы генерируем больше данных, чем когда бы то ни было. Этим успешно пользуются люди, которые умеют работать с данными и строить математические модели. В книге «Десять уравнений, которые правят миром. И как их можете использовать вы» (издательство «Манн, Иванов и Фербер»), переведенной на русский язык Евгением Поникаровым, доктор математических наук Дэвид Самптер рассказывает, как прикладная математика применяется для управления процессами и принятия решений в финансах, рекламе, социальных сетях, науке и индустрии спорта. Предлагаем вам ознакомиться с фрагментом, посвященным математике, которая лежит в основе машинного обучения.


Уравнение обучения

Вероятно, вы слышали, что в технологиях будущего станет доминировать искусственный интеллект (ИИ). Ученые уже натренировали компьютеры побеждать в го, а сейчас испытывают беспилотные автомобили. Да, я объясняю некоторое количество уравнений в этой книге, но не забыл ли я что-нибудь? Не стоит ли мне также рассказать вам секреты, стоящие за ИИ, который используют Google и Facebook*? Не следует ли мне объяснить, каким образом мы можем заставить компьютеры учиться так же, как мы сами?

*В октябре 2021 года переименована в Meta. — прим. N + 1

Я открою вам секрет, который не совсем соответствует содержанию фильмов «Она» или «Из машины»1. Он также не увязывается с опасениями Стивена Хокинга или шумихой Илона Маска. Тони Старк, вымышленный супергерой — Железный человек из комиксов Marvel, — не обрадовался бы тому, что я скажу: искусственный интеллект в его современной форме не больше (и не меньше) чем десять уравнений, которые инженеры используют совместно и творчески. Но прежде чем я объясню, как работает ИИ, сделаем рекламную паузу.

1В фильмах Спайка Джонза Her («Она») и Алекса Гарленда Ex machina («Из машины») речь идет об искусственном интеллекте.

*

Примерно во времена песни Gangnam Style у YouTube возникла одна проблема. Шел 2012 год; хотя сотни миллионов людей щелкали по видеороликам и посещали этот сайт, они не оставались там надолго. Новые ролики вроде «Чарли укусил меня за палец», «Двойная радуга», «Что говорит эта лиса?» или Ice Bucket Challenge удерживали их внимание всего на тридцать секунд, а дальше они снова возвращались к телевизору или к другим занятиям. Чтобы получать доход от рекламы, YouTube должен был стать местом, где пользователи будут зависать.

Значительную часть проблемы представлял алгоритм сайта. Он использовал систему рекомендации видео, основанную на уравнении рекламы из главы 7. Для роликов, которые смотрели и отмечали лайками пользователи, строилась корреляционная матрица. Однако этот метод не учитывал, что молодежь хотела смотреть самые свежие видео, и не уточнял, насколько интересен пользователям ролик. Он просто показывал видео, которые смотрели другие. В результате в списках рекомендуемых продолжала появляться норвежская армия, исполняющая Harlem Shake, а пользователи с сайта уходили.

Владельцы YouTube обратились к специалистам Google: «Эй, Google, как помочь детям найти те видеоролики, которые им нравятся?» — спросили (наверное) они. Три разработчика, получившие эту задачу, — Пол Ковингтон, Джей Адамс и Эмре Саргин — вскоре поняли, что самый важный критерий для оптимизации YouTube — время просмотра. Если бы сайт мог заставить пользователей смотреть как можно больше роликов как можно дольше, то легче было бы вставлять рекламу через регулярные промежутки времени и зарабатывать больше денег. При этом короткие свежие ролики были не так важны, как целые каналы, обеспечивающие постоянное появление свежего и длительного контента. Задача состояла в том, чтобы найти способ выявить этот контент на платформе, где каждую секунду загружаются часы видеороликов.

Ответ разработчиков имел форму воронки. Это приложение брало сотни миллионов видеороликов и сводило их примерно к десятку рекомендаций, представленных сбоку на странице сайта. Каждый пользователь получал собственную персонифицированную воронку с роликами, которые, возможно, он захочет посмотреть.

«Воронка» — нейронная сеть, которая изучает наши предпочтения при просмотре. Такие сети лучше всего представлять в виде столбца входных нейронов слева и выходных справа. Между ними находятся слои соединительных нейронов, известных как скрытые (см. рис. 9). В сети могут быть десятки или даже сотни тысяч нейронов. Она не реальна в физическом смысле: это компьютерные коды, которые моделируют взаимодействие нейронов. Однако аналогия с мозгом полезна, потому что именно прочность связей между нейронами позволяет их сетям изучать наши предпочтения.

Каждый нейрон кодирует определенные аспекты того, как сеть реагирует на входные данные. В «Воронке» нейроны фиксируют взаимосвязи между разными элементами контента и каналов YouTube. Например, люди, которые смотрят правого комментатора Бена Шапиро, также склонны смотреть и видео Джордана Питерсона. Я знаю это, потому что после завершения своего исследования для главы 3 об уравнении уверенности YouTube с маниакальным упорством подсовывает мне ролики Шапиро. Где-то внутри «Воронки» есть нейрон, который представляет связь между этими двумя иконками «Темной сети интеллектуалов». Когда он получает входной сигнал, что я заинтересовался роликом Питерсона, то дает на выходе вывод, что меня могут интересовать и ролики Шапиро.

Мы можем понять, как «обучаются» искусственные нейроны, узнав, как формируются связи внутри сети. Нейроны кодируют отношения в виде параметров — регулируемых величин, которые измеряют прочность отношений. Рассмотрим нейрон, отвечающий за определение того, сколько пользователей будут тратить время на просмотр выступления Бена Шапиро. Внутри этого нейрона имеется параметр θ, который соотносит время, потраченное на видео Шапиро, с количеством просмотренных роликов с Джорданом Питерсоном. Например, мы можем спрогнозировать, что количество минут, которое пользователь тратит на видео Шапиро (обозначим его yθ), равно θ, умноженному на количество просмотренных роликов Питерсона. Скажем, если θ = 0,2, то прогнозируется, что человек, просмотревший десять роликов Питерсона, потратит yθ = 0,2 ∙ 10 = 2 минуты на видео Шапиро. Если θ = 2, то прогнозируется, что тот же человек потратит yθ = 2 ∙ 10 = 20 минут на Шапиро, и т. д. Процесс обучения включает корректировку параметра θ для улучшения прогнозов для времени просмотра.

Предположим, первоначальное значение нейрона θ = 0,2. Здесь появляюсь я, который видел 10 выступлений Питерсона и трачу на просмотр Шапиро y = 5 минут. Квадрат разности между прогнозом (yθ) и реальностью (y) составляет:

(y – yθ)2 = (5 – 2)2 = 32 = 9.

Мы уже видели идею квадрата разности — в главе 3, когда измеряли стандартное отклонение. Вычислив (y – yθ)2, получаем меру того, насколько хороши (или плохи) прогнозы нейронной сети. Расхождение между прогнозом и реальностью равно 9, так что, похоже, предсказание не особо хорошее.

Чтобы чему-то научиться, искусственный нейрон должен знать, что он делал неправильно, когда прогнозировал, что я буду смотреть только две минуты. Поскольку прочностью связи между количеством видеороликов Питерсона и типичным временем, которое пользователь тратит на просмотр Шапиро, управляет параметр θ, его увеличение также увеличит и предсказанное время yθ. Поэтому, например, если мы возьмем для θ небольшое увеличение dθ = 0,1, то получим yθ+dθ = (θ + dθ) ∙ 10 = (0,2 + 0,1) ∙ 10 = 3 минуты. Такой прогноз будет ближе к реальности:

(y – yθ+dθ)2 = (5 – 3)2 = 22 = 4.

Именно это улучшение и использует уравнение 9 — уравнение обучения2.

2Снова отметим, что это выражение формально уравнением не является.

Это выражение говорит, что мы рассматриваем, как маленькое изменение dθ увеличивает или уменьшает квадрат расстояния (y – yθ+dθ)2. Конкретно в нашем примере получаем:

Поскольку эта величина положительна, увеличение θ улучшает качество прогноза — и расстояние между ним и реальностью уменьшается.

Математическая величина, задаваемая уравнением 9, известна как производная по θ или градиент3. Она измеряет, приближает или отдаляет ли нас изменение θ от хорошего прогноза. Процесс медленной корректировки θ на основании производной часто называют градиентным подъемом4, что вызывает в мозге образ человека, движущегося по крутому уклону холма. Следуя по градиенту, мы можем медленно улучшать точность искусственного нейрона (см. рис. 9).

3Градиент — векторная величина, показывающая направление наибольшего возрастания исходной числовой величины.

4Либо градиентным спуском, если нам нужен минимум (в этом случае мы двигаемся по антиградиенту).

«Воронка» работает не только с одним нейроном, а сразу со всеми. Первоначально все параметры принимают случайные значения, и нейронная сеть делает очень плохие прогнозы о времени, которое люди потратят на просмотр видео. Затем инженеры начинают подавать на входные нейроны (широкий конец «Воронки») данные о просмотре роликов пользователями YouTube. Небольшое число выходных нейронов (узкий конец «Воронки») измеряет, насколько хорошо нейронная сеть предсказывает продолжительность просмотра роликов. Сначала ошибки в прогнозах очень велики. При применении метода обратного распространения ошибки отклонения, измеренные на узком конце, передаются обратно по слоям «Воронки». Каждый нейрон измеряет градиент и улучшает параметры. Медленно, но верно нейроны поднимаются по градиенту, и прогнозы постепенно улучшаются. Чем больше данных от пользователя YouTube подается в сеть, тем лучше будет прогноз.

Нейрон из моего примера, занимающийся отношением Шапиро/Питерсон, не нужно изначально кодировать в сети. Сила нейронных сетей в том, что нам не нужно сообщать им, какие отношения искать в данных: сеть сама находит эти взаимоотношения в процессе градиентного подъема. Поскольку связь Шапиро/Питерсон прогнозирует время просмотра, в итоге один или несколько нейронов начнут использовать эту связь. Они будут тесно взаимодействовать с другими нейронами, связанными с другими авторитетами «Темной сети интеллектуалов» и даже с более правыми идеологиями. Это создает статистически корректное представление типа человека, который, вероятно, смотрит видеоролики Джордана Питерсона.

Уравнение 9 — основа методов, известных как машинное обучение. Постепенное улучшение параметров с помощью градиентного подъема можно рассматривать как процесс «обучения»: нейронная сеть («машина») постепенно «учится» делать всё лучшие прогнозы. Если предоставить ей достаточно данных (а у YouTube их навалом), нейронная сеть изучает закономерности внутри этих данных. Как только она «обучилась», «Воронка» может спрогнозировать, сколько времени пользователь YouTube проведет за просмотром видеороликов. Платформа воплотила эту методику в жизнь. Она берет видеоролики с самым большим прогнозируемым временем просмотра и ставит их в рекомендательные списки для пользователей. Если человек не выбрал новое видео, YouTube автоматически воспроизводит тот ролик, который, по его мнению, понравится пользователю больше всего.

Успех «Воронки» был ошеломительным. В 2015 году время, потраченное на просмотр в YouTube пользователями в возрасте от 18 до 49 лет, возросло на 74 процента. К 2019 году число просмотров выросло в 20 раз по сравнению с моментом, когда специалисты Google начали свой проект, причем 70 процентов из них берутся из рекомендованных видео. Дуг Коэн, специалист по данным из Snapchat, был восхищен этим решением. «Google решил за нас проблему разведки и эксплуатации», — сказал он мне. Вместо того чтобы бродить по разным сайтам и пытаться найти лучшие видео или ждать, пока вам кто-нибудь пришлет интересную ссылку, теперь вы можете часами сидеть в YouTube, выбирая либо «Следующее» видео, либо один из десятка предлагаемых альтернативных вариантов.

Если вы считаете, что ведете на YouTube разведку по своим интересам, а обнаруживаете, что смотрите предлагаемые видеоролики, то, к сожалению, заблуждаетесь. «Воронка» превратила YouTube в подобие телевидения, только программу составляет искусственный интеллект. И многие приклеиваются к этому экрану.


Подробнее читайте:
Самптер, Дэвид. Десять уравнений, которые правят миром. И как их можете использовать вы / Дэвид Самптер ; пер. с англ. Евгения Поникарова. — Москва: Манн, Иванов и Фербер, 2022. — 288 с. — (Принятие решений).

Ранее в этом блоге

Нашли опечатку? Выделите фрагмент и нажмите Ctrl+Enter.