淺談AB實(shí)驗(yàn)及其在轉(zhuǎn)轉(zhuǎn)B2B報價系統(tǒng)中的應(yīng)用
1.什么是 AB 實(shí)驗(yàn)?
AB 實(shí)驗(yàn)是為了驗(yàn)證某一個產(chǎn)品能力或者策略的好壞,制作兩個(A/B)或多個(A/B/n)版本,在同一時間維度,分別讓組成成分相同(相似)的訪客群組(目標(biāo)人群)隨機(jī)的訪問這些版本,收集各群組的用戶體驗(yàn)數(shù)據(jù)和業(yè)務(wù)數(shù)據(jù),并且結(jié)合統(tǒng)計學(xué)原理,分析評估出最好版本正式采用。
通過 AB 實(shí)驗(yàn)前置的驗(yàn)證收益,使決策有據(jù)可依。同時也可以利用 AB 實(shí)驗(yàn)分流出小部分流量進(jìn)行測試,防止錯誤決策對整體用戶產(chǎn)生負(fù)面影響。
2 為什么要引入 AB 實(shí)驗(yàn)
價格系統(tǒng)作為基礎(chǔ)的公共服務(wù),是需要滿足各業(yè)務(wù)方的不同應(yīng)用場景下的報價需求,提供不同場景下不同類型的報價能力。
同時,我們會針對各自的需求,去選擇合適的報價方式,制定不同的報價策略,當(dāng)市場價格出現(xiàn)變動,業(yè)務(wù)需求或目標(biāo)及運(yùn)營策略發(fā)生改變時,我們也需要進(jìn)行調(diào)整,這種調(diào)整可能是策略上的調(diào)整、報價方選擇的調(diào)整、算法模型的調(diào)整;也可能是新增報價策略、報價方式或引入新的算法模型。
但價格對于各使用業(yè)務(wù)方來說大多數(shù)情況下是敏感的,有些調(diào)整和改變,我們事先是不能夠明確知道,到底能不能給業(yè)務(wù)帶來正向的收益或達(dá)到預(yù)期的目標(biāo)及效果,也很有可能出現(xiàn)未預(yù)知的負(fù)面結(jié)果。
所以我們不能全部簡單粗暴的進(jìn)行大規(guī)模的應(yīng)用,而是需要建立在數(shù)據(jù)基礎(chǔ)上的思維方式,通過數(shù)據(jù)反饋會告訴我們做出的決策好不好,哪里有問題,以及衡量可以帶來多少確定性的增長。
而 A/B-test 正是我們進(jìn)行決策驗(yàn)證的一個“利器”。
另外從產(chǎn)品研發(fā)流程來看,基于 AB 實(shí)驗(yàn)的研發(fā)流程相比傳統(tǒng)產(chǎn)品的研發(fā)流程,其優(yōu)勢也是全方位的。

3 如何進(jìn)行 AB 實(shí)驗(yàn)
A/B 實(shí)驗(yàn)可以看作一個“無盡”的學(xué)習(xí)環(huán),不斷的通過業(yè)務(wù)驅(qū)動做迭代,數(shù)據(jù)驅(qū)動做決策。通過提出假設(shè)、定義成功指標(biāo)、檢驗(yàn)假設(shè)(A/B 實(shí)驗(yàn))、分析學(xué)習(xí)、發(fā)布、建立另一個假設(shè),這就形成一個完整的閉環(huán),通過多輪實(shí)驗(yàn)迭代,使策略趨于更優(yōu)。
A/B 實(shí)驗(yàn)流程:

3.1 提出假設(shè)
實(shí)驗(yàn)的第一步就是明確實(shí)驗(yàn)需求產(chǎn)生的背景以及實(shí)驗(yàn)?zāi)繕?biāo),即我們希望借助實(shí)驗(yàn)驗(yàn)證什么猜想假設(shè)達(dá)到什么樣的目標(biāo),并且我們需要從用戶角度以及數(shù)據(jù)角度去論證假設(shè)的結(jié)果。
這里我們需要先對總體均值提出一個假設(shè),然后用樣本信息去檢驗(yàn)這個假設(shè)是否成立。我們把提出的這個假設(shè)叫做原假設(shè),與原假設(shè)對立的結(jié)論叫做備擇假設(shè),如果原假設(shè)不成立,就要拒絕原假設(shè),進(jìn)而接受備擇假設(shè)。
3.2 定義評價指標(biāo)
評價指標(biāo)是用于評估實(shí)驗(yàn)結(jié)果的各項(xiàng)指標(biāo)數(shù)據(jù),因?yàn)閷?shí)驗(yàn)的效果主要是通過實(shí)驗(yàn)指標(biāo)來判斷的,所以對于評價指標(biāo)的一個基本要求就是,評價指標(biāo)要能反映實(shí)驗(yàn)者的意圖,并且可測、易測。
在選取指標(biāo)時,從指標(biāo)重要程度來看,指標(biāo)可以分為主要指標(biāo)、次要指標(biāo)和護(hù)欄指標(biāo)三類:
主要指標(biāo):需要優(yōu)化的目標(biāo)指標(biāo),決定這個實(shí)驗(yàn)的最終發(fā)展方向,主要由實(shí)驗(yàn)的目標(biāo)來選擇;
次要指標(biāo):次要指標(biāo)可以從多個角度反映實(shí)驗(yàn)策略的效果,輔助進(jìn)行全量決策。
護(hù)欄指標(biāo):用于輔助保障 A/B 測試的質(zhì)量,衡量 A/B 測試是否符合業(yè)務(wù)上的長期目標(biāo),不會因?yàn)閮?yōu)化短 期指標(biāo)而打亂長期目標(biāo),防止發(fā)生“撿芝麻掉西瓜”的情況。
3.3 實(shí)驗(yàn)設(shè)計
3.3.1 選取實(shí)驗(yàn)單位
首先要知道分流指的是我們直接將整體流量切割為幾塊,每個流量只能在一個實(shí)驗(yàn)中。AB 實(shí)驗(yàn)的核心思想在于尋找兩組同質(zhì)且與大盤類似的小流量對象群體,通過觀察不同策略在這兩組同質(zhì)對象群體上的表現(xiàn),來預(yù)估策略應(yīng)用到全量后的效果。
因此,如何合理的分流找到這樣的對象群體,則成為了影響 AB 實(shí)驗(yàn)評估準(zhǔn)確性的關(guān)鍵因素。
這里需要注意分流對象與隨機(jī)單元,分流對象是需要根據(jù)核心指標(biāo)來確定的根據(jù)什么來進(jìn)行分流;隨機(jī)單元就是 AB 實(shí)驗(yàn)要達(dá)到隨機(jī)的最小單元。
3.3.2 計算樣本量
從理論上講,樣本量越多越好,因?yàn)楫?dāng)樣本數(shù)量很少的時候,實(shí)驗(yàn)容易被新的樣本點(diǎn)帶偏,造成了實(shí)驗(yàn)結(jié)果不穩(wěn)定,難以得出確信的結(jié)論。相反的,樣本數(shù)量變多,實(shí)驗(yàn)說服性也更強(qiáng)。但是在現(xiàn)實(shí)操作中,樣本量應(yīng)該越少越好,這是因?yàn)椋?/p>
流量有限:大公司因?yàn)橛脩魯?shù)量足夠多,同時跑幾十個甚至上百個實(shí)驗(yàn)也沒問題。但小公司流量有限,還要持續(xù)對產(chǎn)品進(jìn)行迭代。在保證不同實(shí)驗(yàn)的樣本不重疊的情況下,產(chǎn)品迭代的速度會大大降低。
試錯成本大:如果使用 50%的流量進(jìn)行實(shí)驗(yàn),一周后結(jié)果表明實(shí)驗(yàn)組的總收入下降了 20%。算下來,實(shí)驗(yàn)在一周內(nèi)給整個公司帶來了 10%的損失。試錯成本太高。
在計算樣本量時有兩種情況,一種是均值,一種是比率,兩種情況計算方式有所差異:
均值:

比率:

我們根據(jù)自己有的數(shù)據(jù)帶入公式就能計算出所需樣本量了。
3.3.3 流量分割
確定好實(shí)驗(yàn)流量之后,就可以制定分流策略將實(shí)驗(yàn)流量劃分到對照組和不同的實(shí)驗(yàn)組中

確保在實(shí)驗(yàn)前分出無差別的實(shí)驗(yàn)組和對照組,避免因流量分配不平衡導(dǎo)致的 AB 群組差異過大,最終造成對于實(shí)驗(yàn)結(jié)果的誤判,在進(jìn)行 AB 實(shí)驗(yàn)之前我們需要保證實(shí)驗(yàn)的分流是均勻的,一般實(shí)踐中,主要采取 AA 空跑的方式來驗(yàn)證:
AA 空跑:針對選定的實(shí)驗(yàn)組和對照組,在上實(shí)驗(yàn)策略前先空跑一段時間。如果空跑期的樣本量和各項(xiàng)指標(biāo)均無顯著差異,則認(rèn)為實(shí)驗(yàn)分流是均勻的。這種方式的缺點(diǎn)是需要空跑期,會延長實(shí)驗(yàn)所需時間。(分流也可以前置在隨機(jī)分流時觀測兩組歷史數(shù)據(jù)的差異,差異大建議重新分流)
3.3.4 實(shí)驗(yàn)周期計算
實(shí)驗(yàn)周期的設(shè)定是個權(quán)衡的問題,一方面,我們希望有足夠多的流量,保證實(shí)驗(yàn)策略可以充分體現(xiàn)出來;另一方面,也希望縮短實(shí)驗(yàn)周期、提升迭代效率、降低實(shí)驗(yàn)風(fēng)險。
在評估周期的時候,有兩點(diǎn)需要格外注意?。?!
其一:周期效應(yīng)??紤]到用戶在周中和周末的表現(xiàn)存在差異,因此實(shí)驗(yàn)周期最好跨越一周,消除不同時間周期實(shí)驗(yàn)效果的不同。
其二:新奇效應(yīng)。策略的調(diào)整對于用戶而言,是從陌生到熟悉的過程,而在陌生階段,往往會有一些不真實(shí)的表現(xiàn),因此最好等實(shí)驗(yàn)指標(biāo)趨于平穩(wěn)之后再進(jìn)行評估。
4 進(jìn)行分流實(shí)驗(yàn)埋點(diǎn)上報
進(jìn)行實(shí)驗(yàn)分流階段其實(shí)就是按照事先設(shè)計好的實(shí)驗(yàn)計劃進(jìn)行線上執(zhí)行,但需要注意的是需要驗(yàn)證實(shí)驗(yàn)進(jìn)行是否符合預(yù)期的設(shè)定。
實(shí)驗(yàn)過程中會將實(shí)驗(yàn)標(biāo)識標(biāo)記到每個實(shí)驗(yàn)流量請求的日志中用于記錄,然后數(shù)據(jù)計算系統(tǒng)根據(jù)帶有實(shí)驗(yàn)標(biāo)記的日志計算用戶的各種實(shí)驗(yàn)數(shù)據(jù)指標(biāo),最終用于產(chǎn)出分析報表。
如發(fā)現(xiàn)實(shí)驗(yàn)過程中出現(xiàn)異常情況應(yīng)及時預(yù)警進(jìn)行處理或回退。
5 實(shí)驗(yàn)結(jié)果分析(假設(shè)驗(yàn)證)并決策
實(shí)驗(yàn)結(jié)束后,我們基于實(shí)驗(yàn)樣本進(jìn)行數(shù)據(jù)統(tǒng)計,進(jìn)而驗(yàn)證實(shí)驗(yàn)前假設(shè)的正確性,我們得出這一有效結(jié)論的科學(xué)依據(jù)便是假設(shè)檢驗(yàn)。
假設(shè)檢驗(yàn)是利用樣本統(tǒng)計量估計總體參數(shù)的方法; 對于原假設(shè)提出的命題,我們需要作出判斷,要么原假設(shè)成立,要么原假設(shè)不成立。因?yàn)榛跇颖緦傮w的推斷,會面臨著犯兩種錯誤的可能:第一類錯誤,原假設(shè)為真,我們卻拒絕了;第二類錯誤,原假設(shè)為偽,我們卻接受了。
顯然,我們希望犯這兩類錯誤的概率越小越好,但對于一定的樣本量 n,不能同時做到犯這兩類錯誤的概率很小。
在假設(shè)檢驗(yàn)中,就有一個對兩類錯誤進(jìn)行控制的問題。一般來說,哪一類錯誤所帶來的后果嚴(yán)重、危害越大,在假設(shè)檢驗(yàn)中就應(yīng)該把哪一類錯誤作為首要的控制目標(biāo)。
在假設(shè)檢驗(yàn)中,我們都執(zhí)行這樣一個原則,首先控制犯第一類錯誤的概率。這也是為什么我們在實(shí)際應(yīng)用中會把要推翻的假設(shè)作為原假設(shè),這樣得出的結(jié)論更具說服力(我們有足夠充分的證據(jù)證明原來確定的結(jié)論是錯誤的),所以通常會看到,我們把要證明的結(jié)論作為備擇假設(shè)。
5.1 T檢驗(yàn)
常見的假設(shè)檢驗(yàn)方法有 Z 檢驗(yàn)、T 檢驗(yàn)和卡方檢驗(yàn)等,不同的方法有不同的適用條件和檢驗(yàn)?zāi)繕?biāo)。
Z 檢驗(yàn)和 T 檢驗(yàn)都是用來推斷兩個總體均值差異的顯著性水平,具體選擇哪種檢驗(yàn)由樣本量的大小、總體的方差是否已知決定。
在樣本量較小且總體的方差未知的情況下,這時只能使用樣本方差代替總體方差,樣本統(tǒng)計量服從 T 分布,應(yīng)該采用 T 統(tǒng)計量進(jìn)行檢驗(yàn)。T 統(tǒng)計量具體構(gòu)造公式如下圖所示,其中 f 是 T 統(tǒng)計量的自由度,S1、S2 是樣本標(biāo)準(zhǔn)差。

T 檢驗(yàn)的流程是,在給定的棄真錯誤概率下(一般取 0.05),依據(jù)樣本統(tǒng)計量 T 是否落在拒絕域來判斷接受還是拒絕原假設(shè)。實(shí)際上在確定棄真錯誤概率以后,拒絕域的位置也就相應(yīng)地確定了。
使用 T 統(tǒng)計量進(jìn)行判斷的好處是,進(jìn)行決策的界限清晰,但缺陷是決策面臨的風(fēng)險是籠統(tǒng)的。
例如 T=3 落入拒絕域,我們拒絕原假設(shè),犯棄真錯誤的概率為 0.05;T=2 也落入拒絕域,我們拒絕原假設(shè),犯棄真錯誤的概率也是 0.05。
事實(shí)上,依據(jù)不同的統(tǒng)計量進(jìn)行決策,面臨的風(fēng)險也是有差別的。為了精確地反映決策的風(fēng)險度,我們?nèi)匀恍枰?P 值來幫助業(yè)務(wù)來做決策。

5.2 利用 P 值決策
P 值是當(dāng)原假設(shè)為真時,所得到的樣本觀察結(jié)果或更極端的結(jié)果出現(xiàn)的概率。如果 P 值很小,說明這種情況發(fā)生的概率很小,但是在這次試驗(yàn)中卻出現(xiàn)了,根據(jù)小概率原理,我們有理由拒絕原假設(shè),P 值越小,我們拒絕原假設(shè)的理由越充分。
P 值可以理解為犯棄真錯誤的概率,在確定的顯著性水平下(一般取 0.05),P 值小于顯著性水平,則拒絕原假設(shè)。
5.3 基于假設(shè)驗(yàn)證的科學(xué)評估
圍繞著科學(xué)評估要解決的兩個問題,實(shí)驗(yàn)前,針對圈定的流量使用假設(shè)檢驗(yàn),通過 AA 實(shí)驗(yàn)確保分出無差別的實(shí)驗(yàn)組和對照組;
實(shí)驗(yàn)后,基于實(shí)驗(yàn)前選定的用于驗(yàn)證假設(shè)結(jié)論的指標(biāo),構(gòu)造 T 統(tǒng)計量并計算其對應(yīng)的 P 值,依據(jù) P 值幫我們做決策。
5.4 決策
實(shí)驗(yàn)結(jié)果分析,假設(shè)驗(yàn)證后就進(jìn)入了決策階段,根據(jù)實(shí)驗(yàn)分析結(jié)果決定是否繼續(xù)優(yōu)化實(shí)驗(yàn)策略再次實(shí)驗(yàn)或終止實(shí)驗(yàn)或進(jìn)入實(shí)驗(yàn)放量階段。
如果進(jìn)入實(shí)驗(yàn)放量階段,需要綜合考慮三個因素:效率、質(zhì)量、風(fēng)險。對于一個實(shí)驗(yàn),我們希望在評估正向的前提下,盡快上線。但往往由于策略 bug、新功能不符合預(yù)期、用戶體感不好等問題,使得在放量階段需要更加的謹(jǐn)慎,以下為一個標(biāo)準(zhǔn)的放量流程:
第一階段:小流量階段
此階段銜接在小流量評估后,整體放量比例控制在(5%)以下,評估實(shí)驗(yàn)是否對指標(biāo)有負(fù)向影響。同時驗(yàn)證策略的觸發(fā),以及排查是否存在潛在風(fēng)險。在無風(fēng)險的前提下,一般建議持續(xù) 3-5 日左右,進(jìn)入下一個階段。
第二階段:放量階段
這個階段,隨著樣本量的逐漸放開,實(shí)驗(yàn)的結(jié)果也會更加精準(zhǔn);與此同時,伴隨而來可能會出現(xiàn)流量壓力等問題的發(fā)生,因此在此階段需要跟進(jìn)放量,觀察是否有出現(xiàn)問題。逐級放量建議持續(xù)至少一周,以觀測周中和周末的影響。
第三階段:長期存放階段
針對部分實(shí)驗(yàn),如果希望長期觀測實(shí)驗(yàn)效果,可以保留 5%以下的原始策略,作為「反轉(zhuǎn)桶」。
6 總結(jié)
AB測試不能解決所有的問題,但是仍然不失為衡量線上優(yōu)化迭代的最有效方式之一??珊饬康膶?shí)驗(yàn)?zāi)繕?biāo)、有效的實(shí)驗(yàn)分流、實(shí)驗(yàn)結(jié)果的正確解讀是AB測試成功的關(guān)鍵。
關(guān)于作者:王夢龍,轉(zhuǎn)轉(zhuǎn)研發(fā)技術(shù)部軟件工程師















 
 
 







 
 
 
 