Slide 1

Slide 1 text

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

Slide 2

Slide 2 text

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

Slide 3

Slide 3 text

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

Slide 4

Slide 4 text

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

Slide 5

Slide 5 text

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

Slide 6

Slide 6 text

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

Slide 7

Slide 7 text

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

Slide 8

Slide 8 text

統計的因果推論概要 (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

Slide 9

Slide 9 text

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

Slide 10

Slide 10 text

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

Slide 11

Slide 11 text

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

Slide 12

Slide 12 text

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

Slide 13

Slide 13 text

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

Slide 14

Slide 14 text

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

Slide 15

Slide 15 text

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

Slide 16

Slide 16 text

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

Slide 17

Slide 17 text

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

Slide 18

Slide 18 text

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

Slide 19

Slide 19 text

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

Slide 20

Slide 20 text

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

Slide 21

Slide 21 text

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

Slide 22

Slide 22 text

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

Slide 23

Slide 23 text

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

Slide 24

Slide 24 text

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

Slide 25

Slide 25 text

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

Slide 26

Slide 26 text

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

Slide 27

Slide 27 text

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

Slide 28

Slide 28 text

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

Slide 29

Slide 29 text

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

Slide 30

Slide 30 text

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

Slide 31

Slide 31 text

結果

Slide 32

Slide 32 text

BART ってなんだ Bayesian Additive Regression Trees 2016 年当時、因果推論タスクでまともに動いていた決定⽊系アルゴリズ ム 詳しくは BART: Bayesian additive regression treesによる因果推論 - 勉強の記録

Slide 33

Slide 33 text

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

Slide 34

Slide 34 text

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

Slide 35

Slide 35 text

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