LightGBM: A Highly Efficient Gradient Boosting Decision Tree
論文を自分なりにまとめる。(未完、ほぼ日本語訳かも)
Abstruct
Gradient Boosting Decision Tree(GBDT)は機械学習で人気のアルゴリズムであり、 XGBoost, pGBRTなどの実装があるが、まだまだ演算効率やスケーラビリティは良くない。 分岐ポイントになる可能性がある箇所で特徴量ごとにすべてのデータをスキャンする必要があり、 その処理に時間がかかってしまうことが原因としてあげられる。そこでこの問題に取り組むために、 Gradient-based One-Side Sampling(GOSS)、Exclusive Feature Bundling(EFB)という2つの方法を提案する。 GOSSは小さいGradientsになるデータインスタンスを取り除いて、残りをInformation gainに利用する。 EFBは互いに独立している特徴を削減するアイディア。特徴を互いに独立していると証明するのはNP困難だが、 貪欲アルゴリズムを利用すると非常に良い予測結果となった。 たくさんの公開されているデータで実験したところ、精度を保ったまま従来のGBDTより20倍も高速となることがわかった。
1. Introduction
機械学習のアルゴリズムとして広くGBDTは使われているが、大きなデータを扱うときの実行時間が非常に長いという問題がある。 データのInstanceを減らすと良いが、その方法は自明ではない。データのインスタンスとは特徴量を列としたときの行にあたる。扱うデータ種のようなものと自分は認識している。データをサンプリングする方法として、Weightsに従ってサンプリングする方法があるが、Weightsがわからないと適用できないため、シンプルにGBDTに適用することはできない。 そこで2つの方法を提案する。
Gradient-based One-Side Sampling(GOSS)
GBDTの厳密なWeightはわからないが、Gradientsが違うとInformation gainの計算過程が違うことに気づいた。 特に、大きなGradientsはよりInformation gainに対する寄与が大きい。なのでダウンサンプリングするときにInformation gainの精度を 保つために大きなGradientsをもつデータInstanceを残すようにすればよく、小さいGradientsの中からランダムに削除するようにする。 このようにすることでランダムにサンプリングするより、Information gainの精度を保つことに成功した。
Exclusive Feature Bundling(EFB)
実データを扱うと特徴量が非常に多いことがあり、特徴空間は非常にSparseである。これは特徴量を削除できる可能性を示唆している。 Sparceな特徴空間だと多くの特徴は独立していることが多い。この場合、グラフのカラーリング問題として扱う事ができ、貪欲法で解決することができる。
私達はこの2つのアルゴリズムをLightGBMに実装し、多くの公開されているデータで、従来手法より精度を保ったまま20倍以上高速になることを示した。
以降の章はちょくちょく継ぎ足していくつもり。。