Paper慢慢讀 - Recursive Partitioning for Heterogeneous Casual Effects

這篇是treatment effect估計相關的論文系列第一篇因此會囉嗦一點多給出點背景。html

論文

Athey, S., and Imbens, G. 2016. Recursive partitioning for heterogeneous causal effects. Proceedings of the National Academy of
Sciences.算法

背景

論文給出基於決策樹估計實驗對不一樣用戶的不一樣影響。並提出Honest,variance Penalty算法旨在改進CART在tree growth過程當中的過擬合問題。app

咱們舉個例子:科研人員想衡量一種新的降血壓藥對病人的效果,發現服藥的患者有些血壓下降但有些血壓升高。因而問題能夠抽象成咱們但願預測降壓藥會對哪些病人有效?類似的問題常常出如今經濟,政治決策,醫療研究以及當下的互聯網AB測試中。測試

Treatment effect之因此比一般的預測問題要更難解決,由於groud-truth在現實中是沒法直接觀測到的,一我的在同一時刻要麼吃藥要不麼吃藥,因此你永遠沒法知道吃藥的人要是沒吃藥血壓會不會也下降,或者沒吃藥的人要是吃了藥血壓會不會下降。優化

既然個體的treatment effect沒法估計,只能退而求其次去估計羣體的treatment effect- ATE (Average treatment effect),既所有用戶中(服藥效果- 未服藥效果)。 可是當出現個體效果差別時ATE沒法反應局部效果(E.g.樣本稀釋)。這時咱們須要估計類似羣體的treatment effect-CATE(Conditional average treatment effect)spa

用數學抽象一下上述問題:
\[ \begin{align} & {(X_i, Y_i,T_i): X_i \in X} \\ & \text{where X是特徵,Y是Response,T是AB實驗分組}\\ &T_i \in {0,1} \quad \\ &Y_i = \begin{cases} Y(1) & \quad T_i = 0\\ Y(0) & \quad T_i = 1\\ \end{cases}\\ &CATE: \tau(x) = E(Y_i(1)-Y_i(0)|X=x)\\ \end{align} \]code

模型

這裏尋找類似用戶的方式是經過決策樹。樹相較線性模型的優勢毫無疑問是它對特徵類型的兼容,尤爲考慮到實際狀況中會存在大量離散特徵如性別,地域等等。orm

那究竟怎樣grow tree來找到局部用戶羣, 取決於cost function的定義。通常決策/迴歸樹是對Y的擬合例如RMSE,或者cross-entropy等等。這裏做者選擇最大化\(Y(1)-Y(0)\)做爲cost Function, 既咱們經過樹劃分出的局部人羣能夠實現局部實驗效果最大化(正向或負向)。 cost function 以下:
\[ \begin{align} &S_l = {(X_i, Y_i,T_i): X_i \in X_l} \quad \text{葉節點-局部樣本}\\ &\hat{\mu_t}(S_l) = \frac{1}{N_{l,t}}\sum_{T_i=t, i \in S_l}Y_i \quad \text{AB組Y的均值} \\ &\hat{\tau}(S_l) = \hat{\mu_1}(S_l) -\hat{\mu_0}(S_l) \quad \text{葉節點CATE}\\ &F(S_l) = N_l * \hat{\tau}^2(S_l)\\ & \text{cost fucntion}: max \sum_{i=1}^L F(S_i)\\ \end{align} \]htm

熟悉決策樹的朋友也就知道後續split criterion就是去尋找最大化CATE增加的特徵和閾值。對決策樹不太睡的朋友能夠來我以前的博客看看Tree-Decision Tree with Sklearn source codeblog

模型優化

決策樹最大的問題就是過擬合,由於每一次split都必定能夠帶來Information Gain。這裏就涉及到ML裏最經典的Bias-variance trade off。樹劃分的節點越小,對樣本的估計誤差(Bias)越小但方差(Variance)越大。

傳統決策樹通常經過幾個方法來解決過擬合的問題:

  • cross-validation來肯定樹深度
  • min_leaf, min_split_gain 用葉節點的最小樣本量等參數來中止growth

做者在文章中給出另外兩種解決過擬合的方法:

  • Honest approach
  • Variance Penalty

Honest approach是把訓練樣本分紅train和est兩部分,用train來訓練模型用est來給出每一個葉節點的估計
Variance Penaly則是直接把葉節點的方差加到cost function中,最終的cost function以下:

\[ F(S_l) = N_l * \hat{\tau}^2(S_l) - N_l(\frac{Var(S_{l,1})}{p} + \frac{Var(S_{l,0})}{1-p})) \]

文章大概就是這些信息,這個模型當前還沒找到很好的工程實現,在Uber的Casualml項目中是正在開發中的Enhancement

其餘相關模型詳見AB實驗的高端玩法系列1-實用HTE論文GitHub收藏

歡迎留言~

相關文章
相關標籤/搜索