YuRAN-HIKO

アナリスト兼、日曜歴史家のブログ。ゲーム分析や歴史のトピックが中心。

機械学習を用いた因果推論のための最新 Python パッケージ "CausalML" の紹介

f:id:ngyope:20190929143649p:plain

はじめに

本記事は H. Chen et al. (2020), "CausalML: Python Package for Causal Machine Learning" の紹介記事です。
上記 Chen et al.(2020) は目下研究分野としてもアツい、機械学習を用いた因果推論手法を提供する CausalML という最新の Python パッケージの紹介になっています。この CausalML は Uber Technology のメンバーが開発したパッケージで、著者らは同社のメンバーです。Uplift Modeling や先導的な機械学習アルゴリズムを用いた因果推論手法を提供するものになっています。
 

CausalML とは

上述の通り、近年では機械学習の手法を因果推論に適用する試みが盛んにおこなわれています。そのモチベーションの1つとして挙げられるのが CATE(Conditional Average Treatment Effect) の推定です。

CATE とはいわゆる「非均質性(heterogeneity)」を織り込んだ形での因果効果の推定値で、いわゆる古典的な因果推論が群レベルでの「平均因果効果(ATE: Average Treatment Effect)」の推定までしかできなかったのに対し、従来では推定が困難だった個人やセグメントレベルでの因果効果の推定を可能にしています。これによって例えばよりひとりひとりの顧客に最適化されたパーソナライゼーションであったり、個人レベルでのターゲティング最適化が洗練されることが期待されているのです。

機械学習を用いた因果推論のためのパッケージとして、Rではすでに uplift(Uplift Random Forest) / grf(Generalized Random Forest) / rlearner(R-learner) といったパッケージが提供されています(括弧内はそのパッケージが提供している手法)。
また Python でも DoWhy といった Pearl 流のグラフィカルモデルをベースとした因果推論手法を提供するパッケージや、EconML といった計量経済学と機械学習の手法を用いて非均質的な処置効果 (heterogeneous treatment effect) の推定を可能にするパッケージ、 Pylift という Meta-learner の手法を提供するパッケージが存在します。
これに対して、CausalML は現状8つの Uplift Modeling 手法から各種サポート関数までをワンストップで提供する形となっており、筆者らによると Python のオープンソースパッケージで Uplift Random Forest と R-learner の手法が提供されるのは CausalML が初めてとのことです。

ちなみに、本ブログでは過去 R の grf パッケージや Python の EconML パッケージを用いて個人レベルでの因果効果の推定を行う紹介記事を公開しています。それらについてもう少し詳しく知りたい方は以下の記事を読んでいただけると幸いです。

yuranhiko.hatenablog.com

yuranhiko.hatenablog.com
 

現在 CausalML で提供されているもの

現在(第一弾)の CausalML パッケージで提供されているものは以下の通り、8つの Uplift Modeling 手法 (4種の Uplift Tree と 4種の Meta-learner) ならびに各種サポート関数です。
Uplift Tree としては KL Divergence / Chi-Square / Euclidean Distance / Contextual Treatment Selection が、Meta-learner としては R-learner / X-learner / T-learner / S-learner になります。サポート関数として提供されているのは Data Generation Process / Visualization / Feature Engineering / Propensity Score Model / Propensity Score Matching などです。
著者らによると、まずは Uplift Modeling 手法の民主化と普及を第一の分野として今後開発が続けられていくとのことです。
 

CausalMLがどういう分野で適用可能か

著者らは CausalML を使って解決することができる問いとして、主に3つの領域を挙げています。それらはすなわち、以下の通りです。

  • Targeting Optimization
  • Causal Impact Analysis
  • Personalization
Targeting Optimization

ターゲティングの最適化の領域では、例えば既存の顧客に対するクロスセルマーケティングキャンペーンにおいて、あるプロモーションに触れた際により新商品を使ってもらいやすいであろう顧客を特定し、より効率的にプロモーションを展開するといった方法が挙げられてます。
プロモーションへの暴露を処置変数と取って、その後の新商品の利用をアウトカムとして個々人の顧客の因果効果を推定することでより効果の高い顧客に絞ってプロモーションを行い、無駄なコストを抑えた形で効果的にプロモーションを展開するといった形でしょうか。
 

Causal Impact Analysis

因果効果の度合いの分析において、CausalML は実験データ / 観察データのいずれにおいても因果効果を推定する手法を提供しています。例えば、ある顧客に対するクロスセルの行動が長期の消費行動にどう影響しているかを明らかにするといったものです。
この分析を実ビジネスで RCT の形で行うのは非現実的だと筆者らは述べています。なぜならば、本来であれば新商品を購入するであろう顧客を排除することはビジネス上望まれないためです。CausalMLであれば様々な機械学習手法に基づいた因果効果の分析を可能にすると筆者らは主張しています。
 

Personalization

パーソナライゼーションの文脈では、どの顧客に対してはどういうチャネルでどのようなメッセージングやオファーを行うのがより効果的か (エンゲージメントを高められるか) といった問題に対しても回を与えてくれるとのことです。
 

おわりに

以上、H. Chen et al. (2020), "CausalML: Python Package for Causal Machine Learning" の紹介でした。
機械学習と因果推論の融合は今後も著しく発展していく可能性が高い分野なため、私個人としてもしっかりと流れを追って実業務で活用していきたいところです。