Slide 1

Slide 1 text

causal forest & r-learner twitter @asas_mimi 1

Slide 2

Slide 2 text

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

Slide 3

Slide 3 text

⽬次 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のリテンション施策

Slide 4

Slide 4 text

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

Slide 5

Slide 5 text

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

Slide 6

Slide 6 text

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)という

Slide 7

Slide 7 text

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 ??? ・・・ ・・・ ・・・ ・・・ ・・・ ・・・

Slide 8

Slide 8 text

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

Slide 9

Slide 9 text

ü 各被験者に傾向スコアを付与 ü 傾向スコアが近いもの同⼠を⽐較 傾向スコア(マッチング)のイメージ 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% ⽐較 超有名な⼿法ので、 ググって他の有⽤な資料で確認してください

Slide 10

Slide 10 text

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

Slide 11

Slide 11 text

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

Slide 12

Slide 12 text

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

Slide 13

Slide 13 text

causal forest 13

Slide 14

Slide 14 text

この論⽂ 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

Slide 15

Slide 15 text

ざっくりしたイメージ 15 同じLeafに落ちたサンプルは共変量の属性が近いはず 各Leaf毎に以下を計算すれば、HTEは計算できるのでは︖ tree モデル (分割⽅法︓後述) 特徴量x1 特 徴 量 x2 ! " 1 ] − !["(0) このLeaf内での ⼀種のクラスタリング として機能

Slide 16

Slide 16 text

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

Slide 17

Slide 17 text

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

Slide 18

Slide 18 text

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

Slide 19

Slide 19 text

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

Slide 20

Slide 20 text

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

Slide 21

Slide 21 text

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

Slide 22

Slide 22 text

Double-Sample Trees 22 = " #$%,#%'$ () − ̂ ( ,) Π . − () . + " #$%,#%'$ ̂ ( ,) Π − ̂ ( ,) 0123, Π . + " #$%,#%'$ 2(() − ̂ ( ,) Π )( ̂ ( ,) Π − ̂ ( ,) 0123, Π ) A B ԾఆΑΓ & " ·ͨɺ$PW " # ͳͥͳΒɺНJ ͷݩͷ:J ͸ಠཱͨ͠4FTU͔Βऔಘ͍ͯ͠Δ͔Β ͭ·Γ $PW " # & "# r & " & # & "# 消せる ざっくりイメージ 詳しくは論⽂読んでください

Slide 23

Slide 23 text

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

Slide 24

Slide 24 text

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

Slide 25

Slide 25 text

Propensity Trees 25 とてもシンプル tree モデル ⽬的変数はW (Yではない) 特徴量x1 特 徴 量 x2 ! " 1 ] − !["(0) このLeaf内での ⼀種のクラスタリング として機能

Slide 26

Slide 26 text

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

Slide 27

Slide 27 text

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

Slide 28

Slide 28 text

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と同じようにネイマン直交条件 を加えてるっぽい︖

Slide 29

Slide 29 text

29 MicroSoft Uber

Slide 30

Slide 30 text

r-learner 30

Slide 31

Slide 31 text

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

Slide 32

Slide 32 text

この論⽂ 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論⽂、まだちゃんと読んでない (本⾳)

Slide 33

Slide 33 text

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

Slide 34

Slide 34 text

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

Slide 35

Slide 35 text

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

Slide 36

Slide 36 text

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

Slide 37

Slide 37 text

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

Slide 38

Slide 38 text

(おまけ) 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したり⾊々⼯ 夫する(省略︕︕︕︕) 介⼊ 局外パラメータ 傾向スコアを追加 してあげる

Slide 39

Slide 39 text

(おまけ) 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 受賞理由では ないですが...

Slide 40

Slide 40 text

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

Slide 41

Slide 41 text

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

Slide 42

Slide 42 text

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

Slide 43

Slide 43 text

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

Slide 44

Slide 44 text

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

Slide 45

Slide 45 text

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は以下 モデル出⼒からで た「選ばれやすさ 確率」

Slide 46

Slide 46 text

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