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. CausalML についての調査結果
    Asei Sugiyama

    View Slide

  2. ⾃⼰紹介
    杉⼭ 阿聖
    Software Engineer @ Repro AI Labs
    TensorFlow コントリビューター
    TFX : Issue ⽴てたり PR ⽴てたり
    docs-l10n : 翻訳 & レビュー
    機械学習図鑑 共著

    View Slide

  3. ⽬的
    uber/causalml について調査した結果を共有します

    View Slide

  4. TL;DR
    uber/causalml はアップリフトモデリングを⾏うためのライブラリ
    ⽤いられている *-Learner 系のアルゴリズムでは、これまで傾向スコア
    を⽤いた⽅法で算出していた ATE (Average Treatment Effect) をアップ
    リフトモデリングで捉え直して算出している
    更に、共変量を固定した CATE (Conditional ATE) を算出することも⾃
    然にできる
    T-learner や S-learner は単純なアップサンプリングモデルで、X-
    learner は2つのモデルをアンサンブル、R-learner はモデルを hold out
    してスタックしている

    View Slide

  5. 背景
    因果推論に関する⼿法として傾向スコアを⽤いた⼿法、特に IPW
    (Inverse Probability Weighting: 逆確率重み付け) では ATE (Average
    Treatment Effect) の算出ができることが知られている
    IPW では施策そのものの良し悪しはわかるものの、マーケティングの分
    野で重要視される、ある施策をどのセグメントに向けて施策を⾏うのが
    良いかを知ることは単純にはできない
    このため、特定のセグメントに対する効果量を表す CATE (Conditional
    ATE) を算出できるアルゴリズムのうち、uber/causalml に実装されてい
    るものについて調査を⾏う

    View Slide

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

    View Slide

  7. 統計的因果推論概要 (1/6)
    何かの検証を⾏った結果、次のようなデータが⼿に⼊ったものとする
    id( ) 共変量 ( ) 介⼊変数 ( ) アウトカム( )
    このようなデータから介⼊を⾏ったときの効果を知りたい
    i X Z Y
    1 X1 Z1 Y1
    ⋮ ⋮ ⋮ ⋮
    N XN ZN YN

    View Slide

  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

    View Slide

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

    View Slide

  10. 統計的因果推論概要
    (4/6)
    ⽋損していたとしても、⽋損
    が等しくランダムに起こって
    いるのなら、効果の期待値
    はわかる (⽋損
    していない , で平均を
    取り、差を計算すれば良い)
    E[Y −
    i1 Y ]
    i0
    Yi0 Yi1

    View Slide

  11. 統計的因果推論概要
    (5/6)
    , が⽋損していて、更
    にその⽋損が共変量 によ
    って偏りがある場合には、平
    均を取ると選択バイアスが⽣
    じてしまう
    この状況下で
    ATE や
    CATE
    を推定したい
    Yi0 Yi1
    X
    E[Y −
    1 Y ]
    0
    E[Y −
    1 Y ∣X =
    0 x]

    View Slide

  12. 統計的因果推論概要 (6/6)
    傾向スコア を導⼊する
    傾向スコアマッチング : 傾向スコアを⽤いて、⽋損が等しくランダムに
    ⽋損した状態になるようにデータの件数を削って揃える
    IPW : 傾向スコアを⽤いて、⽋損ができるだけ等しくランダムに⽋損し
    た状態になるようにデータの件数を重み付け平均を⽤いて⽔増しして揃
    える (ウェイトバック)
    詳しくは 岩波 DS vol.3 を参照
    e(x) = P (Z = 1∣X = x)

    View Slide

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

    View Slide

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

    View Slide

  15. アップリフトモデリング
    次のようなデータから、介⼊を⾏ったときのアウトカムの予測モデル
    と介⼊を⾏わなかったときの予測モデル を機械学習により求める
    アップリフト のモデル を と から求める
    id( ) 特徴量 ( ) 介⼊有無 ( ) アウトカム( )
    τ1
    τ0
    Y −
    1i Y0i τ τ1 τ0
    i X Z ∈ {0, 1} Y
    1 X1 Z1 Y1
    ⋮ ⋮ ⋮ ⋮
    N XN ZN YN

    View Slide

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

    View Slide

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

    View Slide

  18. T-learner, S-learner
    ともにアップリフトモデリングのもっとも単純な例
    詳細は Metalearners for estimating heterogeneous treatment effects
    using machine learning を参照 (T-learner, S-learner, X-learner につい
    て記述されている)

    View Slide

  19. T-learner

    元データを に応じて2つに分割
    それぞれについて から を予測する機械学
    習モデル , を作る
    Z
    X Y
    μ (X)
    0 μ (X)
    1
    E[Y −
    0
    Y ∣X =
    1
    x] = μ (x) −
    1
    μ (x)
    0

    View Slide

  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

    View Slide

  21. S-leaner, T-learner
    のここがダメ
    介⼊群 ( ) /⾮介⼊群 (
    ) が著しく偏っている
    ときに、機械学習モデルの性
    能が保証できない
    Z = 1
    Z = 0

    View Slide

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

    View Slide

  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

    View Slide

  24. X-learner のここ
    がすごい
    2つの CATE 推定モデルを対
    照群と介⼊群の実測値を⽤い
    てそれぞれ作成
    2つのモデルをアンサンブルす
    ることで、それぞれが得意な
    箇所を両⽅ともに使える

    View Slide

  25. ⽐較
    X-learner がもっとも性能が
    良かった

    View Slide

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

    View Slide

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

    View Slide

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

    i
    e∗ τ∗

    View Slide

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

    View Slide

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

    View Slide

  31. 結果

    View Slide

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

    詳しくは BART: Bayesian additive regression treesによる因果推論 -
    勉強の記録

    View Slide

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

    View Slide

  34. Recap
    uber/causalml はアップリフトモデリングを⾏うためのライブラリ
    ⽤いられている *-Learner 系のアルゴリズムでは、これまで傾向スコア
    を⽤いた⽅法で算出していた ATE (Average Treatment Effect) をアップ
    リフトモデリングで捉え直して算出している
    更に、共変量を固定した CATE (Conditional ATE) を算出することも⾃
    然にできる
    T-learner や S-learner は単純なアップサンプリングモデルで、X-
    learner は2つのモデルをアンサンブル、R-learner はモデルを hold out
    してスタックしている

    View Slide

  35. わからなかったこと
    uber/causalml のソースコードを読んでみたけれど、なんであの実装で
    良いのか分からなかった (特に R-learner)
    BART が何者なのかはいまいち分かっていない

    View Slide