Получи случайную криптовалюту за регистрацию!

Что вы выберете для табличных данных: бустинг или MLP? Боль | ПДС

Что вы выберете для табличных данных: бустинг или MLP?

Большой пласт задач машинного обучения на практике - задачи на табличных данных, которые чаще всего решаются при помощи градиентного бустинга. Стандартная для табличных данных MLP-архитектура обычно имеет хуже качество и требует больше ресурсов для обучения и тюнинга.
Можно ли применять глубокое обучение более эффективно?

Yandex Research активно занимается исследованиями в этой области. ИМХО, лучшие статьи на эту тему, прошедшие на NeurIPS c 90+ цитированиями:
[1] - Revisiting Deep Learning Models for Tabular Data, 2021
[2] - On Embeddings for Numerical Features in Tabular Deep Learning, 2022

Сетки рвут бустинг несмотря на то, что работы фокусируются на изначально сложных для глубокого обучения задачах, на которых доминируют бустинги традиционно доминируют. Более того, в статье идет сравнение с хорошо натюненными бустингами.
Взляните на ключевые результаты из статьи. В списке ниже указаны модели и их среднее места по задачам в бенчмарке (меньше - лучше).
- Классический MLP - 8.5
- XGBoost - 4.6
- Transformer и кусочно-линейные эмбеддинги - 3.7
- CatBoost - 3.6
- MLP и эмбеддинги с периодическими активациями - 3.0

Рассмотрим основные идеи и техники, помогающие улучшить качество ваших нейронок:
Архитектурные модификации. Простая модификация MLP c добавлением BatchNorm и пробросных связей подобно ResNet уже показывает существенные улучшения по сравнению с базовым вариантом и является хорошим бейзлайном. Однако, системные приросты показывает предложенная в [1] трансформер-архитектура, изначально использующая эмбеддинги фичей и механизм внимания.

Эмбеддинги для числовых фичей. Обычно числовые фичи передаются в MLP напрямую, но можно добиться буста качества за счет расширения их размерность, применяя для этого эмбеддинги. Любые варианты эмбеддингов числовых фичей существенно бустят табличные модели и снижают разницу между архитектурными конфигурациями. Для максимального улучшения в работе [2] выделяются две более сложные схемы организации эмбеддингов - с использованием кусочно-линейных функций и периодических активаций.

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

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

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

Слово "бустинг" в этом посте оказалось популярнее множества слов {"mlp", "сетка"}.

Автор поста @oasidorshin ответит на ваши вопросы про сравнение сеток с бустингами в комментариях.