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

勉強会準備資料備忘:causal forest & r-learner

Masa
December 12, 2019

勉強会準備資料備忘:causal forest & r-learner

プライベートの勉強会の準備資料(備忘)
■ Causal forests
[メイン論文] Stefan Wager, Susan Athey.(2018), "Estimation and Inference of Heterogeneous Treatment Effects using Random Forests",Journal of the American Statistical Association.
https://www.gsb.stanford.edu/faculty-research/publications/estimation-inference-heterogeneous-treatment-effects-using-random
[サブ論文]Athey, S., and Imbens, G. (2016), “Recursive Partitioning for Heterogeneous Causal Effects,” Proceedings of the National Academy of Sciences.
https://www.pnas.org/content/pnas/113/27/7353.full.pdf

■ R-Learner?
[論文]Xinkun Nie, Stefan Wager.(2018), "Quasi-Oracle Estimation of Heterogeneous Treatment Effects", Atlantic Causal Inference Conference.
https://arxiv.org/pdf/1712.04912v3.pdf

■ 事例論文
[紹介論文]
"Improve User Retention with Causal Learning" [Uber, KDD2019]
http://proceedings.mlr.press/v104/du19a/du19a.pdf

Masa

December 12, 2019
Tweet

More Decks by Masa

Other Decks in Science

Transcript

  1. causal forest & r-learner
    twitter @asas_mimi
    1

    View full-size slide

  2. Heterogeneous Treatment Effects
    を “できるだけ” unbiasedに推定したい
    2
    モチベーション

    View full-size slide

  3. ⽬次
    3
    1. 因果推論︖
    a. なんで普通の回帰じゃダメなの︖
    b. RCTs or 準実験︖
    c. 傾向スコアでなんで満⾜できないの︖
    2. causal forest︖
    a. Dobule-Samle Trees
    b. Propensity Trees
    3. r-learner︖
    4. (おまけ)Double/ debiased ML?
    5. 応⽤実例︓Uberのリテンション施策

    View full-size slide

  4. 事例︓刑務所にて
    4
    介⼊群
    (認知⾏動療法)
    再犯率10%
    再犯率30%
    認知⾏動療法検証
    認知⾏動療法 (CBT) を受けた受刑者の再犯率、なんか低い︖(集計的事実)
    なんか効果ありそう!!

    View full-size slide

  5. 事例︓刑務所にて
    5
    介⼊群
    (認知⾏動療法)
    再犯率10%
    再犯率30%
    認知⾏動療法検証
    認知⾏動療法 (CBT) を受けた受刑者の再犯率、なんか低い︖(集計的事実)
    ü 普通に回帰しちゃダメなのは直感的にわかるはず
    CBT
    再犯

    年齢
    IQ
    罪の
    重さ

    View full-size slide

  6. counterfactual条件
    6
    Neyman (1923), Rubin (1974)の有名なフレームワーク
    Binary treatment variable: W ∈ {0, 1}
    Potential Outcomes:
    • Y(0) - random variable giving outcome received in the control state
    • Y(1) - random variable giving outcome received in the treatment state
    (Only one of Y(0) or Y(1) can ever be observed - the other is a counterfactual outcome)
    Causal effect:
    ![# 1 − # 0 ]
    ATE(Average Treatment Effect)という

    View full-size slide

  7. counterfactual条件=⽋損値問題
    7
    データのイメージはこんな感じ
    ! " # − " % is 計算不能︖
    ID 属性データX W(処置有無) Y(1) Y(0) Y(1)-Y(0)
    Aさん (1.23, 3.22, ・・・) 1 10 ⽋損 ???
    Bさん (9.16, 0.52, ・・・) 0 ⽋損 5 ???
    ・・・ ・・・ ・・・ ・・・ ・・・ ・・・

    View full-size slide

  8. 条件が整っていれば、計算できます
    8
    if {Yi
    (1),Yi
    (0)} ⊥ Wi が成⽴する時︓
    ! " 1 − " 0 = ! " 1 ] − !["(0)
    elif {Yi
    (1),Yi
    (0)} ⊥ Wi
    |Xi を想定できる時︓
    準実験のフレームワークとして問題を解けばよい。
    属性Xを使って擬似的にランダム化(両群の属性をバランシング)する
    else:
    今⽇の紹介する⼿法は
    難しい。。。(分析計画、⼤事)
    RCT
    (無作為化⽐較実験)
    強く無視できる割付条件
    unconfounded
    傾向スコアとか
    propensity score
    他にも⾊々

    View full-size slide

  9. ü 各被験者に傾向スコアを付与
    ü 傾向スコアが近いもの同⼠を⽐較
    傾向スコア(マッチング)のイメージ
    9
    {Yi
    (1),Yi
    (0)} ⊥ Wi
    |Xi
    つまり、アウトカムと割付Wの両⽅に影響を与えるXを観察している時、
    介⼊群
    (認知⾏動療法)
    再犯率10%
    再犯率30%
    観察研究
    ü 介⼊群割り当て確率を算出
    Logistic Regression等の任意の⼆値問題として解く
    ① 傾向スコア算出
    ここを
    モデル化
    Pr # = 1 & =
    1
    1 + exp(−-)
    - = β0
    + β123
    ∗ 567 + β89
    ∗ :; + ・・・
    ② マッチング
    介⼊群
    ⾮介⼊群
    傾向スコア 0.3 0.8 0.9 0.5
    再犯率 50% 15% 7% 13%
    ⽐較
    超有名な⼿法ので、
    ググって他の有⽤な資料で確認してください

    View full-size slide

  10. 平均介⼊効果では満⾜できない
    効果は各属性に基づいて変わるはず
    10
    Average Heterogeneous

    View full-size slide

  11. Heterogeneous Treatment Effect
    11
    Average Treatment Effect:
    Heterogeneous Treatment Effect:
    ![# 1 − # 0 ]
    ((*) = ![# 1 − # 0 |. = *]
    conditional average treatment effect とも

    View full-size slide

  12. 謝 罪
    以下では、漸近性や収束レートなどディープな議論はスキップしています。
    ご興味がある⽅は論⽂をご参照ください。
    12

    View full-size slide

  13. causal forest
    13

    View full-size slide

  14. この論⽂
    14
    Susan Athey先⽣ (Stanford Univ.)
    • 経済学者
    • {因果推論・経済学✖機械学習}界隈で超有名
    https://www.gsb.stanford.edu/faculty-research/publications/estimation-inference-heterogeneous-treatment-effects-using-random
    (画像出展)https://www.gsb.stanford.edu/faculty-research/faculty/susan-athey

    View full-size slide

  15. ざっくりしたイメージ
    15
    同じLeafに落ちたサンプルは共変量の属性が近いはず
    各Leaf毎に以下を計算すれば、HTEは計算できるのでは︖ tree モデル
    (分割⽅法︓後述)
    特徴量x1



    x2
    ! " 1 ] − !["(0)
    このLeaf内での
    ⼀種のクラスタリング
    として機能

    View full-size slide

  16. Double-Sample Trees
    16
    datasetをランダムに分割
    J-sample
    =Str
    L-sample
    =Sest
    ⽊を構築⽤
    Outcome計算⽤
    改良版MSE
    test-data
    =Ste test
    分割して何が嬉しいの︖

    View full-size slide

  17. Double-Sample Trees
    17
    結論︓嬉しい
    Why: 解くべき⽬的関数はこんな感じのMSE(mean squared error) Str サンプルで⽊を作る
    Π=π(Str )
    Sest サンプルのYを使⽤し
    てアウトカムを決定
    推定HTE
    Ground Truth

    View full-size slide

  18. Double-Sample Trees
    18
    結論︓嬉しい
    Why: 解くべき⽬的関数はこんな感じのMSE(mean squared error)
    Ground Truth
    観察不可能
    ←計算できない?

    View full-size slide

  19. Double-Sample Trees
    19
    結論︓嬉しい
    Why: 解くべき⽬的関数はこんな感じのMSE(mean squared error)
    こんな感じに改造できる
    ︕︕全部観察可能なものに置き換えられる
    Modifying the Honest Approach♪
    ⽬的関数︓
    差(HTE)の⼆乗から
    分散に重み付けしたものを引いたもの

    これを最⼤化する⽊をつくる。
    なんでground truth
    消えたの︖

    View full-size slide

  20. Double-Sample Trees
    20
    詳しくは、以下の論⽂を読んでください。
    https://www.pnas.org/content/pnas/113/27/7353.full.pdf

    View full-size slide

  21. Double-Sample Trees
    21
    = "
    #$%,#%'$
    ()
    − ̂
    ( ,)
    -./0, Π 2
    − ()
    2
    = "
    #$%,#%'$
    ()
    − ̂
    ( ,)
    Π + ̂
    ( ,)
    Π − ̂
    ( ,)
    -./0, Π 2
    − ()
    2
    = "
    #$%,#%'$
    ()
    − ̂
    ( ,)
    Π 2
    − ()
    2
    ざっくりイメージ
    詳しくは論⽂読んでください
    + "
    #$%,#%'$
    ̂
    ( ,)
    Π − ̂
    ( ,)
    -./0, Π 2
    + "
    #$%,#%'$
    2(()
    − ̂
    ( ,)
    Π )( ̂
    ( ,)
    Π − ̂
    ( ,)
    -./0, Π )
    ゼロ

    View full-size slide

  22. Double-Sample Trees
    22
    = "
    #$%,#%'$
    ()
    − ̂
    ( ,)
    Π .
    − ()
    .
    + "
    #$%,#%'$
    ̂
    ( ,)
    Π − ̂
    ( ,)
    0123, Π .
    + "
    #$%,#%'$
    2(()
    − ̂
    ( ,)
    Π )( ̂
    ( ,)
    Π − ̂
    ( ,)
    0123, Π )
    A
    B
    ԾఆΑΓ & "

    ·ͨɺ$PW " #

    ͳͥͳΒɺНJ
    ͷݩͷ:J

    ͸ಠཱͨ͠4FTU͔Βऔಘ͍ͯ͠Δ͔Β
    ͭ·Γ
    $PW " #
    & "#
    r & "
    & #

    & "#

    消せる
    ざっくりイメージ
    詳しくは論⽂読んでください

    View full-size slide

  23. Double-Sample Trees
    23
    = "
    #$%,#%'$
    ()
    − ̂
    ( ,)
    Π .
    − ()
    .
    + "
    #$%,#%'$
    ̂
    ( ,)
    Π − ̂
    ( ,)
    0123, Π .
    ざっくりイメージ
    詳しくは論⽂読んでください
    = "(56,76)
    ̂
    ( ,)
    Π . − 2()
    ∗ ̂
    ( ,)
    Π
    + "
    76,#%'$
    ̂
    ( ,)
    Π − ̂
    ( ,)
    0123, Π .
    = "76
    ̂
    ( ,)
    Π . − 2 ̂
    ( ,)
    Π ∗ ̂
    ( ,)
    Π
    + "
    76,#%'$
    ̂
    ( ,)
    Π − ̂
    ( ,)
    0123, Π .

    View full-size slide

  24. Double-Sample Trees
    24
    ざっくりイメージ
    詳しくは論⽂読んでください
    = "#$
    ̂
    & '(
    Π * − 2 ̂
    & '(
    Π ∗ ̂
    & '(
    Π
    + "
    #$,0123
    ̂
    & '(
    Π − ̂
    & '(
    4567, Π *
    = − "#$
    ̂
    & '(
    Π + "
    #$,0123
    8( ̂
    & '(
    4567, Π )
    trデータにおけるパーテションΠ内の差
    分の期待値が⼤きいと嬉しい
    分散は最⼩化したい
    こんな感じの⽊Πを作成する

    View full-size slide

  25. Propensity Trees
    25
    とてもシンプル tree モデル
    ⽬的変数はW (Yではない)
    特徴量x1



    x2
    ! " 1 ] − !["(0)
    このLeaf内での
    ⼀種のクラスタリング
    として機能

    View full-size slide

  26. 上記のtreesをforestにする
    = causal forest
    26

    View full-size slide

  27. この論⽂のここがすごい
    27
    https://www.gsb.stanford.edu/faculty-research/publications/estimation-inference-heterogeneous-treatment-effects-using-random
    • 漸近正規性の議論︓
    ランダムフォレストを⽤いた因果効果に対する推定量の漸近的性質を
    ⽰す(=論⽂の太宗)
    • シミュレーション結果もそれっぽく推定できている︓
    右図のように、単に近傍を集めたk-NNベースのよものより、うまくHTE
    を識別できているように⾒える

    View full-size slide

  28. 28
    causal forestの進化系
    Generalized Random Forests Orthogonal Random Forests
    • GMM(⼀般化モーメント法)的な拡張
    Generalized Random Forests
    リンク : https://arxiv.org/abs/1610.01271
    Orthogonal Random Forest for Causal Inference
    リンク : https://arxiv.org/abs/1806.03467
    RFによってサンプルの近傍を定義
    (カーネル法ではなく)
    その中でGMMで局所回帰をフィッティング
    • 左のさらなる拡張っぽい︖
    • (まだ読めてないです)
    • DoubleMLと同じようにネイマン直交条件
    を加えてるっぽい︖

    View full-size slide

  29. 29
    MicroSoft
    Uber

    View full-size slide

  30. Meta-Leaner Algo. の⼀つ
    31
    EconML
    Uberの⽅には
    実装されてる

    View full-size slide

  31. この論⽂
    32
    https://arxiv.org/pdf/1712.04912v3.pdf
    Xinkun Nie and Stefan Wager. Quasi-Oracle Estimation of Heterogeneous
    Treatment Effects. Atlantic Causal Inference Conference, 2018.
    なんでr-learnerなのか
    • Uberがリテンション施策/マーケティング施策の論⽂で、よく⽬にする
    • 他の〇〇-learner論⽂、まだちゃんと読んでない (本⾳)

    View full-size slide

  32. 発想のポイントはここ
    33
    求めたいもの
    w=0で学習した
    モデルの推定値
    Robinson変換
    傾向スコア

    View full-size slide

  33. 直感的な解釈
    34
    • μ(0)
    : w=0で学習したモデル
    • μ(0)
    (Xi
    ): iさんが W=0だった場合のアウトカムの推定値
    • m(x) : E[Y|X] =W=0の推定値 + 傾向スコア(介⼊確率)*因果効果
    アウトカムとm(X)の誤差 =(実際の割付と傾向スコアの誤差)*介⼊効果+ε

    View full-size slide

  34. 料理⼿順
    35
    ① 傾向スコアFとNを任意の教師あり学習で作っておく
    ② 上の式(3)に⼊れて、Нを推定
    これも原理的には任意の学習器︓
    でも、Local Linear Forests がいいっぽい
    論⽂: Local Linear Forests
    https://arxiv.org/pdf/1807.11408

    View full-size slide

  35. 他のMeta-LeanerはEconMLのドキュメントで
    36
    https://econml.azurewebsites.net/spec/estimation/metalearners.html

    View full-size slide

  36. (おまけ)
    Double/debiased ML ?
    37
    なにこれ︕︖

    View full-size slide

  37. (おまけ) Double/debiased ML ?
    38
    https://onlinelibrary.wiley.com/doi/full/10.1111/ectj.12097
    • 例えば、以下のような部分線形問題を考える
    • このモーメント条件,W = (Y,X,D)
    • について、score関数ψを以下のように改造する
    • これがネイマン直交条件 Neyman orthogonality を満たす
    η = (m, g)
    • つまり、推定値Бの微⼩変動=推定誤差に対して、
    モーメント条件がロバストであることが分かる。
    • 他にもデータを分割して、cross-fittingしたり⾊々⼯
    夫する(省略︕︕︕︕)
    介⼊ 局外パラメータ
    傾向スコアを追加
    してあげる

    View full-size slide

  38. (おまけ) Double/debiased ML ?
    39
    https://onlinelibrary.wiley.com/doi/full/10.1111/ectj.12097
    ノーベル経済学賞
    (2019年)
    https://www.bloomberg.co.jp/news/articles/2019-10-14/PZD1UDSYF01Y01
    受賞理由では
    ないですが...

    View full-size slide

  39. 応⽤事例︓Uberのリテンション施策
    40
    Improve User Retention with Causal Learning [Uber, KDD2019]
    http://proceedings.mlr.press/v104/du19a/du19a.pdf

    View full-size slide

  40. 問題設計
    41
    以下の0/1ナップザック問題を解く
    問題設計
    各個⼈の
    リテンション介⼊効果
    各個⼈の
    必要コスト※
    プロジェクト予算
    ※: 各個⼈の必要コスト︖︖
    本論⽂の想定はコストが個⼈によって変動する。「3000円のクーポン配る」ではなく、「1トリップ無料クーポン」のようなイメージ
    τc は τr と同様、以下のとおり。
    !"($) = '[)" 1 − )" 0 |. = $]
    クーポンをもらった
    際のネットコスト
    クーポンなしの際
    のネットコスト

    View full-size slide

  41. 42
    普通にコスパ率を下記のように定義して、Siが⾼い順に選んでいけば良いのでは︖
    ナイーブな解放
    結論︓不適
    1. 推定値 τ はノイズが多く、⽐率がそれを増幅する
    2. ゼロ割リスクが⾼い
    3. τc <0 , τr >0 の時、施策を⾏いたい、その逆は⾏いたくない。しかし、⽐率だとその区別ができない
    4. システム的に保持すべきモデルが(Retention/Costの)2つ。 R-learnerみたいなモデルになるとtwo-step
    モデルなので、最⼤4つのモデルを管理する必要がある。(めんどくさい)
    直感的なコスパ率

    View full-size slide

  42. 43
    1) ラグランジュ緩和 Lagrangian relaxation を⾏いλを劣勾配法で解く
    本論⽂の提案1︓Cardinal Prediction
    2) ⽐率ではなく、指標とすべきスコアは下記となる
    3) 上記 2)は と書ける。YrとYcとλが得られれば、直接Si
    をもう⼀度推定するモデルを作る。(実装の際に、モデルを複数管理する⼿間はなくなる。)
    YS(1) YS(0)
    XXXXX ⽋損
    ⽋損 XXXXX
    これの、
    直交モデル τS を作る
    ※ちなみに、λは計算が⼤変なら、ハイパーパラメータとして、最初から3)から解いちゃえばいい

    View full-size slide

  43. 44
    各個⼈の厳密なHTEの点推定はいらない。直接、Si(コスパっぽいスコア)を推定するような f を学習したい。
    本論⽂の提案2︓Ordinal Prediction
    ■ 損失関数を下記のように⼯夫する
    1) 出⼒を正規化
    2) 出⼒を各グループ(介⼊/コントロール)内での
    みなしクーポン割付確率を計算
    3) 2)の確率を重み付けして、treatment effectを下
    記のように定義
    4) treatment effect efficiencyを最適化する
    wi=0なら負の重み
    wi=1なら正の重み

    View full-size slide

  44. 45
    本論⽂の提案2︓Ordinal Prediction
    User X W Y_r Y_cost s exp(s) p tau_r tau_c
    A ... 1 0 -1 0.4 1.49 34% 0.00 -0.34
    B ... 1 1 2.3 0.1 1.11 25% 0.25 0.58
    C ... 1 1 1.4 0.6 1.82 41% 0.41 0.58
    D ... 0 0 -2 0.5 1.65 32% 0.00 0.64
    E ... 0 0 1 0.3 1.35 26% 0.00 -0.26
    F ... 0 1 -4 -0.2 0.82 16% -0.16 0.63
    G ... 0 1 2 0.3 1.35 26% -0.26 -0.52
    ... ... ... ... ... ... ... ... ... ...
    これを使ってコスパを算出
    =lossと定義する
    モデルfは、その出⼒Sをもとに計算された各G内の選抜
    確率に基づいて定義されるコスパを最⼤化したものでな
    ければならない。
    sum sum
    Y(1)*p
    -1*Y(0)*p
    ←普通の教師あり学習(DNN等)
    但し、lossは以下
    モデル出⼒からで
    た「選ばれやすさ
    確率」

    View full-size slide

  45. 46
    評価 結果
    スコアSをソートして以下の式で、リテンション効
    果(y軸)とコスト(x軸)を計算する
    Offlineテスト・Onlineテスト両⽅とも提案⼿法2が
    勝利

    View full-size slide