Pro Yearly is on sale from $80 to $50! »

Overview of causalml

Overview of causalml

https://github.com/uber/causalml で実装されているアルゴリズムについて、 Repro 社内で調査を行った際の資料です。参考文献は次のとおり。

1. CausalML: Python Package for Causal Machine Learning https://arxiv.org/abs/2002.11631
2. Metalearners for estimating heterogeneous treatment effects using machine learning https://www.pnas.org/content/116/10/4156
3. Quasi-Oracle Estimation of Heterogeneous Treatment Effects https://arxiv.org/abs/1712.04912
4. Automated versus do-it-yourself methods for causal inference: Lessons learned from a data analysis competition https://arxiv.org/abs/1707.02641

8fa31051503b09846584c49cd53d2f80?s=128

Asei Sugiyama

June 10, 2020
Tweet

Transcript

  1. CausalML についての調査結果 Asei Sugiyama

  2. ⾃⼰紹介 杉⼭ 阿聖 Software Engineer @ Repro AI Labs TensorFlow

    コントリビューター TFX : Issue ⽴てたり PR ⽴てたり docs-l10n : 翻訳 & レビュー 機械学習図鑑 共著
  3. ⽬的 uber/causalml について調査した結果を共有します

  4. TL;DR uber/causalml はアップリフトモデリングを⾏うためのライブラリ ⽤いられている *-Learner 系のアルゴリズムでは、これまで傾向スコア を⽤いた⽅法で算出していた ATE (Average Treatment

    Effect) をアップ リフトモデリングで捉え直して算出している 更に、共変量を固定した CATE (Conditional ATE) を算出することも⾃ 然にできる T-learner や S-learner は単純なアップサンプリングモデルで、X- learner は2つのモデルをアンサンブル、R-learner はモデルを hold out してスタックしている
  5. 背景 因果推論に関する⼿法として傾向スコアを⽤いた⼿法、特に IPW (Inverse Probability Weighting: 逆確率重み付け) では ATE (Average

    Treatment Effect) の算出ができることが知られている IPW では施策そのものの良し悪しはわかるものの、マーケティングの分 野で重要視される、ある施策をどのセグメントに向けて施策を⾏うのが 良いかを知ることは単純にはできない このため、特定のセグメントに対する効果量を表す CATE (Conditional ATE) を算出できるアルゴリズムのうち、uber/causalml に実装されてい るものについて調査を⾏う
  6. TOC 統計的因果推論概要 <- uber/causalml T-learner, S-learner X-learner R-learner まとめ

  7. 統計的因果推論概要 (1/6) 何かの検証を⾏った結果、次のようなデータが⼿に⼊ったものとする id( ) 共変量 ( ) 介⼊変数 (

    ) アウトカム( ) このようなデータから介⼊を⾏ったときの効果を知りたい i X Z Y 1 X1 Z1 Y1 ⋮ ⋮ ⋮ ⋮ N XN ZN YN
  8. 統計的因果推論概要 (2/6) 本質的に知りたいものは 番⽬のユーザーに対して介⼊を⾏ったときの アウトカム と介⼊を⾏わなかったときのアウトカム の差 なので次のようなデータが必要 ( はなくても良い)

    id( ) 共変量 ( ) 介⼊変数 ( ) アウトカム( ) アウトカム( ) i Yi1 Yi0 Y − i1 Yi0 Z i X Z Y0 Y1 1 X1 Z1 Y10 Y11 ⋮ ⋮ ⋮ ⋮ ⋮ N XN ZN YN 0 YN 1
  9. 統計的因果推論概要 (3/6) 下記のデータのうち、アウトカム と を同時に知ることはできな いので、アウトカムは半分程度が⽋損した状態になっている id( ) 共変量 (

    ) 介⼊変数 ( ) アウトカム( ) アウトカム( ) Yi0 Yi1 i X Z Y0 Y1 1 X1 Z1 Y10 Y11 ⋮ ⋮ ⋮ ⋮ ⋮ N XN ZN YN 0 YN 1
  10. 統計的因果推論概要 (4/6) ⽋損していたとしても、⽋損 が等しくランダムに起こって いるのなら、効果の期待値 はわかる (⽋損 していない , で平均を

    取り、差を計算すれば良い) E[Y − i1 Y ] i0 Yi0 Yi1
  11. 統計的因果推論概要 (5/6) , が⽋損していて、更 にその⽋損が共変量 によ って偏りがある場合には、平 均を取ると選択バイアスが⽣ じてしまう この状況下で

    ATE や CATE を推定したい Yi0 Yi1 X E[Y − 1 Y ] 0 E[Y − 1 Y ∣X = 0 x]
  12. 統計的因果推論概要 (6/6) 傾向スコア を導⼊する 傾向スコアマッチング : 傾向スコアを⽤いて、⽋損が等しくランダムに ⽋損した状態になるようにデータの件数を削って揃える IPW :

    傾向スコアを⽤いて、⽋損ができるだけ等しくランダムに⽋損し た状態になるようにデータの件数を重み付け平均を⽤いて⽔増しして揃 える (ウェイトバック) 詳しくは 岩波 DS vol.3 を参照 e(x) = P (Z = 1∣X = x)
  13. TOC 統計的因果推論概要 uber/causalml <- T-learner, S-learner X-learner R-learner まとめ

  14. uber/causalml uber/causalml はアップリフ トモデリングを⾏うためのラ イブラリ アップリフトモデリングのた めの4つのアルゴリズムを実装 している https://arxiv.org/abs/2002.1 1631'

  15. アップリフトモデリング 次のようなデータから、介⼊を⾏ったときのアウトカムの予測モデル と介⼊を⾏わなかったときの予測モデル を機械学習により求める アップリフト のモデル を と から求める id(

    ) 特徴量 ( ) 介⼊有無 ( ) アウトカム( ) τ1 τ0 Y − 1i Y0i τ τ1 τ0 i X Z ∈ {0, 1} Y 1 X1 Z1 Y1 ⋮ ⋮ ⋮ ⋮ N XN ZN YN
  16. 因果推論との関連 アップリフトモデリング: と における⽋損値を機械学習で作った モデルを利⽤して埋め、効果を算出する id( ) 共変量 ( )

    介⼊変数 ( ) アウトカム( ) アウトカム( ) Y0 Y1 i X Z Y0 Y1 1 X1 Z1 Y10 Y11 ⋮ ⋮ ⋮ ⋮ ⋮ N XN ZN YN 0 YN 1
  17. TOC 統計的因果推論概要 uber/causalml T-learner, S-learner <- X-learner R-learner まとめ

  18. T-learner, S-learner ともにアップリフトモデリングのもっとも単純な例 詳細は Metalearners for estimating heterogeneous treatment effects

    using machine learning を参照 (T-learner, S-learner, X-learner につい て記述されている)
  19. T-learner → 元データを に応じて2つに分割 それぞれについて から を予測する機械学 習モデル , を作る

    Z X Y μ (X) 0 μ (X) 1 E[Y − 0 Y ∣X = 1 x] = μ (x) − 1 μ (x) 0
  20. S-learner から を予測する機械学習モデル を作成する id( ) 特徴量 ( ) 介⼊有無

    ( ) アウトカム( ) (X, Z) Y τ(X, Z) E[Y − 0 Y ∣X = 1 x] = τ(X, 1) − τ(X, 0) i X Z ∈ {0, 1} Y 1 X1 Z1 Y1 ⋮ ⋮ ⋮ ⋮ N XN ZN YN
  21. S-leaner, T-learner のここがダメ 介⼊群 ( ) /⾮介⼊群 ( ) が著しく偏っている

    ときに、機械学習モデルの性 能が保証できない Z = 1 Z = 0
  22. TOC 統計的因果推論概要 uber/causalml T-learner, S-learner X-learner <- R-learner まとめ

  23. X-learner . T-learner 同様に2つのモデル , を作成 . と を 実測値

    を⽤いて計算 . , の予測モデル と を作成 . CATE の推定モデル (x) μ ^0 (x) μ ^1 = D ~ i0 Y − 0i (X ) μ ^1 i = D ~ j1 Y − 1j (X ) μ ^0 j Y , Y 0i 1j D ~ i0 D ~ i1 τ (x) 0 τ (x) 1 τ(x) = e(x)τ (x) + 1 (1 − e(x))τ (x) 0
  24. X-learner のここ がすごい 2つの CATE 推定モデルを対 照群と介⼊群の実測値を⽤い てそれぞれ作成 2つのモデルをアンサンブルす ることで、それぞれが得意な

    箇所を両⽅ともに使える
  25. ⽐較 X-learner がもっとも性能が 良かった

  26. TOC 統計的因果推論概要 uber/causalml T-learner, S-learner X-learner R-learner <- まとめ

  27. R-learner 資料作成が間に合わなかったので論⽂から抜粋して説明します Quasi-Oracle Estimation of Heterogeneous Treatment Effects https://arxiv.org/abs/1712.04912

  28. Robinson decomposition (真の)条件付き期待値を求める関数 を導⼊ (真の)傾向スコア と (真の)CATE との関係は次の通り m (X

    ) ∗ i e∗ τ∗
  29. 最適化の対象 (5) で を推定したい でもこれは無理 ( と を予め知る必要がある) τ ~

    m (x) ∗ e (x) ∗
  30. R-learner と の代わりに、 番⽬をfoldしたモデル , を たくさん⽣成 それらの出⼒で計算した損失を最⼩化する を求める m

    (x) ∗ e (x) ∗ i m ^ (−i) e ^(−i) τ
  31. 結果

  32. BART ってなんだ Bayesian Additive Regression Trees 2016 年当時、因果推論タスクでまともに動いていた決定⽊系アルゴリズ ム 詳しくは

    BART: Bayesian additive regression treesによる因果推論 - 勉強の記録
  33. TOC 統計的因果推論概要 uber/causalml T-learner, S-learner X-learner R-learner まとめ <-

  34. Recap uber/causalml はアップリフトモデリングを⾏うためのライブラリ ⽤いられている *-Learner 系のアルゴリズムでは、これまで傾向スコア を⽤いた⽅法で算出していた ATE (Average Treatment

    Effect) をアップ リフトモデリングで捉え直して算出している 更に、共変量を固定した CATE (Conditional ATE) を算出することも⾃ 然にできる T-learner や S-learner は単純なアップサンプリングモデルで、X- learner は2つのモデルをアンサンブル、R-learner はモデルを hold out してスタックしている
  35. わからなかったこと uber/causalml のソースコードを読んでみたけれど、なんであの実装で 良いのか分からなかった (特に R-learner) BART が何者なのかはいまいち分かっていない