一、整體框架
因果推斷的主要任務可分為三類。首先是因果結構的發(fā)現,即從數據中識別出變量之間的因果關系。其次是因果效應的估計,即從數據中推斷一個變量對另一個變量的影響程度。需要注意的是,這種影響并非指相關性,而是指在對一個變量進行干預時,另一個變量的數值或分布如何變化。最后是校正偏差,因為在許多任務中,各種因素可能導致開發(fā)樣本和應用樣本的分布不同。在這種情況下,因果推斷可以幫助我們進行校正偏差。
這些功能適用于多種場景,其中最典型的是決策場景。通過因果推斷,可以了解不同用戶對我們的決策行為的反應。其次,在工業(yè)場景中,業(yè)務流程通常復雜且長,導致數據存在偏差。通過因果推斷清晰描述這些偏差的因果關系,可以幫助我們進行糾偏。此外,許多場景對模型的魯棒性和解釋性要求很高。希望模型能夠基于因果關系進行預測,因果推斷可以幫助構建更為強大的解釋性模型。最后,決策結果的效果評估也很重要。雖然類似于決策場景,但這是在決策之后進行的評估。因果推斷可以幫助更好地分析策略的實際效果。
接下來將介紹因果推斷中的兩個重要問題:如何判斷一個場景是否適合應用因果推斷,以及因果推斷中的典型算法。
二、應用場景評估(決策問題)
首先介紹應用場景評估,判斷一個場景是否適合使用推斷主要涉及決策問題。
對于一個決策問題,首先需要明確其是什么,即在什么約束條件下做出什么動作,以達到最大化什么樣的目標。接著需要考慮這個動作對目標和約束是否產生影響,以及是否需要使用因果推斷模型進行預測。舉例來說,在營銷產品時,我們通常會考慮在給定總預算的情況下,決定是否給每個用戶發(fā)放優(yōu)惠券或打折,以最大化銷量或銷售額。如果沒有預算約束,雖然折扣會影響最終的銷售額,但只要知道其是正向策略,就可以給所有人打折。這種情況下,雖然決策動作對目標有影響,但無需使用因果推斷模型進行預測。
以上是對決策問題的基本分析,此外還需觀察數據條件是否滿足。對于構建因果模型,不同的因果算法對數據和任務的假設有不同的要求。
潛在結果類的模型有三個關鍵的假設。首先,個體的因果效應必須是穩(wěn)定的,例如在探究發(fā)優(yōu)惠券對用戶購買概率的影響時,要保證一個用戶的行為不受其他用戶的影響,比如在線下比價或者受到不同折扣版本的優(yōu)惠券影響。第二個假設是,在給定的特征情況下,用戶的實際處理和潛在結果是獨立的,這個假設可以用來處理觀測不到的混雜。第三個假設是關于overlap的,即任何一種用戶都應該給出不同的決策,否則就無法觀察到這種用戶在不同決策下的表現。
結構因果類的模型所面臨的主要假設是變量之間的因果關系,這些假設往往難以證明。而使用Meta learning和基于樹的方法時,其假設通常是條件獨立的,即在給定特征的情況下,決策動作和潛在結果是獨立的。這個假設與前面提到的獨立性假設相似。
在實際業(yè)務場景中,了解先驗知識至關重要。首先,需要理解實際觀測數據的分配機制,即先前決策的基礎。當無法獲得最準確的數據時,可能需要依靠一些假設來進行推斷。其次,業(yè)務經驗可以指導我們確定哪些變量對于區(qū)分因果效應的影響最為顯著,這對于進行特征工程具有重要意義。因此,在處理實際業(yè)務時,結合觀測數據的分配機制和業(yè)務經驗,能夠更好地應對挑戰(zhàn),有效地進行決策和特征工程。
三、典型的因果算法
第二個重要議題是因果推斷算法的選用。
首先是因果結構發(fā)現類算法。這些算法的核心目標是確定變量之間的因果關系。主要的研究思路主要可分為三類。第一類方法是根據因果圖中的節(jié)點網絡條件獨立性特點進行判斷。另一類方法是定義一個評分函數來衡量因果圖的質量。例如,通過定義似然函數,尋求使得該函數最大化的有向無環(huán)圖,并將其作為因果圖。第三類方法則是引入了更多的信息。例如,假設兩個變量的實際數據生成過程遵循 a n m 型,即加性噪音模型,然后再求解這兩個變量之間的因果關系方向。
因果效應的估計涉及多種算法,下面介紹幾種常見的算法:
首先是計量經濟學中常提及的工具變量法、did方法和合成控制法。工具變量法的核心思想在于尋找與處理相關但與隨機誤差項無關的變量,即工具變量。此時工具變量與因變量之間的關系不受混雜的影響,可以將預測分為兩個階段:首先利用工具變量預測處理變量,然后利用預測的處理變量來預測因變量,得到的回歸系數即為平均處理效應(ATE)。而DID方法和合成控制法則是針對面板數據而設計的方法,但在此不作詳細介紹。
另一種常見的方法是利用傾向得分來估計因果效應。這種方法的核心是預測隱藏的分配機制,例如發(fā)放優(yōu)惠券與不發(fā)放優(yōu)惠券的概率。如果兩個用戶具有相同的優(yōu)惠券發(fā)放概率,但實際上一個用戶收到了優(yōu)惠券,另一個用戶沒有,那么我們可以認為這兩個用戶在分配機制上是等價的,因此可以比較它們的效果。基于這一點,可以推廣出一系列方法,包括匹配方法、分層方法和加權方法等。
還有一種方法是直接預測結果。即存在觀測不到的混雜情況下,也可以通過假設直接預測結果,并通過模型自動進行調整。然而,這種方法可能引發(fā)一個問題:如果直接預測結果就足夠,那么問題就不存在了嗎?實際上,并非如此。
第四是結合傾向得分和潛在結果的思路,使用雙重穩(wěn)健和雙重機器學習的方法可能會更準確。雙重穩(wěn)健和雙重機器學習將兩種方法結合在一起,其中任何一個部分的準確性都可以確保最終結果的可靠性,從而提供了雙重保障。
另一種方法是結構因果類的模型,基于因果關系構建模型,如因果圖或結構化方程。這種方法允許直接干預某個變量以獲得結果,并進行反事實推斷。然而,這種方法的前提是我們已經了解變量之間的因果關系,這往往是一個奢侈的假設。
Meta learning方法是一種重要的學習方法,其涵蓋了多種不同的類別。其中之一是S-learning,該方法將處理方法視為一個特征,直接輸入模型中。通過調整這個特征,我們可以觀察到不同處理方法下結果的變化。這種方法有時被稱為單模型學習者,因為我們?yōu)閷嶒灲M和對照組各建立了一個模型,然后通過修改特征來觀察結果。另一種方法是X-learning,其過程類似于S-learning,但額外考慮了交叉驗證的步驟,以更準確地評估模型的性能。
樹形方法是一種直觀且簡單的方法,通過構建樹狀結構來分裂樣本,使得左右節(jié)點上的因果效應差異最大化。然而,這種方法容易過擬合,因此在實踐中常常采用隨機森林等方法來減少過擬合的風險。使用boosting方法可能會增加挑戰(zhàn),因為它更容易過濾掉一些信息,所以在使用時需要設計更復雜的模型以防止信息丟失。Meta learning方法和基于樹的算法通常也被稱為Uplift model。
因果表征是近年來在學術界取得一定成果的領域之一。該方法致力于解耦不同模塊,將影響因素分開,以更精確地識別混淆因素。通過分析影響因變量y和處理變量(treatment)的因素,可以識別出可能影響y和treatment的混淆因素,這些因素被稱為混淆因素。這種方法有望提高模型的端到端學習效果。以傾向得分為例,它常常在處理混淆因素時表現出色。然而,傾向得分的過分準確有時并非有利。在同一傾向得分下,可能出現無法滿足重疊假設的情況,這是因為傾向得分可能包含一些與混淆因素相關但不影響y的信息。當模型學習得過于準確時,在加權匹配或分層處理時,可能會導致較大的誤差。這些誤差實際上并非由混淆因素引起,因此并不需要考慮。因果表征學習方法提供了解決這一問題的途徑,能夠更有效地處理因果關系的識別和分析。
四、因果推斷實際落地中的難點
因果推斷在實際應用中面臨著諸多挑戰(zhàn)。
因果關系的弱化。在許多場景中,因果關系往往與隨機波動的噪音處于同一量級,這給建模工作帶來了巨大的挑戰(zhàn)。在這種情況下,建模的收益相對較低,因為因果關系本身并不明顯。然而,即使必須進行建模,也需要采用具有更強學習能力的模型才能夠準確捕捉到這種弱化的因果關系。同時,需要特別注意過擬合的問題,因為學習能力較強的模型可能會更容易受到噪音的影響,導致模型過度擬合數據。
第二個普遍存在的問題是數據條件的不足。這個問題的范圍較為廣泛,主要原因在于我們所使用的算法假設存在著許多不足之處,特別是在利用觀測數據進行建模時,我們的假設可能并不完全成立。其中最典型的問題包括重疊假設可能無法滿足,我們的分配機制可能缺乏隨機性。更為嚴重的問題是,我們甚至沒有足夠的隨機測試數據,這使得我們難以客觀地評估模型的表現。在這種情況下,如果仍然堅持進行建模,而且模型性能優(yōu)于同比規(guī)則,那么我們可以借助一些業(yè)務經驗來評估模型的決策是否合理。從業(yè)務角度出發(fā),對于一些假設不成立的情況,比如未觀測到的混雜因素,從理論上并沒有特別好的解決方法,但如果一定要使用模型,可以嘗試根據業(yè)務經驗或進行一些小規(guī)模的隨機測試來評估混雜因素的影響方向和程度。同時,將這些因素考慮到模型中,對于不滿足重疊假設的情況,雖然這在我們后面的列舉中作為第四個問題,但在此一并討論,我們可以通過一些算法來排除一些分配機制中的非混雜因素,即通過因果表示學習來緩解這一問題。
在處理這種復雜性時,決策動作顯得尤為重要。許多現有模型主要專注于解決二元問題,然而,若涉及多個處理方案,如何分配資源便成為一個更為復雜的問題。針對這一挑戰(zhàn),我們可以將多個處理方案分解成不同領域的子問題。此外,利用深度學習方法,我們可以將處理方案視為特征,并假設連續(xù)處理方案與結果之間存在某種函數關系。通過優(yōu)化這些函數的參數,可以更好地解決連續(xù)決策問題,然而,這也引入了一些額外的假設,如重疊問題。
分配機制固定。見上述分析。
另一個常見問題是目標預測很多。在某些情況下,目標預測受到多種因素的影響,而這些因素又與處理方案相關聯。為了解決這一問題,我們可以采用多任務學習的方法,盡管直接處理復雜的角色問題可能較為困難,但我們可以通過簡化問題,僅預測受處理方案影響最為關鍵的指標,逐步為決策提供參考。
最后,一些場景下進行隨機測試的成本較高,而且效果回收周期較長。在模型上線之前,充分評估模型的效果變得尤為重要。在這種情況下,進行小規(guī)模的隨機測試可以用來評估效果。盡管評估模型所需的樣本集比建模樣本集少得多,但如果甚至無法進行小規(guī)模的隨機測試,那么我們可能只能通過業(yè)務解釋性來判斷模型決策結果的合理性。
五、案例-京東科技的額度決策模型
接下來以京東科技利用因果推斷技術制定信貸產品的輔助應用為例,展示如何根據用戶特征和經營目標確定最佳信貸額度。在確定經營目標后,這些目標通??梢约毞譃橛脩舯憩F的指標,如用戶的產品使用情況和借款行為。通過分析這些指標,可以計算出利潤、規(guī)模等經營目標。因此,額度決策過程分為兩步:首先利用因果推斷技術預測用戶在不同額度下的表現,然后根據這些表現和經營目標,采用各種方法來確定每個用戶的最佳信貸額度。
六、未來發(fā)展
未來的發(fā)展中將面對一系列挑戰(zhàn)與機遇。
首先,針對當前因果模型存在的不足之處,學界普遍認為需要大規(guī)模的模型來處理更為復雜的非線性關系。因果模型通常只處理二維數據,并且大多數模型結構相對簡單,因此未來的研究方向可能包括解決這一問題。
其次,研究者提出了因果表示學習的概念,強調了解耦和模塊化思想在表示學習中的重要性。通過從因果關系的角度理解數據生成過程,基于真實世界規(guī)律構建的模型很可能具有更好的遷移能力和泛化性。
最后,研究者指出當前的假設過于強大,很多情況下難以滿足實際需求,因此需要針對不同情境采用不同的模型。這也導致了模型落地的門檻相當高。因此,尋找通用性強的萬金油算法具有巨大的價值。