Share
Embed
Transcript
29 slides
-
Признаки без отношения порядка в GBDT Vasily Ershov (существующие подходы
к работе с ними на примере CatBoost, возникающие проблемы и возможные research-направления) -
Входные данные 2 Неструктурированные данные Порядковые признаки DNA Текст Изображения
Музыка Neural networks 2 minutes 5 minutes 15 minutes Длина песни Blues Rock Jazz Жанр песни Категориальные признаки Длина песни Год выпуска Рейтинг 2 1990 3 3 1950 5 15 1970 4 Жанр Исполнитель Rock Scorpions Jazz Louis Armstrong Blues B.B.King Структурированные данные -
Деревья решений 3 Жанр песни = Rock Год выпуска >
1970 Да Нет Да Да Нет Артист=Scorpions Greedy algorithm for best tree search (CART) -
Boosting на деревьях решений 4 State-of-the-art quality на структурированных данных
Прост в использовании Работает на небольших объемах данных, а также легко масштабируется на «Big data problems» + … + + + Большая ошибка Стало лучше Можно в production -
Categorical data Blues Rock Jazz Genre 5 One-hot encoding Statistics
based on category Greedy search for combinations Label based Category-based -
Categorical features Blues Rock Jazz Genre 6 One-hot encoding Statistics
based on category Greedy search for combinations Label based Category-based Genre [Genre=Jazz] [Genre=Rock] [Genre=Blues] Jazz 1 0 0 Rock 0 1 0 Blues 0 0 1 Rock 0 1 0 -
Blues Rock Jazz Genre Categorical features 7 One-hot encoding Statistics
based on category Greedy search for combinations Label based Category-based P(Jazz|Data) Jazz P(Rock|Data) Rock P(Blues|Data) Blues 3 6 2 6 1 6 -
Blues Rock Jazz Genre Categorical features 8 One-hot encoding Statistics
based on category Greedy search for combinations Label-based Category-based 1 + α 1 + α + β Label encoding -
Theoretical justification 9 Blues Rock Jazz Genre E(y|Jazz) E(y|Rock) E(y|Blues)
Ищем разбиение по условному мат. ожиданию Это порядковая фича Доказывается, что это оптимальное разбиение на 2 группы для: • Классификация + Cross-Entropy/Gini Index • Регрессия с L2 Не работает для мультикласса -
Label encoding with time Time Genre Like p(Like | History)
0 Jazz 1 Rock 2 Blues 3 Jazz 4 Blues 5 Blues 6 Blues α α + β α α + β α α + β 0 + α 1 + α + β 1 + α 1 + α + β 1 + α 2 + α + β 2 + α 3 + α + β 10 -
Blues Rock Jazz Genre Categorical features 11 One-hot encoding Statistics
based on category Greedy search for combinations Label based Category-based Bob Alice User -
Blues Rock Jazz Genre Categorical features 12 One-hot encoding Statistics
based on category Greedy search for combinations Label based Category-based -
Boosting in industry 15 More data => more quality more
money More trees => more quality more money Faster learning => more experiments more money Faster apply => more trees to learn + … + + + Большая ошибка Стало лучше Можно в production -
Priors 16 Blues Rock Jazz Genre 1 + α 1
+ α + β α α + β ????? Empirical Bayesian? -
CTR as probability model 17 Blues Rock Jazz Genre 1
+ α 1 + α + β Не зажгло (но не пробовали в комбинациях) θ1 …θk ∼ Beta(α, β) y1 …yn1 |θ1 ∼ Bernoulli(θ1 ) … y1 …ynk |θk ∼ Bernoulli(θk ) ̂ α, ̂ β : max likelihood ̂ θk : Bayes with ̂ α, ̂ β -
Границы для разбиения 18 Blues Rock Jazz Genre ϕ(x) =
1 + α 1 + α + β ϕ(x) ≥ ci Энтропийный бинаризации часто приводят к переобучению -
CTRs Online learning 19 Blues Rock Jazz Genre 1 +
α 1 + α + β Blues Rock Jazz Genre 2 + α 2 + α + β Today Tomorrow -
Model size 20 Blues Rock Jazz Genre Bob Alice User
Кат. фичи могут расти линейно с размером датасета Число комбинаций линейно с размером ансамбля Boosting: more money => more data Результат: 200GB+ модели на Criteo (26 катфичей, ≈10кк объектов) Решение: инженерные эвристики на перевзвешивание RMSE для новых комбинаций — нужно теоретически обоснованное решение -
21 CatFeatures: technical issue • Хэш-тэг — отличная кат. фича,
но тратит много памяти • 32-bit хэширование в стадии препроцессинга, можно bit- compression / другие варианты • Десятки миллионов объектов не влезают в RAM, особенно GPU • Жадный алгоритм подбора плохо шардируется по нескольким машинкам / GPU • В катбусте — feature parallel режим для multiGPU, на CPU так и не реализовано -
Красивые цифры: 1 • Parameters: 128 bins, 64 leafs, 1000
iterations • Microsoft Learning to Rank: 136 features, 1M samples • Epsilon: 2000 features, 400k samples • Higgs: 28 features, 11M samples GPU: NVIDIA 1080Ti 22 Time, s 0 275 550 825 1100 Epsilon Higgs Micrisoft 157 227 275 78 235 1 001 28 80 45 CatBoost LightGBM XGBoost -
Красивые цифры: 1 • Parameters: 128 bins, 64 leafs, 1000
iterations • Microsoft Learning to Rank: 136 float features, 1M samples • Epsilon: 2000 float features, 400k samples • Higgs: 28 float features, 11M samples GPU: NVIDIA 1080Ti 23 Time, s 0 275 550 825 1100 Epsilon Higgs Micrisoft 157 227 275 78 235 1 001 28 80 45 CatBoost LightGBM XGBoost -
Красивые цифры два 24 • 1000 trees • 2k features
• 100k objects • Intel Xeon E5-2660v4 • NVIDIA 1080Ti Time, ms 1 10 100 1000 10000 100000 160 1 470 75 000 108 000 LightGBM XGBoost CatBoost Cpu CatBoost Gpu -
Красивые цифры два 25 • 1000 trees • 2k float
features • 100k objects • Intel Xeon E5-2660v4 • NVIDIA 1080Ti Time, ms 1 10 100 1000 10000 100000 160 1 470 75 000 108 000 LightGBM XGBoost CatBoost Cpu CatBoost Gpu -
Boosting: before CatBoost 26 DNA Text Images Music Feature extraction
and engineering Deep Neural Network Production … + + + GBDT To tabular To tabular -
Boosting: with CatBoost 27 DNA Text Images Music Domain-specific features
Auto Feature Engineering by CatBoost Deep Neural Network To tabular To tabular Production -
Auto Feature Engineering 28 Features Greedy New features in runtime
features Best split Features extraction На каждой итерации бустинга Model -
Auto Feature Engineering 29 Как сделать модульную расширяемую систему? Features
Features extraction Model