為什么要做 A/B 測試
首先我們看一個案例。字節(jié)跳動有一款中視頻產(chǎn)品叫西瓜視頻,最早它叫做頭條視頻。為了提升產(chǎn)品的品牌辨識度,團(tuán)隊(duì)想給它起個更好的名字。經(jīng)過一些內(nèi)部調(diào)研和頭腦風(fēng)暴,征集到了西瓜視頻、奇妙視頻、筷子視頻、陽光視頻 4 個名字,于是團(tuán)隊(duì)就針對一共 5 個 APP 名稱進(jìn)行了 A/B 實(shí)驗(yàn)。這個實(shí)驗(yàn)中唯一改變的是應(yīng)用市場里該產(chǎn)品的名稱和對應(yīng)的 logo,實(shí)驗(yàn)?zāi)康氖菫榱蓑?yàn)證哪一個應(yīng)用名稱能更好地提升“頭條視頻” APP 在應(yīng)用商店的點(diǎn)擊率。最后西瓜視頻和奇妙視頻的點(diǎn)擊率位列前二,但差距不顯著,結(jié)合用戶調(diào)性等因素的綜合考量后,最終決定頭條視頻正式更名為西瓜視頻。
通過這個案例可以看到,A/B 測試可以幫助業(yè)務(wù)做最終決策。結(jié)合案例的直觀感受,我們可以這樣來定義 A/B 測試:在同一時間對目標(biāo)受眾做科學(xué)抽樣、分組測試以評估效果。
以上圖圖示為例,假設(shè)我們有 100 萬用戶要進(jìn)行 A/B 測試:
● 先選定目標(biāo)受眾,比如一線城市的用戶。
● A/B 測試不可能對所有用戶都進(jìn)行實(shí)驗(yàn),所以要進(jìn)行科學(xué)抽樣,選擇小部分流量進(jìn)行實(shí)驗(yàn)。
● 抽樣之后需要對樣本進(jìn)行分組,比如 A 組保持現(xiàn)狀,B 組的某一個因素有所改變。
● 分組之后在同一時間進(jìn)行實(shí)驗(yàn),就可以看到改變變量后用戶行為的變化。
● 再根據(jù)對應(yīng)實(shí)驗(yàn)?zāi)繕?biāo)的指標(biāo),比如點(diǎn)擊率的高低,來評估實(shí)驗(yàn)的結(jié)果。
以上就是我們對 A/B 測試的定義。目前,A/B 測試已被 Google、Facebook、亞馬遜等大型互聯(lián)網(wǎng)公司廣泛采用;字節(jié)跳動更是在 2012 年成立之初便開始使用 A/B 測試,公司內(nèi)部一直流傳一句話:一切皆可 A/B 測試。A/B 測試在字節(jié)跳動已是非;A(chǔ)的設(shè)施和文化,目前,字節(jié)跳動累計(jì)已有 80W+ 的 A/B 實(shí)驗(yàn),日新增實(shí)驗(yàn) 1500+,同時運(yùn)行試驗(yàn) 1W+,服務(wù) 500+ 業(yè)務(wù)線。
那我們?yōu)槭裁匆?A/B 測試呢?我總結(jié)有 3 點(diǎn)原因:
● 風(fēng)險控制:小流量實(shí)驗(yàn)可以避免直接上線效果不好造成損失。其次,實(shí)驗(yàn)迭代的過程中,決策都是有科學(xué)依據(jù)的,可以避免系統(tǒng)性的偏差。
● 因果推斷:我們相信 A/B 實(shí)驗(yàn)中的優(yōu)化和改變最終能影響到線上數(shù)據(jù)以及用戶的行為。在這個前提下,A/B 測試就是最好的因果推斷工具。
● 復(fù)利效應(yīng):A/B 測試是可以持續(xù)不斷進(jìn)行的實(shí)驗(yàn),即使一次實(shí)驗(yàn)提升的效果不大,但是長期下來復(fù)利效應(yīng)的積累會產(chǎn)生很大的變化和回報(bào)。
A/B 測試系統(tǒng)實(shí)現(xiàn)
了解了我們?yōu)槭裁匆?A/B 測試,下面我們來看一下火山引擎的 A/B 測試系統(tǒng)是如何實(shí)現(xiàn)的。
上圖是火山引擎 A/B 測試系統(tǒng)的架構(gòu)示意圖,整體架構(gòu)分為幾層:
● 運(yùn)行環(huán)境層:在最底層,服務(wù)可以運(yùn)行在容器內(nèi),也可以運(yùn)行在物理機(jī)上。
● 基礎(chǔ)設(shè)施層:會用到關(guān)系型數(shù)據(jù)庫和鍵值對。因?yàn)?A/B 測試要處理很大的數(shù)據(jù)量,這一層也會使用離線和實(shí)時的大數(shù)據(jù)組件。
● 服務(wù)層:包括實(shí)驗(yàn)所需的分流服務(wù)、元信息服務(wù)、調(diào)度服務(wù)等。在 A/B 測試中我們也需要標(biāo)識用戶,因此這一層有設(shè)備服務(wù)。為了提供多種數(shù)據(jù)查詢,還有 OLAP 引擎。
● 業(yè)務(wù)層:包括實(shí)驗(yàn)管理、指標(biāo)管理、Feature 管理、評估報(bào)告等。
● 接入層:包括 CDN、網(wǎng)絡(luò)防火墻、負(fù)載均衡。
● 應(yīng)用層:提供管理后臺控制實(shí)驗(yàn)、查看報(bào)告等,SDK 調(diào)用。
●下面介紹幾個實(shí)驗(yàn)流程的實(shí)現(xiàn)。
客戶端實(shí)驗(yàn)參數(shù)傳遞及生效過程
客戶端實(shí)驗(yàn)的流程如上圖所示:
● 業(yè)務(wù)方開發(fā)策略,確定實(shí)驗(yàn)內(nèi)容;
● 枚舉策略中的映射關(guān)系并在客戶端實(shí)現(xiàn)映射關(guān)系;
● 創(chuàng)建并開啟實(shí)驗(yàn);
● 客戶端已經(jīng)集成了火山引擎 A/B 測試系統(tǒng)的 SDK,向 A/B 測試系統(tǒng)請求分流服務(wù),判斷用戶命中哪些實(shí)驗(yàn)?zāi)男┌姹荆掳l(fā)參數(shù);
● 客戶端從 SDK 取到參數(shù),進(jìn)行相對應(yīng)的流程完成實(shí)驗(yàn)。
服務(wù)端實(shí)驗(yàn)參數(shù)傳遞及生效過程
服務(wù)端的實(shí)驗(yàn)和客戶端類似:
● 設(shè)計(jì)實(shí)驗(yàn);
● 服務(wù)端實(shí)驗(yàn)的 SDK 是跟業(yè)務(wù)系統(tǒng)比如服務(wù)端集成在一起?蛻羰菑钠渌 C 端用戶直接請求業(yè)務(wù)的服務(wù)端,該服務(wù)端會在本地 SDK 做決策;
● 決策完之后將參數(shù)下發(fā)到下游,使策略生效。
統(tǒng)計(jì)分析實(shí)踐
● 在統(tǒng)計(jì)分析中,我們總結(jié)了一些有用的實(shí)踐經(jīng)驗(yàn):
● 確定業(yè)務(wù)的指標(biāo)體系:可以從宏觀/微觀、長期/短期、橫向/縱向三個角度建設(shè)指標(biāo)體系。
● 分類檢驗(yàn):對指標(biāo)進(jìn)行置信度計(jì)算的時候,并不會每次都用同一套方法,而是針對不同的指標(biāo)類型(包括轉(zhuǎn)化類、人均類、CTR 類等)進(jìn)行不同的建模采用不同的方法。
● 統(tǒng)計(jì)修正:如果一個實(shí)驗(yàn)開了多個組,可能犯了多重比較的錯誤。還有時開完實(shí)驗(yàn)之后每天都會查看結(jié)果,這就犯了連續(xù)觀測的錯誤。所以在實(shí)踐中需要有一些統(tǒng)計(jì)修正的方法來修正行為。
● 基于葉貝斯體系的探索:區(qū)別于經(jīng)典的假設(shè)檢驗(yàn),我們也在探索基于葉貝斯體系,如何評估實(shí)驗(yàn)效果,降低面向用戶使用時候的理解門檻。在智能流量調(diào)優(yōu)、模型超參數(shù)搜索等場景下有具體落地。
● 這里也跟大家分享一些 A/B 實(shí)驗(yàn)設(shè)計(jì)背后的思考:
● 避免過度曝光:A/B 實(shí)驗(yàn)中有一個很關(guān)鍵的點(diǎn)是決策哪些樣本應(yīng)該進(jìn)入實(shí)驗(yàn)。如果所有打開應(yīng)用的人都能命中實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果就不會很明顯。
● 進(jìn)組和出組:假設(shè)我們對北京的用戶進(jìn)行了實(shí)驗(yàn),有些人出差或者旅游離開北京之后還能命中實(shí)驗(yàn)嗎?我們可以把這個決策留給實(shí)驗(yàn)者,讓實(shí)驗(yàn)者自己決定是進(jìn)組還是出組。
● 和 Feature Flag 的珠聯(lián)璧合:實(shí)驗(yàn)之前可以把能進(jìn)行實(shí)驗(yàn)的內(nèi)容抽象成 Feature Flag,簡單理解成功能開關(guān)。實(shí)驗(yàn)完成之后的上線或者重復(fù)實(shí)驗(yàn),也可用 Feature Flag 進(jìn)行管理。
字節(jié)跳動 A/B 測試最佳實(shí)踐
在字節(jié)跳動,A/B 測試已經(jīng)是一種企業(yè)文化,大家都認(rèn)可其價值,達(dá)成共識才能一起探討。A/B 測試跟其他環(huán)節(jié)是緊密相關(guān)的。我們在收集和分析數(shù)據(jù)之后會得到一些洞察,基于這些洞察可以知道有些環(huán)節(jié)是比較薄弱的,可進(jìn)行提升,然后就可以提出假設(shè),設(shè)計(jì) A/B 實(shí)驗(yàn),完成實(shí)驗(yàn)之后評估效果。有可能實(shí)驗(yàn)沒有達(dá)到預(yù)期效果,可以對實(shí)驗(yàn)進(jìn)行迭代繼續(xù)收集數(shù)據(jù),這樣就形成了以 A/B 測試為核心的業(yè)務(wù)增長閉環(huán)。
下面為大家介紹如何完整進(jìn)行一次 A/B 實(shí)驗(yàn)。
如何產(chǎn)生好的實(shí)驗(yàn)想法
關(guān)于如何產(chǎn)生好的實(shí)驗(yàn)想法,我們可以從定量分析和定性分析幾個角度來看。前面提到的構(gòu)建完善的指標(biāo)體系就是定量分析,這里不再贅述。在收集到指標(biāo)數(shù)據(jù)以后,對于指標(biāo)發(fā)生的異動進(jìn)行現(xiàn)象分析,針對已存在問題(非異動),則可以進(jìn)行新的產(chǎn)品策略或者運(yùn)營策略迭代執(zhí)行。
定性分析可以分為三個方面:
● 產(chǎn)品本身的價值主張是什么?比如一款打車 APP 的價值主張是通過共享經(jīng)濟(jì)實(shí)現(xiàn)社會的效率提升,這個產(chǎn)品有沒有很好地體現(xiàn)價值主張?可以從這一方面產(chǎn)生一些實(shí)驗(yàn)想法。
● 推動因素
相關(guān)性:同一個頁面中如果有不相關(guān)的功能,用戶大概率也不會點(diǎn)擊,這樣的設(shè)計(jì)就沒有效果。
清晰度:要表達(dá)的內(nèi)容(比如命名)是否足夠清晰。
緊迫性:對于有時間周期的活動,可以設(shè)計(jì)一些事件營造緊迫感。
● 阻礙因素:
注意力分散:避免在一個頁面放五花八門的信息讓用戶找不到重點(diǎn)。
焦慮性:有的地方可能給了用戶很多選擇,也會造成選擇困難,不自覺地形成一種焦慮感,不如簡單一些只設(shè)計(jì)一個選擇。
如何建立一個有效的實(shí)驗(yàn)假設(shè)
我們需要針對一個用戶群體做出改變,然后產(chǎn)生一定的影響。但是這個假設(shè)不是無腦定的,要有邏輯性是合理的,最終能通過指標(biāo)來評估變化的影響。針對這幾個要素,我們總結(jié)出了設(shè)計(jì) A/B 實(shí)驗(yàn)的 PICOT 原則,即 Population、Intervention、Comparison、Outcome、Time,明確對什么樣的用戶做出了什么樣的改變,然后進(jìn)行分組比較,最終需要設(shè)計(jì)衡量結(jié)果的指標(biāo),并決策實(shí)驗(yàn)要進(jìn)行多長時間。
A/B 測試效果評估
看哪些數(shù)據(jù)
上圖是一份 A/B 測試實(shí)驗(yàn)報(bào)告,可以看到指標(biāo)在實(shí)驗(yàn)版本里是絕對值,還有變化值以及置信區(qū)間。置信區(qū)間是指假設(shè)策略全量上線,你有 95% 的把握會看到真實(shí)的指標(biāo)收益在 [,] 這個范圍內(nèi)。置信區(qū)間越窄且不包含 0,可信度就越高。從「查看圖表」進(jìn)入選擇差異值可以觀察累計(jì) diff 趨勢圖,如果呈現(xiàn)置信區(qū)間逐漸變窄的現(xiàn)象,說明隨著樣本量越來越大,我們對評估結(jié)果的信心就越來越強(qiáng)。
指標(biāo)變化是顯著的嗎
A/B 實(shí)驗(yàn)的結(jié)果有以下幾種:
● 正向顯著:說明當(dāng)前樣本容量條件下,實(shí)驗(yàn)版本優(yōu)于對照版本,實(shí)驗(yàn)結(jié)果和假設(shè)一致;
● 負(fù)向顯著:說明當(dāng)前樣本容量條件下,實(shí)驗(yàn)版本不優(yōu)于對照版本,實(shí)驗(yàn)結(jié)果和假設(shè)不一致;
● 不顯著:
確實(shí)不顯著:可以參考 MDE 指標(biāo)是否符合預(yù)期,如果符合,則說明結(jié)果確實(shí)不顯著。
其他原因?qū)е碌牟伙@著:比如樣本容量小,指標(biāo)對應(yīng)的用戶行為滲透率低,實(shí)驗(yàn)時長較短等。在這些情況下,如果實(shí)驗(yàn)效果不顯著,可以進(jìn)一步優(yōu)化實(shí)驗(yàn),比如增大樣本量,擴(kuò)大流量、再觀察一段時間積累更多進(jìn)組用戶等。
接下來我們可以再看兩個案例。
哪個首頁新 UI 版本更受歡迎
今日頭條 UI 整體風(fēng)格偏大齡被詬病已久,不利于年輕和女性用戶泛化,歷史上幾次紅頭改灰頭實(shí)驗(yàn)都對大盤數(shù)據(jù)顯著負(fù)向。因此團(tuán)隊(duì)設(shè)計(jì)了 A/B 實(shí)驗(yàn),目標(biāo)是在可接受的負(fù)向范圍內(nèi),改一版用戶評價更好的 UI。通過控制變量法,對以下變量分別開展數(shù)次 A/B 實(shí)驗(yàn):
● 頭部色值飽和度
● 字號
● 字重
● 上下間距
● 左右間距
● 底部 tab icon
● 結(jié)合用戶調(diào)研(結(jié)果顯示:年輕用戶和女性用戶對新 UI 更偏好)
綜合來看,效果最好的 UI 版本如圖 2 所示,全量上線。
新 UI 上線后,Stay duration 顯著負(fù)向從-0.38% 降至 -0.24%,圖文類時長顯著 +1.66%,搜索滲透顯著 +1.47%,高頻用戶(占 71%)已逐漸適應(yīng)新 UI。
選擇更優(yōu)的視頻上滑引導(dǎo)產(chǎn)品形態(tài)
某款短視頻在剛面世時,很多用戶都不知道上滑的玩法,因此就設(shè)計(jì)實(shí)驗(yàn)驗(yàn)證如何能更好地引導(dǎo)用戶上滑。實(shí)驗(yàn)?zāi)繕?biāo)定為優(yōu)化后提升新用戶留存,上滑操作滲透率提升 1%,錯誤操作滲透率下降 1%。定向受眾為新用戶,面向 10% 的線上流量進(jìn)行為期 1 個月的實(shí)驗(yàn)。
我們做了兩輪實(shí)驗(yàn),第一輪實(shí)驗(yàn)結(jié)果并不符合預(yù)期,上滑操作滲透率下降 1% 且顯著,錯誤操作滲透率提升 1.5%,不符合預(yù)期。新用戶留存未見顯著上升。但在不符合預(yù)期的情況下,還是能做一些分析來發(fā)現(xiàn)原因。因此經(jīng)過改進(jìn)我們做了第二輪實(shí)驗(yàn),結(jié)果上滑操作滲透率上升 1.5% 且顯著,新用戶 7 日內(nèi)留存提升 1%-1.8%,且指標(biāo)結(jié)果呈顯著,符合預(yù)期。
上面的例子就說明了我們可以把 A/B 測試當(dāng)成一個理解用戶的工具。
展望
● 最后想跟大家一起展望一下 A/B 測試行業(yè)未來的情況。從行業(yè)前景來看:
● 認(rèn)知率和普及率在高速提升:我們之前做過一個調(diào)研,發(fā)現(xiàn) A/B 測試在國內(nèi)整體認(rèn)知度較低,可能低到一個難以想象的數(shù)字。我們認(rèn)為在未來 5-10 年內(nèi),A/B 測試的認(rèn)知度可能會有 50-100 倍的提升,這個市場還是一片藍(lán)海。
● 從 nice-to-have 到 must-have:現(xiàn)在很多人認(rèn)為 A/B 測試是一個錦上添花的工具,但在數(shù)據(jù)驅(qū)動越來越重要的今天,A/B 測試是必須要掌握的工具,是企業(yè)開展業(yè)務(wù)過程中的剛需,否則在行業(yè)競爭中就會失去優(yōu)勢。
● 破圈:我們也發(fā)現(xiàn) A/B 測試正在破圈。大家的印象中 A/B 測試只有互聯(lián)網(wǎng)公司會用,但是我們在交流的過程中發(fā)現(xiàn),很多傳統(tǒng)企業(yè)雖然沒有線上業(yè)務(wù),但如果能解決數(shù)據(jù)收集的問題,A/B 測試也能滿足傳統(tǒng)企業(yè)優(yōu)化的訴求。
● 從技術(shù)趨勢上來看,有這樣幾個發(fā)展方向:
● 智能化:A/B 測試目前還處在早期階段,一些實(shí)驗(yàn)結(jié)論或?qū)嶒?yàn)洞察對數(shù)據(jù)和用戶屬性的利用還不是很充分。如果 A/B 測試能和統(tǒng)計(jì)方法、算法模型相結(jié)合,很可能提高整個行業(yè)的水平。
● 場景化:很多場景還沒有開始使用 A/B 測試,未來更多的行業(yè)場景能和 A/B 測試相結(jié)合,讓 A/B 測試更易用。
● 被集成:目前我們的 A/B 測試平臺可以一站式管理實(shí)驗(yàn)、查看報(bào)告,但是一些用戶的業(yè)務(wù)已經(jīng)很成熟,希望 A/B 測試能夠走入業(yè)務(wù)和系統(tǒng),更順滑地使用。所以 A/B 測試技術(shù)也需要提高自身被集成的能力,無縫地和各種業(yè)務(wù)、系統(tǒng)結(jié)合起來。
Q&A
Q:A/B 測試對用戶體量有沒有基本限制?小用戶量在進(jìn)行 A/B 測試時有什么要注意的嗎?
A:A/B 測試方法本身對用戶量沒有限制,但是如果實(shí)驗(yàn)樣本太少,就很難看到顯著的結(jié)果,收益比較小。
Q:火山引擎 A/B 測試和算法等數(shù)據(jù)科學(xué)有哪些結(jié)合的嘗試和實(shí)踐?
A:我們內(nèi)部在做的一些事情可以簡單介紹一下:比如基于多臂老虎機(jī)的智能實(shí)驗(yàn),已經(jīng)在開始應(yīng)用一些算法。此外我們也在探索參數(shù)搜索的實(shí)驗(yàn),提升搜索參數(shù)的速度,讓 A/B 測試更智能化。
Q:A/B 實(shí)驗(yàn)一般要測試多才可以看到結(jié)果?
A:嚴(yán)格意義上,開多久是和實(shí)驗(yàn)?zāi)軒淼挠绊懹嘘P(guān)系的,以我們的經(jīng)驗(yàn)值來看,一般是要覆蓋一個完整的用戶生命周期。我們一般是以周為單位,實(shí)驗(yàn)至少開啟 1-2 周。
Q:A/B 測試在實(shí)驗(yàn)結(jié)果上有沒有自動歸因的能力,幫用戶直接定位到是什么原因引起實(shí)驗(yàn)結(jié)果好或者差的?
A:前面提到的一些智能化探索會對自動歸因有幫助,但是自動歸因還有一個很重要的點(diǎn)是,A/B 測試實(shí)驗(yàn)數(shù)據(jù)背后的原因可能需要很多業(yè)務(wù)知識的輸入或者很有力的指標(biāo)建設(shè)才能推斷出來。
Q:如此多的實(shí)驗(yàn),如何保證實(shí)驗(yàn)的正交?
A:我們通過大量的模擬實(shí)驗(yàn),以及對系統(tǒng)監(jiān)控的自檢來保證正交,一旦發(fā)現(xiàn)數(shù)據(jù)超過了閾值就會及時進(jìn)行調(diào)整。
文章內(nèi)容僅供閱讀,不構(gòu)成投資建議,請謹(jǐn)慎對待。投資者據(jù)此操作,風(fēng)險自擔(dān)。
2024年的Adobe MAX 2024發(fā)布會上,Adobe推出了最新版本的Adobe Creative Cloud。
奧維云網(wǎng)(AVC)推總數(shù)據(jù)顯示,2024年1-9月明火炊具線上零售額94.2億元,同比增加3.1%,其中抖音渠道表現(xiàn)優(yōu)異,同比有14%的漲幅,傳統(tǒng)電商略有下滑,同比降低2.3%。
“以前都要去窗口辦,一套流程下來都要半個月了,現(xiàn)在方便多了!”打開“重慶公積金”微信小程序,按照提示流程提交相關(guān)材料,僅幾秒鐘,重慶市民曾某的賬戶就打進(jìn)了21600元。
華碩ProArt創(chuàng)藝27 Pro PA279CRV顯示器,憑借其優(yōu)秀的性能配置和精準(zhǔn)的色彩呈現(xiàn)能力,為您的創(chuàng)作工作帶來實(shí)質(zhì)性的幫助,雙十一期間低至2799元,性價比很高,簡直是創(chuàng)作者們的首選。
9月14日,2024全球工業(yè)互聯(lián)網(wǎng)大會——工業(yè)互聯(lián)網(wǎng)標(biāo)識解析專題論壇在沈陽成功舉辦。