基于反事實因果推斷的度小滿額度模型

一、因果推斷的研究范式
研究范式目前主要有兩個主要的研究方向:
- Judea Pearl Structure Model
- 潛在的輸出框架

在Judea Pearl 《The Book of Why – The New Science of Cause and Effect》這本書中,將認知階梯定位為三層:
- 第一層-關(guān)聯(lián):通過關(guān)聯(lián)的方式找出規(guī)律,可以直接觀察;
- 第二層-干預(yù):如果改變現(xiàn)狀,應(yīng)當實施什么樣的行動,得出什么樣的結(jié)論,可以通過實驗觀察;
- 第三層-反事實:由于法律法規(guī)等問題無法直接實驗觀察,通過反事實假設(shè),如果實施了行動,會發(fā)生什么,如何評估ATE和CATE,是較為困難的一個問題。

首先闡述下產(chǎn)生相關(guān)關(guān)系的四種方式:
1. 因果關(guān)聯(lián):原因和結(jié)果之間有可靠的,可追溯的,能夠正向依賴的關(guān)系,比如煙霧與煙霧報警器具有因果關(guān)聯(lián);
2. 混淆關(guān)聯(lián):含有未能直接觀測的混淆變量,比如身高和閱讀能力是否能夠關(guān)聯(lián)起來,需要控制年齡這個變量相似,從而得出有效的結(jié)論;
3. 選擇偏差:本質(zhì)上是伯克森悖論,比如探究外貌和才華的關(guān)系,如果只在明星群體中觀察,可能會得出結(jié)論:長相和才華不可兼得。如果在全部人類里觀察,長相與才華沒有因果關(guān)系。
4. 逆向因果關(guān)系:即因果倒置,比如統(tǒng)計顯示人類結(jié)婚時間越長,壽命就越長。但是反過來,我們不能說:如果想獲取更長的壽命,就要早早結(jié)婚。
混淆因子如何影響觀測結(jié)果,這里有兩個case可以說明:

上面圖片描述了運動量與膽固醇水平的關(guān)系。從左圖可得出結(jié)論:運動量越大,膽固醇水平越高。但是加入年齡分層來看,相同年齡分層下,運動量越大,膽固醇水平越低。此外,隨著年齡增長,膽固醇水平逐漸升高,這個結(jié)論才符合我們的認知。

第二個例子為信貸場景。從歷史統(tǒng)計數(shù)據(jù)中可以看出,給定的額度(能借到的錢款數(shù))越高,逾期率越低。但是金融領(lǐng)域,會首先根據(jù)借款人的A卡判斷其信用資質(zhì),如果信用資質(zhì)越好,則平臺賦予額度越高,整體逾期率也很低。但是根據(jù)局部隨機實驗表明,相同信用資質(zhì)人群,會有一部分人其額度風險遷移曲線變化比較緩慢,也會有一部分人其額度遷移風險較高,即額度提升后,帶來的風險增量較大。
上面兩個case說明,如果建模中忽略混淆因子,可能會得到錯誤,甚至相反的結(jié)論。

如何從RCT隨機樣本過渡到觀測樣本因果建模?
對于RCT樣本的情況,如果希望評估ATE指標,可以通過分組相減或DID(difference in difference)。如果希望評估CATE指標,可以通過uplift 建模。常見的方法比如有meta-learner,double machine learning,causal forest等等。這里需要注意必要的三大假設(shè):SUTVA,Unconfoundedness和Positivity。最核心的假設(shè)為:不存在未觀測混淆因子。
對于僅有觀測樣本的情況,無法直接獲取treatment->outcome的因果關(guān)系,我們需要借助必要的手段切斷covariates到treatment的后門路徑。常見方法是工具變量法和反事實表示學(xué)習。工具變量法需要對具體業(yè)務(wù)抽絲剝繭,繪制業(yè)務(wù)變量中因果圖。反事實表示學(xué)習則依靠成熟的機器學(xué)習,匹配covariates相似的樣本做因果評估。
二、、因果推斷的框架演進
1、從隨機數(shù)據(jù)到觀測數(shù)據(jù)
接下來介紹因果推斷的框架演進,是如何一步步過度到因果表示學(xué)習的。
常見Uplift Model有:Slearner, Tlearner, Xlearner。
其中Slearner將干預(yù)變量視為一維特征。需要注意,在常見的樹模型里,treatment容易被淹沒,導(dǎo)致treatment effect估計偏小。

Tlearner將treatment離散化,對干預(yù)變量分組建模,每一個treatment建立預(yù)測模型,再作差。需要注意,較少的樣本量會帶來較高的估計方差。

Xlearner分組交叉建模,將實驗組和對照組分別進行交叉計算訓(xùn)練。該方法綜合了S/T-learner的優(yōu)點,其缺點是引入了更高的模型結(jié)構(gòu)誤差,提高了調(diào)參難度。

三種model比較:

在上圖中,橫軸是復(fù)雜的因果效應(yīng),MSE的的估計誤差,縱軸是簡單的因果效應(yīng),橫軸縱軸分別表示兩份數(shù)據(jù)。綠色表示Slearner的誤差分布,褐色表示Tlearner的誤差分布,藍色表示Xlearner的誤差分布。
在隨機樣本條件下,Xlearner對于復(fù)雜的因果效應(yīng)估計和簡單的因果效應(yīng)估計均更優(yōu);Slearner對于復(fù)雜因果效應(yīng)預(yù)估表現(xiàn)相對較差,對簡單因果效應(yīng)估計更優(yōu);Tlearner則與Slearner相反。

如果有隨機樣本,X到T的箭頭可以去掉。過渡到觀測建模后X到T的箭頭去不掉,treatment和outcome會同時受到confounders的影響,這時可以進行一些消偏處理。比如DML(Double Machine Learning)的方式,進行兩階段建模。在第一階段中,這里的X是用戶自身的表征特征,比如年齡、性別等。混淆變量會包括比如歷史中對篩選特定人群的操作。在第二階段中,對上一階段計算結(jié)果的誤差進行建模,這里的即是對CATE的估計。
從隨機數(shù)據(jù)到觀測數(shù)據(jù)有三種處理方式:
(1)做隨機試驗,但業(yè)務(wù)成本較高;
(2)尋找工具變量,一般比較困難;
(3)假設(shè)觀測到所有的混淆因子,利用DML、表示學(xué)習等方法匹配相似樣本。
2、因果表示學(xué)習

反事實學(xué)習的核心思想就是平衡不同treatment下的特征分布。
核心問題有兩個:
1. 如何調(diào)整訓(xùn)練樣本的權(quán)重?
2. 如何在表示空間中,使變換后的樣本在實驗組和對照組分布更加均衡?
本質(zhì)思想是在變換映射后,為每個樣本尋找它的反事實“雙胞胎”。映射之后treatment組和control組X的分布比較相似。

比較有代表性的工作是發(fā)表在TKDE 2022上面的一篇論文,介紹了DeR-CFR的一些工作,這部分其實是DR-CRF模型的迭代,采用model-free的方式分離觀測變量。
將X變量分成三塊:調(diào)節(jié)變量A,工具變量I和混淆變量C。之后再通過I,C,A來調(diào)節(jié)不同treatment下X的權(quán)重,達到在觀測數(shù)據(jù)上進行因果建模的目的。
這種方法的優(yōu)勢是可以分離混淆因子,減少估計偏差。缺點是難以處理連續(xù)型干預(yù)。
這個網(wǎng)絡(luò)的核心就是如何分離A/I/C三類變量。調(diào)節(jié)變量A只與Y有關(guān),需要保證A與T正交,并且A對Y的經(jīng)驗誤差較小;工具變量I只與T有關(guān),需要滿足I與Y關(guān)于T條件獨立,并且I對T的經(jīng)驗誤差較小;混淆變量C與T和Y都相關(guān),w是網(wǎng)絡(luò)的權(quán)重,給了網(wǎng)絡(luò)權(quán)重后,需要保證C與T關(guān)于w條件獨立。這里的正交性可以通過一般的距離公式實現(xiàn),比如logloss或者mse歐氏距離等約束。

如何處理連續(xù)型干預(yù),這塊也是有一些新的論文研究,發(fā)表在ICLR2021上的VCNet,提供了連續(xù)型干預(yù)的估計方法。缺點是難以直接應(yīng)用在觀測數(shù)據(jù)上(CFR場景)。
將X映射到Z上,Z主要包含之前提到的X分解中的I變量和C變量,即將對treatment比較有貢獻的變量從X中提取出來了。這里將連續(xù)treatment劃分為B個分段/預(yù)測頭,每個連續(xù)函數(shù)轉(zhuǎn)化成分段的線性函數(shù),最下化經(jīng)驗誤差log-loss,用來學(xué)習

之后再用學(xué)完的Z和θ(t)去學(xué)習。 
三、反事實額度模型 Mono-CFR
最后來介紹一下度小滿的反事實額度模型,這里主要解決的是在觀測數(shù)據(jù)上對連續(xù)型Treatment的反事實估計問題。

核心問題是,如何給用戶設(shè)計(可借)額度,使得平臺盈利最大化?這里的先驗知識是,額度越高,用戶借款越多,違約風險越高。反之同理。
- 第一步,定義盈利公式。盈利=額度收入-額度風險。公式看起來簡單,但實際上會有很多細節(jié)的調(diào)整。這樣,問題就轉(zhuǎn)化為了在觀測數(shù)據(jù)上建模額度與風險(壞賬)、額度與收入的因果關(guān)系。
- 第二步,估計用戶在各個額度檔位上的預(yù)估收入和壞賬,確定最大盈利額度。
我們期望對每個用戶有如上圖所示的一個盈利曲線,在不同的額度檔位上,對收益值做反事實預(yù)估。

如果在觀測數(shù)據(jù)上看到額度越高風險越低,本質(zhì)上是由于混淆因子的存在。我們場景里的混淆因子是信用資質(zhì)。信用資質(zhì)比較好的人,平臺會賦予更高的額度,反之則賦予較低額度。優(yōu)信用資質(zhì)人群的絕對風險仍舊明顯低于低信用資質(zhì)人群。若拉齊信用資質(zhì),會看到額度的提升將帶來風險的提升,高額度突破了用戶自身的償債能力。

我們開始介紹反事實額度模型的框架。在可觀測變量X中,存在之前提到的三種變量,其中大多數(shù)是混淆變量C,小部分是策略未考慮到的是調(diào)節(jié)變量A,還有一部分是僅僅跟干預(yù)有關(guān)系的工具變量I。
- 工具變量I:如政策、需求等,會影響歷史的定額策略,但不會影響逾期概率。
- 混淆變量C:如信用、收入與負債等,同時影響對額度的調(diào)整,和這個人的逾期概率。
- 調(diào)節(jié)變量A:如環(huán)境、社會地位等,會影響逾期率。
模型思想:給定期望額度μ(T|X),學(xué)習?T與Y的單調(diào)性關(guān)系(Dose-Response Curve)。期望額度可以理解為模型學(xué)習到的連續(xù)性傾向額度,使得混淆變量C和額度T之間的關(guān)系能夠斷開,轉(zhuǎn)換成?T與Y的因果關(guān)系學(xué)習,從而對?T下Y的分布進行較好的刻畫。

這里進一步細化上述抽象的框架:將?T轉(zhuǎn)化成變系數(shù)模型,再接入IntegrandNN網(wǎng)絡(luò),訓(xùn)練誤差分成兩部分:

這里的α是衡量風險重要程度的超參數(shù)。
Mono-CFR由兩大部分組成:
- 額度傾向網(wǎng)絡(luò):預(yù)測策略傾向額度,使X⊥?T。
作用一:蒸餾出X中與T最相關(guān)的變量,最小化經(jīng)驗誤差。
作用二:錨定歷史策略上的近似樣本。
- 風險單調(diào)網(wǎng)絡(luò):約束?T與Y的理論單調(diào)關(guān)系。
作用一:對弱系數(shù)變量施加獨立單調(diào)約束。
作用二:減少估計偏差。
問題轉(zhuǎn)化為:
- 額度傾向網(wǎng)絡(luò):驗證輸出?T與Y 的關(guān)系。
- 風險單調(diào)網(wǎng)絡(luò):如何約束?T與Y的單調(diào)性?
實際額度傾向網(wǎng)絡(luò)輸入如下:

橫軸是A卡評分定義出的人群,可以看出,不同傾向額度μ(T|X)下,額度差?T與逾期率Y呈現(xiàn)單調(diào)遞增關(guān)系,越劣質(zhì)人群的額度差?T變化曲線越陡峭,實際逾期率變化曲線也越陡峭,整個曲線斜率更大。此處的結(jié)論完全是通過歷史的數(shù)據(jù)學(xué)習得出的。

從X和?T分布圖中可以看出:不同資質(zhì)人群(圖中通過不同顏色區(qū)分)的額度差?T均勻分布在相似的區(qū)間之中,這是從實際角度說明。

從理論角度,亦可被嚴格證明。
第二部分是風險單調(diào)網(wǎng)絡(luò)的實現(xiàn):

這里的ELU+1函數(shù)數(shù)學(xué)表達式為:


?T和逾期率呈現(xiàn)單調(diào)遞增的變化趨勢,通過ELU+1函數(shù)的導(dǎo)數(shù)總是大于等于0來保證。
接下來說明風險單調(diào)網(wǎng)絡(luò)如何對弱系數(shù)變量學(xué)的更加準確:
假設(shè)有這樣一個公式:

可以看出這里的x1即為弱系數(shù)變量,當對x1施加單調(diào)性約束后,對響應(yīng)Y的估計更加準確。如果沒有這樣的單獨約束,x1的重要性會被x2淹沒,導(dǎo)致模型偏差增大。

如何離線評估額度的風險的估計曲線?
分成兩部分:
- 第一部分:可解釋驗證

不同資質(zhì)人群下,去繪制如上圖所示的額度風險變化曲線,模型可以學(xué)出不同資質(zhì)人群(圖中不同顏色標識)不同檔位實際額度和逾期率的區(qū)分度。
- 第二部分:利用小流量實驗驗證,不同提額幅度下的風險偏差,可以通過uplift分箱得出。
線上實驗結(jié)論:
在額度上漲30%條件下,用戶逾期金額下降20%以上, 借款提升30%,盈利性提升 30%以上。
未來模型預(yù)期:
以model-free形式將工具變量與調(diào)節(jié)變量更清晰地分開,使模型在劣質(zhì)人群上的風險遷移表現(xiàn)更佳。
在實際業(yè)務(wù)場景中,度小滿的模型演進迭代流程如下:

第一步,觀測建模,不斷滾動歷史觀測數(shù)據(jù),去做反事實因果學(xué)習,不斷拉新訓(xùn)練窗口,補充外部數(shù)據(jù)源。
第二步,模型迭代,依據(jù)小流量隨機樣本進行效果驗證,支持有效的模型迭代。
第三步,業(yè)務(wù)決策,業(yè)務(wù)根據(jù)模型輸出進行實驗決策,驗證模型效果提升,拿到業(yè)務(wù)收益。




































