Что вы выберете для табличных данных: бустинг или 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 ответит на ваши вопросы про сравнение сеток с бустингами в комментариях.
#research
🤖 Большой пласт задач машинного обучения на практике - задачи на табличных данных, которые чаще всего решаются при помощи градиентного бустинга. Стандартная для табличных данных 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 ответит на ваши вопросы про сравнение сеток с бустингами в комментариях.
#research