Upgrade to Pro — share decks privately, control downloads, hide ads and more …

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

Asei Sugiyama

June 10, 2020
Tweet

More Decks by Asei Sugiyama

Other Decks in Technology

Transcript

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

    コントリビューター TFX : Issue ⽴てたり PR ⽴てたり docs-l10n : 翻訳 & レビュー 機械学習図鑑 共著
  2. TL;DR uber/causalml はアップリフトモデリングを⾏うためのライブラリ ⽤いられている *-Learner 系のアルゴリズムでは、これまで傾向スコア を⽤いた⽅法で算出していた ATE (Average Treatment

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

    Treatment Effect) の算出ができることが知られている IPW では施策そのものの良し悪しはわかるものの、マーケティングの分 野で重要視される、ある施策をどのセグメントに向けて施策を⾏うのが 良いかを知ることは単純にはできない このため、特定のセグメントに対する効果量を表す CATE (Conditional ATE) を算出できるアルゴリズムのうち、uber/causalml に実装されてい るものについて調査を⾏う
  4. 統計的因果推論概要 (1/6) 何かの検証を⾏った結果、次のようなデータが⼿に⼊ったものとする id( ) 共変量 ( ) 介⼊変数 (

    ) アウトカム( ) このようなデータから介⼊を⾏ったときの効果を知りたい i X Z Y 1 X1 Z1 Y1 ⋮ ⋮ ⋮ ⋮ N XN ZN YN
  5. 統計的因果推論概要 (6/6) 傾向スコア を導⼊する 傾向スコアマッチング : 傾向スコアを⽤いて、⽋損が等しくランダムに ⽋損した状態になるようにデータの件数を削って揃える IPW :

    傾向スコアを⽤いて、⽋損ができるだけ等しくランダムに⽋損し た状態になるようにデータの件数を重み付け平均を⽤いて⽔増しして揃 える (ウェイトバック) 詳しくは 岩波 DS vol.3 を参照 e(x) = P (Z = 1∣X = x)
  6. 因果推論との関連 アップリフトモデリング: と における⽋損値を機械学習で作った モデルを利⽤して埋め、効果を算出する id( ) 共変量 ( )

    介⼊変数 ( ) アウトカム( ) アウトカム( ) Y0 Y1 i X Z Y0 Y1 1 X1 Z1 Y10 Y11 ⋮ ⋮ ⋮ ⋮ ⋮ N XN ZN YN 0 YN 1
  7. 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
  8. S-leaner, T-learner のここがダメ 介⼊群 ( ) /⾮介⼊群 ( ) が著しく偏っている

    ときに、機械学習モデルの性 能が保証できない Z = 1 Z = 0
  9. 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
  10. Recap uber/causalml はアップリフトモデリングを⾏うためのライブラリ ⽤いられている *-Learner 系のアルゴリズムでは、これまで傾向スコア を⽤いた⽅法で算出していた ATE (Average Treatment

    Effect) をアップ リフトモデリングで捉え直して算出している 更に、共変量を固定した CATE (Conditional ATE) を算出することも⾃ 然にできる T-learner や S-learner は単純なアップサンプリングモデルで、X- learner は2つのモデルをアンサンブル、R-learner はモデルを hold out してスタックしている