Градиентный бустинг: машинное обучение, которое уже работает в продакшне
Почему ансамблевые методы - случайные леса и градиентный бустинг - стали первым реальным ML для бизнеса, и как об этом думать руководителю.
В разговорах о машинном обучении часто звучат нейросети и глубокое обучение. Это понятно - это захватывающие истории про распознавание изображений и перевод текста. Но если смотреть на то, что реально работает в компаниях прямо сейчас, в 2015 году, картина другая.
Большинство задач, которые бизнес решает с помощью ML сегодня - прогноз оттока клиентов, скоринг, приоритизация заявок, прогноз спроса - решаются ансамблевыми методами: случайными лесами и градиентным бустингом. Именно они, а не нейросети, составляют рабочую лошадку практического машинного обучения.
Почему эти методы работают
Ансамблевые методы строят много простых моделей и объединяют их результат. Случайный лес строит много деревьев решений на случайных подвыборках данных и усредняет ответы. Градиентный бустинг строит деревья последовательно, каждое следующее исправляет ошибки предыдущего.
Для бизнес-данных это работает хорошо по нескольким причинам. Такие методы устойчивы к выбросам и пропускам в данных. Они не требуют нормализации и специальной предобработки признаков. Они хорошо обобщают даже на относительно небольших выборках. Результат их работы можно проверить и объяснить - важно для задач, где решение нужно обосновать.
Нейросети мощнее - но они требуют значительно больше данных, вычислений и времени на настройку. Для большинства бизнес-задач в 2015 году ансамблевые методы дают 90% результата при значительно меньших затратах.
Какие задачи подходят
Есть несколько классов задач, где градиентный бустинг уже сегодня даёт измеримый результат.
Предсказание событий - отток клиентов, дефолт по займу, вероятность покупки. Задача формулируется просто: у нас есть исторические данные о клиентах и о том, что с ними произошло. Мы хотим предсказать, что произойдёт с новым клиентом.
Ранжирование - приоритизация лидов для отдела продаж, сортировка заявок по вероятности успешного закрытия. Здесь модель учится расставлять объекты по порядку, а не просто классифицировать.
Прогноз числовых значений - спрос на следующий период, оценка стоимости, прогноз загрузки. Это задача регрессии, и ансамблевые методы здесь тоже устойчиво работают.
Что стоит между идеей и работающей моделью
Самое распространённое заблуждение - что ML-проект начинается с выбора алгоритма. На практике алгоритм занимает меньшую часть времени. Основное время уходит на другое.
Сбор и разметка данных. Нужен исторический набор примеров с известным исходом. Если таких данных нет или они не хранились в подходящем виде - это первая задача.
Проектирование признаков. Алгоритм работает с числами. Перевод бизнес-данных в числовые признаки, выбор того, что важно, удаление лишнего - это отдельная работа, которая часто требует понимания бизнес-контекста.
Оценка и валидация. Насколько хороша модель? Как мы это измеряем? Какова цена ошибки в конкретном контексте - ложное срабатывание или пропуск события? Эти вопросы нужно решить до начала обучения.
Встраивание в процесс. Модель, которая работает в Jupyter-ноутбуке аналитика, ещё не работает в бизнесе. Нужно решить, как она получает данные, как выдаёт результат, кто смотрит на её качество через три месяца.
Вопросы для проверки готовности
Если в компании рассматривают ML-проект для конкретной задачи, я рекомендую сначала ответить на несколько вопросов:
- Есть ли исторические данные с известным исходом - хотя бы за год?
- Кто будет использовать результат модели и как именно - что изменится в работе этого человека?
- Как мы будем знать, что модель работает хорошо? Какая метрика качества соответствует бизнес-задаче?
- Что произойдёт, если модель ошибётся? Насколько критична ошибка каждого типа?
- Кто будет владельцем модели через полгода - кто следит за качеством и переобучает при необходимости?
Если на эти вопросы есть ответы, разговор о выборе метода имеет смысл. Если нет - начинать нужно с них.