攜程火車票基于因果推斷的業務實踐
作者簡介
Seven,數據分析師,專注用戶增長、數據科學等領域。
一、背景
攜程作為旅游平臺,跟用戶需求息息相關,理解和識別各個策略/系統對轉化/收益的因果關系尤為重要,在這個過程中需要將影響因變量的其他因素進行控制,但這些因素通常是復雜且難以測量的。在關系識別困難的情況下,如何使用更為科學的方法,對策略進行微觀和宏觀的建模分析,如何系統性的評估各種策略的長期影響,是要解決的重要問題。
在火車票 BG 我們現階段已經遇到的需要探究因果的問題有五類:產品功能迭代評估、虛擬產品價值評估、精準營銷和運營、無 AB 實驗增量效果評估、外部環境變化影響評估。
遇到這些問題我們通常有幾種方式來解決:
- 在產品設計上構建正確的 AB 實驗,合理計算指標,度量產品功能和迭代的影響;
- 基于觀測數據的因果推斷,即從已有實驗和非實驗數據中提煉因果關系;
- 通過機器學習算法和數據、實驗的結合構造反事實推理來回答長期效應問題。
以上三種方式的核心思想是因果推斷。
本文將以攜程火車票業務中存在的現實問題為例進行展開,介紹一些攜程火車票在因果推斷這塊的相關工作,主要內容包括:首先,介紹因果推斷理論的基本思想和理論框架,讓大家從宏觀上了解因果推斷工具有哪些;其次,講解我們嘗試用因果推斷的方法/工具去解決業務核心問題的案例,主要有以下三個較為具體的場景:
- 用戶運營場景中遇到的因果推斷問題;
- 虛擬價值評估場景中的因果推斷具體案例;
- 其他無法做 AB 實驗的場景的效果評估。
最后,通過實踐我們相應的沉淀了一些工具使用的框架。
二、因果推斷的基本思想和理論框架
2.1 基本思想
因果關系首先要區別于我們日常生活中非常常見的相關關系。比如:我們發現醫院外面的人比醫院里面的人更加健康,這個可以說明“醫院與身體健康程度存在相關性”,但可以說“醫院是導致身體不健康的原因嗎?”,顯然是不能的。即只要 A 和 B 經常同時發生,那么說明 A 和 B 存在相關關系,而不能說明 A 和 B 一定存在因果關系。因果性強調的是 A 導致了 B 的發生,因此存在因果性一定存在相關性,反之則不成立(如圖 2-1)。
因此,因果推斷的核心是在數據中存在關聯關系的前提下,考慮數據之間的因果關系。即將因果關系從關聯中分割,對因果分析的大小作出正確的估計。
圖片
圖2-1 相關和因果關系
2.2 理論框架
在因果推斷中,有以下兩種框架:
Rubin 虛擬事實模型(Potential Outcome)的核心是尋找合適的對照組。通常情況下,我們想要度量用戶在被實驗影響和不被實驗影響這兩種情況下結果差異是多少,而對于同一個用戶,我們只能觀測到被影響/不被影響一個狀態,因此需要尋找合適的對照組,估計和衡量無法被觀測到的影響。我們通常會構造一些識別實驗,比如,互聯網常使用 AB 實驗,或者根據觀測數據使用恰當的方法來尋找對照組。針對觀測數據,這里分為兩種思想:
- 構造相似群體(Matching):這種思路假設在未被實驗策略影響的樣本中存在一些樣本與被實驗策略影響的樣本具有同質性。只要我們想辦法找到這些相似的樣本作為虛擬對照組,就可以控制外生因素。這種思想最經典的方法是傾向得分匹配法(PSM)。
- 構造虛擬現實(Synthetic Control):這種思路認為策略的影響其實是策略上了之后的指標表現和“假設策略沒上”的平行時空中指標表現的差值。因此,只要通過建模方法構建出假設策略沒上的虛擬時空的指標水平,即可評估實驗策略收益。典型的方法包括合成控制法(SCM)、Causal Impact。
Pearl 因果圖模型(Causal Graph Model)使用有向圖描述變量之間的因果關系。通過計算因果圖中的條件分布,獲得變量之間的因果關系。有向圖指導我們使用這些條件分布來消除估計偏差,其核心也是估計檢驗分布、消除其他變量帶來的偏差。
以上兩種因果框架是兩種互補的推測虛擬事實的方法,目的都是為了計算存在混淆變量時,干預變量時對結果的影響,都需要對因果關系作假設,以及控制帶來偏差的變量,不同點在于 Rubin 框架估計的因果效應主要是干預前后的期望差值,而 Pearl 框架下,我們估計的是干預前后的分布差異,Rubin 框架解決的問題是因果效應的估計和統計推斷,Pearl 框架更偏向于因果關系的識別。圖 2-2 展示了兩種框架的一些常見的主要使用方法。
圖2-2 因果推斷工具箱
三、實踐案例
隨著業務的發展,對因果關系的探究和準確評估愈發受到重視,越來越多的業務場景和評估問題需要通過因果推斷理論去優化和解決,比如如何降低營銷成本,如何科學評估會員價值等等。基于這些問題,我們對因果推斷理論進行了探索研究,并最終在多個關鍵的業務問題上落地實踐,成功解決了現存的問題。
3.1 用戶運營場景 — UPLIFT 模型
- 模型介紹:尋找策略敏感人群,尋找策略敏感人群,策略敏感人群是指能夠針對某個干預做出反應的人群,即圖 3-1 右上角這類用戶。
圖3-1 UPLIFT模型示意圖
- 業務背景:現階段用戶運營體量較大,短信是需要成本的,利用 UPLIFT 模型尋找短信敏感人群,在精細化策略運營的基礎上幫助運營人員節省成本,進一步提高運營 ROI。
- 模型應用:
建模方式:S-Learner、T-Learner、X-Learner 等等。
評估方法:QINI 曲線等。
- 應用結果:已在多個策略下進行了測試并上線了運營平臺,取模型分前 10%,帶來增量:人數 *10%*0.011,如圖 3-2。
圖3-2 UPLIFT模型結果展示
3.2 虛擬價值評估場景 — 傾向性得分匹配
- 模型介紹:通過計算傾向性得分從觀測數據中找到相似的人群,即在未干預人群中找到與干預人群相似的人,如圖 3-3。
圖片
圖3-3 PSM思想示意圖
- 業務背景:用戶增長業務存在一些業務板塊是虛擬形態,比如企業微信、公眾號、會員等,業務方希望評估下這些虛擬形態帶來的增量價值,從而指導成本投入。
- 口徑迭代:
A. 口徑1.0:
實驗組:企業微信環境下用戶。
對照組:大盤且不在企業微信環境下的用戶。
結論:在企業微信環境的用戶比不在企業微信環境用戶價值高 xx%。
事實上,這個結論肯定是錯誤的。因為在企業微信環境和不在企業微信環境這兩組用戶本身就不平衡,因為一般來說,能夠主動/被引導愿意進入企業微信環境的用戶都是相對更加忠實/活躍的用戶。即存在很嚴重的樣本自選擇問題,得到的結論是帶有混淆偏差的。
B. 口徑2.0:嚴格邏輯控制,控制首單時間、用戶類型和關注時間等相同,如圖 3-4。
實驗組:首單時間在 2020.1-2020.7 活躍用戶 & 在 2020.7-2020.12 關注公眾號。
對照組:首單時間在 2020.1-2020.7 活躍用戶,至今未關注公眾號。
圖3-4 口徑2.0展示
相比于原始口徑相對準確,但是在嚴格邏輯控制下,用戶量大幅縮小,無法準確測量所有公眾號環境內用戶的增量價值。
C. 口徑3.0:PSM 模型尋找相似人群,如圖 3-5。
實驗組:加入企業微信環境且留存達到 180 天的用戶。
對照組:用戶加入企業微信環境當日,無放回的用 PSM 在大盤人群中匹配與之相似的用戶放入對照組。
圖3-5 解決問題思路圖
- 結果展示:如圖 3-6 所示,左上角圖中展示的是實驗組和對照組原始的傾向性得分,右下角圖為實驗組和對照組匹配之后的人群得分,可以看出,從兩組中挑選出來的人群傾向性得分匹配程度較高,即我們認為兩組人群同質性較強。從左下角的圖中也可以看出來在匹配之前和匹配之后,匹配前人群差異非常大,匹配人群間的方差都控制在一個合理的范圍內。
圖3-6 PSM模型結果圖
3.3 實驗設計場景 — 合成控制法(SCM)
- 模型介紹:例如我們在 A 城市施加干預/政策,且無法找到 A 城市的最佳對照地區,就可以使用合成控制法對若干大城市進行適當的線性組合,以構造一個與 A 市非常相似的“合成 A 市”,并將“真實 A 市”與“合成 A 市”進行對比。
- 業務背景:酒店產品想通過AB實驗探索用戶價格彈性,即調整定價時,看轉化率變化情況,為了在不進行違規操作的前提下能夠得到相對科學的結論來支持決策,我們使用合成控制(SCM)的方法尋找合理的對照組:通過尋找可對比的省份作為調價前后對比評估的控制組,從而合成與實驗組省份數據特征相似的虛擬控制組。
- 方案詳情:
實驗組:A市。
對照組:A虛擬組(B *0.584+ C *0.223+ D *0.183+ E *0.01)。
(擬合情況如圖 3-7 可以看出來實驗組和對照組擬合情況較好)。
- 數據指標:總轉化 cr(提交酒店 uv/ 列表頁 uv)。
圖片
圖3-7 SCM 模型結果圖
3.4 政策干預場景 — 斷點回歸(RDD)
- 模型介紹:用干預臨界點前后很近的觀測數據構造實驗組和對照組。
- 業務背景:公眾號每周四會發推文,推文提醒方式從強提醒改為了弱提醒,評估其對公眾號觸達轉化率的影響。
- 數據處理:
中心化:對關注時間進行了中心化,使得臨界點為 0,并以距離臨界點的小時數作為相對關注時間。
數據分組:用戶根據關注時間排序并分組,每組約 100 人,取平均相對關注時間。
關鍵指標:
a, 干預變量 D:提醒方式(0:強提醒,1:弱提醒)。
b. 結果變量 Y:3 日支付轉化率、7 天支付轉化率。
c. 配置變量 X :每組平均相對關注時間。
- 方案設計:
取助力來的關注公眾號用戶,如圖 3-8 所示。
實驗組:改版前最后一個周四,前三天新關公眾號用戶。
對照組:改版后第一個周四,前三天新關公眾號用戶。
圖3-8 斷點回歸思路圖
- 數據擬合:
強提醒變為弱提醒使觸達 3 天轉化率和 7 天轉化率都有顯著降低(P 值小于 0.01),如圖 3-9。
圖3-9 斷點回歸結果圖
四、因果推斷使用總結
4.1 因果推斷使用
因果推斷分為兩個部分:因果識別(發現)和因果效應估計。
- WHEN:當無法設計完美隨機實驗的時候,從觀察性的數據中去(擬合隨機試驗)測算因果效應。
- WHAT:本質是剝離我們所不關心的外部變量對結果的影響,從而精準估計到我們所關心的策略因素對結果的單一影響。
- HOW:評估方法的選擇本質上可以總結為:使用場景識別選擇合適的因果推斷方法,并使用合適的方法結合業務真實數據來解決問題。
4.2 使用場景識別
通過實踐總結,因果推斷方法常見的使用場景有以下四種(如圖4-1):
1)場景一:非實驗場景策略效果評估
- 問題判別:評估計算的是群體效應(ATE)、無法進行 AB 實驗。
- 核心思想:人為創造一個虛擬對照組與策略上線數據做比較估計策略真實效果。
- 使用方法:PSM\SCM\Casual Impact\DID。
- 常見場景:
a. 北京市新建立了一個機場,對我們的訂單的影響。
b. 微信公眾號突然更改提醒方式,對我們用戶觸達轉化率的影響。
c. 研究政策影響方面:例如某地區通過法律將最低工資每小時 4.25 美元提高到 5.05 美元,相鄰的某地區保持不變,是否會提高就業人數。
2)場景二:實驗場景下的正向用戶下探
- 問題判別:探究干預(策略)對于不同用戶的異質效應(又叫 HTE),指的是哪些細分用戶對策略更敏感更容易被影響以及影響有多少,更好的歸因和理解不同的用戶群,傳統做法是多維分析,效率低,容易犯錯。
- 核心思想:對某個干預敏感度最大的一批人。
- 使用方法:因果樹/因果森林。
- 常見場景:通常情況下,是結合實驗來做分析的。
a. 實驗中挑選出來那些實驗效果顯著的用戶,去分析他們的特征,找到敏感用戶,幫助我們做下一步的迭代。
b. 某業務做了產品優化實驗,但實驗各項消費數據表現較差,以 APP 平均使用時長為例,我們想找到一些群體的消費者,擁有正向的實驗收益。
3)場景三:策略敏感人群探究
- 問題判別:找到真正的干預(策略)敏感人群,將預算/資源投入到這批人群。
- 核心思想:對期望結果(如下單轉化等)進行歸因,尋找由于某個干預而引發期望結果的人群。
- 使用方法:Uplift Model。
- 常見場景:用戶營銷場景,節省成本、提升 ROI。
a. 現在公司有一批預算,可以給用戶發送優惠券提升用戶購買率,應該發給平臺的哪些用戶。
4)場景四:因果影響指標分析
- 問題判別:分析某個或者多個指標對結果的影響程度或者尋找對結果有因果影響的因素以及評估影響程度。
- 核心思想:基于歷史觀測數據進行因果建模,解決多重共線性問題和自變量和因變量的非線性問題。因果推斷經常會遇到混淆變量的問題,比如我們想要去分析直播推薦多樣性(指標 D)對用戶活躍度(指標Y)的影響,但此時存在很多變量 X 既與 D 相關又與 Y 相關。解決這類問題傳統的方法是用 X 對 Y 做線性回歸,X 的參數就是影響效應,或者是上 XGboost 看 Shap 值等。但傳統的方法會依賴很多強假設例如不能多重共線性等,強假設下得到的估計不一定合理。所以這種場景下傳統的指標影響分析方法將不滿足業務需求,雙重機器學習(Double Machine Learning)可以提供思路。
- 常見場景:
a. 估計冰淇淋價格與其銷量之間的因果效應。
b. 安裝抖音對快手使用時長的影響。
c. 探索哪些潛在的用戶行為或者哪些內容對用戶活躍度有正向因果影響,且衡量因果效應都是多少。
圖4-1 因果推斷通用框架