Почему подготовка признаков всё ещё важна в эпоху глубокого обучения
Глубокое обучение автоматизирует извлечение признаков - но не отменяет необходимость думать о том, какие данные вы подаёте на вход модели.
Один из популярных нарративов про глубокое обучение звучит так: нейросети сами находят признаки в данных, поэтому ручной feature engineering уходит в прошлое. Просто дайте модели сырые данные и достаточно примеров.
Для части задач - компьютерное зрение, обработка текстов - это действительно изменило подход. Но для большинства прикладных задач, с которыми работают компании, история другая.
Где автоматическое извлечение признаков работает
Глубокие нейросети хорошо справляются с задачами, где входные данные имеют богатую структуру, которую сложно сформулировать правилами: изображения, аудио, текст. Там, где "признак" - это абстракция высокого уровня над пикселями или токенами, и где есть достаточно данных для обучения.
В этих доменах модель действительно учится строить иерархические представления из сырых входных данных.
Где ручная подготовка признаков по-прежнему важна
Большинство прикладных задач в бизнесе - это не изображения и не текст. Это таблицы: транзакции, события, временные ряды, CRM-данные.
Для табличных данных глубокие сети не показывают систематического преимущества перед более простыми методами - градиентным бустингом, например. А хорошо подготовленные признаки остаются ключевым фактором качества.
Что значит "хорошо подготовленные признаки" на практике:
- агрегации за разные периоды времени: активность за последние 7 дней, 30 дней, 90 дней;
- разности и темпы изменений: как изменился показатель по сравнению с предыдущим периодом;
- признаки из временных паттернов: день недели, сезонность, время с последнего события;
- кросс-признаки: взаимодействие между переменными, которое не очевидно по отдельности.
Эти признаки не "выучиваются" автоматически. Их создают люди, которые понимают предметную область.
Что важнее модели
Я регулярно наблюдаю ситуацию: команда тратит время на подбор архитектуры модели, в то время как значительный прирост качества можно получить от лучшей подготовки данных и продуманных признаков.
Хороший признак, основанный на понимании бизнес-процесса, часто даёт больше, чем переход от одной модели к другой. Особенно когда данных немного - а в большинстве реальных задач их именно немного.
Это не означает, что модель не важна. Это означает, что качество входных данных и признаков - часто более высокоприоритетный рычаг.
Где искать улучшения
Несколько вопросов, которые помогают найти нереализованный потенциал в признаках:
- Есть ли в бизнес-процессе временные паттерны, которые сейчас не представлены в признаках?
- Используем ли мы только "моментальные снимки" или также историю изменений?
- Есть ли признаки, которые понятны экспертам в предметной области, но которых нет в модели?
- Правильно ли обрабатываются пропуски - или они просто заполняются средним?
- Проверяли ли мы, насколько каждый признак действительно влияет на результат?
Автоматическое обучение представлений - реальное достижение. Но думать о том, какие данные идут на вход, никто не отменял.