Research / 基盤技術 · 評価

CatBoostを読む カテゴリと目的変数の漏れを抑える

カテゴリの値を目的変数の統計量に変える際、同じ行の正解が紛れ込む問題を扱う。順序付きの統計とブースティングで対処し、九データセットで良い損失を報告したが速度と設定の差にも注意が要る。

論文初公開(arXiv)
参照版
v5
TRAIL公開
  • CatBoostはカテゴリ特徴の目的変数統計と勾配ブースティングにある漏れ・予測ずれを問題にする。
  • ランダムな順列で各行より前の例だけから統計を計算し、順序付きの学習を行う。
  • 九つのデータセットでは比較手法より良い損失を示したが、改善幅と速度は条件で異なる。

何を確かめた研究か

CatBoostの原論文は、表データに多い商品名や地域などのカテゴリを、決定木の勾配ブースティングでどう扱うかを検討する。カテゴリごとの目的変数の平均を入力特徴にすると、訓練中の一行の正解がその行の数値に混ざり得る。訓練時だけ都合のよい情報を使ってしまう、目的変数漏れの一種だ。

CatBoostは行をランダムな順番に並べ、ある行のカテゴリ統計を、その行より前にある例からだけ計算する。さらに順序付きブースティングで、ある行の勾配を求める時に同じ行を既に学習したモデルを使うことによる予測ずれを抑える。多数の順列や近似的な実装で計算量を管理する。

どう検証したか

九つの公開データセットで、パラメータ調整を訓練部分の4/5で行い、残り1/5でテストした。表2はCatBoostのloglossと分類の誤り率を、LightGBM、XGBoostと比べる。表3ではCatBoostの順序付きと通常のブースティングを直接比較する。カテゴリ処理と学習順序を同時に使う製品全体の比較と、一要素の効果は分けて読む必要がある。

何が分かったか

表2では九データセットすべてでCatBoostのlogloss・誤り率が比較手法より低いか同程度の表示値だった。たとえばAdultのloglossは0.270、LightGBMはそこから2.4%高い。Amazonでは0.139で、LightGBM・XGBoostは17%高い。一方、ChurnやUpsellingなどの差はごく小さく、著者らは三データセットで統計的な有意差を確認できなかったと記す。

表3では順序付き方式の利点は特に小さなデータセットで目立つが、全ての条件で常に勝つわけではない。Epsilonの実行時間比較では、順序付きモードは通常モードやLightGBMより約1.7倍遅いと報告する。精度だけで採用を決められない。

限界と仕事との接点

公開データでの比較はカテゴリの種類、件数、時系列性が異なる現場を代表しない。特に時間の順番がある業務では、ランダム順列だけで未来情報漏れを防げるわけではなく、評価分割も時点を守る必要がある。目的変数統計を使うなら各行の正解を混ぜない設計と、検証時のデータ分割を確認する。最後はTRAIL編集部の提案である。

01

出典

Research の一覧へ戻る