策略產(chǎn)品經(jīng)理必讀系列—第二講AA & AB Test最全介紹
導(dǎo)讀:網(wǎng)絡(luò)上有很多介紹AB Test的文章,大部分介紹分層、分流、正交就結(jié)束了。實(shí)際工作中作為一個(gè)策略產(chǎn)品經(jīng)理需要熟悉AB Test的各種實(shí)驗(yàn)類型、分流策略、分層策略等,不是簡(jiǎn)單了解什么是分層實(shí)驗(yàn)就可以的。本篇將結(jié)合工作中的實(shí)踐經(jīng)驗(yàn)為大家詳細(xì)介紹一個(gè)AB Test實(shí)驗(yàn)從最初實(shí)驗(yàn)策略設(shè)計(jì),分流,再到實(shí)驗(yàn)上線以及最終的效果觀察,全流程詳細(xì)展開介紹。
一、綜述AA 和 AB Test實(shí)驗(yàn)
實(shí)驗(yàn)機(jī)制其實(shí)一共是有兩種的,AB Test和AA Test。
AB Test:
A為實(shí)驗(yàn)組,B為對(duì)照組。A對(duì)比B得出本次實(shí)驗(yàn)的效果結(jié)論。很多文章說AB Test只能是單一實(shí)驗(yàn)變量,其實(shí)AB Test也可以有多變量。
比如在推薦系統(tǒng)里分別優(yōu)化了一版召回模型 + 排序模型。希望同時(shí)觀察這兩個(gè)模型疊加后的效果,那么實(shí)驗(yàn)組就會(huì)存在兩個(gè)變量,對(duì)照組就為原先的召回+排序模型。當(dāng)然這種情況比較少見,如果兩個(gè)變量CD之間會(huì)相互產(chǎn)生影響,一般是第一個(gè)變量C先做AB Test實(shí)驗(yàn),確定效果正向后,將實(shí)驗(yàn)全量后再對(duì)第二個(gè)變量D進(jìn)行AB Test實(shí)驗(yàn)。兩個(gè)變量疊加在一起很難去分別評(píng)估每個(gè)變量對(duì)實(shí)驗(yàn)效果造成的影響。
AA Test:
除了AB實(shí)驗(yàn),其實(shí)還有AA實(shí)驗(yàn)。
AA實(shí)驗(yàn)就是實(shí)驗(yàn)組和對(duì)照組的實(shí)驗(yàn)配置完全一樣,主要為了測(cè)試本次實(shí)驗(yàn)效果的波動(dòng)性。在保證AA實(shí)驗(yàn)隨機(jī)分流的情況下,理論上AA實(shí)驗(yàn)效果之間的差異應(yīng)該是很小的,但如果實(shí)驗(yàn)效果差異很大,說明本次實(shí)驗(yàn)變量本身的效果波動(dòng)就較大,原先AB 實(shí)驗(yàn)的效果也不夠置信。
不過現(xiàn)實(shí)中我們很少做AA實(shí)驗(yàn),當(dāng)我們發(fā)現(xiàn)AB實(shí)驗(yàn)效果比較波動(dòng)時(shí)一般的做法就是多觀察一段時(shí)間,等待實(shí)驗(yàn)效果穩(wěn)定。如果長(zhǎng)時(shí)間試驗(yàn)效果還是很波動(dòng),就需要確定實(shí)驗(yàn)分流是否存在問題,正常一個(gè)變量只要不是隨機(jī)產(chǎn)生結(jié)果,實(shí)驗(yàn)效果一定是穩(wěn)定的,不管是穩(wěn)定正向還是負(fù)向。
同時(shí)AB Test實(shí)驗(yàn)確定A實(shí)驗(yàn)效果正向后,我們會(huì)將A實(shí)驗(yàn)策略在線上推全,但仍然會(huì)在線上再保留一個(gè)對(duì)照組繼續(xù)觀察一段時(shí)間,比如推全的流量是95%,剩余5%再繼續(xù)作為對(duì)照組持續(xù)觀察一段時(shí)間,這種一般叫做“Hold Back”。因?yàn)锳B Test實(shí)驗(yàn)階段一般都是小流量實(shí)驗(yàn),A組5%流量,B組5%流量。我們需要再觀察一下在大流量的情況下A組的實(shí)驗(yàn)效果是否仍然和小流量實(shí)驗(yàn)時(shí)一致。
二、AB Test實(shí)驗(yàn)完整機(jī)制
下面我們?cè)敿?xì)地介紹AB Test實(shí)驗(yàn)的每一個(gè)步驟。
2.1 第一步確定實(shí)驗(yàn)?zāi)康?/h3>
做實(shí)驗(yàn)一定有目的,我們本次做實(shí)驗(yàn)的目的是什么?是希望驗(yàn)證新模型的對(duì)于用戶點(diǎn)擊效果還是驗(yàn)證新交互樣式的對(duì)于用戶停留時(shí)長(zhǎng)的效果?目的明確了才能決定后續(xù)的實(shí)驗(yàn)變量、觀察指標(biāo)、分流維度和實(shí)驗(yàn)類型以及如何綜合評(píng)估實(shí)驗(yàn)的效果。
2.2 第二步確定實(shí)驗(yàn)變量
實(shí)驗(yàn)?zāi)康拿鞔_后也就確定了實(shí)驗(yàn)的變量,本次實(shí)驗(yàn)是希望只觀察推薦系統(tǒng)里新召回模型的效果,那么實(shí)驗(yàn)組A就是新召回模型,實(shí)驗(yàn)組B就是老召回模型。元?dú)馍滞瞥隽?款不同口味的新飲料,針對(duì)不同口味又有三款不同的容量,以及兩款不同的包裝樣式,元?dú)馍窒M麥y(cè)試哪一款最受用戶歡迎。
那么在這個(gè)實(shí)驗(yàn)中就會(huì)存在三個(gè)變量“口味”、“容量”和“包裝樣式”,最終就需要 6 * 3 * 2=36 組實(shí)驗(yàn),不需要專門的對(duì)照組,每組既是實(shí)驗(yàn)組也是其他組的對(duì)照組。
2.3 第三步確定實(shí)驗(yàn)觀察指標(biāo)
實(shí)驗(yàn)?zāi)康暮妥兞看_定以后下一步就是明確通過哪些指標(biāo)來衡量實(shí)驗(yàn)的效果。比如Part2.2里面測(cè)試推薦系統(tǒng)新召回模型的效果,該試驗(yàn)觀察的指標(biāo)主要是點(diǎn)擊率CTR,但同時(shí)還需要去關(guān)注用戶瀏覽深度和CVR的變化。所以在實(shí)驗(yàn)中我們會(huì)有一個(gè)核心的觀察指標(biāo),但也會(huì)有很多其他輔助觀察指標(biāo)。
當(dāng)這些指標(biāo)之間效果出現(xiàn)反向時(shí),比如新召回模型上線后實(shí)驗(yàn)組對(duì)比對(duì)照組CTR +3%,但瀏覽深度-0.3%,CVR-1.5%。這時(shí)就需要綜合評(píng)估該模型的效果,一般需要算法拉上業(yè)務(wù)方綜合評(píng)估,該推薦場(chǎng)域主要的KPI是CTR還是CVR,或者二者的占比是。最終決定該模型要不要推全量。同時(shí)實(shí)驗(yàn)觀察指標(biāo)確定以后也需要確保線上有對(duì)應(yīng)的埋點(diǎn),不然無法統(tǒng)計(jì)實(shí)驗(yàn)效果。
2.4 第四步確定分流維度
實(shí)驗(yàn)組和對(duì)照組的流量基于什么來進(jìn)行隨機(jī)分流,是基于用戶維度還是請(qǐng)求維度。
用戶維度:
在用戶層面將實(shí)驗(yàn)組流量和對(duì)照組流量區(qū)分開,位于實(shí)驗(yàn)組的用戶接下來的一段時(shí)間都是在實(shí)驗(yàn)策略里;不管新策略的用戶體驗(yàn)是好還是差;
請(qǐng)求維度:
在請(qǐng)求層面將實(shí)驗(yàn)組流量和對(duì)照組流量區(qū)分開,單個(gè)用戶打開該模塊時(shí)不同時(shí)間不同請(qǐng)求時(shí),可能是新策略也可能是舊策略,一個(gè)用戶既可以體驗(yàn)到新策略又能體驗(yàn)到舊策略;
兩種分流維度決定適用的實(shí)驗(yàn)場(chǎng)景不一樣:基于用戶維度的適用于所有涉及到用戶接觸到樣式、交互、視覺效果等變化的實(shí)驗(yàn)。一方面不希望影響到太多用戶,另一方面樣式等變化用戶需要適應(yīng)一段時(shí)間后才能反饋出真正的效果;基于請(qǐng)求維度的適用于所有的模型策略實(shí)驗(yàn),接近于底層的策略均可按照請(qǐng)求維度進(jìn)行分流。
比如推薦系統(tǒng)、搜索引擎等的策略優(yōu)化;適用于“請(qǐng)求維度”的實(shí)驗(yàn)也可以用“用戶維度”進(jìn)行分流,但是反過來不適用。
這里面還有幾個(gè)點(diǎn)需要注意:
基于用戶維度分流實(shí)驗(yàn)中的異常ID:
當(dāng)我們將X%的用戶固定分到實(shí)驗(yàn)流量中,如果里面有某些用戶ID行為異?;钴S,這些異常ID對(duì)于實(shí)驗(yàn)策略的反饋可能會(huì)影響到整體實(shí)驗(yàn)效果的評(píng)估。
比如某些用戶ID一天登陸APP上百次,點(diǎn)擊推薦模塊上千次,那么這些數(shù)據(jù)就將會(huì)影響到整體效果。當(dāng)然這種用戶ID一般是外部爬蟲ID或者作弊ID,需要反作弊部門識(shí)別出來剔除掉。還有另外一種處理方式就是將效果進(jìn)行平均化,計(jì)算公式如下圖:
即使經(jīng)過平均化我們?nèi)匀豢梢园l(fā)現(xiàn)對(duì)于實(shí)驗(yàn)效果還是產(chǎn)生了一定影響,當(dāng)然實(shí)驗(yàn)用戶量龐大的情況下會(huì)對(duì)異常值更加稀釋。不過這種異常ID最好的方式就是從實(shí)驗(yàn)結(jié)果中剔除掉。
實(shí)驗(yàn)組和對(duì)照組的流量比例:
本身實(shí)驗(yàn)組和對(duì)照組的流量不存在固定比例,或者什么比例是合適的。但是需要保證實(shí)驗(yàn)組和對(duì)照組的流量都是充分的,實(shí)驗(yàn)結(jié)果都是置信的。實(shí)驗(yàn)組10%流量,對(duì)照組1%流量都可以,只要1%流量實(shí)驗(yàn)階段可以積累足夠的數(shù)據(jù)即可。
Hash分桶:
上面一直介紹基于用戶和請(qǐng)求維度來分流,那么一個(gè)用戶或者請(qǐng)求到底是歸到實(shí)驗(yàn)組里還是對(duì)照組里了。一般我們都是基于Hash算法,為每個(gè)用戶(user-id)或每次請(qǐng)求(request-id)生成一個(gè)hash值,然后將位于指定范圍的hash值分向一個(gè)桶。實(shí)驗(yàn)開始前確定哪些桶屬于實(shí)驗(yàn)組,哪些屬于對(duì)照組。
2.5 第五步確定實(shí)驗(yàn)類型
第五步也是最關(guān)鍵的一步也就是確定實(shí)驗(yàn)類型了,實(shí)驗(yàn)類型從大的方向來說分為兩種:物理實(shí)驗(yàn)和分層實(shí)驗(yàn)。兩種實(shí)驗(yàn)對(duì)應(yīng)的是兩種分流方式:互斥和正交。我們用下圖來表示差異:
物理實(shí)驗(yàn):
最開始做實(shí)驗(yàn)的方式都是物理實(shí)驗(yàn)的方式,當(dāng)一部分被分到了實(shí)驗(yàn)A中以后,該部分流量就無法在被其他實(shí)驗(yàn)使用,如上圖“域一”,實(shí)驗(yàn)之間的流量是互斥的,三組實(shí)驗(yàn)加起來的流量總和是15%。這種分流方式導(dǎo)致同時(shí)線上實(shí)驗(yàn)數(shù)很有限,如果每組實(shí)驗(yàn)5%流量,同時(shí)只能做20組實(shí)驗(yàn)。但是像淘寶字節(jié)這種大公司,同時(shí)線上幾百上千個(gè)實(shí)驗(yàn)很正常,這種做實(shí)驗(yàn)的方式肯定不滿足需求。
分層實(shí)驗(yàn):
谷歌提出了一種新的實(shí)驗(yàn)分流方式(原文《Overlapping Experiment Infrastructure:More, Better, Faster Experimentation》):正交。每個(gè)獨(dú)立實(shí)驗(yàn)為一層,層與層之間流量是正交的,一份流量穿越每層實(shí)驗(yàn)時(shí),都會(huì)再次隨機(jī)打散,如上圖“域二”,上一層實(shí)驗(yàn)對(duì)下一層不會(huì)產(chǎn)生任何影響,因?yàn)榱髁勘痪鶆螂S機(jī)打散了,每一層實(shí)驗(yàn)的流量都是85%。分層實(shí)驗(yàn)的個(gè)數(shù)理論上是無限的。
聯(lián)合層實(shí)驗(yàn):
分層實(shí)驗(yàn)理論上層與層之間需要將流量隨機(jī)打散,但有些情況下我們希望將層與層之間的策略聯(lián)動(dòng),比如上圖D-1和E-1的策略聯(lián)動(dòng),D-2和E-2的策略聯(lián)動(dòng),D-3和E-3的策略聯(lián)動(dòng),這個(gè)時(shí)候就需要將D-1實(shí)驗(yàn)標(biāo)簽和E-1實(shí)驗(yàn)標(biāo)簽關(guān)聯(lián)起來,確保經(jīng)過D-1的流量全部打到E-1的實(shí)驗(yàn)桶里面。
適用場(chǎng)景:
物理實(shí)驗(yàn)適用于任何場(chǎng)景,但此種實(shí)驗(yàn)方式實(shí)驗(yàn)數(shù)量上限有限,公司一般會(huì)切出部分域?qū)iT做物理實(shí)驗(yàn),剩余流量做分層實(shí)驗(yàn)。有些場(chǎng)景只能做物理實(shí)驗(yàn),不能和其他實(shí)驗(yàn)摻雜在一起,尤其是涉及到系統(tǒng)性能評(píng)估等的實(shí)驗(yàn),需要排除一切外在影響確保實(shí)驗(yàn)不受任何干擾。分層實(shí)驗(yàn)可以同時(shí)做大量線上實(shí)驗(yàn),適合那些業(yè)務(wù)之間彼此獨(dú)立沒有影響的場(chǎng)景,如果層與層之間的實(shí)驗(yàn)是有影響的,此種情況建議在同一層進(jìn)行實(shí)驗(yàn)。
2.6 第六步上線實(shí)驗(yàn)&查看實(shí)驗(yàn)效果
實(shí)驗(yàn)上線:
當(dāng)我們將實(shí)驗(yàn)所有準(zhǔn)備工作都確定完以后,就是在實(shí)驗(yàn)平臺(tái)上線實(shí)驗(yàn)了。實(shí)驗(yàn)平臺(tái)會(huì)下發(fā)實(shí)驗(yàn)組和對(duì)照組的實(shí)驗(yàn)標(biāo)簽,后續(xù)根據(jù)該實(shí)驗(yàn)標(biāo)簽查看對(duì)應(yīng)實(shí)驗(yàn)的效果;
實(shí)驗(yàn)觀察時(shí)長(zhǎng):
正常情況下都需要觀察3個(gè)工作日左右,尤其對(duì)于那種實(shí)驗(yàn)效果前期比較波動(dòng)的需要觀察更長(zhǎng)的時(shí)間。但如果實(shí)驗(yàn)效果長(zhǎng)期波動(dòng)不穩(wěn)定就需要確定實(shí)驗(yàn)的分流方式是否存在問題。
以上就是對(duì)AA & AB Test的全面介紹,歡迎大家溝通交流~
本文由 @King James 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)許可,禁止轉(zhuǎn)載。
題圖來自 Unsplash,基于 CC0 協(xié)議
流量差異過大(比如實(shí)驗(yàn)組95%,對(duì)照組5%)可能會(huì)存在問題吧,在小樣本中可能出現(xiàn)分流時(shí)某個(gè)屬性分布不均的問題(若AB分流算法中沒有考慮這個(gè)屬性的話,且這個(gè)屬性的差異如果會(huì)影響最終的指標(biāo)的差異的話),這樣分流出來的人群和大樣本組的人群就不“同質(zhì)” 指標(biāo)就會(huì)出現(xiàn)差異。 當(dāng)然這種情況出現(xiàn)的概率不高,可以通過AA測(cè)或多次抽樣對(duì)比數(shù)據(jù) 進(jìn)行排查
想問下這個(gè)aa實(shí)驗(yàn),實(shí)驗(yàn)組和對(duì)照組上同樣的實(shí)驗(yàn)配置,這個(gè)實(shí)驗(yàn)是不是指有改動(dòng)策略的那個(gè)實(shí)驗(yàn)版本,而不是拿本來沒有任何改動(dòng)的版本去做實(shí)驗(yàn)…
第十二講?前面是不是漏了幾講呀?坐等更新