這篇是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)越大。
傳統決策樹通常經過幾個方法來解決過擬合的問題:
做者在文章中給出另外兩種解決過擬合的方法:
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收藏
歡迎留言~