第10回 意思決定のためのデータ分析勉強会 online の登壇資料です、以前にも同様な資料をあげていますが、こちらは範囲を絞ってより平易にしたものです。
https://ishikettei.connpass.com/event/176578/
Introduction to Causal InferenceAsei Sugiyama
View Slide
要旨統計的因果推論では、介⼊を⾏ったときのアウトカムと⾏わなかったときのアウトカムの差である介⼊効果を扱う⽋損値となっている観測できなかったアウトカムをうまく扱うことで、平均的な介⼊効果の算出ができるアップリフトモデリングでは、機械学習を⽤いて⽋損値を補完することで平均的な介⼊効果の算出を⾏う複雑な⼿法を使うと応⽤範囲が広がるが、問題設定、データ処理、結果の解釈の妥当性を⽰すことが困難になる
⾃⼰紹介杉⼭ 阿聖Software Engineer @ Repro AI Labs機械学習基盤の設計構築統計的因果推論の検証TensorFlow User GroupTFX : Issue ⽴てたり PR ⽴てたりdocs-l10n : 翻訳 & レビュー機械学習図鑑 共著
⽬的データから意思決定を⾏う際に注意すべき選択バイアスと、それに統計的因果推論の枠組みで機械学習を⽤いて、正しく意思決定を⾏うためのアルゴリズムについて紹介します
TOC. 統計的因果推論で扱う問題 <-. 機械学習の統計的因果推論への応⽤. 実務で直⾯している課題. まとめ
統計的因果推論で扱う問題例 1. マーケターの業務における仮説⽴案例 2. 広告メールの効果測定問題設定
例 1. マーケターの業務における仮説⽴案マーケターはライトユーザーに「真実の瞬間」を体験してもらうことで、⾃サービスのヘビーユーザーになってほしいライトユーザーとヘビーユーザーの過去の⾏動履歴を収集するヘビーユーザーのみが⾏っていて、ライトユーザーが⾏っていない⾏動を特定するユーザーの⾏動に関する仮説⽴案を⾏い、ライトユーザーにその⾏動を促すような施策の検討を⾏う施策の効果を A/B テストで検証すると、効果が出たり、効果が出なかったりする
例 2. メール施策の効果測定メール施策の効果があるかどうか、A/B テストを⾏って確かめたいそのアプリはメールアドレスの登録が必須ではなく、メールで通知を受け取りたいヘビーユーザーのみがメールアドレスを登録しているこのときに、メール施策の効果検証を次のような A/B テストで⾏いたい介⼊群: アプリユーザーのうち、メールを送信したユーザー群対照群: アプリユーザーのうち、メールを送信しないユーザー群介⼊群の結果が有意に良かったとして、これは効果があったのだろうか?それとも、ヘビーユーザーの傾向を⾒ているだけだろうか?
問題設定 (1/5)何かの検証を⾏った結果、次のようなデータが⼿に⼊ったものとするid( ) 共変量 ( ) 介⼊変数 ( ) アウトカム( )このようなデータから介⼊を⾏ったときの効果を知りたいi X Z Y1 X1 Z1 Y1⋮ ⋮ ⋮ ⋮N XN ZN YN
問題設定 (2/5)本質的に知りたいものは 番⽬のユーザーに対して介⼊を⾏ったときのアウトカム と介⼊を⾏わなかったときのアウトカム の差なので次のようなデータが必要 ( はなくても良い)id( ) 共変量 ( ) 介⼊変数 ( ) アウトカム( ) アウトカム( )iYi1 Yi0Y −i1 Yi0 Zi X Z Y0 Y11 X1 Z1 Y10 Y11⋮ ⋮ ⋮ ⋮ ⋮N XN ZN YN 0 YN 1
問題設定 (3/5)下記のデータのうち、アウトカム と を同時に知ることはできないので、アウトカムは半分程度が⽋損した状態になっているid( ) 共変量 ( ) 介⼊変数 ( ) アウトカム( ) アウトカム( )nullnullYi0 Yi1i X Z Y0 Y11 X1 Z =1 0 Y102 X2 Z =2 1 Y11⋮ ⋮ ⋮ ⋮ ⋮
問題設定 (4/5)⽋損していたとしても、⽋損が等しくランダムに起こっているのなら、介⼊効果の期待値 はわかる(⽋損していない , で平均を取り、差を計算すれば良い)A/B テストはこの状況E[Y −i1 Y ]i0Yi0 Yi1
問題設定 (5/5), の⽋損が共変量によって偏りがある場合には、平均を取ると選択バイアスが⽣じてしまうこの状況下で介⼊効果であるATE やCATEを推定したいYi0 Yi1 XE[Y −1 Y ]0E[Y −1 Y ∣X =0 x]
最近 Twitterで⾒かけた例https://twitter.com/westernpalace/status/1272754555990601729
因果関係が無条件にわかるわけではない問題設定からわかるように、介⼊がアウトカムに与えるメカニズムについて説明を⾏うわけではない介⼊を⾏ったことがアウトカムに影響を与えるメカニズムについては、⼈⼿で理論を構築する必要があるあくまで今知りたいのは次の 2 つ. ATE (Average Treatment Effect). CATE (Conditional ATE)E[Y −1 Y ]0E[Y −1 Y ∣X =0 x]
前提条件A/B テストができないケースを想定する例 1. 過去のデータだけで考えなければいけない例 2. A/B テストのコストを⽀払えないA/B テストができるケースでは⾏えば良いマーケターの例は 例 1. に相当例 2. は公共施策 (電気料⾦や税⾦) のように影響範囲の⼤きなものや、がん患者への新療法の治験のように、重篤だからといって何もしないわけには⾏かないものが相当する
今⽇は話さないこと傾向スコア を導⼊する傾向スコアマッチング : 傾向スコアを⽤いて、⽋損が等しくランダムに⽋損した状態になるようにデータの件数を削って揃えるIPW : 傾向スコアを⽤いて、⽋損ができるだけ等しくランダムに⽋損した状態になるようにデータの件数を重み付け平均を⽤いて⽔増しして揃える (ウェイトバック)詳しくは 岩波 DS vol.3 を参照e(x) = P (Z = 1∣X = x)
まとめ統計的因果推論では、介⼊によるアウトカムの変化量を知りたい直接にはわからないので、平均である ATE や CATE を推定するid( ) 共変量 ( ) 介⼊変数 ( ) アウトカム( ) アウトカム( )nullnulli X Z Y0 Y11 X1 Z =1 0 Y102 X2 Z =2 1 Y11⋮ ⋮ ⋮ ⋮ ⋮
TOC. 統計的因果推論で扱う問題. 機械学習の統計的因果推論への応⽤ <-. 実務で直⾯している課題. まとめ
機械学習の統計的因果推論への応⽤機械学習アップリフトモデリングS-learnerT-learnerX-learner機械学習の枠組みについてはある程度知っているという前提で話します
機械学習与えられた特徴量と⽬的変数の組から、特徴量と⽬的変数の関係を表す関数 を学習するプログラム (教師あり学習)f
アップリフトモデリング次のようなデータから、介⼊を⾏ったときのアウトカムの予測モデルと介⼊を⾏わなかったときの予測モデル を機械学習により求めるアップリフト のモデル を と から求めるid( ) 特徴量 ( ) 介⼊有無 ( ) アウトカム( )τ1τ0Y −1i Y0i τ τ1 τ0i X Z ∈ {0, 1} Y1 X1 Z1 Y1⋮ ⋮ ⋮ ⋮N XN ZN YN
アップリフトモデリング仕事で始める機械学習に記述がある書籍では次のとおり. ⼀部のユーザーのデータから と を学習. 残りのユーザーについてを計算. 効果が⾒込めるユーザーに施策を⾏うτ1 τ0τ (X) −1 τ (X)0
因果推論との関連アップリフトモデリング: と における⽋損値を機械学習で作ったモデル と を利⽤して埋め、効果を算出するイメージid( ) 共変量 ( ) 介⼊変数 ( ) アウトカム( ) アウトカム( )Y0 Y1τ1 τ0i X Z Y0 Y11 X1 Z =1 0 Y10 τ (X )1 12 X2 Z =2 1 τ (X )0 2 Y11⋮ ⋮ ⋮ ⋮ ⋮
アップリフトモデリングの例. T-learner. S-learner. X-learner詳細は Metalearners for estimating heterogeneous treatment effectsusing machine learning を参照 (X-learner の提案を⾏った論⽂)
T-learner→元データを に応じて 2 つに分割それぞれについて から を予測する機械学習モデル , を作るZX Yμ (X)0 μ (X)1E[Y −0Y ∣X =1x] = μ (x) −1μ (x)0
S-learnerから を予測する機械学習モデル を作成するid( ) 特徴量 ( ) 介⼊有無 ( ) アウトカム( )(X, Z) Y τ(X, Z)E[Y −0 Y ∣X =1 x] = τ(X, 1) − τ(X, 0)i X Z ∈ {0, 1} Y1 X1 Z1 Y1⋮ ⋮ ⋮ ⋮N XN ZN YN
S-leaner, T-learnerのここがダメ介⼊群 ( ) /⾮介⼊群 () が著しく偏っているときに、機械学習モデルの性能が保証できないZ = 1Z = 0
X-learner. T-learner 同様に 2 つのモデル ,を作成. とを実測値 を⽤いて計算. , の予測モデル とを作成. CATE の推定モデル(x)μ^0(x)μ^1=D~i0 Y −0i (X )μ^1 i=D~j1 Y −1j (X )μ^0 jY , Y0i 1jD~i0 D~i1 τ (x)0 τ (x)1τ(x) =e(x)τ (x) +1 (1 − e(x))τ (x)0
もっとやさしくS-learner, T-learner, では実測値があるところもモデルの出⼒に置き換えていたのを、X-learner では⽋損だけを埋めるようにした埋めたあとでアウトカムの差 , を計算し、再度モデルを作成id( ) 共変量 ( ) 介⼊変数 ( ) アウトカム( ) アウトカム( )D~i0 D~i1i X Z Y0 Y11 X1 Z =1 0 Y10 τ (X )1 12 X2 Z =2 1 τ (X )0 2 Y11⋮ ⋮ ⋮ ⋮ ⋮
X-learner のここがすごい2 つの CATE 推定モデルを対照群と介⼊群の実測値を⽤いてそれぞれ作成2 つのモデルをアンサンブルすることで、それぞれが得意な箇所を両⽅ともに使える
⽐較X-learner がもっとも性能が良かった
TOC. 統計的因果推論で扱う問題. 機械学習の統計的因果推論への応⽤. 実務で直⾯している課題 <-. まとめ
実務で直⾯している課題妥当な問題設定を⾏うことが難しいデータ処理の妥当性を⽰すことが難しい結果の解釈が難しい
妥当な問題設定を⾏うことが難しいA/B テストが⾏えればこの⼿法は必要ないルールベースで介⼊/⾮介⼊が分かれるようなケースは適⽤が難しい全ユーザーにクーポンを配布、利⽤するかはユーザー次第なら OK特定の条件を満たしたユーザーに贈答品を送る、は NG⼀般的な機械学習よりも変数が 1 つ多い (介⼊有無)学習直後に、⽬の前の課題に適⽤できるかどうか分からず悩む、というのは実際にあった
データ処理の妥当性を⽰すことが難しい統計的因果推論はさまざまな⼿法が提案されているそれぞれの⼿法で推定される ATE の値が結構違うデータの処理を⾏う⼀連の⼿続きの中で、何をチェックすればいいのか定められていない例えば、今⽇の X-learner は機械学習モデルを 5 個も作るが、それらの性能評価をどう⾏うのか不明データの処理を⾏う⼀連の⼿続きの標準がないので、他⼈の計算結果との⽐較が困難
結果の解釈が難しい⼀般的な統計的検定⼿法 (例えば t 検定) が使えないため、出⼒結果を解釈する⽅法について都度⾃分で考える必要があるよくわからない結果が得られたとき、その理由を知ることが困難データの収集⾃体のミスデータを処理したプログラムのバグ共変量がアウトカムの結果になっている (問題設定の不備)etc.実際、過去に⾏った結果と⽭盾する結果を得て、どちらも正しいという結論に⾄ったケースがあった
Recap統計的因果推論では、介⼊を⾏ったときのアウトカムと⾏わなかったときのアウトカムの差である介⼊効果を扱う⽋損値となっている観測できなかったアウトカムをうまく扱うことで、平均的な介⼊効果の算出ができるアップリフトモデリングでは、機械学習を⽤いて⽋損値を補完することで平均的な介⼊効果の算出を⾏う複雑な⼿法を使うと応⽤範囲が広がるが、問題設定、データ処理、結果の解釈の妥当性を⽰すことが困難になる