Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Tianqi Chen - XGBoost: Implementation Details -...

Data Science LA
June 04, 2016
27k

Tianqi Chen - XGBoost: Implementation Details - LA Workshop Talk

Data Science LA

June 04, 2016
Tweet

More Decks by Data Science LA

Transcript

  1. Outline • Introduction: Trees, the Secret Sauce in Machine Learning

    • Parallel Tree Learning Algorithm • Reliable Distributed Tree Construction
  2. Machine Learning Algorithms and Common Use-cases • Linear Models for

    Ads Clickthrough • Factorization Models for Recommendation • Deep Neural Nets for Images, Audios etc. • Trees for tabular data with continuous inputs: the secret sauce in machine learning ◦ Anomaly detection ◦ Action detection ◦ From sensor array data ◦ ….
  3. Regression Tree • Regression tree (also known as CART) •

    This is what it would looks like for a commercial system
  4. Learning a Tree Ensemble in Three Slides Training Loss measures

    how well model fit on training data Regularization, measures complexity of trees Objective
  5. Outline • Introduction: Trees, the Secret Sauce in Machine Learning

    • Parallel Tree Learning Algorithm • Reliable Distributed Tree Construction • Results
  6. Tree Finding Algorithm • Enumerate all the possible tree structures

    • Calculate the structure score, using the scoring eq. • Find the best tree structure • But… there can be many trees
  7. Split Finding Algorithm on Single Node Scan from left to

    right, in sorted order of feature Calculate the statistics in one scan However, this requires sorting over features - O(n logn ) per tree
  8. The Column based Input Block 1 3 5 8 1

    3 5 8 2 5 6 8 2 5 6 8 1 1 1 2 0 3 4 6 0 1 3 9 3 …... Gradient statistics of each example Feature values Stored pointer from feature value to instance index 1 3 5 8 2 5 6 8 Layout Transformation of one Feature (Column) The Input Layout of Three Feature Columns sorted
  9. Parallel Split Finding on the Input Layout 1 3 5

    8 Gradient statistics of each example Feature values Stored pointer from feature value to instance index 1 3 5 8 1 1 0 3 4 6 Parallel scan and split finding scan and find best split Thread 1 Thread 2 Thread 3
  10. Cache Miss Problem for Large Data 1 3 5 8

    scan and find best split G = G + g[ptr[i]] H = H + h[ptr[i]] calculate score.... G = G + g[ptr[i]] H = H + h[ptr[i]] Gradient statistics of each example Feature values Stored pointer from feature value to instance index Short range instruction dependency, with non- contiguous access to g Cause cache miss when g does not fit into cache Use prefetch to change dependency to long range.
  11. Cache-aware Prefetching bufg[1] = g[ptr[1]] bufg[2] = g[ptr[2]] ... G

    = G + bufg[1] calculate score … G = G + bufg[2] Gradient statistics of each example Feature values Stored pointer from feature value to instance index Long range instruction dependency 1 3 5 8 prefetch scan and find best split Continuous memory access
  12. Outline • Introduction: Trees, the Secret Sauce in Machine Learning

    • Parallel Tree Learning Algorithm • Reliable Distributed Tree Construction • Results
  13. The Distributed Learning with same Layout 1 3 5 8

    1 3 5 8 2 5 6 8 2 5 6 8 1 1 1 2 0 3 4 6 0 1 3 9 3 Gradient statistics of each example Feature values Stored pointer from feature value to instance index 1 3 5 8 2 5 6 8 Layout Transformation of one Feature (Column) The Input Layout of Three Feature Columns Machine 1 Machine 2
  14. Sketch of Distributed Learning Algorithm 1 3 5 8 2

    5 6 8 3 6 1 3 5 8 2 5 6 8 3 6 Step 1: Split proposal by Distributed Weighted Quantile Sketching Step 2: Histogram Calculation Step 3: Select Best Split with Structure Score x < 3 1.2 -0.1 Both steps benefit from Optimized Input Layout!
  15. Communication Problem in Learning 1 3 5 8 2 5

    6 8 3 6 Aggregation (Reduction) Allreduce
  16. Rabit: Reliable Allreduce and Broadcast Interface All the machines get

    the same reduction result Can remember and forward result to failed nodes Important Property of Allreduce
  17. Out of Core Version 1 3 5 8 2 5

    6 8 1 1 1 2 0 3 4 6 0 1 3 9 3 …... 1 3 5 8 1 1 0 3 4 6 Prefetch 3 6 Compute Other optimization techniques • Block compression • Disk sharding
  18. Comparison to Existing Open Source Packages Comparison of Parallel XGBoost

    with commonly used Open-Source implementation of trees on Higgs Boson Challenge Data. • 2-4 times faster with single core • Ten times faster with multiple cores
  19. Impact of the System The most frequently used tool by

    data science competition winners 17 out of 29 winning solutions in kaggle last year used XGBoost Solve wide range of problems: store sales prediction; high energy physics event classification; web text classification; customer behavior prediction; motion detection; ad click through rate prediction; malware classification; product categorization; hazard risk prediction; massive online course dropout rate prediction Many of the problems used data from sensors Present and Future of KDDCup. Ron Bekkerman (KDDCup 2015 chair): “Something dramatic happened in Machine Learning over the past couple of years. It is called XGBoost – a package implementing Gradient Boosted Decision Trees that works wonders in data classification. Apparently, every winning team used XGBoost, mostly in ensembles with other classifiers. Most surprisingly, the winning teams report very minor improvements that ensembles bring over a single well- configured XGBoost..”