На сегодняшний день прогнозную аналитику и машинное обучение рассматривают в качестве этакой комбинированной палочки-выручалочки для большинства организаций. Попробуем снять завесу таинственности с обоих инструментов, разобравшись в их сути, принципах работы и основном назначении.

Прогнозная аналитика и машинное обучение, вне зависимости от того, работают ли они в связке или по отдельности, могут стать рецептом успеха компании. Но для того, чтобы выяснить, каким образом они могут поспособствовать процветанию бизнеса, важно понимать принципы их работы.

Так что же собой представляет прогнозная аналитика? Эксперт компании Datafloq Марк ван Райменам проводит аналогию с автомобилем, согласно которой традиционная, описательная аналитика подобна наблюдению за происходящими событиями через зеркало заднего вида, прогнозная аналитика пользуется системой навигации, чтобы сообщить вам о предстоящих событиях, а предписывающая аналитика аналогична самоходному автомобилю, который сам в курсе, как доставить вас в нужный пункт назначения.

Эта метафора, несмотря на свою понятность, также может ввести в заблуждение своей простотой. Определенно, ее можно истолковать разными способами, поэтому она служит неплохой отправной точкой для дискуссии. Некоторые скажут, что у системы навигации предположительно есть доступ ко всем данным о потенциальных маршрутах движения. Стало быть, можно ли считать расчет маршрута по этим данным настоящим прогнозом? Разве это не алгоритмический, детерминистический процесс, который, следовательно, нельзя считать по-настоящему «интеллектуальным»? Или, может быть, дело в определении, в семантическом значении?

Все зависит от того, что подразумевается под системой навигации и как она работает. Обычно система навигации не пытается предсказать, куда вы сегодня хотите поехать. Вместо этого она ожидает от вас конкретных инструкций, а затем вычисляет, как попасть из пункта А (либо заданного явно в качестве отправной точки, либо рассчитанного на базе текущих координат GPS) в пункт Б.

Рассмотрим другой пример: туриникеты выхода на посадку (Boarding Gate Reader, BGR) в самолет. BGR способны определять, имеет ли конкретный человек право находиться в определенной части аэропорта в заданный момент времени. Для людей, далеких от технологий, принцип работы этих устройств так же загадочен, как и в случае с системами навигации: каким образом система «знает», что нужно делать, и какой ответ или действие будут правильными?

Для технарей же объяснить оба примера не составляет особого труда: имеется некая база данных со всей информацией (улицами и расстояниями, списками пассажиров), существует некий алгоритм, определяющий результат по заданным входным данным (кратчайший путь от А до Б или присутствие пассажира X в списке на рейс Y), наконец, есть способ передачи информации, соединяющий систему с внешним миром (координаты GPS, считыватель штрихкодов). Фактически ни в одной из двух систем не происходит прогнозирования.

Если посмотреть на них через такую призму, можно найти в этих системах отличия по особенностям реализации и сложности алгоритмов и данных, но фундаментальных отличий у них не много. И все-таки несмотря на то, что единицы технических специалистов отнесут BGR к категории прогнозных систем, предположительно найдутся те, кто сделает это в отношении систем навигации. Можно ли считать отличительным признаком тот факт, что BGR возвращают ответ в двоичной форме (дать/запретить доступ), а навигатор предлагает набор конкретных инструкций?

Машинное обучение — фактор успеха?

Чтобы ответить на этот вопрос, рассмотрим другой пример: выявление вредоносного кода. Как поясняет Алексей Маланов из «Лаборатории Касперского», раньше эта задача выполнялась с помощью довольно однозначных алгоритмов и правил. В какой-то момент область поиска (т. е. количество потенциального вредоносного кода, который нужно выявить) настолько разрослась и ускорила свое расширение, что стало очень трудно формулировать правила, описывающие ее во всей полноте, и при этом поддерживать их в актуальном состоянии. Так появилось машинное обучение (Machine Learning, ML).

Маланов демонстрирует, каким образом с помощью ML можно намного эффективнее решать ту же самую задачу — а именно, обнаруживать вредоносный код. По сути, принцип действия состоит в использовании алгоритма, применяющего эвристические правила на основе метрики (в данном случае, частоте появления символьных последовательностей) в сочетании с заранее подобранным набором данных для обучения алгоритма. Процесс здесь совершено другой, по ходу дела всплывает множество глюков, но конечный результат, по сути, тот же самый: способность возвращать двоичный результат (вирус/не вирус) в ответ на входные данные.

Так разве навигатор особо отличается от этой схемы? В этих двух примерах есть некоторое сходство: в обоих присутствует большая область поиска, к тому же разработка алгоритмов, способных описать ее во всей полноте, представляет собой крайне сложную задачу. Приведенный Малановым пример показывает, каким образом ML-алгоритм работает в качестве функции, классифицирующей входные данные и преобразующей их в двоичный выходной результат. Но тот же принцип можно распространить и на недвоичный выходной результат, например, выбор маршрута для следования из пункта А в пункт Б.

На самом деле здесь речь идет о задаче оптимизации. Оптимальным решением задачи поиска маршрута между пунктами А и Б будет движение по прямой от одной точки к другой. Однако это невозможно, так как существует ограниченный набор маршрутов, предлагающих беспрепятственный доступ из пункта А в пункт Б. В качестве одного из подходов к этой проблеме можно сформулировать набор правил, определяющих возможные и невозможные действия при вождении автомобиля, а затем использовать базу данных навигатора в сочетании с этими правилами, чтобы найти один или несколько оптимальных маршрутов поездки.

С точки зрения ML эта задача решается следующим образом: нужно получить данные о маршрутах, по которым люди добираются из А в Б, и на их основе обучить алгоритм. В этом случае у одного и того же маршрута может быть множество вариаций, поэтому простого ответа «да/нет» будет недостаточно. Но этот же самый принцип можно применить для того, чтобы рассортировать входные данные по категориям, предполагающим более двух потенциальных вариантов ответа — в терминологии ML такой подход называется многоклассовой классификацией. В упрощенном виде такая классификация потенциальных маршрутов предполагает категории вроде «невозможно», «плохо», «хорошо» и «идеально».

Трудно делать прогнозы, особенно о будущем

Однако давайте допустим, что большинство навигаторов не используют в работе ML, по крайней мере, эта функция не является ключевой. Маланов вскользь объясняет некоторые причины, по которым ML нельзя считать панацеей: ложноположительные результаты, действие в обход модели, обновление модели. Хотя эти причины вполне уважительные, они вовсе не обязательно представляют собой самые серьезные недостатки применения ML. На сегодняшний момент, похоже, существует весьма расхожее неверное представление об ML, как о некоем готовом, автоматически работающем решении — только успевай скармливать ему нужные данные. Но, как сформулировал Орен Этсиони, директор Института Пола Аллена по изучению искусственного интеллекта (сокращенно AI2), «машинное обучение на 99% состоит из работы человека».

Вклад человека требуется для поиска, проектирования, выбора и комбинирования нужных алгоритмов для выполнения текущих задач; для поиска и надлежащей категоризации наборов данных, по которым обучаются алгоритмы; для тонкой настройки системных параметров и т. д. Но, что не менее важно, существуют задачи, для решения которых ML подходит превосходно, есть другие задачи, для которых оно плохо предназначено, и третьи, для решения которых его нужно комбинировать с другими методиками.

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

Тем не менее, еще важнее тот факт, что в реальном мире, при решении злободневных проблем даже самые оптимальные комбинации наборов данных, параметров и моделей не могут гарантировать точных прогнозов. Недавно мы могли убедиться в провале попыток предсказать результаты выборов с того самого дня, как их начали предпринимать. Еще один широко известный пример — прогноз на Forex: несмотря на то, что в данном случае определяющим параметров являются решения центробанков, которые наверняка закладываются в любую модель, они зависят от факторов, настолько сложных качественно и количественно, что их практически невозможно спрогнозировать, не обладая инсайдерской информацией, что недавно было наглядно показано в случае со швейцарским франком.

Не ко всякой задаче можно применить машинное обучение

Но можно ли считать применение ML действительно оптимальным решением задачи нахождения маршрута? Зачем возиться с поиском данных и натаскиванием алгоритма, чтобы запрограммировать порядок действий в такой понятной сфере знаний, которую легко свести к набору правил, функционирующих независимо от наличия данных о поведении других пользователей, избежав таким образом проблему холодного старта (в системе, где отсутствуют начальные данные)?

А что же насчет BGR? Пункты BGR безнадежно детерминистские: они дают односложный ответ со 100%-ной точностью при условии, что все элементы системы работают исправно. И в данном конкретном случае это хорошо. Можно было бы придумать BGR на основе ML, который бы учитывал самые разные качества прошлых пассажиров при составлении «прогноза» касательно прав каждого нового пассажира пройти на посадку. Но нужно ли нам это на самом-то деле?

Зачем это делать, если заданные требования предполагают простую базу данных и пару простых процедурных правил, не требующих никакого обучения и классификации? Да и какого рода свойства можно было бы использовать при классификации проходящих пассажиров? Возраст, вес, зарплата, этническая принадлежность, форма черепа? В подобном духе ML уже применяли для задач вроде деления людей на определенные группы на основании их черт лица, что вызвало масштабную волну критики и воскресило в памяти идеи френологии, популярные в XIX веке.

Примеров предвзятости и неудач алгоритмов хоть отбавляй, однако даже если не доводить ML до крайностей, оно не будет работать само по себе. ML представляет собой неплохой способ выявления закономерностей и потенциальных зависимостей в данных, которые могут быть весьма полезны людям. Например, оно может помочь обнаружить распространенные ошибки правописания, закономерности в противоречивых данных и даже взаимосвязь между данными, что в дальнейшем может послужить основой для категоризации, организации схем и создания онтологий. Но при всей своей полезности ни одна из этих функцией не является определением искусственного интеллекта (ИИ).

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