Slide 1

Slide 1 text

Признаки без отношения порядка в GBDT Vasily Ershov (существующие подходы к работе с ними на примере CatBoost, возникающие проблемы и возможные research-направления)

Slide 2

Slide 2 text

Входные данные 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 Структурированные данные

Slide 3

Slide 3 text

Деревья решений 3 Жанр песни = Rock Год выпуска > 1970 Да Нет Да Да Нет Артист=Scorpions Greedy algorithm for best tree search (CART)

Slide 4

Slide 4 text

Boosting на деревьях решений 4 State-of-the-art quality на структурированных данных Прост в использовании Работает на небольших объемах данных, а также легко масштабируется на «Big data problems» + … + + + Большая ошибка Стало лучше Можно в production

Slide 5

Slide 5 text

Categorical data Blues Rock Jazz Genre 5 One-hot encoding Statistics based on category Greedy search for combinations Label based Category-based

Slide 6

Slide 6 text

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

Slide 7

Slide 7 text

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

Slide 8

Slide 8 text

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

Slide 9

Slide 9 text

Theoretical justification 9 Blues Rock Jazz Genre E(y|Jazz) E(y|Rock) E(y|Blues) Ищем разбиение по условному мат. ожиданию Это порядковая фича Доказывается, что это оптимальное разбиение на 2 группы для: • Классификация + Cross-Entropy/Gini Index • Регрессия с L2 Не работает для мультикласса

Slide 10

Slide 10 text

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

Slide 11

Slide 11 text

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

Slide 12

Slide 12 text

Blues Rock Jazz Genre Categorical features 12 One-hot encoding Statistics based on category Greedy search for combinations Label based Category-based

Slide 13

Slide 13 text

Качество: LogLoss на открытых датасетах 13 Подробное описание экспериментов на GitHub

Slide 14

Slide 14 text

14 Проблемы подхода

Slide 15

Slide 15 text

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

Slide 16

Slide 16 text

Priors 16 Blues Rock Jazz Genre 1 + α 1 + α + β α α + β ????? Empirical Bayesian?

Slide 17

Slide 17 text

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 ̂ α, ̂ β

Slide 18

Slide 18 text

Границы для разбиения 18 Blues Rock Jazz Genre ϕ(x) = 1 + α 1 + α + β ϕ(x) ≥ ci Энтропийный бинаризации часто приводят к переобучению

Slide 19

Slide 19 text

CTRs Online learning 19 Blues Rock Jazz Genre 1 + α 1 + α + β Blues Rock Jazz Genre 2 + α 2 + α + β Today Tomorrow

Slide 20

Slide 20 text

Model size 20 Blues Rock Jazz Genre Bob Alice User Кат. фичи могут расти линейно с размером датасета Число комбинаций линейно с размером ансамбля Boosting: more money => more data Результат: 200GB+ модели на Criteo (26 катфичей, ≈10кк объектов) Решение: инженерные эвристики на перевзвешивание RMSE для новых комбинаций — нужно теоретически обоснованное решение

Slide 21

Slide 21 text

21 CatFeatures: technical issue • Хэш-тэг — отличная кат. фича, но тратит много памяти • 32-bit хэширование в стадии препроцессинга, можно bit- compression / другие варианты • Десятки миллионов объектов не влезают в RAM, особенно GPU • Жадный алгоритм подбора плохо шардируется по нескольким машинкам / GPU • В катбусте — feature parallel режим для multiGPU, на CPU так и не реализовано

Slide 22

Slide 22 text

Красивые цифры: 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

Slide 23

Slide 23 text

Красивые цифры: 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

Slide 24

Slide 24 text

Красивые цифры два 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

Slide 25

Slide 25 text

Красивые цифры два 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

Slide 26

Slide 26 text

Boosting: before CatBoost 26 DNA Text Images Music Feature extraction and engineering Deep Neural Network Production … + + + GBDT To tabular To tabular

Slide 27

Slide 27 text

Boosting: with CatBoost 27 DNA Text Images Music Domain-specific features Auto Feature Engineering by CatBoost Deep Neural Network To tabular To tabular Production

Slide 28

Slide 28 text

Auto Feature Engineering 28 Features Greedy New features in runtime features Best split Features extraction На каждой итерации бустинга Model

Slide 29

Slide 29 text

Auto Feature Engineering 29 Как сделать модульную расширяемую систему? Features Features extraction Model