背景
AB實驗可謂是互聯網公司進行產品迭代增加用戶粘性的大殺器。但人們對AB實驗的應用往往只停留在開實驗算P值,然后let it go。。。let it go 。。。
讓我們把AB實驗的結果簡單的拆解成兩個方面:
如果你的產品改進方案本來就沒啥效果當然怎么開實驗都沒用,但如果方案有效,請不要讓 statictical Hack 浪費一個優秀的idea
如果預期實驗效果比較小,有哪些基礎操作來增加實驗顯著性呢?
通常情況下為了增加一個AB實驗的顯著性,有兩種常見做法:增加流量或者增長實驗時間。但對一些可能對用戶體驗產生負面影響或者成本較高的實驗來說,上述兩種方法都略顯粗糙。
對於成熟的產品來說大多數的改動帶來的提升可能都是微小的!
在數據為王的今天,我們難道不應該采用更精細化的方法來解決問題么?無論是延長實驗時間還是增加流量一方面都是為了增加樣本量,因為樣本越多,方差越小,p值越顯著,越容易檢測出一些微小的改進。
因此如果能合理的通過統計方法降低方差,就可能更快,更小成本的檢測到微小的效果提升
CUPED(Controlled-experiment Using Pre-Experiment Data)應運而生。 下面我會簡單總結一下論文的核心方法,還有幾個Bing, Netflix 以及Booking的應用案例。
論文
Deng A, Xu Y, Kohavi R, Walker T. Improving the Sensitivity of Online Controlled Experiments by Utilizing Pre-experiment Data. Proceedings of the Sixth ACM International Conference on Web Search and Data Mining. New York, NY, USA: ACM; 2013. pp. 123–132. Paper鏈接
核心方法總結
論文的核心在於通過實驗前數據對實驗核心指標進行修正,在保證無偏的情況下,得到方差更低, 更敏感的新指標,再對新指標進行統計檢驗(p值)。
這種方法的合理性在於,實驗前核心指標的方差是已知的,且和實驗本身無關的,因此合理的移除指標本身的方差不會影響估計效果。
作者給出了stratification和Covariate兩種方式來修正指標,同時給出了在實際應用中可能碰到的一些問題以及解決方法.
stratifiaction
這種方式針對離散變量,一句話概括就是分組算指標。如果已知實驗核心指標的方差很大,那么可以把樣本分成K組,然后分組估計指標。這樣分組估計的指標只保留了組內方差,從而剔除了組間方差。
Covariate
Covariate適用於連續變量。需要尋找和實驗核心指標(Y)存在高相關性的另一連續特征(X),然后用該特征調整實驗后的核心指標。X和Y相關性越高方差下降幅度越大。因此往往可以直接選擇實驗前的核心指標作為特征。只要保證特征未受到實驗影響,在隨機AB分組的條件下用該指標調整后的核心指標依舊是無偏的。
stratification和Covariate其實是相同的原理,從兩個角度來看:
- 從回歸預測的角度,實驗核心指標是Y,降低Y的方差就是尋找和Y相關的自變量X來解釋Y中信息的過程(提升\(R^2\)),X可以是連續也可以是離散的
- 從投資組合的角度,Y是組合中的一項資產,想要降低交易Y的風險(方差),就要做空和Y相關的X資產來對沖風險,相關性越高對沖效果越好
下圖摘自Booking的案例,他們的核心指標是每周的房間預定量,Covariate是實驗前的每周房間預定量,博客鏈接在案例分享里。
實戰攻略
covariate的選擇
這里的選擇包括兩個方面,特征的選擇和計算特征的pre-experiment時間長度的選擇。
核心指標在per-experiment的估計通常是很好的covariate的選擇,且估計covariate選擇的時間段相對越長效果越好。時間越長covariate的覆蓋量越大,且受到短期波動的影響越小估計更穩定。
沒有pre-experiment數據怎么辦
這個現象在互聯網中很常見,新用戶或者很久不活躍的用戶都會面臨沒有近期行為特征的問題。作者認為可以結合stratification方法對有/無covariate的用戶進一步打上標簽。或者其實不僅局限於pre-experiment特征,只要保證特征不受到實驗影響post-experiment特征也是可以的。
而在Booking的案例中,作者選擇對這部分樣本不作處理,因為通常缺失值是用樣本均值來填充,在上述式子中就等於是不做處理。
Attention
Covariate選擇的核心是\(E(X^{treatment}) = E(X^{control})\),這一點不論你選擇什么特征, 是pre-experiment還是post-experiment都要保證。
當然也有用CUPED來矯正實驗組對照組差異的,但這個內容不在這里討論。
應用案例
Bing 加載時間對用戶點擊率的影響
論文中作者在實際AB實驗中檢驗了CUPED的效果。Bing實驗檢測檢測加載時間對用戶點擊率的影響。 一個原本運行兩周只有個別天顯著的實驗在用CUPED調整后在第一天就顯著,當把CUPED估計用的樣本減少一半后顯著性依舊超過直接使用T-test.
Netflix 多種方法的實際效果對比
Netflix嘗試了一種新的stratification, 上述論文中的stratification被稱作post-stratification因為它只在估計實驗效果時用到分組,這時用pre-experiment估計的分組概率會和隨機AB分組得到的實驗中的分組概率存在一定差異,所以Netflix嘗試在實驗前就進行分層分組。通過多個實驗結果,Netflix得到以下結論:
- 大樣本下,post-strat在實際中更靈活和pre-strat表現相當
- 能否成功找到和實驗核心指標相關的covariate是成功的關鍵
Booking.com 新日歷交互對用戶影響
How Booking.com increases the power of online experiments with CUPED
實驗效果對比如下,CUPED用更少的樣本更短的時間得到了顯著的結果。了解細節請戳上面的博客,作者講的非常通俗易懂。
想更多了解AB實驗高端系列的朋友,戳這里呦👇
AB實驗的高端玩法系列1 - AB實驗人群定向/個體效果差異/HTE 論文github收藏
AB實驗的高端玩法系列3 - AB組不隨機?觀測試驗?Propensity Score
Ref
- A/B Testing for the Next Decade. CHALLENGES, COMPETITIONS AND OPPORTUNITIES. ALEX DENG @ MICROSOFT 2015