淺談AB實驗及其在轉轉B2B報價系統中的應用
1 什麼是 AB 實驗?
AB 實驗是為了驗證某一個產品能力或者策略的好壞,製作兩個(A/B)或多個(A/B/n)版本,在同一時間維度,分別讓組成成分相同(相似)的訪客群組(目標人群)隨機的訪問這些版本,收集各群組的使用者體驗資料和業務資料,並且結合統計學原理,分析評估出最好版本正式採用。
透過 AB 實驗前置的驗證收益,使決策有據可依。同時也可以利用 AB 實驗分流出小部分流量進行測試,防止錯誤決策對整體使用者產生負面影響。
2 為什麼要引入 AB 實驗
價格系統作為基礎的公共服務,是需要滿足各業務方的不同應用場景下的報價需求,提供不同場景下不同型別的報價能力。
同時,我們會針對各自的需求,去選擇合適的報價方式,制定不同的報價策略,當市場價格出現變動,業務需求或目標及運營策略發生改變時,我們也需要進行調整,這種調整可能是策略上的調整、報價方選擇的調整、演算法模型的調整;也可能是新增報價策略、報價方式或引入新的演算法模型。
但價格對於各使用業務方來說大多數情況下是敏感的,有些調整和改變,我們事先是不能夠明確知道,到底能不能給業務帶來正向的收益或達到預期的目標及效果,也很有可能出現未預知的負面結果。
所以我們不能全部簡單粗暴的進行大規模的應用,而是需要建立在資料基礎上的思維方式,透過資料反饋會告訴我們做出的決策好不好,哪裡有問題,以及衡量可以帶來多少確定性的增長。
而 A/B-test 正是我們進行決策驗證的一個“利器”。
另外從產品研發流程來看,基於 AB 實驗的研發流程相比傳統產品的研發流程,其優勢也是全方位的。
3 如何進行 AB 實驗
A/B 實驗可以看作一個“無盡”的學習環,不斷的透過業務驅動做迭代,資料驅動做決策。透過提出假設、定義成功指標、檢驗假設(A/B 實驗)、分析學習、釋出、建立另一個假設,這就形成一個完整的閉環,透過多輪實驗迭代,使策略趨於更優。
A/B 實驗流程:
3.1 提出假設
實驗的第一步就是明確實驗需求產生的背景以及實驗目標,即我們希望藉助實驗驗證什麼猜想假設達到什麼樣的目標,並且我們需要從使用者角度以及資料角度去論證假設的結果。
這裡我們需要先對總體均值提出一個假設,然後用樣本資訊去檢驗這個假設是否成立。我們把提出的這個假設叫做原假設,與原假設對立的結論叫做備擇假設,如果原假設不成立,就要拒絕原假設,進而接受備擇假設。
3.2 定義評價指標
評價指標是用於評估實驗結果的各項指標資料,因為實驗的效果主要是透過實驗指標來判斷的,所以對於評價指標的一個基本要求就是,評價指標要能反映實驗者的意圖,並且可測、易測。
在選取指標時,從指標重要程度來看,指標可以分為主要指標、次要指標和護欄指標三類:
主要指標:需要最佳化的目標指標,決定這個實驗的最終發展方向,主要由實驗的目標來選擇;
次要指標:次要指標可以從多個角度反映實驗策略的效果,輔助進行全量決策。
護欄指標:用於輔助保障 A/B 測試的質量,衡量 A/B 測試是否符合業務上的長期目標,不會因為最佳化短 期指標而打亂長期目標,防止發生“撿芝麻掉西瓜”的情況。
3.3 實驗設計
3.3.1 選取實驗單位
首先要知道分流指的是我們直接將整體流量切割為幾塊,每個流量只能在一個實驗中。AB 實驗的核心思想在於尋找兩組同質且與大盤類似的小流量物件群體,透過觀察不同策略在這兩組同質物件群體上的表現,來預估策略應用到全量後的效果。
因此,如何合理的分流找到這樣的物件群體,則成為了影響 AB 實驗評估準確性的關鍵因素。
這裡需要注意分流物件與隨機單元,分流物件是需要根據核心指標來確定的根據什麼來進行分流;隨機單元就是 AB 實驗要達到隨機的最小單元。
3.3.2 計算樣本量
從理論上講,樣本量越多越好,因為當樣本數量很少的時候,實驗容易被新的樣本點帶偏,造成了實驗結果不穩定,難以得出確信的結論。相反的,樣本數量變多,實驗說服性也更強。但是在現實操作中,樣本量應該越少越好,這是因為:
流量有限:大公司因為使用者數量足夠多,同時跑幾十個甚至上百個實驗也沒問題。但小公司流量有限,還要持續對產品進行迭代。在保證不同實驗的樣本不重疊的情況下,產品迭代的速度會大大降低。
試錯成本大:如果使用 50%的流量進行實驗,一週後結果表明實驗組的總收入下降了 20%。算下來,實驗在一週內給整個公司帶來了 10%的損失。試錯成本太高。
在計算樣本量時有兩種情況,一種是均值,一種是比率,兩種情況計算方式有所差異:
均值:
比率:
我們根據自己有的資料帶入公式就能計算出所需樣本量了。
3.3.3 流量分割
確定好實驗流量之後,就可以制定分流策略將實驗流量劃分到對照組和不同的實驗組中
確保在實驗前分出無差別的實驗組和對照組,避免因流量分配不平衡導致的 AB 群組差異過大,最終造成對於實驗結果的誤判,在進行 AB 實驗之前我們需要保證實驗的分流是均勻的,一般實踐中,主要採取 AA 空跑的方式來驗證:
AA 空跑:針對選定的實驗組和對照組,在上實驗策略前先空跑一段時間。如果空跑期的樣本量和各項指標均無顯著差異,則認為實驗分流是均勻的。這種方式的缺點是需要空跑期,會延長實驗所需時間。(分流也可以前置在隨機分流時觀測兩組歷史資料的差異,差異大建議重新分流)
3.3.4 實驗週期計算
實驗週期的設定是個權衡的問題,一方面,我們希望有足夠多的流量,保證實驗策略可以充分體現出來;另一方面,也希望縮短實驗週期、提升迭代效率、降低實驗風險。
在評估週期的時候,有兩點需要格外注意!!!
其一:週期效應。考慮到使用者在週中和週末的表現存在差異,因此實驗週期最好跨越一週,消除不同時間週期實驗效果的不同。
其二:新奇效應。策略的調整對於使用者而言,是從陌生到熟悉的過程,而在陌生階段,往往會有一些不真實的表現,因此最好等實驗指標趨於平穩之後再進行評估。
4 進行分流實驗埋點上報
進行實驗分流階段其實就是按照事先設計好的實驗計劃進行線上執行,但需要注意的是需要驗證實驗進行是否符合預期的設定。
實驗過程中會將實驗標識標記到每個實驗流量請求的日誌中用於記錄,然後資料計算系統根據帶有實驗標記的日誌計算使用者的各種實驗資料指標,最終用於產出分析報表。
如發現實驗過程中出現異常情況應及時預警進行處理或回退。
5 實驗結果分析(假設驗證)並決策
實驗結束後,我們基於實驗樣本進行資料統計,進而驗證實驗前假設的正確性,我們得出這一有效結論的科學依據便是假設檢驗。
假設檢驗是利用樣本統計量估計總體引數的方法; 對於原假設提出的命題,我們需要作出判斷,要麼原假設成立,要麼原假設不成立。因為基於樣本對總體的推斷,會面臨著犯兩種錯誤的可能:第一類錯誤,原假設為真,我們卻拒絕了;第二類錯誤,原假設為偽,我們卻接受了。
顯然,我們希望犯這兩類錯誤的機率越小越好,但對於一定的樣本量 n,不能同時做到犯這兩類錯誤的機率很小。
在假設檢驗中,就有一個對兩類錯誤進行控制的問題。一般來說,哪一類錯誤所帶來的後果嚴重、危害越大,在假設檢驗中就應該把哪一類錯誤作為首要的控制目標。
在假設檢驗中,我們都執行這樣一個原則,首先控制犯第一類錯誤的機率。這也是為什麼我們在實際應用中會把要推翻的假設作為原假設,這樣得出的結論更具說服力(我們有足夠充分的證據證明原來確定的結論是錯誤的),所以通常會看到,我們把要證明的結論作為備擇假設。
5.1 T檢驗
常見的假設檢驗方法有 Z 檢驗、T 檢驗和卡方檢驗等,不同的方法有不同的適用條件和檢驗目標。
Z 檢驗和 T 檢驗都是用來推斷兩個總體均值差異的顯著性水平,具體選擇哪種檢驗由樣本量的大小、總體的方差是否已知決定。
在樣本量較小且總體的方差未知的情況下,這時只能使用樣本方差代替總體方差,樣本統計量服從 T 分佈,應該採用 T 統計量進行檢驗。T 統計量具體構造公式如下圖所示,其中 f 是 T 統計量的自由度,S1、S2 是樣本標準差。
T 檢驗的流程是,在給定的棄真錯誤機率下(一般取 0.05),依據樣本統計量 T 是否落在拒絕域來判斷接受還是拒絕原假設。實際上在確定棄真錯誤機率以後,拒絕域的位置也就相應地確定了。
使用 T 統計量進行判斷的好處是,進行決策的界限清晰,但缺陷是決策面臨的風險是籠統的。
例如 T=3 落入拒絕域,我們拒絕原假設,犯棄真錯誤的機率為 0.05;T=2 也落入拒絕域,我們拒絕原假設,犯棄真錯誤的機率也是 0.05。
事實上,依據不同的統計量進行決策,面臨的風險也是有差別的。為了精確地反映決策的風險度,我們仍然需要 P 值來幫助業務來做決策。
5.2 利用 P 值決策
P 值是當原假設為真時,所得到的樣本觀察結果或更極端的結果出現的機率。如果 P 值很小,說明這種情況發生的機率很小,但是在這次試驗中卻出現了,根據小機率原理,我們有理由拒絕原假設,P 值越小,我們拒絕原假設的理由越充分。
P 值可以理解為犯棄真錯誤的機率,在確定的顯著性水平下(一般取 0.05),P 值小於顯著性水平,則拒絕原假設。
5.3 基於假設驗證的科學評估
圍繞著科學評估要解決的兩個問題,實驗前,針對圈定的流量使用假設檢驗,透過 AA 實驗確保分出無差別的實驗組和對照組;
實驗後,基於實驗前選定的用於驗證假設結論的指標,構造 T 統計量並計算其對應的 P 值,依據 P 值幫我們做決策。
5.4 決策
實驗結果分析,假設驗證後就進入了決策階段,根據實驗分析結果決定是否繼續最佳化實驗策略再次實驗或終止實驗或進入實驗放量階段。
如果進入實驗放量階段,需要綜合考慮三個因素:效率、質量、風險。對於一個實驗,我們希望在評估正向的前提下,儘快上線。但往往由於策略 bug、新功能不符合預期、使用者體感不好等問題,使得在放量階段需要更加的謹慎,以下為一個標準的放量流程:
第一階段:小流量階段
此階段銜接在小流量評估後,整體放量比例控制在(5%)以下,評估實驗是否對指標有負向影響。同時驗證策略的觸發,以及排查是否存在潛在風險。在無風險的前提下,一般建議持續 3-5 日左右,進入下一個階段。
第二階段:放量階段
這個階段,隨著樣本量的逐漸放開,實驗的結果也會更加精準;與此同時,伴隨而來可能會出現流量壓力等問題的發生,因此在此階段需要跟進放量,觀察是否有出現問題。逐級放量建議持續至少一週,以觀測週中和週末的影響。
第三階段:長期存放階段
針對部分實驗,如果希望長期觀測實驗效果,可以保留 5%以下的原始策略,作為「反轉桶」。
6 總結
AB測試不能解決所有的問題,但是仍然不失為衡量線上最佳化迭代的最有效方式之一。可衡量的實驗目標、有效的實驗分流、實驗結果的正確解讀是AB測試成功的關鍵。
來自 “ 轉轉技術 ”, 原文作者:王夢龍;原文連結:http://server.it168.com/a2023/0308/6792/000006792953.shtml,如有侵權,請聯絡管理員刪除。
相關文章
- 淺談OA系統在應用中安全性
- 淺談webscoket原理及其應用Web
- 實驗3 轉移指令跳轉原理及其簡單應用程式設計程式設計
- 貝葉斯統計和因果推斷在轉轉估價中的落地實踐
- 淺談 K-D Tree 及其進階應用
- [轉發]淺談我在職場中與人相處的技巧
- 淺談深度學習的技術原理及其在計算機視覺的應用深度學習計算機視覺
- 淺談設計模式在iOS開發實戰專案中的應用設計模式iOS
- TiDB 分散式資料庫在轉轉公司的應用實踐TiDB分散式資料庫
- 關於透明傳輸在通訊中的應用淺談
- 淺談canvas在web開發中的應用與優化CanvasWeb優化
- 影象格式轉化在人臉識別應用中的實踐
- 從不均勻性角度淺析AB實驗
- 淺談 CBDC 系統與區塊鏈的結合應用區塊鏈
- 淺談微服務轉型微服務
- 淺談JavaScript的型別轉換JavaScript型別
- 淺談大資料在抗疫中的應用和啟示大資料
- CRM系統中的報價管理怎麼用?
- Java 註解及其在 Android 中的應用JavaAndroid
- 嵌入式在電子價籤系統的應用
- 淺析RunLoop原理及其應用OOP
- 轉載:Kubernetes實戰——談談微博應對春晚等突發峰值流量的經驗
- AutoML 在推薦系統中的應用TOML
- TiDB 在 Mobikok 廣告系統中的應用和實踐TiDB
- 應用安全淺談
- 解讀App Store:當下應用轉移的價值在哪裡?如何順利避坑,實現應用轉移?APP
- 淺談session及其安全Session
- 淺談分散式 ID 的實踐與應用分散式
- 時間輪原理及其在框架中的應用框架
- CAS原子操作以及其在Java中的應用Java
- 一致性雜湊演算法及其在分散式系統中的應用演算法分散式
- 談談Spring中的BeanPostProcessor介面(轉)SpringBean
- 好用的Vue狀態管理模式:淺談Vuet在實際應用中解決的問題Vue模式
- 實驗二:順序表的基本操作實現及其應用
- 淺談CSS3中display屬性的Flex佈局(轉)CSSS3Flex
- 轉載分享:淺談引導盤
- 模板與例項在系統中的應用
- 淺談CRM系統的選型和實施