アップリフトモデリング(基礎)
マーケティング施策においては、オーソドックスな機械学習モデルで「誰が商品を買いそうか」を予測するだけでは十分ではないことがある。
- アップリフトモデリングの考え方、メリットと課題
- アップリフトを推定する方法
- あゆみの歴史や、関連技法として傾向スコアとIPWについて
アップリフトモデリングとは
カフェチェーンを運営する企業の例。
- 「ラテ」の売上を伸ばすために、アプリでクーポンを配るキャンペーンを企画している。
- ラテを購入する可能性が高い人を機械学習モデルで予測し、その人たちにクーポン配布する方法が考えられる。
- だが、その人はクーポンがなくても購入するかもしれない。
- この場合クーポン配布する費用のぶん利益が減ることになる。
- 施策をより効果的、効率的におこなうためには「クーポンがないと買わなそうだが、クーポンがあると買いやすそうな人」を選びたい。
- そのためには「クーポンを配ることで」購入する確率がどれだけ変化する人なのかが知りたい。
このように処置によって、処置しなかった場合と比べて結果がどの程度変化するかを予測するための方法を、アップリフトモデリング(Uplift Modeling)と呼ぶ。
ターゲットにしたい顧客
各顧客について2つの可能性を考える。
- 顧客A: クーポンを配った場合 → 購入する クーポンを配らなかった場合 → 購入する
- 顧客B: クーポンを配った場合 → 購入する クーポンを配らなかった場合 → 購入しない
顧客Aは購入する確率は高いが、クーポンが購入を後押ししたわけではなさそう。顧客Bにはクーポンが購入を促す効果がありそう。つまり「購入確率が高い人」と「施策の効果が高い人」は同じではない。
| 顧客 | クーポン配布しない | クーポン配布する | 特徴 | 俗称 | 日本語(諸説あり) |
|---|---|---|---|---|---|
| A | 買う | 買う | 処置をしてもしなくても購入する | Sure Things | 鉄板、確実反応層 |
| B | 買わない | 買う | 処置をすると購入する | Persuadables | 説得可能、施策反応層 |
| C | 買わない | 買わない | 処置をしてもしなくても購入しない | Lost Causes | 無駄打ち、非反応層 |
| D | 買う | 買わない | 処置によりむしろ購入しなくなる | Sleeping Dogs | 天邪鬼、逆効果層 |
アップリフトモデリングでは顧客Bのような人を見つけて、優先的に施策対象とすることを目指している(通常の購入予測モデルではAとBを判別しにくい)。ただし、アップリフトモデリングには特有の難しさがある。
現実世界では、ある同じ顧客に対して、クーポンを配った場合と配らなかった場合の結果を「同時に」観測することはできない。
- クーポンを配った顧客が、配らなかった場合に購入したかどうかは分からない。
- クーポンを配らなかった顧客が、配っていたら購入したかどうかも分からない。
この実際には観測できない結果を反実仮想(counterfactual)と呼ぶ。そこで、アップリフトモデリングでは顧客の特徴量などから、クーポンを配った場合と配らなかった場合の購入確率をそれぞれ推定し、その差を求める。
アップリフト
ある顧客について「もしもこの人にクーポン配布したら何%の確率で購入するか?」「もしもこの人にクーポン配布しなかったら何%の確率で購入するか?」をそれぞれ予測する。
- prob_t: 処置した場合の予測確率 70%
- prob_c: 処置しなかった場合の予測確率 30%
- uplift: prob_tとprob_cの差分 40points
差分の値が大きい顧客ほど、クーポン配布したことにより、配布しなかった場合に比べて購入確率が上昇すると解釈できる。このように、ある人に処置をした場合と、処置をしなかった場合で、結果がどの程度変化するかを表す指標をアップリフトと呼ぶ。
ビジネスやマーケティングの実務においては「買った」「増えた」など上向きの結果・行動への関心が強い。そのため、アップリフト/押し上げ/上積み効果(incremental effect)などと表現されることが多い。だがuplift (modeling) は、当然ながら「増える場合だけ」を指すわけではない。処置によって結果が20points減る(アップリフトがマイナスの値をとる)場合もある。 Uplift is defined as the difference in outcome between the "Probability if Treated" and the "Probability if Control."
アップリフト推定値の解釈
アップリフトは一般には、その人の特徴量に条件付けた平均処置効果(CATE)の推定値として解釈される。
実際のモデルでは連続値の特徴量などを条件として推定するため、顧客ごとに異なるアップリフト推定値が出力される。だが、同じ個人について施策あり/なしの両方の結果を同時に観測できないため、 個人の真の処置効果(ITE)を直接求めているわけではない。
- CATE(Conditional Average Treatment Effect): 顧客の特徴量などの条件に応じた平均処置効果
- ITE(Individual Treatment Effect): 個人ごとの処置効果
個人単位の推定値を individual treatment effect estimate と呼ぶ文献もあるため、個々のアップリフトをITEと表現することは致命的な誤りではない。ただし、モデルの出力が個人単位であることと、個人の真の処置効果を推定できていることは別。
ここでいう「平均」は、必ずしも実際に存在する明確な集団の平均を計算しているという意味ではない。モデルは学習データから特徴量と処置効果の関係を推定し、個々の特徴量に対応する条件付き期待値を予測している。
基本的な考え方
通常の分類モデル: 特徴量Xからyを予測する
- 特徴量 X:顧客の属性や過去の行動など
- 処置変数 T:施策(クーポン配布)をおこなったかどうか(1/0)
- 目的変数 y:施策後に購入したかどうかなど(1/0)
- X + T → y という形で、処置有無に関わらず、購入しそうな顧客を予測する。
- クーポンが購入を後押ししてくれそうかは不明。
アップリフトモデリング: 処置変数も考慮する
- 特徴量 X + 施策あり → prob_t
- 特徴量 X + 施策なし → prob_c
- prob_t - prob_c → uplift という形でアップリフトを推定する。
- クーポンがあるからこそ購入しそうな顧客を優先的に施策対象とする。
- ターゲットを絞った場合でも、より多くの増分購入者を期待しやすい。
メリットと課題
アップリフトモデリングについてのここまでのまとめ。
メリット
通常の購買予測モデルとは異なり、施策によって行動が変わる顧客を推定できるという特徴がある。
- 施策効果に基づく対象者の選定:もともと購入する可能性が高い顧客ではなく、施策によって購入確率が高まる顧客を優先できる。
- 施策コストの効率化:施策による増分効果が小さい顧客への配布を抑え、限られた予算で効果を高めることを目指せる。
- 顧客に応じた施策の最適化:顧客の特徴による効果の違いを推定し、対象者の選定や施策の改善に活用できる。
課題
一方、通常の予測モデルとは異なる難しさがある。
- 反実仮想の問題:同じ顧客について、施策を実施した場合と実施しなかった場合の結果を同時に観測することはできない。そのため、個人ごとの施策効果を直接計算することはできない。
- データと因果推論の重要性:施策群と対照群の違いが、施策そのものによるものなのか、顧客の特徴や施策の割り当てによるものなのかを考慮する必要がある。
- 推定と評価の難しさ:個人ごとの効果の正解値がないため、通常の予測モデルと同じ方法では評価できない。また、推定値にはばらつきがあり、モデルの性能を安定して評価するには工夫が必要になる。
| メリット | それに関係する難しさ |
|---|---|
| 施策によって行動が変わる顧客を見つけられる | 個人ごとの施策効果は直接観測できない |
| 施策コストを抑え、増分効果を高められる可能性がある | 推定値にはばらつきがあり、実際の成果を保証するものではない |
| 顧客の特徴に応じて施策対象を選べる | 適切なデータと因果効果を評価するための工夫が必要 |
アップリフトモデリングは施策対象者の選定を改善するための有用な手法だが、推定された効果がそのまま実際の成果を保証するわけではない。適切なデータによるモデル構築と評価に加え、実際の施策を通じた効果検証が重要となる。
アップリフトモデリング(実践)では、後述する傾向スコアやIPWを使用しながら、モデル評価をより適切におこなうことを目指す。
Meta-Learner
アップリフトを直接予測する専用の機械学習アルゴリズムを一から作る代わりに、通常の機械学習モデルを組み合わせて処置効果を推定する方法。代表的なのが以下3つ。
S-Learner
処置の有無も特徴量の1つとして扱い、1つのモデルで学習(Single-Learner)。
- 特徴量X + 処置変数Tから、目的変数y(購入する/しない)を学習させる(2値分類問題)。
- 学習後、顧客全員の処置変数Tを1(クーポン配布)とした場合の購入確率 prob_t を予測させる。
- 同じモデルで、顧客全員のTを0(配布しない)とした場合の購入確率 prob_c を予測させる。
- 同じ1つのモデルから得られた予測値の差分をアップリフトとする。 uplift = prob_t - prob_c
S-Learnerは構造がシンプルで、通常の予測モデルを比較的そのまま利用できる。
一方で、処置変数Tを他の特徴量と同じように扱う構造であるがゆえに、処置効果が小さい場合などには、その効果を十分に捉えられないことがある(Tのyへの影響が他の特徴量に比べて小さいと、処置効果はゼロに向かってバイアスがかかる可能性がある)。
T-Learner
処置の有無によってデータを分け、2つのモデルを別々に学習(Two-Learner)。
- データを処置あり/なしで物理的に分け、処置群と対照群を用意。
- 処置群だけでTreatモデルを作成、処置をした場合の購入確率 prob_t を予測。
- 対照群だけでControlモデルを作成、処置しなかった場合の購入確率 prob_c を予測。
- 同じ顧客をそれぞれのモデルに入力し、2つのモデルから得られた予測値の差分をアップリフトとする。 uplift = prob_t - prob_c
T-Learnerも構造はシンプル。そしてS-Learner同様に正則化バイアス(偏り)が発生する場合がある。
- TreatモデルとControlモデルは独立に学習させる
- 片方では正則化が強く効き、もう片方は弱めに抑制されるなどバラバラ。
- 差分をとったときにバイアスが残ったり増幅されるリスクがある。
- アップリフトの分散が大きくなりがち。
- TreatとControlに分割する
- サンプルサイズは小さく、分散は大きくなり、データが疎の領域が出現。
- 正則化がかかると、データ不足の未知領域においてモデルは安全策として予測値を平均値やゼロに近づけようとする。
- TreatとControlの両方のモデルが、よくわからないからゼロ(または平均)と予測し、その差分のアップリフトもゼロに。
2モデルに分割する構造であるがゆえに、バイアス発生の懸念がある。
X-Learner
T-Learnerをベースにしたうえで、反実仮想から疑似ITEを作り、回帰モデルで学習(Cross-Learner)。
- データを処置あり/なしで物理的に分け、2モデルをそれぞれ別々に学習(T-Learnerと同じ)。
- 観測された実際の結果と、上記2モデルが反実仮想として予測した結果との差分から、疑似ITEをそれぞれ算出。
- 処置群: 「実際の結果 - 処置を受けなかった場合の予測」を計算。
- 対照群: 「処置を受けた場合の予測 - 実際の結果」を計算。
- 擬似ITEを目的変数にして、2つの回帰モデルを学習。
- 2パターンの処置効果(処置により購入確率が何points変動するか)の予測値を得る。
- 処置群の疑似ITEを学習した回帰モデルから得られた予測値(tau_t)
- 対照群の疑似ITEを学習した回帰モデルから得られた予測値(tau_c)
- 2つの予測値を傾向スコアpsで重み付けしてアップリフトとする。uplift = ps * tau_c + (1 - ps) * tau_t
各群の観測結果と反対側のモデルによる予測を組み合わせることで、処置群/対照群の両方の情報を処置効果の推定に利用する。
X-Learnerは、購入する/しないという結果ではなく、段階を踏んで最終的には施策によってどれだけ結果が変動するかを直接モデル化する点が、S-LearnerやT-Learnerとの大きな違い。
S/T/X-Learnerの違い
どの方法が常に優れているというわけではなく、データの量や処置有無の均衡性(バランス)、特徴量と処置効果の関係などによって適した方法は変わる。
| 方法 | モデル数 | 考え方 |
|---|---|---|
| S-Learner | 1 | 処置変数も特徴量と一緒に扱って、購入確率を学習 |
| T-Learner | 2 | 処置群 / 対照群を分けて、別々に購入確率を学習 |
| X-Learner | 複数 | 疑似的なITEを経由して、処置効果を直接学習 |
傾向スコアとIPW
アップリフトモデリングなどの因果推論においては、観測データにおいて処置をどのようにおこなっていたかがポイントになる。
- 例えばクーポンをランダムに配布していれば、(RCTとみなしやすいので)処置群と対照群を比較しやすい。
- しかし現実世界では、ラテをあまり買わない人にクーポンを配るなど、顧客の特性に応じて処置することがある(ランダムではない)。
- この場合、処置群と対照群では顧客構成が異なってしまう。
- そこで傾向スコア(Propensity Score)が登場する。
傾向スコア
簡単には、その人が処置を受ける確率。
顧客の特徴量をXとすると、P(Treatment = 1 | X) を推定したものが傾向スコア。顧客A: 傾向スコア 0.8 顧客B: 傾向スコア 0.3 であれば、顧客Aは特徴量から見ると処置を受ける可能性が高く、顧客Bは低かったと想定している。
- 仮に、処置群には「もともとラテをよく買う人」が多く、対照群には少なかったとする。
- この状態で単純に「処置群の購入率 - 対照群の購入率」を計算すると、購入率の違いは、クーポンの効果なのか、もともとの顧客特性の違いなのかが判別しにくい。
- 傾向スコアは、こうした処置を受ける確率の違いを考慮するために利用する。
IPW
傾向スコアを利用した代表的な方法の1つが、IPW(Inverse Probability Weighting: 逆確率重み付け)。実際に処置を受ける確率が低かった人ほど、大きな重みを与えるという考え方。
- 処置を受ける確率が0.8だった人と、0.2だった人が、どちらも実際に処置を受けていたとする。
- 後者は、本来なら処置を受けにくかった人なので、IPWではより大きな重みを与える。
- こうすることで、処置を受ける確率に偏りがあるデータを、あたかも処置がよりランダムに割り当てられたような状態に近づけて比較することを目指す。
傾向スコアやIPWは、アップリフトモデリングに固有の手法ではない。因果推論では、処置群と対照群を比較するときの重要な考え方として広く使われている。
サンプル事例での使用場面
- 処置を受ける確率を推定する
- 処置群 / 対照群の偏りを確認する
- IPWによって重み付けする
- X-Learnerで処置効果を組み合わせる
- Qiniなどの評価
アップリフトモデリングの歴史
2000年代初頭
概念の発展
現在のアップリフトモデリングにつながる考え方は、1990年代末から2000年代初頭にかけて、ダイレクトマーケティングの分野で発展した。
従来の応答予測モデルでは、「広告やキャンペーンに反応しそうな人」を予測する。しかし、その中には、施策がなくても自発的に購入する顧客も含まれている。そこで、施策によって生じる増分価値(Incremental Value)を予測しようという考え方が登場した。
Hansotia & Rukstales (2002) は、マーケティング施策による増分価値を扱う Incremental Value Modeling を提案した。
その後、Nicholas J. Radcliffeらによって、処置群と対照群の反応の差を利用してマーケティング施策の対象者を選ぶ考え方が整理され、Uplift Model / Uplift Modeling という呼び方が広まっていった。Radcliffe (2007) は、アップリフトモデルの構築方法だけでなく、モデルの評価方法や実際のマーケティングへの適用についても整理している。
2010年代〜
因果推論・機械学習との融合
2010年代になると、統計的な因果推論と機械学習を組み合わせ、顧客ごと・サブグループごとに異なる処置効果(heterogeneous treatment effects)を推定する研究が発展した。
アップリフトモデリングも、マーケティングにおける「増分を予測する手法」という位置付けから、個別処置効果(ITE)や条件付き平均処置効果(CATE)を推定する問題として捉えられるようになった。
こうした流れの中で、既存の機械学習モデルを組み合わせて処置効果を推定するMeta-Learnerという考え方が発展した。2019年にはKünzel et al.がS-Learner、T-Learner、X-Learnerなどを体系的に整理し、機械学習による異質な処置効果の推定を一般化した。
2010年代後半〜
実務への広がり
2010年代後半には、オンラインサービスや広告・マーケティングの分野でも、A/Bテストなどの実験データを利用して、顧客ごとの処置効果を推定し、施策対象を最適化する取り組みが広がった。
Uberの研究チームもuplift modelingを研究・実務に取り入れており、2017年には複数の施策に対応したUplift Modelingの手法を発表している。
さらに2019年には、複数の施策についてそれぞれのコストまで考慮して施策を最適化する手法も発表された。
こうした研究成果を含むさまざまな手法をPythonから利用できるようにしたのが、Uberが公開しているCausalMLなどのオープンソースライブラリである。CausalMLは、S/T/X-Learnerを含むMeta-LearnerやUplift Tree、各種の因果推論手法を提供している。
一次情報
- 増分モデルの先駆論文(Hansotia & Rukstales, 2002)
- Incremental value modeling
- 概要: ダイレクトマーケティングにおいて、通常の応答予測ではなく、マーケティング施策による「増分価値(Incremental Value)」をモデル化する考え方を提示。
- 初期の体系化論文(Radcliffe & Surry, 2011)
- Real-World Uplift Modelling with Significance-Based Uplift Trees
- 概要: アップリフトモデリングの実務的な考え方、Significance-Based Uplift Trees, モデル構築・評価・施策後の検証などを体系的に解説。1999年には著者らが「Differential Response Modelling」という名称で先行研究を発表している。
- Meta-Learnerの体系化・X-Learner提案論文(Künzel et al., 2019)
- Metalearners for estimating heterogeneous treatment effects using machine learning
- 概要: 機械学習による異質な処置効果(heterogeneous treatment effects)の推定を統一的に整理し、S-Learner, T-LearnerなどのMeta-Learnerを扱うとともに、X-Learnerを提案。
- Uberによるアップリフトモデリング研究(Zhao, Fang & Simchi-Levi, 2017)
- Uplift Modeling with Multiple Treatments and General Response Types
- 概要: 複数のTreatmentと一般的なアウトカムに対応するアップリフトモデリングを扱い、アップリフトを直接最適化するRandomized Treesを提案。実データを用いた評価もおこなっている。
- CausalML論文(Chen et al., 2020)
- CausalML: Python Package for Causal Machine Learning
- 概要: アップリフトモデリングや因果推論の手法をPythonから利用できるようにしたオープンソースライブラリCausalMLを紹介。
- CausalML(Uber GitHub)
- CausalML: Python Package for Causal Machine Learning and Uplift Modeling
- 概要: S/T/X-Learnerを含むMeta-Learner, Uplift Tree, 各種の因果推論手法を提供するPythonライブラリ。実験データ・観測データからCATEを推定できる。