滴滴連續因果森林模型的構造與實踐

**桔妹導讀:**近年來,因果推斷逐漸成爲了機器學習中的熱點話題。增益模型(Uplift Model)作爲工業界因果推斷與機器學習結合最成熟的算法之一,在智能營銷中有着廣泛的應用。目前大多數增益模型僅討論了二元處理變量情況下的處理效應估計,然而在網約車市場中存在大量多維、連續的處理變量。針對這一困境,我們構造了連續因果森林模型,併成功地應用在了網約車交易市場策略上。

**1. **

前言

在網約車供需策略技術基礎能力團隊,我們最關注的工作之一就是量化價格對網約車供需關係的影響。這對於精細化定價補貼策略的制定和優化有着重要的意義。

在業界,我們稱針對某個處理變量 (Treatment),衡量其處理效應 (Treatment Effect) 的一類模型爲增益模型 (Uplift Modeling)。

與傳統的監督學習模型關注於準確估計響應變量 (Y) 不同, 增益模型專注於估計處理變量 (W) 對響應變量 (Y) 的影響。因此這類問題通常被放在因果推斷 (Causal Inference) 的框架下進行討論。

目前市面上大多數流行的增益模型框架 (如 CausalML, pylift, grf),都很好地支持了二元處理變量 (如發券或不發券,吃藥或不吃藥) 的效應估計。但在多元 / 連續處理變量方面,尚未有很好的支持。

然而,在廣大的應用場景中,多元或連續的處理變量更爲普遍。例如,價格就是一個連續變量,存在理論上無限多的可能值。當我們希望估計各個價格點對供需關係的影響的時候,二元處理效應模型的侷限性就顯露了出來。

圖 1 滴滴 App 截圖

針對這種困境,我們開始思考是否可以在因果推斷的框架下實現對多元或連續處理變量的效應估計。經過一段時間的開發和測試,在二元因果森林的基礎上,我們擴展研發了連續因果森林,初步解決了部分場景下連續變量處理效應的估計問題。

本文主要介紹連續因果森林模型的構建原理及應用,希望對大家在處理相關問題時有所啓發和幫助。

**2. **

模型構造

2.1 因果森林簡介

因果森林 (Causal Forest) 是由 Susan Athey、Stefan Wager 等人開發,專門估計異質處理效應的機器學習模型,是當前增益模型領域最爲流行的算法之一。目前,官方有基於 C++/R 語言的算法實現 (https://grf-labs.github.io/grf)。

與其他增益樹模型 (Tree-based Uplift Model) 類似,因果森林隨機森林爲基礎,通過對特徵空間進行重複劃分 (Recursive Partitioning),以達到局部特徵空間的數據同質 / 無混淆。在一定的假設下 [1],我們就可以得到各個維度上異質處理效應 (Heterogeneous Treatment Effect) 的無偏估計。

****2.2 ****二元因果森林

對於二元處理變量,我們對處理效應 [2] 做如下定義

其中

我們稱爲條件平均處理效應 (Conditional Average Treatment Effect)。這裏的條件是指,給定局部特徵空間下的平均處理效應。

下圖簡略展示了二元因果森林中某一顆決策樹的生成邏輯。

圖 2 二元因果森林的構造

定義節點分裂標準爲

其中:

即我們希望從協變量中,找到一個最優分裂節點,最大化子節點間處理效應差異。

在節點內,我們認爲所有樣本同質,因此可以應用公式 (1) 進行處理效應的計算。

如此重複分裂,直到滿足一些預設的停止條件 (節點最小樣本值、處理變量不平衡度、最小信息增益等),完成一棵樹的構造。

****2.3 ****基於二元因果森林的多元處理效應估計

不失一般性,我們設多元處理變量 W 爲 W=0,1,...,k,其中 0 爲參照 (Control) 處理值,其餘處理值爲對照 (Treated) 處理值。

基於此,我們定義多元處理效應爲

即各個對照處理值相對參照處理值的處理效應。

從上述定義中我們不難發現,對於某個對照處理值,實際上我們仍然還是在計算二元處理變量 (i 和 1) 的處理效應。

從這個觀察出發,我們可以定義如下簡單算法:

圖 3 多重二元因果森林

圖 4 多元處理效應估計

這樣,通過上述的簡單改造,我們就可以基於現有的二元處理效應模型,實現多元處理效應的估計。

優點

缺點

****2.4 ****連續因果森林

在定價策略中,所有的模型歸根結底都在擬合價格曲線。在需求側,我們可以合理假設價格曲線具有如下特徵:

  1. 單調性:價格越高,需求越低 ;

  2. 局部線性:在局部價格區間內,價格與需求呈線性關係。

圖 5 價格需求曲線

樹模型的一個優點在於,在節點內部我們可以自定義統計量的計算方式。

利用價格需求曲線的特性,我們對節點內的樣本 (W1,Y1),(W2,Y2),... 進行線性迴歸,然後以線性迴歸得到的斜率代表連續處理效應

基於這個想法,在 ATE 的基礎上,我們定義平均偏效應 (Average Partial Effect) 爲

我們可以證明(https://z.didi.cn/CAPE),上述公式等價於 Y 對 W 和做簡單線性迴歸後得到的斜率係數。

通過將 CAPE 代替 CATE 作爲節點統計值用作樹分裂,我們就實現了通過單一模型估計多元 / 連續處理效應。

圖 6 連續因果森林

在模型的預估 / 推斷階段,爲了跳脫出線性假設的約束, 在估計各個對照處理效應的時候,我們退回之前的定義,僅選取對應的對照 / 參照變量值樣本計算對應的處理效應。

因此在我們的連續因果森林模型中,整體的 CAPE 僅被用作分裂,不會用於效應估計。

優點:

  1. 考慮了不同處理效應間的關係

  2. 充分利用數據,不同處理變量間可以互相學習

  3. 單一模型,減少訓練 / 部署成本

缺點:

  1. 使用中需考察線性假設的合理性

**3. **

評估與應用

在離線指標上,我們選擇了 Qini Score 作爲評估標準,分別比較多重****二元因果森林模型和連續因果森林模型的效果。

圖 7 離線評估

基於此,我們上線了基於連續因果森林的定價策略。經過多周的在線 AB 實驗後,取得了 15%+ 的 ROI 收益。

目前連續因果森林已作爲智能主策略覆蓋了全國大部分城市。

**4. **

總結與展望

基於一個新的指標 (CAPE),我們構造了連續因果森林,成功地將多元 / 連續處理效應納入單一模型進行估計,並取得了顯著的離線和在線結果。

目前連續因果森林仍處於早期的開發階段,存在大量的優化空間。例如:

  1. 可否使用非線性假設

  2. 如何處理無單調關係的處理變量 (如不同套餐)

  3. 如何估計多維處理效應 (如多個產品線價格間的相互影響)

其中的部分問題,我們在一些離線實驗上已有令人期待的結果。期望在不久的將來能夠與大家分享。

**5. **

說明

[1] 常見的假設爲: Unconfoundedness, Exchangeability, Positivity

[2] 爲了方便說明,我們省略了 local centering 的處理。

Reference:

[2] Susan Athey, Julie Tibshirani and Stefan Wager. Generalized Random Forests. Annals of Statistics, 47(2), 2019.

本文作者

本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源https://mp.weixin.qq.com/s/Ym-cG9LtxqJ4CiLw1Ec7Ew