AB Test 介紹:
AB Test 的意義:
數據分析告訴我們要不要去做一件事情,ab 實驗反饋告訴我們我們做得好不好,哪里有問題,以及衡量可以帶來多少確定性的增長。
一、理論基礎
1、中心極限定理:
大量相互獨立的隨機變量,其均值(或者和)的分布以正態分布為極限(意思就是當滿足某些條件的時候,比如Sample Size比較大,采樣次數區域無窮大的時候,就越接近正態分布)。而這個定理amazing的地方在於,無論是什么分布的隨機變量,都滿足這個定理。
2、大數定理
簡單的可以描述為,如果有一個隨機變量X,你不斷的觀察並且采樣這個隨機變量,得到了n個采樣值,然后求得這n個采樣值得平均值,當n趨向於正無窮的時候,這個平均值就收斂於這個隨機變量X的期望。
3、置信區間和統計顯著性
參考:
https://zhuanlan.zhihu.com/p/22987913
概念:樣本、總體
置信區間是(用來對一個概率樣本的總體參數進行區間估計的) 樣本均值范圍,它展現了這個均值范圍包含總體參數的概率,這個概率稱為置信水平;
置信水平代表了估計的可靠度,一般而言,我們采用95% 的置信水平進行區間估計。
置信區間在ABtest中的意義:(兩個總體的均值之差的置信區間)
由t檢驗大樣本檢驗公式計算得出Z值(由均值、樣本量、方差計算出來的統計值,通過這個統計值再結合分布公式,也可以計算出p value從而作出是否拒絕原假設的決策),再根據兩個總體的均值、標准差和樣
本大小,利用以下公式即可求出兩個總體均值差的95%置信區間:
本大小,利用以下公式即可求出兩個總體均值差的95%置信區間:

值得注意的是,置信區間的上下限同為正或負,只能說明試驗是統計顯著的(也就是試驗版本和對照版本有差異),但是這個差異有可能是非常小的,在實際應用中微不足道的。因此,只有兼備統計顯著和效果顯著兩個特征的結果,才能說明該版本是可用,值得發布的。
二、AB testing的實驗注意點
1、時間一致性;
2、數據分布的一致性;
3、統計顯著的結果才可以引導決策;
4、實驗分組設計上(流量分布要均勻):
算法對用戶的偏差沒有反映到實驗分桶上,會放大算法之間效果的差距,從而產生辛普森悖論;
5、置信
要獲得一個可信的試驗結果需要一定的流量(樣本)和時間,如果流量(樣本)太小或者分不均勻,試驗結果會存在偶然性,可能無法得出可信的結果;試驗運行時間太短的話同理;
6、時間
實驗周期中也要避免外部因素的影響,盡量在平穩時期進行,減少外部因素的干擾;
有時候為了保證實驗效果的置信,防止小流量分布不均勻,可以在試驗過程中,逐步增大流量分配,同時監控關鍵指標的數據走勢,從而得到置信的結論;
三、分流及分桶原理
需要保證:
(1)同一實驗中不同分桶之間是隨機的;
(2)不同的場景、實驗,分桶會被重新打散;
(3)實驗設計時,需要考慮驗證哪個因子,則可以按照那個因子來進行分桶;
分桶和分流之間的關系:
分流是指,從總體中隨機抽樣百分之幾來做實驗;
分桶是指,在實驗的流量里面根據某個需要驗證的因子隨機分桶;
四、分桶不平衡的驗證辦法
1、AA testing
A/A測試可以理解成對兩個相同版本進行的A/B測試。通常,這樣做的目的是為了驗證正在使用的工具運行試驗在統計上是公平的。在A/A測試中,如果測試正確進行,控制組和實驗組應該沒有任何區別。
如果說A/B測試用來測試比較幾個方案的優劣,那么A/A測試就是驗證A/B測試及工具置信度的有效方式。
應該考慮運行A/A測試的唯一種情況:
(1)你剛安裝了一個新的測試工具或更改了測試工具設置;
(2)你發現了A/B測試與數據分析工具結果之間存在差異;
一般在AB測試之前進行AA測試,或者在ab測試中同時進行A/A/B測試,觀察兩個相同的A組之間是否有統計顯著的不同,從而確定分桶規則是否靠譜。一些分析表明,這種方式還不如直接讓控制桶(a桶)是實驗桶(b桶)的兩倍大(所謂的 池化)
2、多項檢驗的統計方法;
五、分桶不平衡的解決辦法
1、由AA實驗演變的A:B=2:1的流量大小分配方式;
2、通過逐步放大流量做對比的方式;
六、AB test的應用
1、方案優選;
2、系統測試;
3、因果推斷;
AB test和離線評估的優缺點和使用場景:
1、AB test 系統搭建和維護需要一定成本,對技術也有一定要求,如果該系統做得不好,用了反而有害;ab系統更多是用於方便衡量算法/產品
優化帶來的效果,對於用人緊缺的創業公司其實不是必要的;
2、離線評估最重要是模擬真實線上場景,如果模擬不好,離線測試的結果也不可信;
但是,當公司的ab test系統還沒有搭建好的時候,離線評估還是很有必要,起碼有一些明顯的算法問題可以通過離線測試看出來,模型選擇和調優也需要離線測試,而且離線測試不會對線上造成影響,ab實驗則會;
3、當產品在市場上的競爭環境激烈,項目上線需要爭取有利時機時,往往憑借戰略決策來決定上線與否而不是ab實驗,ab實驗有一段觀察期而且需要外部條件相對穩定才能得出客觀的結論,適用於產品的發展期處於相對比較平穩的時候,防止決策錯誤導致數據下降;
因此,實時數據分析是有必要的,實時ab test必要性不是很強;
4、多數的ab test系統並不具備決策推全后仍然持續觀察的能力,有一些關乎實現公司或者產品長期戰略目標的功能/算法,可能短期內會導致指標下降或者沒有明顯增長,但是也必須要上線;
5、AB test 幫助你在現有流量中獲取更多的收益,或者在現有流量中提升ROI,或者說在現有用戶基礎上提升活躍度,但是在衡量對用戶量增長或者獲取新流量是否有幫助上,ab test或者所起作用不大。
6、AB test還有一個缺點,就是只能做小范圍的效果比較,比如作用於同一個場景使用不同算法的效果比較;比如它不能告訴我們,A業務的推薦算法是否比B業務的推薦算法做得好;也就是說它不能衡量一個模型的遷移和泛化能力;
算法ab test 與數據分析的關聯:
1、使用deep模型做算法,ab test衡量算法end-to-end的效果;然后用統計分析方法或者ml的方法做模型解釋,或者是建模前的特征分析。
其他:
1、驗證達爾文系統流量分配不均的問題解決辦法:設置AA testing
2、對照組的設置要和優化baseline一致,實驗設計要和我們需要驗證的結論相一致才行;
3、模型到底是否需要 fine tuning?(權衡模型調優與新算法嘗試之間的選擇:看目標到底是要精准還是要召回高?其實是准確率和召回率的平衡。拋開業務需求,一個好的模型,是在准確率和召回率趨向接近的基礎上,兩者還能達到一個比較高的值;那如果是有業務需求,那么就根據業務需求使用相應特點的模型)
4、在線模型里面到底是抽樣訓練還是全量樣本訓練比較好?(訓練樣本抽樣方面的優化)(需要實驗驗證)
5、特征優化包括特征的全面性完善和特征加工方式的多樣性完善;
數據分析->基礎特征加工->模型設計->平台工具(特征工程、模型訓練及預測)->實驗設計及驗證->(反饋到前面任意步驟再順序執行)
附:
具體計算方法及工具:
賈俊平 《統計學》5~8章
