轉(zhuǎn)轉(zhuǎn)AB平臺的設(shè)計與實現(xiàn)
導(dǎo)讀
在數(shù)據(jù)驅(qū)動時代,不管是在產(chǎn)品功能迭代還是策略決策時都需要數(shù)據(jù)的支撐。那么,當(dāng)我們準(zhǔn)備上線一個新功能或者策略時,如何評估新老版本優(yōu)劣,即數(shù)據(jù)的可量化就成了問題。這個時候就需要引入 A/B Test 了。
一、A/B Test 是什么?
A/B Test 的概念來源于生物醫(yī)學(xué)的雙盲測試,雙盲測試中病人被隨機(jī)分成兩組,在不知情的情況下分別給予安慰劑和測試用藥,經(jīng)過一段時間的實驗后再來比較這兩組病人的表現(xiàn)是否具有顯著的差異,從而決定測試用藥是否有效。
在互聯(lián)網(wǎng)行業(yè)中,在產(chǎn)品正式迭代發(fā)版之前,將 Web 或 App 界面或流程以同一個目的制定兩個或多個方案,在同一時間維度,將流量對應(yīng)分成若干個組,在保證每組用戶特征相同(相似)的前提下,展示給用戶不同的設(shè)計方案,收集各組的用戶體驗數(shù)據(jù)和業(yè)務(wù)數(shù)據(jù),最后分析評估出最好版本,科學(xué)的進(jìn)行決策。
二、AB 系統(tǒng)設(shè)計與實現(xiàn)
2.1 系統(tǒng)介紹
轉(zhuǎn)轉(zhuǎn) AB Test 系統(tǒng)的核心功能主要包含五個部分:
- 實驗管理:實驗配置、上下線等操作。
- 指標(biāo)管理:分業(yè)務(wù)線創(chuàng)建與管理數(shù)據(jù)指標(biāo),數(shù)據(jù)指標(biāo)分為「事件指標(biāo)」和「復(fù)合指標(biāo)」。
- 白名單管理:各種分流標(biāo)識的白名單創(chuàng)建與管理。
- 數(shù)據(jù)報告:總實驗用戶數(shù)、流量概覽、關(guān)注指標(biāo)圖表和實驗結(jié)論數(shù)據(jù)。
- 分流服務(wù):供業(yè)務(wù)方調(diào)用獲取實驗分組結(jié)果的 RPC 服務(wù)。
2.2 系統(tǒng)架構(gòu)
2.3 系統(tǒng)實現(xiàn)
2.3.1 實驗管理
- 實驗列表:是所有實驗的集合,整個實驗列表分為三個區(qū)域「篩選/查詢區(qū)域」、「新建實驗」、「列表區(qū)域」。
- 新建實驗:要求填三個部分信息基礎(chǔ)信息、實驗配置信息、實驗策略配置,狀態(tài)默認(rèn)為測試中。
實驗基本信息
實驗配置信息
實驗策略配置
2.3.2 指標(biāo)管理
指標(biāo)分為「事件指標(biāo)」和「復(fù)合指標(biāo)」兩種類型。事件指標(biāo)通過埋點事件配置統(tǒng)計,復(fù)合指標(biāo)通過基礎(chǔ)的事件指標(biāo)進(jìn)行四則運算生成。
2.3.3 白名單管理
白名單功能提供統(tǒng)一的白名單創(chuàng)建與管理,用于實驗配置時給相關(guān)實驗組添加白名單,作用與分流服務(wù),方便業(yè)務(wù)實驗開發(fā)測試時通過配置白名單直接進(jìn)入相應(yīng)的實驗組。
2.3.4 數(shù)據(jù)報告
實驗報告是針對單個實驗,配置的核心指標(biāo)以及相關(guān)指標(biāo)一個統(tǒng)計性的數(shù)據(jù)報告說明。
- 基本信息
實驗ID:該實驗的實驗ID。
實驗名稱:該實驗的實驗名稱。
開始時間:該實驗正式上線的時間。
運行天數(shù):該實驗從上線至今/結(jié)束前的運行天數(shù)。
操作記錄:記錄這個實驗的操作變化記錄,包含流量分配、核心指標(biāo)修改、實驗暫停/上線等。
查看配置:查看這個實驗的配置信息。
- 核心數(shù)據(jù)
整體-總實驗用戶數(shù):實驗上線至今/結(jié)束前共參與實驗的用戶數(shù),按照分流標(biāo)識進(jìn)行統(tǒng)計。
分組-總實驗用戶數(shù):各個分組實驗上線至今/結(jié)束前共參與實驗的用戶數(shù),按照分流標(biāo)識進(jìn)行統(tǒng)計。
總實驗用戶占比:「分組-總實驗用戶數(shù)」 / 「整體 - 總實驗用戶數(shù)」* 100%。
流量分配:創(chuàng)建實驗時,流量的分配比例。
核心指標(biāo)值:創(chuàng)建實驗時,配置的「核心指標(biāo)」對應(yīng)的數(shù)值,這里會根據(jù)【指標(biāo)管理】中配置的數(shù)值方式與小數(shù)位數(shù)進(jìn)行顯示。
統(tǒng)計學(xué)校驗:用于描述試驗組指標(biāo)相比于對照組的提升范圍。隨著參與試驗的樣本量逐漸增加,數(shù)據(jù)指標(biāo)波動趨于穩(wěn)定,置信區(qū)間會逐漸收窄。一般來說,置信區(qū)間選擇 95%。
統(tǒng)計功效:統(tǒng)計功效用于描述通過試驗?zāi)軝z測出試驗結(jié)果真實可靠的概率;一般用于衡量實驗不顯著時,是否需要繼續(xù)擴(kuò)大樣本繼續(xù)實驗。一般當(dāng)差異不顯著時,統(tǒng)計功效小于 80%,需要繼續(xù)做實驗,當(dāng)差異不顯著是,統(tǒng)計功效大于 80%,說明基本對照組與實驗組沒有差異。
實驗結(jié)論:實驗結(jié)論根據(jù)「核心指標(biāo)」與「統(tǒng)計功效」得出實驗結(jié)論。
- 流量概覽
主要目的衡量流量分配是否均勻,指標(biāo)為「新進(jìn)組用戶數(shù)」:當(dāng)天第一次參與實驗的用戶數(shù)。
- 關(guān)注指標(biāo)(包含核心指標(biāo))
實驗UV:同「分組-總實驗用戶數(shù)」,各個分組實驗上線至今/結(jié)束前共參與實驗的用戶數(shù),按照分流標(biāo)識進(jìn)行統(tǒng)計。
指標(biāo)名稱:所選的指標(biāo)對應(yīng)的名稱。
差異絕對值:該分組對應(yīng)對照組在該指標(biāo)上的差異的值,舉例:如對照組訂單數(shù)為 50,實驗組為 100, 這里的差異絕對值為 100 - 50 = 50。
差異相對值:該分組對應(yīng)對照組在該指標(biāo)上的差異的百分比,舉例:如對照組訂單數(shù)為 50,實驗組為 100, 這里的差異絕對值為(100 - 50)/ 50 = 100%。
置信區(qū)間:核心指標(biāo)通過實驗配置的置信水平統(tǒng)計計算。
2.3.5 分流服務(wù)
- 分流邏輯
分流服務(wù)實時同步已上線運行的實驗配置,業(yè)務(wù)調(diào)用方通過實驗ID+分流標(biāo)識獲取實驗的分組結(jié)果,具體實現(xiàn)邏輯如下:
- 分流方案
結(jié)合轉(zhuǎn)轉(zhuǎn)業(yè)務(wù)的特點,使用了無層方案。所謂無層,就是每個實驗都是單獨一層,使用實驗 id 作為種子將 1-100 的桶號進(jìn)行洗牌打亂,具體實現(xiàn)方法如下:
如此一來確保了每個實驗都單獨占有所有流量,可以取任意組的流量進(jìn)行實驗,但是又引進(jìn)了新的問題,無層會導(dǎo)致同一個用戶命中多個實驗,即使這些實驗是互斥的。
為了解決實驗需要互斥的需求,后期將引入互斥實驗組的概念,將互斥實驗放在同一個組中,共享所有流量。具體實現(xiàn)邏輯如下:
新分流邏輯
新分流方案
三、A/B Test 實施指南
實驗的每個流程與節(jié)點都至關(guān)重要,拒絕為做實驗而做實驗,用心用科學(xué)來做實驗,整體實驗實施流程圖如下圖。
3.1 實驗設(shè)計
3.1.1 實驗設(shè)計初衷
對于互聯(lián)網(wǎng)產(chǎn)品而言,每次上線新版本都尤為慎重,為了衡量與判斷「新上線的版本」/「現(xiàn)有版本」哪個版本的策略更優(yōu),通過事實的數(shù)據(jù)結(jié)合統(tǒng)計學(xué)原理進(jìn)行科學(xué)、合理的進(jìn)行決策。
實驗的設(shè)計是實驗最重要的一環(huán),實驗設(shè)計的好壞決定了最終實驗的成功與否。
3.1.2 實驗設(shè)計模板
3.1.3 實驗設(shè)計的結(jié)構(gòu)
整體實驗的設(shè)計分為四個部分:
實驗基本信息
- 業(yè)務(wù)線歸屬,可分為「B2C」、「C2B」、「C2C」,根據(jù)具體業(yè)務(wù)進(jìn)行選擇即可。(為什么要區(qū)分業(yè)務(wù)線?不同業(yè)務(wù)線進(jìn)行指標(biāo)隔離,提升實驗人員更好更快進(jìn)行指標(biāo)選擇,底層數(shù)據(jù)處理效率與指標(biāo)也更高效,數(shù)據(jù)響應(yīng)更快。)
- 實驗名稱,實驗具體的名稱。
- 實驗編號,在具體「AB Test 平臺」在創(chuàng)建實驗后即可獲得,唯一標(biāo)識了一個實驗。
- 實驗?zāi)繕?biāo),在實驗設(shè)計的初期,上線新版本的目的是什么,希望您能用「核心指標(biāo)」的提升程度來衡量;如:新版本「優(yōu)化下單流程」,核心指標(biāo)「訂單轉(zhuǎn)化率」希望提升 0.8%。
實驗配置信息
- 實驗類型,目前包含了「編程實驗」,「策略實驗」。
- 預(yù)期上線時間,預(yù)期的實驗上線的時間。
- 預(yù)期上線天數(shù),根據(jù)實驗受眾群體的樣本數(shù)量,簡單估測上線的時長,單位天。業(yè)界的實驗時長一般是 2-3 周,最短時長建議不要少于 7 天。因為不同日期活躍的用戶群體可能不一樣,所以最好要覆蓋一個周期,如 7 天、14 天、21 天。那實驗時長是不是越長越好呢,也不是的,實驗時間過長會把各版本的區(qū)別拉平了,不同時期用戶對不同策略的反應(yīng)不一樣,一般不超過 30 天。
- 實驗指標(biāo),通??杀唤y(tǒng)計學(xué)檢驗的指標(biāo)分為以下三類:人均類指標(biāo)、次均類指標(biāo)、轉(zhuǎn)化率類指標(biāo)。
- 核心指標(biāo)(人均類指標(biāo)、次均類指標(biāo)、轉(zhuǎn)化率類指標(biāo)):實驗?zāi)繕?biāo)直接相關(guān),且決定實驗結(jié)果的關(guān)鍵指標(biāo)。
- 相關(guān)指標(biāo):該實驗需要關(guān)注的其他指標(biāo),用于輔助試驗結(jié)果的解讀。
- 護(hù)欄指標(biāo):實際上是相關(guān)指標(biāo)比較特殊的一種,通常是能反映用戶體驗受到傷害的指標(biāo),常常擁有“一票否決權(quán)”,幫助我們平衡實驗決策。
注意:
- 對于少部分比較重要的相關(guān)指標(biāo)/護(hù)欄指標(biāo)來說,他們是有“一票否決權(quán)”的,他們也需要符合可被統(tǒng)計學(xué)檢驗的要求(判斷這些數(shù)值差異到底是出自偶然,還是有確鑿的判定把握)。
- 對于核心指標(biāo),必須是可以直接關(guān)聯(lián)到實驗中的變量,否則無法推測實驗整體的差異性(即實驗有差異性,但是通過數(shù)據(jù)無法觀測出來)。
- 用戶分流標(biāo)識,目前分為 token/deviceId 與 uid,用于埋點上報和數(shù)據(jù)統(tǒng)計的區(qū)分。
- 受眾群體,與用戶畫像進(jìn)行打通,針對圈定用戶人群的部分用戶開展精準(zhǔn)實驗。
實驗策略設(shè)計
- 實驗分組,默認(rèn)按照字母順序來, A/B/C/D/E...
- 版本描述,各個版本的描述性文字,描述清晰各個版本的情況。
- 流量分配,最多分配 100% 流量,最細(xì)粒度為 1%。
實驗結(jié)論
- 決策分組,最終實驗下線的決策分組。
- 統(tǒng)計數(shù)據(jù),各個版本之前的核心數(shù)據(jù)(核心指標(biāo)_均值,置信區(qū)間,統(tǒng)計功效)。
- 實驗結(jié)論描述,整體實驗結(jié)果描述。
3.2 實驗埋點上報規(guī)范
"實驗ID":實驗的id標(biāo)識,用于實驗數(shù)據(jù)統(tǒng)計。
"實驗分組":實驗分組結(jié)果,用于實驗版本展示的標(biāo)識。
"分流用戶類型" :用于實驗分流的標(biāo)識類型,便于精準(zhǔn)統(tǒng)計 UV 類指標(biāo)數(shù)據(jù)。
埋點上報格式舉例:
3.3 實驗決策指南
3.3.1 實驗決策流程
當(dāng)我們的實驗在線上已經(jīng)運行了一段時間之后,我們需要衡量實驗整體的效果,整體實驗決策的流程如下圖。
實驗報告:包含了整體實驗總用戶在每個實驗組的流量分配情況以及「核心指標(biāo)」、「相關(guān)指標(biāo)」的統(tǒng)計學(xué)檢驗結(jié)果,根據(jù)實驗組的核心指標(biāo)相對于對照組的核心指標(biāo)變化率情況、置信區(qū)間及統(tǒng)計功效來評估試驗效果。
「核心指標(biāo)」的提升/下降決定了整體實驗的效果,一般我們用置信區(qū)間和統(tǒng)計功效來整體判斷實驗的結(jié)果。
注意:對于少部分比較重要的相關(guān)指標(biāo)/護(hù)欄指標(biāo)來說,他們是有“一票否決權(quán)”的,需要進(jìn)行整體評估,平衡試驗決策。
3.3.2 置信區(qū)間&統(tǒng)計功效計算
什么是置信區(qū)間?
置信區(qū)間是一種常用的區(qū)間估計方法,所謂置信區(qū)間就是分別以統(tǒng)計量的置信上限和置信下限為上下界構(gòu)成的區(qū)間 。對于一組給定的樣本數(shù)據(jù),其平均值為 μ,標(biāo)準(zhǔn)偏差為 σ,則其整體數(shù)據(jù)的平均值的 100(1 - α)% 置信區(qū)間為 (μ - Ζα/2σ, μ + Ζα / 2σ) ,其中 α 為非置信水平在正態(tài)分布內(nèi)的覆蓋面積 ,Ζα / 2 即為對應(yīng)的標(biāo)準(zhǔn)分?jǐn)?shù)。
為什么要計算置信區(qū)間?
在「A/B測試」的場景下,主要通過某個指標(biāo)或留存的實驗版本均值變化值以及置信區(qū)間來判斷,在當(dāng)前指標(biāo)或用戶留存上,實驗版本是否比對照版本表現(xiàn)得更好。
置信水平,也稱置信水平、置信系數(shù)、統(tǒng)計顯著性,指實驗組與對照組之間存在真正性能差異的概率,實驗組和對照組之間衡量目標(biāo)(即配置的指標(biāo))的差異不是因為隨機(jī)而引起的概率。置信度使我們能夠理解結(jié)果什么時候是正確的,對于大多數(shù)企業(yè)而言,一般來說,置信度高于 95% 都可以理解為實驗結(jié)果是正確的。因此,默認(rèn)情況下,「A/B測試」將置信區(qū)間參數(shù)值設(shè)置為 95%。
置信水平 | Z值 |
99% | 2.58 |
95% | 1.96 |
90% | 1.645 |
80% | 1.28 |
- 如果置信區(qū)間上下限均為正值,則表明試驗結(jié)果為正向顯著。
- 如果置信區(qū)間上下限均為負(fù)值,則表明試驗結(jié)果為負(fù)向顯著。
- 如果置信區(qū)間一正一負(fù),則表明試驗結(jié)果差異不顯著。
計算邏輯
- 均值類
舉例:實驗核心指標(biāo)是「人均支付金額」,需要計算 2022-06-01~2022-06-10;區(qū)間內(nèi)「實驗組」相對「對照組」置信區(qū)間范圍,數(shù)據(jù)如下所示:
對照組:參與實驗用戶 239 個,累積支付金額 121392 元。
實驗組:參與實驗用戶 640 個,累積支付金額 504795 元。
- 比率類
例如:某個區(qū)間內(nèi)
3.4 實驗到期下線
實驗到期下線分為兩種情況:未到期決策下線、到期自動下線。
- 未到期決策下線,核心指標(biāo)的統(tǒng)計功效已經(jīng)很明顯,可以直接分出實驗各組的效果,則可以直接以優(yōu)勝組進(jìn)行決策下線,全量決策組,后期業(yè)務(wù)代碼邏輯進(jìn)行下線,落地實驗結(jié)果。
- 到期自動下線,當(dāng)實驗設(shè)定的實驗周期已結(jié)束,實驗各組的核心指標(biāo)的統(tǒng)計功效不明顯,則自動以對照組下線,全量對照組,后期業(yè)務(wù)代碼邏輯進(jìn)行下線,落地實驗結(jié)果。
四、未來規(guī)劃與展望
- 實驗類型多樣化。提供更多、更豐富的實驗類型,根據(jù)業(yè)務(wù)場景選擇最合適的實驗類型,更科學(xué)有效的進(jìn)行實驗。
- 數(shù)據(jù)報告豐富化。目前只有單指標(biāo)維度的看數(shù)圖表,留存分析、漏斗分析和歸因分析將是后期的功能迭代點。
- 數(shù)據(jù)與監(jiān)控告警實時化。目前的數(shù)據(jù)是離線數(shù)倉 T + 1 清洗打?qū)挘写岣邤?shù)據(jù)的實時性,能快速發(fā)現(xiàn)問題,調(diào)整實驗方案。
五、總結(jié)
本文主要分享了:
- A/B Test 是什么?
- AB 系統(tǒng)設(shè)計與實現(xiàn)
- A/B Test 實施指南
- 未來規(guī)劃與展望
從了解 AB、如何開發(fā) AB 平臺、如何實施 AB 實驗和未來的規(guī)劃迭代四個方面介紹了 A/B Test 在轉(zhuǎn)轉(zhuǎn)的落地與應(yīng)用。在互聯(lián)網(wǎng)產(chǎn)品玲瑯滿目下,如何吸引新用戶,留住老用戶以及試錯成本越來越高的場景下,如何通過 A/B Test 小流量、多方案,快速迭代、決策、優(yōu)化產(chǎn)品變得越來越重要。AB 平臺的建設(shè)還有很長的路要走。
未來轉(zhuǎn)轉(zhuǎn)會針對痛點與不足進(jìn)行持續(xù)優(yōu)化,輸出更多的技術(shù)實踐給大家,一起進(jìn)步成長。