はじめに
大学の授業で因果推論についてやっていて気になったのでMeta-Leanerについてまとめてみました。今回Meta-Leanerについて勉強して、初学者の立場で分かったことを書いています。
目次
- はじめに
- 用語解説
- Meta-Leanerとは
- S-learner (Single-learner)
- T-learner (Two-learner)
- X-learner
- 終わりに
用語解説
- TE(Treatment Effect)
ある処置を行った結果としてどの程度の効果があったのかを測るための概念。処置を受けた場合と受けなかった場合の差を表し因果関係を推定するために用いる。 - ITE(Individual Treatment Effect)
個別のユニットに対する処置効果で、ある特定のユニットが処置を受けた場合と受けなかった場合の差で定義される。 - ATE(Average Treatment Effect)
平均処置効果といい、ユニットの集団全体の平均的な因果を示すもので、全てのユニットが処置を受けた場合とすべてのユニットが処置を受けなかった場合の差で定義される - CATE(Conditional Average Treatment Effect)
条件付き処置効果といい、個別のユニットとユニットの集団全体の中間に位置する指標で、ITEやATEと異なり、指標ではなく、処置の効果がユニットによって異なることをとらえるため関数の形になる。
Meta-Leanerとは
Meta-Leanerを一言でいうとCATEを推定するための戦略やフレームワークである。
Meta-Leanerの最大の特徴は、一般的な機械学習モデルを部品として利用する点である。また、これらの部品として使われる個々の機械学習モデルをベース学習器という。
Meta-Leanerの役割はCATEを推定するという因果推論の問題を普通の予測問題に置き換えることである。これにより、通常の統計手法では難しかった顧客の行動履歴や遺伝情報といった非常に複雑で高次元のデータから因果効果を推定できるようになる。
S-learner(Single-learner)
S-learnerはMeta-Leanerの中で最もシンプルな戦略で、処置するかどうかをただの特徴量の一つとして扱うというものである。
学習
- 処置群と対照群のデータを区別せず全て一つのデータセットにまとめる
- 処置するかどうかの二値を処置変数として特徴量の一つとして扱う
- 処置変数を特徴量に加え、目的変数を予測する単一のモデルを学習させる
このように学習させたモデルで対象が処置を受けた場合と受けなかった場合で二回予測を行い、この二つの予測値の差がS-learnerによるCATEの推定値となる。
S-learnerのメリット
- やっていることは特徴量を一つ追加して普通の回帰モデルを学習させるだけなため、実装がシンプル
- すべてーのデータを一度に学習に使うため、データセットが小さい場合に有利なことがある
- 原理上、処置が連続値であっても自然に扱える
S-learnerのデメリット
- CATEを過小評価するバイアスがある
- 処置変数が無視されがち
T-learner(Two-learner)
T-learnerは、S-learnerの「処置変数が無視されがち」という問題を解決するために生まれた戦略で、処置群を使って学習させるモデルと対照群を使って学習させるモデルの、2つのモデルを使うのが特徴。
学習
- データセット全体を処置群と対照群の二つのグループに分割する
- 処置群のデータのみを使用して予測モデル(処置群モデル)を学習させる
- 対象群のデータのみを使用して予測モデル(対象群モデル)を学習させる
※学習させるデータは処置群か対照群のみなので、処置変数は特徴量に用いない
このように学習させた2つの別々のモデルで、対象が処置を受けた場合と受けなかった場合をそれぞれ予測し、この二つの予測値の差がT-learnerによるCATEの推定値となる。
T-learnerのメリット
- モデルを二つに分けることで、S-learnerのように処置変数が無視される問題を回避できる
- 処置群と対照群でデータの構造が異なる場合にそれを個別に捉えることができる
T-learnerのデメリット
- データの不均衡に弱い
- データが少ない側のモデルが不安定になり、推定結果の信頼性が低くなる可能性がある
- 二つのモデルが別々に学習するため、共通して使える情報を共有できず、データ利用効率が悪い
X-learner
X-learnerはS-learnerの「処置変数が無視されがち」という問題や、T-learnerの「データ不均衡に弱い」という問題を解決するために生まれた戦略で、交差というアプローチで、データが豊富な群の情報を、データの少ない群の推定に借りるのが特徴。
学習
- T-learnerと同様に、まず処置群モデルと対照群モデルの二つを学習させる
- 学習させたモデルを交差させて使い、各群の反事実を予測し、その予測値と実際の観測値との差からそれぞれ疑似アウトカム(疑似的な処置効果)を計算する
- この疑似アウトカムを新たな目的変数としてCATEを直接予測するためのモデルを学習させる
このように学習させたモデルを、傾向スコア(その人が処置群に属する確率)で重みづけして統合したものがX-learnerによるCATEの推定値となる。
X-learnerのメリット
- T-learnerが苦手としていたデータの不均衡な状況に最も強いとされている
- データが豊富な群の良いモデルを借りてきてデータが少ない群の信頼できる疑似アウトカムを生成するため、T-learnerよりもデータ利用効率が高い
T-learnerのデメリット
- 合計五つものモデルを学習、推定させることになり、学習プロセス型段階で実装が複雑になる
- ステップが多いため、ステップ1のモデルの推定誤差がステップ3のモデルの学習に伝播・蓄積してしまう可能性がある
終わりに
今回はMeta-Leanerについてまとめてみました。なんかぱっと見た感じとしてはX-learnerが凄いということになりそうですが、授業で実装してみたらT-learnerが一番いい結果が出たので、結局精度に関しては使用するデータによるのかなと思いました。