機器學習 vs 經濟學 Part 3— 在精準行銷上應用因果
TL;DR 商業應用中針對龐雜的資料欄位與不確定的變數關係,想要評估個別用戶對某策略的反應程度,但又沒辦法進行 A/B Test 的時候,就可以用三重機器學習的演算法。
前導
在 Part 1 中,我介紹了如何利用機器學習討論經濟學中常見的問題 — 平均處理效果( average treatment effect, ATE)。處理效果的意思是,相比於沒有接受處理(或叫干預)的平行宇宙,有處理的話對結果會有什麼變化。
假設控制了一些條件 (X) 之後,用戶的處理與否 (T) 就跟潛在結果(Y0, Y1)沒關係,那我們就可以估算出平均處理效果 (ATE),或是針對已經被處理的那一群,計算出它們因為這個處理,讓結果增加了多少 (ATT)。
其中一個從觀察值計算 ATE/ATT 的關鍵轉換:傾向分數 (propensity score),就可以用機器學習估計,並協助我們計算處理效果。
在 Part 2 中,我介紹了另外一種機器學習在經濟學的應用 — Double Machine Learning (DML)。DML 讓經濟學家能夠更專注在估算處理效果,而把其他不重要的控制變數的函數關係交給最適合的工具 — 機器學習。簡而言之,他用 X 預測 Y 的工具來估算中間的 β。
而這一篇我要分享第三個機器學習在經濟學的應用。他結合了 Part 1 關於處理效果的估計,以及 Part 2 關於 double machine learning 的演算法。另外,不只是經濟學研究,這一篇的應用更能符合商業上的應用。
企業不只想知道平均效果
對政策制定者而言,知道平均一個政策的效益就足夠了。然而企業如果要最大化效益並減少成本,會想接著問一個問題:
以後能不能只處理部分的客群?或是針對部分客群有不同策略?
簡而言之,就是所謂的精準行銷。
比方說,可能透過計量得知,發送廣告推播或寄出廣告郵件平均而言可以增加回客率,但是能不能判別出發給誰才有用,而不是全部都發送?或者是從統計上知道 Costco 黑鑽卡購物量比平常人更多,但可能有其他共同條件同時影響申辦黑鑽卡與消費額,在這個條件下該怎麼判斷該對誰進行黑鑽卡的推廣?
這些問題都有一個共通點 :除了要正確知道因果程度之外,還要能進一步估算每一位用戶的處理效果效果,並找到效果最大的用戶進行精準干預。
這在商業中稱為一個 lift,而用經濟計量的語言就是想知道個別處理效果:
這裡的 Yᵢ(0) 指的是當個體 i 沒有受處理時的潛在結果,Yᵢ(1) 則是個體如果受處理時的潛在結果。與 ATE 一樣是比較潛在變數之間的差異,但現在對於每一個用戶的特徵 xᵢ, 我們都希望可以計算出他的個別處理效果是什麼。
個別處理效果
個別處理效果 (individual treatment effect, ITE),或是條件平均處理效果 (conditional average treatment effect, CATE)、異質性處理效果 (heterogeneous treatment effect, HTE),指的是給定一個個體的特質 Xᵢ ,得出他在兩種不同策略之下的差異(處理效果)。這個指標依然是一個平均的概念,因為不同用戶也有可能共用同樣的特質,而處理效果也可能不一樣。學術中較常使用 CATE來表示,故我接下來也用這個縮寫代替。
最近的機器學習文獻中,越來越多著手在估計 CATE。不過機器學習雖然擅長預測,但對於這些比較具有經濟意涵的量化指標,通常需要更多統計的知識。
與計算平均處理效果 ATE 時的困境一樣,經濟學家並不能從觀察資料中直接推斷 CATE (統計術語叫做 unidentifiable )。根本原因就是要能計算 CATE 就要先知道平行宇宙之下的反事實潛在結果。
對於觀察資料中沒有受到處理的用戶為例,我們只觀察得到 Yᵢ(0);而對於觀察資料中有受到處理的用戶,我們也只觀察得到 Yᵢ(1)。在實際應用上,這好比我們觀察不到會員如果不是會員,會不會因為少了優惠就改變當下的消費習慣,因為會成為會員的客群可能消費習慣或人口組成就比較不一樣。資訊產業中常運用的 A/B Test 在這裡也派不上用場,因為公司不太可能強制讓某些人成為會員,其他人則不是會員,藉此進行實驗。
因此,與經濟學家計算 ATE 的時候一樣,我們也需要一些假設才能推斷反事實狀況。其中一個假設為 Part 1 出現的條件獨立假設 (conditional independence assumption, CIA)。這個假設之下,在控制了各種同時影響「參加會員與否」(X) 以及「消費程度」(Y) 的變數 (X),例如用戶家庭成員數量、收入狀況、教育程度、居住環境等等之後,「參加會員」(T) 的決定不與潛在結果有關。這時候我們才有辦法估算平均處理效果,或是今天的主角 — CATE。
最天真的 S-Learner
其中一個很「天真」且自然,可能也是最大眾的人會想到的作法,就是直接用所有用戶資料 (X),包含有無處理與否 (T),混在一起來預測 Y:
這裡的 M 可以是隨便一個機器學習演算法,從 Lasso 到 Boosting 甚至 Neural Network 都行。
接著一個「天真」的作法,就是去計算
由於這是一個最簡單計算 CATE 的方法,所以叫 S(imple)-Learner。一言以蔽之,將所有變數 X 還有感興趣的處理變數 T 一起訓練,而計算 CATE 的方法則是把用戶的資訊 x 丟進訓練的函數 M,至於 T 則是一個放 T=1,另一個放 T=0,這個差異就是個別用戶的處理效果估計。
比方說,想知道訂閱會員(T)能不能增加用戶每月消費額(Y),就把所有用戶資訊(X)加上會員(T)一起訓練消費額(Y),最後比較同一個用戶(固定 X)時,是會員(T=1)與不是會員(T=0)之下, 消費額(Y)的差異。
前面我們假設 CIA了,似乎這種做法不太會有問題。但這樣這個作法有解決問題,給出正確的 CATE 估計嗎?
不見得。因為 T 很有可能根本不被我們的估計模型 M 納入,很可能因為其他變數可以很好預測 Y 就把這個變數的存在性刷掉(例如在 Lasso 中被 shrink)。最慘的情況下預測模型壓根不把 T 放眼裡,這時 CATE 就被嚴重低估了。
其他還有幾種在 CIA 之下估計 CATE 的方法,例如 T-Learner、X-Learner 等,這些工具直覺上都可以透過機器學習估算出因果推論中感興趣的 CATE,但這一篇要結合 Part 2 的作法 — 雙重機器學習方法 (Double machine learning, DML),來進行第一步,因為這是透過經濟學家最熟悉的工具所延伸的方法。
Double Machine Learning 中的個體處理效果
讓我們先回顧一下潛在變數
在 Part 2 中,我們可以把結果 Y 對處理 T 以及其他變數 X的回歸,改為
- 將 Y 對 X 回歸,取得殘差 𝒴 = Y - 𝔼(Y |X) = Y - g(X)
- 將 T 對 X 回歸,取得殘差 𝒯 = T-𝔼(T|X) = T - e(X)
- 將 𝒴 對 𝒯 回歸,取得處理效果 τ
步驟 1, 2 都可以用機器學習的方法訓練 Y 與 T,而步驟 3 當時則用簡單的 OLS 線性回歸。當時的設定下,τ 是常數不變,所以要處理的迴歸式是:
不過,如果我們想知道對於不同個體的特性 Xᵢ, 他的處理效果 τ (Xᵢ) 是多少,那我們要面對的問題就變成
好消息是,個體處理效果 τ(Xᵢ) 也可以用機器學習的方式來訓練。
在最終的回歸式中,如果把誤差項獨立出來,剩下的就是一個條件期望值 = 0 的損失函數:
所以我們可以假設 τ(Xᵢ) 的函數形式之後,根據這個最後的損失函數估計 τ(Xᵢ) 裡面的參數,或是直接用Random forest 等方式估計非參數化的機器學習:
這樣的作法第一次出現在 Nie and Wager (2020)。
總結一下透過 Double machine learning(雖然現在變 triple 了)如何計算出每一個個體受處理的增益程度為何:
- 將 Y 對 X 回歸,取得殘差 𝒴 = Y — 𝔼(Y |X) = Y — g(X)
- 將 T 對 X 回歸,取得殘差 𝒯 = T-𝔼(T|X) = T — e(X)
- 將 𝒴 對 𝒯 回歸,取得處理效果 τ(X)
這是一個非常厲害的作法,一方面因為很簡單,另一方面這個做法的經濟意涵很清楚,而對於 τ(x) 也可以用解釋性高的機器學習方法來訓練,能夠更好地提供商業策略。
當然,實務(以及理論)上為了達到收斂條件以滿足參數估計的一致性,也會進行 cross-fitting。好在已經有套件可以很方便做到這個。
對於利用 Double machine learning 估算個別處理效果的實際案例有興趣的人,可以參考 Microsoft ALICE 團隊的研究報告:
Bonus — CATE 轉換器
雖然上面的作法,在實務上或許比較常見,但我自己最喜歡的方法,是由 Athey 與 Imbens 提出的方法 — CATE 轉換器。
顧名思義,這個做法可以從資料「轉換」出一個新的欄位,並且把這個欄位當作新的 Y,我們就叫 Y*。接著透過模型訓練這個轉換過後的資料,得到的預測值,直接就是 CATE 了!
這個轉換如下:
其中 e(Xᵢ) 是熟悉的傾向分數。現在還看不出端倪,但是當我們把 Y* 的條件期望值整理一下(詳細推導請看原論文):
會發現這個轉換的期望值,其實就是我們想要的個別處理效果!
如果能夠用機器學習方法去訓預測 Y*,而不是預測 Y,那我們就相當於得到一個傳入 Xᵢ 吐出 CATEᵢ 的模型了!
眼尖的讀者以應該會發現,這個轉換的形式,其實跟計算 ATE 一模一樣。根據雙重期望值定理,確實 ATE 就是將 CATE 對於 X 的期望值。
我很喜歡這種做法是因為這表示我們用完全不在意函數形式 (non-parametric) 的方法直接反推參數 (parameter),顛覆我對於機器學習只能對最終結果進行預測的觀念。
結論
計量統計學家,包含許多諾貝爾得獎主 (Duflo, Imbens, …),正在努力嘗試將這個工具的優點,結合到商業經濟中的痛點,例如一些因果問題:降低運費對消費金額的變化、加入會員對於顧客忠誠度的影響等等。傳統的計量經濟架構以及假設,為這些問題提供一個可以追蹤 (trackable)且可以解讀(interpretable) 的工具,但是受限於傳統線性關係的假設,往往不允許有太多雜訊與資料。然而另一方面,得以處理複雜訊號與資料的機器學習,僅僅只是一個預測工具,這些預測良好的黑盒子卻不一定能給出正確的商業價值。
換句話說,機器學習演算法非常善於預測等好左邊的 Y,但是等號右邊的 τ,往往才是主導政策或是策略走向的關鍵,也是因果推論的核心。
從這個系列的 Part 1 到 Part 3,我介紹的都是在既有可以回答因果關係的計量經濟架構下,如何囊括機器學習。這兩個領域並不衝突,只是目前看到組合技的價值的人並不多。
在研究的過程中,提供最多 insight 還有程式範例的,是 Microsoft 的研究團隊 ALICE,以及底下研發的套件 EconML:
這個工具目前只用在美國頂尖公司如 Microsoft 的 Case study 以及學術圈中,台灣數據分析領域中出現的次數幾乎為 0。誠心希望台灣的業界可以早日發現機器學習或是 AI 在商業中的應用,不僅只是對結果的預測,還包含了對政策方向的引導還有分析。
參考資料
Causal Inference for the Brave and True:關於因果分析很白話的網站
EconML — Double Machine Learning:透過 DML 來估計 CATE 的 python 套件,由 Microsoft ALICE 團隊開發
Athey, S., & Imbens, G. W. (2015). Machine learning methods for estimating heterogeneous causal effects. stat, 1050(5), 1–26.
Chernozhukov, V., Chetverikov, D., Demirer, M., Duflo, E., Hansen, C., Newey, W., & Robins, J. (2018). Double/debiased machine learning for treatment and structural parameters. The Econometrics Journal, 21(1), C1–C68
Künzel, S. R., Sekhon, J. S., Bickel, P. J., & Yu, B. (2019). Metalearners for estimating heterogeneous treatment effects using machine learning. Proceedings of the national academy of sciences, 116(10), 4156–4165.
Nie, X., & Wager, S. (2021). Quasi-oracle estimation of heterogeneous treatment effects. Biometrika, 108(2), 299–319.