AB實驗的采樣分流技術演進以及Sutva假設與現實挑戰

實驗文化在互聯網公司越來越普及,AB實驗作為業務決策的輔助工具,可以精準區分策略效果的隨機波動與顯著增長。此外AB實驗還可以評估策略的因果關系,舉一個生活中的例子,退燒的時候往往會出汗,那么退燒和出汗的因果關系是什么, 是不是發燒之后我們應該穿更多衣服捂汗?通過 AB實驗,我們可以發現退燒是因,出汗是果, 所以發燒捂汗的做法是不對的。在互聯網產品中,類似的問題很常見, AB實驗可以給決策者更清晰的因果鏈路, 從而讓產品經理或者業務決策者更全局的視角,更準的決策。
一、采樣分流技術的發展
傳統AB實驗,在實驗開始前分好AB組用戶,同時生效策略。例如醫學實驗, 實驗開始前招募志愿者,然后分為AB兩組。互聯網實驗的區別:A組實時采樣1%的用戶, B組同樣實時采樣1%的用戶, 然后啟動實驗,AB組的命中實驗的用戶會陸續進入實驗,第一天實驗組可能來了 0.2% 的用戶,隨著實驗時間增加,實驗用戶量逐漸接近 1%,這里和傳統的醫學實驗不一樣。
我們把互聯網產品的用戶看做一個有限個數的總體,從這個總體中,隨機無放回的采樣得到AB組用戶,一種簡單的工程實現:將大盤用戶隨機Shuffle一次,然后按照比例取出 AB組用戶。但這樣的采樣在工程化的時候比較復雜,因為每次啟動實驗,我們都需要對大盤用戶做一次Shuffle。進一步優化,我們可以選擇一個密碼學Hash函數實時采樣, 因為密碼學Hash函數可以保證任意兩個用戶ID的Hash Value是獨立的, 這個性質等價于隨機采樣。當實驗比較多的時候,我們發現這種hash模擬隨機采樣的分流方式還是有一個問題:用戶是有記憶性的, 上一個實驗的效果會延續到新的實驗,我們通過二次Hash來解決這個問題。除 Hash 采樣之外,再介紹一種更復雜的完美隨機分流策略,基于有限域(galois field)理論,我們給出一種完美隨機方案《Orthogonal Traffic Assignment in Online Overlapping A/B Tests》。
二、指標計算評估的發展
在互聯網業務大量使用 AB實驗之前, 數據分析師使用業務 BI 報表給老板匯報數據, BI報表數據往往是某一天,大盤用戶的行為數據,例如某天所有用戶的訪問時長除以當天的總人數,得到人均訪問時長。
AB 實驗初期,產品經理或者數據分析同學有之前的固定思維,一個實驗運行 7 天,他們會把每一天的用戶訪問時間加起來作為分子,再除把每一天進入實驗的用戶加起來(不去重)作為分母,計算“人均訪問時長”,這個指標和 BI 報表的指標是口徑一致的。用這個指標口徑做實驗,通過 jackknife/bootstrap 估計方差做統計推斷。但是這樣的口徑是不科學的,舉一個例子:在BI業務報表中,產品經理一般使用的是非聚合指標,例如看連續兩天報告,人均瀏點擊次數=(第一天點擊次數+第二天點擊次數)/ (第一天用戶數+第二天用戶數),這里用戶數在兩天內沒有做去重聚合。在AB實驗中,這樣定義指標有明顯缺陷。例如,A組和B組假設在第一天都進入了10個用戶,A組的策略非參糟糕,留存是0, 第二天沒有用戶訪問,B組策略比較好,留存是100%, 第二天這10個人都又分別點擊了一次,我們如果使用BI報表中的非聚合口徑計算指標,A組的人均點擊=(10+0)/(10+0) = 1 , B組的人均點擊=(10+10)/(10+10)=1 , A組指標=B組指標,我們得出AB組策略沒有差異,顯然是一個錯誤的結論。在AB實驗中,正確的指標定義是:人均瀏點擊次數=(第一天點擊次數+第二天點擊次數)/ (去重(第一天用戶數+第二天用戶數)), 新口徑下,A組指標=10/10=1 , B組指標=20/10=2 , 可以看出B組策略顯著好于A組。
指標的長期效果預測,AB 實驗的指標結果代表實驗期間對策略效果的評估,但是產品負責人或者老板更需要得到一個長期效果,策略對全年 OKR的貢獻。我們在這篇文章中有詳細的分析如何評估長期效果《Estimating Causal Effects of Long-Term Treatments》(EC'23)
三、AB實驗統計推斷的發展
Sutva (Stable Unit Treatment Value Assumption)假設直觀的理解:在 AB實驗中,給 B組用戶一個策略,B組用戶的不會把策略效應溢出到 A組;
1.Sutva 假設成立時:
固定樣本假設推斷, 我們在實驗開始前,確定 Power 和業務檢驗精度,計算出實驗所需要的樣本量,然后啟動實驗。這是一個理想實驗設計,在采樣分流技術中有提到,互聯網實驗中,用戶是陸續進入實驗,所以這種固定樣本實驗有一些問題:
- 實驗做 3 天與 7 天的檢驗統計量分布可能不同,例如3天的人均訪問時長和 7 天人均訪問時長,顯然是兩個不同的分布(計算口徑是人均去重指標,在 AB實驗指標計算中有提到)。
- 實驗采樣是實時的,實驗第一天進入實驗的用戶成分,活躍用戶占比較高, 實驗運行累計兩天時,非活躍用戶占比上升,隨著實驗累計時間增加 ,實驗人群中非活躍占比逐漸增大,最終逐漸接近大盤中的用戶成分。當實驗策略在活躍與非活躍用戶的類型上產生不一樣的效應,那么實驗評估的準確性會受到影響。我們需要一些找到一個合適時間停止實驗,來降低這里的風險,我們最近完成的工作:《Enhancing External Validity of Experiments with Ongoing Sampling Process》(EC'24)。
- 用戶連續觀測 Peeking 問題(重復看實驗導致一類錯誤升高),隨著基礎實時數倉的發展,業務需要對實時的指標做統計推斷,例如,有一個實時 CTR指標,業務希望在可以在任意時刻做統計推斷,這里帶來新的挑戰,序列化檢驗模型的落地與應用。
更復雜的場景,產品經理想對某一組 UI做實驗,例如一個按鈕的顏色也形狀和文案三個維度,每個維度有 4 個選擇,那么總共有 4*4*4=64 個策略,同時做這 64 個策略對比,這幾乎是一件不可能完成的任務。再例如,我們做一個模型超參實驗,超參數的取值在實數域,我們不可能通過 AB實驗枚舉實數域進行實驗。這里引入新的Multi-armed Bandit/Bayesian optimization 實驗方案。
2.Sutva 假設不成立時:
固定關系的干擾:
舉一個例子,在社交場景做實驗,實驗策略可以通過已知好友關系傳播,我們做一個 50%vs50% 的實驗,實驗組中的用戶通過好友關系,把實驗策略分享到對照組的用戶,結果實驗組和對照組都受到策略影響, 我們實驗的統計量(實驗組用戶均值-對照組用戶均值)檢測不到差異。這個例子中, AB 組之間的干擾都來源于已知的關系傳導,我們可以在隨機采樣的時候,考慮關系圖,進行圖采樣,得到兩個隔離的 AB 組進行實驗。另外一種處理思路是,因為傳導關系已知,我們可以通過定義一個可以表達傳導效應的新統計量進行實驗;最后一種思路是建模,我們通過模型預測數傳導效應進行實驗。我們最近完成的一些文章:
《Optimized Covariance Design for AB Test on Social Network under Interference》(NeurIPS'24)
《Unbiased Estimation for Total Treatment Effect Under Interference Using Aggregated Dyadic Data》(MitCoDE'23)
《Ego Group Partition: A Novel Framework for Improving Ego Experiments in Social Networks》(MitCoDE'23)
非固定關系的干擾:
舉一個例子,在主播實驗中,我們對 B組主播給一些激勵策略,那么 B 組主播的直播間會有更好的指標。因為 B組主播搶奪了原本進入 A 組主播的用戶。如果我們把這個策略全量上線之后,不存在 A 組策略的主播,也就不存在“搶奪”效應。所以在實驗過程中我們看到的 B 組效果好,可能是被高估的。這類場景比較復雜,因為非固定關系有很多不同的情況,大多來自推薦系統的策略和產品自身的傳導效應,還有外部因素的干預等。我們對于這種情況的實驗 case by case 分析,通過因果推斷、結構化模型、強化學習等一系列方法評估實驗效果,可以進一步閱讀我們最近完成的文章:《Estimating Treatment Effects under Recommender Interference: A Structured Neural Networks》(EC'24)
四、AB實驗當前遇到的難點與挑戰
隨著業務越來越廣的應用AB實驗, 我們面臨一些新的挑戰:大數據量的挑戰,實驗數量快速增加,如何更快、更準、更穩的提供計算支持。相關工作我們整理發表在 VLDB'24 : 《Large-Scale Metric Computation in Online Controlled Experiment Platform 》
算法方向,復雜業務系統中 Sutva 不成立時,如何更準的支持實驗,例如搜索系統、推薦系統、廣告系統中。實驗結果如何更準確的反應業務大盤,以及更準的評估實驗長期收益。最后是很多不能做實驗的場景,我們如何把因果推斷技術標準化和效果評估做好,助力業務提供增長。我們開源了一套基于 Olap 引擎分的布式計算因果推斷庫,解決非標準化AB實驗評估問題。《Fast-Causal-Inference: a Causal Inference Tool at Scale》(MitCoDE'23)





























