Skip to main content
QUICK REVIEW

[論文レビュー] GPUTreeShap: Massively Parallel Exact Calculation of SHAP Scores for Tree Ensembles

Rory Mitchell, Eibe Frank|arXiv (Cornell University)|Oct 27, 2020
Machine Learning and Data Classification被引用数 8
ひとこと要約

GPUTreeShap は、木のアンサンブルにおける正確な SHAP 値計算のための GPU 最適化、大規模並列化された再定式化された TreeShap アルゴリズムを提案する。再帰的サブプロブレムをビンパッキングでスケジュールされた SIMT タスクに再構成することで、マルチコア CPU に対して最大 19 倍の高速化(SHAP 値)および最大 340 倍の高速化(相互作用値)を達成し、大規模なリアルタイム解釈可能性を実現する。

ABSTRACT

SHAP (SHapley Additive exPlanation) values provide a game theoretic interpretation of the predictions of machine learning models based on Shapley values. While exact calculation of SHAP values is computationally intractable in general, a recursive polynomial-time algorithm called TreeShap is available for decision tree models. However, despite its polynomial time complexity, TreeShap can become a significant bottleneck in practical machine learning pipelines when applied to large decision tree ensembles. Unfortunately, the complicated TreeShap algorithm is difficult to map to hardware accelerators such as GPUs. In this work, we present GPUTreeShap, a reformulated TreeShap algorithm suitable for massively parallel computation on graphics processing units. Our approach first preprocesses each decision tree to isolate variable sized sub-problems from the original recursive algorithm, then solves a bin packing problem, and finally maps sub-problems to single-instruction, multiple-thread (SIMT) tasks for parallel execution with specialised hardware instructions. With a single NVIDIA Tesla V100-32 GPU, we achieve speedups of up to 19x for SHAP values, and speedups of up to 340x for SHAP interaction values, over a state-of-the-art multi-core CPU implementation executed on two 20-core Xeon E5-2698 v4 2.2 GHz CPUs. We also experiment with multi-GPU computing using eight V100 GPUs, demonstrating throughput of 1.2M rows per second -- equivalent CPU-based performance is estimated to require 6850 CPU cores.

研究の動機と目的

  • 大規模な木のアンサンブルモデルにおける SHAP 値計算の計算ボトル neck を解消すること。これは、学習時間を超える場合がある。
  • 不規則な再帰とデータ依存性のため、GPU アーキテクチャへの TreeShap アルゴリズムのマッピングが困難であるという課題を克服すること。
  • GPU 全体の並列性を活用して、生産環境向けに高スループットかつ低遅延の SHAP 計算を実現し、リアルワールドの ML パイプラインに統合すること。
  • 特徴量数の二乗に比例して増加する SHAP 相互作用値の計算コストを低減すること。これは特に高次元データに対して著しく高価である。
  • XGBoost 用に効率的にスケーリング可能な複数の GPU に対応するプロダクション向けオープンソース GPU バックエンドを提供すること。

提案手法

  • 各木のパスごとに独立した可変サイズのサブプロブレムに再定式化することで、データ並列実行を可能にする。
  • ビンパッキングヒューリスティクスを適用してサブプロブレムをワープにグループ化し、GPU スレッドブロックのスケジューリングを効率化し、占有率を最大化する。
  • CUDA カーネルを用いて各サブプロブレムを単一命令複数スレッド(SIMT)タスクにマッピングし、動的プログラミングにワープレベルのプリミティブを活用する。
  • トレーニングデータからのカバレッジ重みを活用して、パス評価中に欠損特徴量の条件付き期待値を推定する。
  • 不要な特徴量ペアを省略することで、SHAP 相互作用値のアルゴリズム的計算量を最適化し、時間計算量を O(TLD²M) から O(TLD³) に削減する。
  • GPUTreeShap を XGBoost にバックエンドとして統合し、モデル再トレーニングなしにシームレスに GPU 加速の SHAP 推論を可能にする。

実験結果

リサーチクエスチョン

  • RQ1再帰的な TreeShap アルゴリズムは、大規模並列 GPU アーキテクチャ上で効率的かつスケーラブルに実行可能な形に再定式化可能か?
  • RQ2GPU レベルの並列処理とワープスケジューリングは、大規模な木のアンサンブルにおける SHAP 値計算のスループットをどの程度向上できるか?
  • RQ3GPUTreeShap のパフォーマンスは、モデルサイズ、データセットサイズ、GPU 数の増加に伴いどのようにスケーリングするか?
  • RQ4SHAP 相互作用値は、標準 SHAP 値よりも著しく高価であるが、その処理でどの程度のパフォーマンス向上が達成可能か?
  • RQ5精度を損なわずに、事前処理と特徴量プルーニングによって SHAP 相互作用計算のアルゴリズム的計算量を低減できるか?

主な発見

  • 1 枚の NVIDIA Tesla V100-32 GPU を使用した場合、GPUTreeShap は標準 SHAP 値で最大 19 倍、SHAP 相互作用値で最大 340 倍の高速化を、40 コア CPU システムに対して達成した。
  • スループットは GPU 数に比例して線形に増加する。8 枚の V100 GPU では、1 秒あたり 120 万行の処理が可能で、約 6,850 コア分の CPU に相当する。
  • ファッション_mnist-large などの高次元データセットでは、1 枚の GPU を使用することで、SHAP 相互作用値の計算を約 6 時間から約 1 分に短縮した。
  • 特徴量サブセットのプルーニングにより、SHAP 相互作用値のアルゴリズム的計算量が O(TLD²M) から O(TLD³) に削減され、大規模な特徴量集合でも著しくパフォーマンスが向上した。
  • 大容量バッチ処理において、GPUTreeShap は 180 行を超えるテスト入力から CPU を上回るスループットを示し、より高い並列性と低遅延が要因である。
  • 実装はプロダクション向けに完成しており、XGBoost に統合されており、勾配ブースティング木モデルのエンドツーエンド GPU 加速の解釈可能性を実現している。

より良い研究を、今すぐ始めましょう

論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。