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