Slide 1

Slide 1 text

機械学習を用いた効果検証 ~Doubly Robust Learner~

Slide 2

Slide 2 text

アジェンダ - 自己紹介 - 効果検証の概要 - 傾向スコアを用いた効果検証 - 機械学習を用いた効果検証

Slide 3

Slide 3 text

自己紹介

Slide 4

Slide 4 text

自己紹介(経歴) - 九州大学経済学部卒(計量経済学とか) - データアナリスト - EC事業の効果検証 - MaaS事業のDX - 受託分析のデータサイエンティスト ← 今ココ 所属・団体に関するお話はしない(できかねます)ので、ご了承くださいませ

Slide 5

Slide 5 text

自己紹介(宣伝) - Envaderというサービスの企画・運営をしてます - Pythonで因果推論手法を実装するZennをまとめてます

Slide 6

Slide 6 text

効果検証の概要

Slide 7

Slide 7 text

広告の効果を考える - 健康食品会社にて、ダイエット商品の広告を打つ - 広告の効果、すなわち、広告によってダイエット商品の売上が いくら上がったかを考える

Slide 8

Slide 8 text

広告の効果を考える 広告を見た人と広告を見ていない人で売上の差が5,000円 広告を見た人 広告を見ていない人 対象期間の平均売上(円) 10,000 5,000

Slide 9

Slide 9 text

それって本当に広告の効果? 男性よりも女性の方がダイエット商品への購入意欲が高いのか も...? 広告を見た人 (全員女性) 広告を見ていない人 (全員男性) 対象期間の平均売上(円) 10,000 5,000

Slide 10

Slide 10 text

それって本当に広告の効果? ダイエットしたい人は夏の方が多そうですよね...? 広告を見た人 (7/1~7/31) 広告を見ていない人 (1/1~1/31) 対象期間の平均売上(円) 10,000 5,000

Slide 11

Slide 11 text

それって本当に広告の効果? 広告がもともと購入意欲が高い人に配信されていたのかも...? 広告を見た人 (購入履歴あり) 広告を見ていない人 (購入履歴なし) 対象期間の平均売上(円) 10,000 5,000

Slide 12

Slide 12 text

本当の効果 本当の効果とは同じ条件(人・タイミング)のもと、 広告を見た場合と広告を見てない場合の売上の差

Slide 13

Slide 13 text

効果検証とは(理想) 本当はこうなんだけど... 広告を見た場合の売上 (円) 広告を見てない場合の売上 (円) 効果 Aさん 10,000 0 10,000 Bさん 5,000 5,000 0 Cさん 15,000 5,000 10,000

Slide 14

Slide 14 text

効果検証とは(現実) 現実ではどちらかしか分からない... 広告を見た場合の売上 (円) 広告を見てない場合の売上 (円) 効果 Aさん(見た) 10,000 0 ? Bさん(見た) 5,000 5,000 ? Cさん(見てない) 15,000 5,000 ?

Slide 15

Slide 15 text

効果検証とは 広告を見た場合の売上 広告を見てない場合の売上 効果 iさん Y1 Y0 Y1 - Y0 計測不可 N人分のデータを利用して、 効果(Y1 - Y0) あるいは 期待値 E(Y1 - Y0) を理論的に算出するというアプローチ ➢ Y1 - Y0 を”ITE”, E(Y1 - Y0)を”ATE”と呼ぶ

Slide 16

Slide 16 text

補足(効果検証手法の位置づけ) - 分析者としては、実験(A/Bテスト)ができるに越したことはな い(と思っている人が多いはず...) コスト 倫理 ビジネス利益 この方法ならイケるかも!

Slide 17

Slide 17 text

効果検証の概要まとめ - 本当の効果って意外と分からない - 手元にある複数のデータから、どうにかITEやATEを求めよう とするのが効果検証のアプローチ - 効果を知るということだけに焦点を当てると、実験(A/Bテス ト)が一番

Slide 18

Slide 18 text

傾向スコアを用いた効果検証

Slide 19

Slide 19 text

ダイエット商品の広告の例 傾向スコアとは 属性から予測される処置が施される確率 P(T|X=x) → 処置を受ける傾向をスコアリングしたものという解釈 性別: 女性 広告を見る確率は...65% (これが傾向スコア) 予測 配信月: 7月 過去の購入履歴: 有

Slide 20

Slide 20 text

傾向スコアを用いた因果推論手法 - 傾向スコア(ps)を用いた因果推論手法には - 傾向スコアマッチング - IPW: Inverse Probability Weighting - DR法: Doubly Robust Estimation などがある(詳細はこちらのZenn記事を参照) 今回はDR法(Doubly Robust Estimation)を紹介

Slide 21

Slide 21 text

DR法のアルゴリズム 1. 広告の閲覧に寄与しそうなデータXから広告を見たかどうか (T=1,0)を予測する分類モデルを構築し、傾向スコアを算出 2. 共変量(X,T)から売上Yを予測する線形回帰モデルを構築 3. 1. 2. の結果を利用して、ITEおよびATEを算出

Slide 22

Slide 22 text

DR法のアルゴリズム(1/3) 共変量Xから広告を見たかどうか(T=1,0)を予測する分類モデル を構築し、傾向スコア(ps)を算出 分類モデルを構築 ダイエットへの意識の高さ : X = 0.7 広告を見る: T=1 (確率は 65%) 予測 傾向スコア

Slide 23

Slide 23 text

DR法のアルゴリズム(2/3) 共変量(X,T)から売上Yを予測する線形回帰モデルを構築 ダイエットへの意識の高さ : X = 0.25 広告を見た: T = 1 売上: Y = 4,500(予測値)

Slide 24

Slide 24 text

DR法のアルゴリズム(3/3) 1. 2. の結果から、ITEおよびATEを算出(導出は割愛) 広告を見た場合の Yの推定値 広告を見ていない場合の Yの推定値 ATEは、ITEの期待値で表され、

Slide 25

Slide 25 text

どこが “Doubly Robust” なの? 1. Xから広告を見たかどうかを予測する分類モデル 2. 共変量(X,T)から売上Yを予測する線形回帰モデル ➢ 1. 2. のどちらかの推定モデルが正しければ、 ATEをバイアスなく推定することができるんです!

Slide 26

Slide 26 text

設定(1)概要 - 次の例で、広告の効果を考える - 広告を見る確率(傾向スコア)は下記のデータに依存 - 「ダイエットへの意識の高さ」 - 売上は下記2つのデータに依存 - 「ダイエットへの意識の高さ」 - 「広告を見たかどうか」 - 広告の真の効果は一律1,000円(これを推定する)

Slide 27

Slide 27 text

設定(1)変数間の関係性 ダイエットへの意識の高さ (-1以上1以下の数値で表現) 広告を見るかどうか (1: 見た、0: 見てない) ダイエット商品の売上 一律1,000円 (広告の真の効果)

Slide 28

Slide 28 text

設定(1)データの仕様 - ダイエットへの意識の高さx: 一様分布(-1, 1)に従う - 広告閲覧ダミーT: 1(x+noise>0), 0(otherwise) - noiseは標準正規分布に従う - 売上Y: [ 3x + T + 3 + noise] × 1,000 - ただし、[x]はxを超えない最大の整数 - noiseは一様分布(0, 1)に従う

Slide 29

Slide 29 text

設定(1)ダイエットへの意識の高さ - 一様分布(-1, 1)に従う、定量的に表された数値 - 広告を見る確率(傾向スコア)と売上に影響 ダイエットへの意識の高さ 広告を見る確率(傾向スコア) 売上 高 高 低 低 1 -1

Slide 30

Slide 30 text

設定(1)広告閲覧ダミー - 広告を見ていれば1, 見ていなければ0 - ダイエットへの意識が高いほど広告を確率が高い - 広告を見た人の方が売上は高い

Slide 31

Slide 31 text

設定(1)売上 - 真のモデル: Y = [ 3x + T + 3 + noise] × 1,000 - ダイエットへの意識の高さと広告閲覧に依存 - 広告の効果は一律1,000円

Slide 32

Slide 32 text

設定(1)データの作成 一応Pythonのコードとその出力

Slide 33

Slide 33 text

設定(1)データの確認 ヒストグラムを見てデータの分布を確認 ※現実のデータはこんな感じの分布 (ほとんど売上0人)であることが多い

Slide 34

Slide 34 text

DR法: Pythonによる実装(1/3) 傾向スコアの算出とそのヒストグラムを描画

Slide 35

Slide 35 text

DR法: Pythonによる実装(2/3) 線形回帰モデルを作成し、ITEとATEを算出 真の値が1,000なので、よく推定できている

Slide 36

Slide 36 text

DR法: Pythonによる実装(3/3) ITEを可視化 → ITEは全然推定できていない

Slide 37

Slide 37 text

設定(2)概要 - 次の例で、広告の効果を考える - 広告を見る確率「ダイエットへの意識の高さ」に依存 - 売上は下記2つのデータに依存する - 「ダイエットへの意識の高さ」 - 「広告を見たかどうか」 - 広告の真の効果は「ダイエットへの意識の高さ」に依存 - 1,000円、2,000円、3,000円と変動

Slide 38

Slide 38 text

設定(2)データの仕様 - ダイエットへの意識の高さx: 一様分布(-1, 1)に従う - 広告閲覧ダミーT: 1(x+noise>0), 0(otherwise) - noiseは標準正規分布に従う - 広告効果ダミーt: 1(x<0), 2(x<0.5), 3(otherwise) - 売上Y: [ 3x + Tt + 3 + noise] × 1,000 - ただし、[x]はxを超えない最大の整数 - noiseは一様分布(0, 1)に従う

Slide 39

Slide 39 text

設定(2)ダイエットへの意識の高さ - 一様分布(-1, 1)に従う、定量的に表された数値 - 広告を見る確率・広告効果・売上に影響 ダイエットへの意識の高さ 広告を見る確率(傾向スコア) 高 低 1 -1 広告効果 売上 低 低 高 高

Slide 40

Slide 40 text

設定(2)広告閲覧ダミー - 広告を見ていれば1, 見ていなければ0 - ダイエットへの意識が高いほど広告を確率が高い - 広告を見た人の方が売上は高い

Slide 41

Slide 41 text

設定(2)売上 - 真のモデル: Y = [ 3x + Tt + 3 + noise] × 1,000 - ダイエットへの意識の高さと広告閲覧に依存 - 広告の効果はダイエットへの意識の高さに依存

Slide 42

Slide 42 text

設定(2)データの作成 一応Pythonのコードとその出力

Slide 43

Slide 43 text

DR法を適用 効果が一定でない場合は単純にATEを考えても意味がない

Slide 44

Slide 44 text

傾向スコアを用いた効果検証のまとめ - 傾向スコアとは処置が割り振られる確率 - 傾向スコアを用いた因果推論手法の中でDR法を紹介 - 傾向スコア×回帰分析 - どちらかの推定モデルが正しければバイアスなくATEを推定で きる! - ITEの推定はイマイチ... - ATEが意味をなすのは効果が一定のときだけ......

Slide 45

Slide 45 text

機械学習を用いた効果検証

Slide 46

Slide 46 text

機械学習を用いた因果推論手法 大きく分けて下記の2通り - Meta-Learner系 - Causal-Tree系 今回はMeta-Learner系の手法の1つ”DR-Learner”を紹介

Slide 47

Slide 47 text

Meta-Learnerとは - 機械学習と因果推論の考え方を掛け合わせて、 HTE(効果の異質性)を推定する手法の総称 - 本日紹介するDR-Learnerの他にも - S-Learner - T-Learner - X-Learnerなど

Slide 48

Slide 48 text

Meta-Learnerの利点 - 効果の異質性を、従来の統計手法よりもシャープに捉えるこ とが期待できる - 予測に利用するモデルを自由に選択することができる - データの不均衡性に比較的対応できる

Slide 49

Slide 49 text

DR-Learnerのアルゴリズム(1/8) 共変量Xから広告を見たかどうか(T=1,0)を予測する分類モデル を構築し、傾向スコアpsを算出 分類モデルを構築 ダイエットへの意識の高さ : X = 0.7 広告を見る: T=1 (確率は 65%) 予測 傾向スコアps

Slide 50

Slide 50 text

DR-Learnerのアルゴリズム(2/8) - 処置群(T=1)と対照群(T=0)にデータを分割 ※ (処置群のデータ数, 対照群のデータ数) = (n, N-n)とする 処置群(広告を見た) ダイエットへの 意識の高さ 売上 0.43 7,000 0.21 6,000 対照群(広告を見てない) ダイエットへの 意識の高さ 売上 0.09 3,000 -0.15 2,000

Slide 51

Slide 51 text

DR-Learnerのアルゴリズム(3/8) - 処置群(T=1)のデータを用いて、広告を見た(T=1)場合の売 上Y 1 を予測する回帰モデルM 1 を作成 処置群(広告を見た) ダイエットへの 意識の高さ 売上 0.43 7,000 0.21 6,000 広告を見た(T=1)場合の 売上Yを予測する回帰モデルM 1 学習器はなんでもOK!

Slide 52

Slide 52 text

DR-Learnerのアルゴリズム(4/8) - 対照群(T=0)のデータを用いて、広告を見ていない(T=0)場 合の売上Y 0 を予測する回帰モデルM 0 を作成 対照群(広告を見てない) ダイエットへの 意識の高さ 売上 0.09 3,000 -0.15 2,000 広告を見ていない(T=0)場合の 売上Yを予測する回帰モデルM 0 学習器はM 1 と合わせるのが通例

Slide 53

Slide 53 text

DR-Learnerのアルゴリズム(5/8) - 傾向スコアps・予測モデルM 0 , M 1 ・処置群(T=1)のデータを 用いて、n個のITE 1 を算出 Y 1 の予測値 M 1 による予測値を実績値 Yと傾向 スコアpsで調整 Y 0 の予測値 T=0の場合の実績値Yは存在せ ず、M 0 による予測値を利用

Slide 54

Slide 54 text

DR-Learnerのアルゴリズム(6/8) - 傾向スコアps・予測モデルM 0 , M 1 ・対照群(T=0)のデータを 用いて、N-n個のITE 0 を算出 Y 1 の予測値 T=1の場合の実績値Yは存在せ ず、M 1 による予測値を利用 Y 0 の予測値 M 0 による予測値を実績値 Yと傾向 スコアpsで調整

Slide 55

Slide 55 text

DR-Learnerのアルゴリズム(7/8) - N個すべてのデータ(X 0 , X 1 , ITE 0 , ITE 1 )を利用して、共変量X からITEを予測するモデルM DR を作成 ダイエットへの 意識の高さ ITE (推定値) 0.43 2,200 (広告を見た) 0.29 2,100 (広告を見た) 0.09 1,600 (広告を見ていない) -0.15 900 (広告を見ていない) 目的変数 特徴量

Slide 56

Slide 56 text

DR-Learnerのアルゴリズム(8/8) - 共変量XとモデルM DR を利用して、効果を推定 ダイエットへの意 識の高さ x = 0.5 モデルM DR 推定される 広告効果 ITE = 3,000 入力 出力

Slide 57

Slide 57 text

EconMLの紹介 - EconMLは機械学習を用いて、観察データからHTE(効果の 異質性)を推定するためのPythonパッケージです。 - 公式ドキュメントはこちら: https://econml.azurewebsites.net/

Slide 58

Slide 58 text

設定(1)概要(再掲) - 次の例で、広告の効果を考える - 広告を見る確率(傾向スコア)は下記のデータに依存 - 「ダイエットへの意識の高さ」 - 売上は下記2つのデータに依存 - 「ダイエットへの意識の高さ」 - 「広告を見たかどうか」 - 広告の真の効果は一律1,000円(これを推定する)

Slide 59

Slide 59 text

線形回帰でDR-Learner(設定1) 学習器は線形回帰を選択 よく推定できている 効果の異質性はそもそもない

Slide 60

Slide 60 text

線形回帰でDR-Learner(設定1) 先ほどのDR法との比較

Slide 61

Slide 61 text

設定(2)概要(再掲) - 次の例で、広告の効果を考える - 広告を見る確率「ダイエットへの意識の高さ」に依存 - 売上は下記2つのデータに依存する - 「ダイエットへの意識の高さ」 - 「広告を見たかどうか」 - 広告の真の効果は「ダイエットへの意識の高さ」に依存 - 1,000円、2,000円、3,000円と変動

Slide 62

Slide 62 text

線形回帰でDR-Learner(設定2) 学習器は線形回帰を選択 効果の異質性を捉えき れておらず、いい推定 とは言えない...

Slide 63

Slide 63 text

ランダムフォレストでDR-Learner 学習器はランダムフォレストを選択 効果の異質性を 捉え、よく推定でき ている

Slide 64

Slide 64 text

機械学習を用いた効果検証のまとめ - 「機械学習×因果推論」でHTE(効果の異質性)を推定する Meta-Learnerの手法のうち、DR-Learnerを紹介 - さまざまな学習器を利用でき、従来の統計的な手法よりも シャープな推定を期待できる - EconMLというPythonライブラリを利用することで簡単に実 装可能

Slide 65

Slide 65 text

参考文献

Slide 66

Slide 66 text

書籍 - 西山他「New Liberal Arts Selection 計量経済学」有斐閣 (2019) - 岩崎「統計的因果推論」朝倉書店(2015) - 星野「調査観察データの統計科学」岩波書店(2009) - 岩波データサイエンス刊行委員会編「岩波データサイエンス Vol.3-[特集]因果推論-実世界のデータから因果を読む」岩 波新書(2016)

Slide 67

Slide 67 text

書籍以外 - EconML公式ドキュメント - CausalML公式ドキュメント - Sören R. Künzel, Jasjeet S. Sekhon, Peter J. Bickel, Bin Yu 「Meta-learners for Estimating Heterogeneous Treatment Effects using Machine Learning」(2017)

Slide 68

Slide 68 text

ご清聴ありがとうございました