以上圖圖示為例,假設(shè)我們有100萬(wàn)用戶要進(jìn)行 A/B 測(cè)試:

● 先選定目標(biāo)受眾,比如一線城市的用戶。

● A/B 測(cè)試不可能對(duì)所有用戶都進(jìn)行實(shí)驗(yàn),所以要進(jìn)行科學(xué)抽樣,選擇小部分流量進(jìn)行實(shí)驗(yàn)。

● 抽樣之后需要對(duì)樣本進(jìn)行分組,比如 A 組保持現(xiàn)狀,B 組的某一個(gè)因素有所改變。

● 分組之后在同一時(shí)間進(jìn)行實(shí)驗(yàn),就可以看到改變變量后用戶行為的變化。

● 再根據(jù)對(duì)應(yīng)實(shí)驗(yàn)?zāi)繕?biāo)的指標(biāo),比如點(diǎn)擊率的高低,來(lái)評(píng)估實(shí)驗(yàn)的結(jié)果。

以上就是我們對(duì) A/B 測(cè)試的定義。目前,A/B 測(cè)試已被 Google、Facebook、亞馬遜等大型互聯(lián)網(wǎng)公司廣泛采用;字節(jié)跳動(dòng)更是在2012年成立之初便開(kāi)始使用 A/B 測(cè)試,公司內(nèi)部一直流傳一句話:一切皆可 A/B 測(cè)試。A/B 測(cè)試在字節(jié)跳動(dòng)已是非常基礎(chǔ)的設(shè)施和文化,目前,字節(jié)跳動(dòng)累計(jì)已有80W+ 的 A/B 實(shí)驗(yàn),日新增實(shí)驗(yàn)1500+,同時(shí)運(yùn)行試驗(yàn)1W+,服務(wù)500+ 業(yè)務(wù)線。

那我們?yōu)槭裁匆?A/B 測(cè)試呢?我總結(jié)有3點(diǎn)原因:

● 風(fēng)險(xiǎn)控制:小流量實(shí)驗(yàn)可以避免直接上線效果不好造成損失。其次,實(shí)驗(yàn)迭代的過(guò)程中,決策都是有科學(xué)依據(jù)的,可以避免系統(tǒng)性的偏差。

● 因果推斷:我們相信 A/B 實(shí)驗(yàn)中的優(yōu)化和改變最終能影響到線上數(shù)據(jù)以及用戶的行為。在這個(gè)前提下,A/B 測(cè)試就是最好的因果推斷工具。

● 復(fù)利效應(yīng):A/B 測(cè)試是可以持續(xù)不斷進(jìn)行的實(shí)驗(yàn),即使一次實(shí)驗(yàn)提升的效果不大,但是長(zhǎng)期下來(lái)復(fù)利效應(yīng)的積累會(huì)產(chǎn)生很大的變化和回報(bào)。

A/B 測(cè)試系統(tǒng)實(shí)現(xiàn)

了解了我們?yōu)槭裁匆?A/B 測(cè)試,下面我們來(lái)看一下火山引擎的 A/B 測(cè)試系統(tǒng)是如何實(shí)現(xiàn)的。

2.png

上圖是火山引擎 A/B 測(cè)試系統(tǒng)的架構(gòu)示意圖,整體架構(gòu)分為幾層:

● 運(yùn)行環(huán)境層:在最底層,服務(wù)可以運(yùn)行在容器內(nèi),也可以運(yùn)行在物理機(jī)上。

● 基礎(chǔ)設(shè)施層:會(huì)用到關(guān)系型數(shù)據(jù)庫(kù)和鍵值對(duì)。因?yàn)?A/B 測(cè)試要處理很大的數(shù)據(jù)量,這一層也會(huì)使用離線和實(shí)時(shí)的大數(shù)據(jù)組件。

● 服務(wù)層:包括實(shí)驗(yàn)所需的分流服務(wù)、元信息服務(wù)、調(diào)度服務(wù)等。在 A/B 測(cè)試中我們也需要標(biāo)識(shí)用戶,因此這一層有設(shè)備服務(wù)。為了提供多種數(shù)據(jù)查詢,還有 OLAP 引擎。

● 業(yè)務(wù)層:包括實(shí)驗(yàn)管理、指標(biāo)管理、Feature 管理、評(píng)估報(bào)告等。

● 接入層:包括 CDN、網(wǎng)絡(luò)防火墻、負(fù)載均衡。

● 應(yīng)用層:提供管理后臺(tái)控制實(shí)驗(yàn)、查看報(bào)告等,SDK 調(diào)用。

●下面介紹幾個(gè)實(shí)驗(yàn)流程的實(shí)現(xiàn)。

客戶端實(shí)驗(yàn)參數(shù)傳遞及生效過(guò)程

3.png

客戶端實(shí)驗(yàn)的流程如上圖所示:

● 業(yè)務(wù)方開(kāi)發(fā)策略,確定實(shí)驗(yàn)內(nèi)容;

● 枚舉策略中的映射關(guān)系并在客戶端實(shí)現(xiàn)映射關(guān)系;

● 創(chuàng)建并開(kāi)啟實(shí)驗(yàn);

● 客戶端已經(jīng)集成了火山引擎 A/B 測(cè)試系統(tǒng)的 SDK,向 A/B 測(cè)試系統(tǒng)請(qǐng)求分流服務(wù),判斷用戶命中哪些實(shí)驗(yàn)?zāi)男┌姹荆掳l(fā)參數(shù);

● 客戶端從 SDK 取到參數(shù),進(jìn)行相對(duì)應(yīng)的流程完成實(shí)驗(yàn)。

服務(wù)端實(shí)驗(yàn)參數(shù)傳遞及生效過(guò)程

4.png

服務(wù)端的實(shí)驗(yàn)和客戶端類(lèi)似:

● 設(shè)計(jì)實(shí)驗(yàn);

● 服務(wù)端實(shí)驗(yàn)的 SDK 是跟業(yè)務(wù)系統(tǒng)比如服務(wù)端集成在一起??蛻羰菑钠渌?C 端用戶直接請(qǐng)求業(yè)務(wù)的服務(wù)端,該服務(wù)端會(huì)在本地 SDK 做決策;

● 決策完之后將參數(shù)下發(fā)到下游,使策略生效。

統(tǒng)計(jì)分析實(shí)踐

● 在統(tǒng)計(jì)分析中,我們總結(jié)了一些有用的實(shí)踐經(jīng)驗(yàn):

● 確定業(yè)務(wù)的指標(biāo)體系:可以從宏觀/微觀、長(zhǎng)期/短期、橫向/縱向三個(gè)角度建設(shè)指標(biāo)體系。

● 分類(lèi)檢驗(yàn):對(duì)指標(biāo)進(jìn)行置信度計(jì)算的時(shí)候,并不會(huì)每次都用同一套方法,而是針對(duì)不同的指標(biāo)類(lèi)型(包括轉(zhuǎn)化類(lèi)、人均類(lèi)、CTR 類(lèi)等)進(jìn)行不同的建模采用不同的方法。

● 統(tǒng)計(jì)修正:如果一個(gè)實(shí)驗(yàn)開(kāi)了多個(gè)組,可能犯了多重比較的錯(cuò)誤。還有時(shí)開(kāi)完實(shí)驗(yàn)之后每天都會(huì)查看結(jié)果,這就犯了連續(xù)觀測(cè)的錯(cuò)誤。所以在實(shí)踐中需要有一些統(tǒng)計(jì)修正的方法來(lái)修正行為。

● 基于葉貝斯體系的探索:區(qū)別于經(jīng)典的假設(shè)檢驗(yàn),我們也在探索基于葉貝斯體系,如何評(píng)估實(shí)驗(yàn)效果,降低面向用戶使用時(shí)候的理解門(mén)檻。在智能流量調(diào)優(yōu)、模型超參數(shù)搜索等場(chǎng)景下有具體落地。

● 這里也跟大家分享一些 A/B 實(shí)驗(yàn)設(shè)計(jì)背后的思考:

● 避免過(guò)度曝光:A/B 實(shí)驗(yàn)中有一個(gè)很關(guān)鍵的點(diǎn)是決策哪些樣本應(yīng)該進(jìn)入實(shí)驗(yàn)。如果所有打開(kāi)應(yīng)用的人都能命中實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果就不會(huì)很明顯。

● 進(jìn)組和出組:假設(shè)我們對(duì)北京的用戶進(jìn)行了實(shí)驗(yàn),有些人出差或者旅游離開(kāi)北京之后還能命中實(shí)驗(yàn)嗎?我們可以把這個(gè)決策留給實(shí)驗(yàn)者,讓實(shí)驗(yàn)者自己決定是進(jìn)組還是出組。

● 和 Feature Flag 的珠聯(lián)璧合:實(shí)驗(yàn)之前可以把能進(jìn)行實(shí)驗(yàn)的內(nèi)容抽象成 Feature Flag,簡(jiǎn)單理解成功能開(kāi)關(guān)。實(shí)驗(yàn)完成之后的上線或者重復(fù)實(shí)驗(yàn),也可用 Feature Flag 進(jìn)行管理。

字節(jié)跳動(dòng) A/B 測(cè)試最佳實(shí)踐

在字節(jié)跳動(dòng),A/B 測(cè)試已經(jīng)是一種企業(yè)文化,大家都認(rèn)可其價(jià)值,達(dá)成共識(shí)才能一起探討。A/B 測(cè)試跟其他環(huán)節(jié)是緊密相關(guān)的。我們?cè)谑占头治鰯?shù)據(jù)之后會(huì)得到一些洞察,基于這些洞察可以知道有些環(huán)節(jié)是比較薄弱的,可進(jìn)行提升,然后就可以提出假設(shè),設(shè)計(jì) A/B 實(shí)驗(yàn),完成實(shí)驗(yàn)之后評(píng)估效果。有可能實(shí)驗(yàn)沒(méi)有達(dá)到預(yù)期效果,可以對(duì)實(shí)驗(yàn)進(jìn)行迭代繼續(xù)收集數(shù)據(jù),這樣就形成了以 A/B 測(cè)試為核心的業(yè)務(wù)增長(zhǎng)閉環(huán)。

下面為大家介紹如何完整進(jìn)行一次 A/B 實(shí)驗(yàn)。

如何產(chǎn)生好的實(shí)驗(yàn)想法

關(guān)于如何產(chǎn)生好的實(shí)驗(yàn)想法,我們可以從定量分析和定性分析幾個(gè)角度來(lái)看。前面提到的構(gòu)建完善的指標(biāo)體系就是定量分析,這里不再贅述。在收集到指標(biāo)數(shù)據(jù)以后,對(duì)于指標(biāo)發(fā)生的異動(dòng)進(jìn)行現(xiàn)象分析,針對(duì)已存在問(wèn)題(非異動(dòng)),則可以進(jìn)行新的產(chǎn)品策略或者運(yùn)營(yíng)策略迭代執(zhí)行。

定性分析可以分為三個(gè)方面:

● 產(chǎn)品本身的價(jià)值主張是什么?比如一款打車(chē) APP 的價(jià)值主張是通過(guò)共享經(jīng)濟(jì)實(shí)現(xiàn)社會(huì)的效率提升,這個(gè)產(chǎn)品有沒(méi)有很好地體現(xiàn)價(jià)值主張?可以從這一方面產(chǎn)生一些實(shí)驗(yàn)想法。

● 推動(dòng)因素

相關(guān)性:同一個(gè)頁(yè)面中如果有不相關(guān)的功能,用戶大概率也不會(huì)點(diǎn)擊,這樣的設(shè)計(jì)就沒(méi)有效果。

清晰度:要表達(dá)的內(nèi)容(比如命名)是否足夠清晰。

緊迫性:對(duì)于有時(shí)間周期的活動(dòng),可以設(shè)計(jì)一些事件營(yíng)造緊迫感。

● 阻礙因素:

注意力分散:避免在一個(gè)頁(yè)面放五花八門(mén)的信息讓用戶找不到重點(diǎn)。

焦慮性:有的地方可能給了用戶很多選擇,也會(huì)造成選擇困難,不自覺(jué)地形成一種焦慮感,不如簡(jiǎn)單一些只設(shè)計(jì)一個(gè)選擇。

如何建立一個(gè)有效的實(shí)驗(yàn)假設(shè)

我們需要針對(duì)一個(gè)用戶群體做出改變,然后產(chǎn)生一定的影響。但是這個(gè)假設(shè)不是無(wú)腦定的,要有邏輯性是合理的,最終能通過(guò)指標(biāo)來(lái)評(píng)估變化的影響。針對(duì)這幾個(gè)要素,我們總結(jié)出了設(shè)計(jì) A/B 實(shí)驗(yàn)的 PICOT 原則,即 Population、Intervention、Comparison、Outcome、Time,明確對(duì)什么樣的用戶做出了什么樣的改變,然后進(jìn)行分組比較,最終需要設(shè)計(jì)衡量結(jié)果的指標(biāo),并決策實(shí)驗(yàn)要進(jìn)行多長(zhǎng)時(shí)間。

A/B 測(cè)試效果評(píng)估

看哪些數(shù)據(jù)

5.png

上圖是一份 A/B 測(cè)試實(shí)驗(yàn)報(bào)告,可以看到指標(biāo)在實(shí)驗(yàn)版本里是絕對(duì)值,還有變化值以及置信區(qū)間。置信區(qū)間是指假設(shè)策略全量上線,你有95% 的把握會(huì)看到真實(shí)的指標(biāo)收益在 [,] 這個(gè)范圍內(nèi)。置信區(qū)間越窄且不包含0,可信度就越高。從「查看圖表」進(jìn)入選擇差異值可以觀察累計(jì) diff 趨勢(shì)圖,如果呈現(xiàn)置信區(qū)間逐漸變窄的現(xiàn)象,說(shuō)明隨著樣本量越來(lái)越大,我們對(duì)評(píng)估結(jié)果的信心就越來(lái)越強(qiáng)。

指標(biāo)變化是顯著的嗎

A/B 實(shí)驗(yàn)的結(jié)果有以下幾種:

● 正向顯著:說(shuō)明當(dāng)前樣本容量條件下,實(shí)驗(yàn)版本優(yōu)于對(duì)照版本,實(shí)驗(yàn)結(jié)果和假設(shè)一致;

● 負(fù)向顯著:說(shuō)明當(dāng)前樣本容量條件下,實(shí)驗(yàn)版本不優(yōu)于對(duì)照版本,實(shí)驗(yàn)結(jié)果和假設(shè)不一致;

● 不顯著:

確實(shí)不顯著:可以參考 MDE 指標(biāo)是否符合預(yù)期,如果符合,則說(shuō)明結(jié)果確實(shí)不顯著。

其他原因?qū)е碌牟伙@著:比如樣本容量小,指標(biāo)對(duì)應(yīng)的用戶行為滲透率低,實(shí)驗(yàn)時(shí)長(zhǎng)較短等。在這些情況下,如果實(shí)驗(yàn)效果不顯著,可以進(jìn)一步優(yōu)化實(shí)驗(yàn),比如增大樣本量,擴(kuò)大流量、再觀察一段時(shí)間積累更多進(jìn)組用戶等。

接下來(lái)我們可以再看兩個(gè)案例。

哪個(gè)首頁(yè)新 UI 版本更受歡迎

今日頭條 UI 整體風(fēng)格偏大齡被詬病已久,不利于年輕和女性用戶泛化,歷史上幾次紅頭改灰頭實(shí)驗(yàn)都對(duì)大盤(pán)數(shù)據(jù)顯著負(fù)向。因此團(tuán)隊(duì)設(shè)計(jì)了 A/B 實(shí)驗(yàn),目標(biāo)是在可接受的負(fù)向范圍內(nèi),改一版用戶評(píng)價(jià)更好的 UI。通過(guò)控制變量法,對(duì)以下變量分別開(kāi)展數(shù)次 A/B 實(shí)驗(yàn):

● 頭部色值飽和度

● 字號(hào)

● 字重

● 上下間距

● 左右間距

● 底部 tab icon

● 結(jié)合用戶調(diào)研(結(jié)果顯示:年輕用戶和女性用戶對(duì)新 UI 更偏好)

綜合來(lái)看,效果最好的 UI 版本如圖2所示,全量上線。

新 UI 上線后,Stay duration 顯著負(fù)向從-0.38% 降至 -0.24%,圖文類(lèi)時(shí)長(zhǎng)顯著 +1.66%,搜索滲透顯著 +1.47%,高頻用戶(占71%)已逐漸適應(yīng)新 UI。

選擇更優(yōu)的視頻上滑引導(dǎo)產(chǎn)品形態(tài)

某款短視頻在剛面世時(shí),很多用戶都不知道上滑的玩法,因此就設(shè)計(jì)實(shí)驗(yàn)驗(yàn)證如何能更好地引導(dǎo)用戶上滑。實(shí)驗(yàn)?zāi)繕?biāo)定為優(yōu)化后提升新用戶留存,上滑操作滲透率提升1%,錯(cuò)誤操作滲透率下降1%。定向受眾為新用戶,面向10% 的線上流量進(jìn)行為期1個(gè)月的實(shí)驗(yàn)。

7.png

我們做了兩輪實(shí)驗(yàn),第一輪實(shí)驗(yàn)結(jié)果并不符合預(yù)期,上滑操作滲透率下降1% 且顯著,錯(cuò)誤操作滲透率提升1.5%,不符合預(yù)期。新用戶留存未見(jiàn)顯著上升。但在不符合預(yù)期的情況下,還是能做一些分析來(lái)發(fā)現(xiàn)原因。因此經(jīng)過(guò)改進(jìn)我們做了第二輪實(shí)驗(yàn),結(jié)果上滑操作滲透率上升1.5% 且顯著,新用戶7日內(nèi)留存提升1%-1.8%,且指標(biāo)結(jié)果呈顯著,符合預(yù)期。

上面的例子就說(shuō)明了我們可以把 A/B 測(cè)試當(dāng)成一個(gè)理解用戶的工具。

展望

● 最后想跟大家一起展望一下 A/B 測(cè)試行業(yè)未來(lái)的情況。從行業(yè)前景來(lái)看:

● 認(rèn)知率和普及率在高速提升:我們之前做過(guò)一個(gè)調(diào)研,發(fā)現(xiàn) A/B 測(cè)試在國(guó)內(nèi)整體認(rèn)知度較低,可能低到一個(gè)難以想象的數(shù)字。我們認(rèn)為在未來(lái)5-10年內(nèi),A/B 測(cè)試的認(rèn)知度可能會(huì)有50-100倍的提升,這個(gè)市場(chǎng)還是一片藍(lán)海。

● 從 nice-to-have 到 must-have:現(xiàn)在很多人認(rèn)為 A/B 測(cè)試是一個(gè)錦上添花的工具,但在數(shù)據(jù)驅(qū)動(dòng)越來(lái)越重要的今天,A/B 測(cè)試是必須要掌握的工具,是企業(yè)開(kāi)展業(yè)務(wù)過(guò)程中的剛需,否則在行業(yè)競(jìng)爭(zhēng)中就會(huì)失去優(yōu)勢(shì)。

● 破圈:我們也發(fā)現(xiàn) A/B 測(cè)試正在破圈。大家的印象中 A/B 測(cè)試只有互聯(lián)網(wǎng)公司會(huì)用,但是我們?cè)诮涣鞯倪^(guò)程中發(fā)現(xiàn),很多傳統(tǒng)企業(yè)雖然沒(méi)有線上業(yè)務(wù),但如果能解決數(shù)據(jù)收集的問(wèn)題,A/B 測(cè)試也能滿足傳統(tǒng)企業(yè)優(yōu)化的訴求。

● 從技術(shù)趨勢(shì)上來(lái)看,有這樣幾個(gè)發(fā)展方向:

● 智能化:A/B 測(cè)試目前還處在早期階段,一些實(shí)驗(yàn)結(jié)論或?qū)嶒?yàn)洞察對(duì)數(shù)據(jù)和用戶屬性的利用還不是很充分。如果 A/B 測(cè)試能和統(tǒng)計(jì)方法、算法模型相結(jié)合,很可能提高整個(gè)行業(yè)的水平。

● 場(chǎng)景化:很多場(chǎng)景還沒(méi)有開(kāi)始使用 A/B 測(cè)試,未來(lái)更多的行業(yè)場(chǎng)景能和 A/B 測(cè)試相結(jié)合,讓 A/B 測(cè)試更易用。

● 被集成:目前我們的 A/B 測(cè)試平臺(tái)可以一站式管理實(shí)驗(yàn)、查看報(bào)告,但是一些用戶的業(yè)務(wù)已經(jīng)很成熟,希望 A/B 測(cè)試能夠走入業(yè)務(wù)和系統(tǒng),更順滑地使用。所以 A/B 測(cè)試技術(shù)也需要提高自身被集成的能力,無(wú)縫地和各種業(yè)務(wù)、系統(tǒng)結(jié)合起來(lái)。

Q&A

Q:A/B 測(cè)試對(duì)用戶體量有沒(méi)有基本限制?小用戶量在進(jìn)行 A/B 測(cè)試時(shí)有什么要注意的嗎?

A:A/B 測(cè)試方法本身對(duì)用戶量沒(méi)有限制,但是如果實(shí)驗(yàn)樣本太少,就很難看到顯著的結(jié)果,收益比較小。

Q:火山引擎 A/B 測(cè)試和算法等數(shù)據(jù)科學(xué)有哪些結(jié)合的嘗試和實(shí)踐?

A:我們內(nèi)部在做的一些事情可以簡(jiǎn)單介紹一下:比如基于多臂老虎機(jī)的智能實(shí)驗(yàn),已經(jīng)在開(kāi)始應(yīng)用一些算法。此外我們也在探索參數(shù)搜索的實(shí)驗(yàn),提升搜索參數(shù)的速度,讓 A/B 測(cè)試更智能化。

Q:A/B 實(shí)驗(yàn)一般要測(cè)試多才可以看到結(jié)果?

A:嚴(yán)格意義上,開(kāi)多久是和實(shí)驗(yàn)?zāi)軒?lái)的影響有關(guān)系的,以我們的經(jīng)驗(yàn)值來(lái)看,一般是要覆蓋一個(gè)完整的用戶生命周期。我們一般是以周為單位,實(shí)驗(yàn)至少開(kāi)啟1-2周。

Q:A/B 測(cè)試在實(shí)驗(yàn)結(jié)果上有沒(méi)有自動(dòng)歸因的能力,幫用戶直接定位到是什么原因引起實(shí)驗(yàn)結(jié)果好或者差的?

A:前面提到的一些智能化探索會(huì)對(duì)自動(dòng)歸因有幫助,但是自動(dòng)歸因還有一個(gè)很重要的點(diǎn)是,A/B 測(cè)試實(shí)驗(yàn)數(shù)據(jù)背后的原因可能需要很多業(yè)務(wù)知識(shí)的輸入或者很有力的指標(biāo)建設(shè)才能推斷出來(lái)。

Q:如此多的實(shí)驗(yàn),如何保證實(shí)驗(yàn)的正交?

A:我們通過(guò)大量的模擬實(shí)驗(yàn),以及對(duì)系統(tǒng)監(jiān)控的自檢來(lái)保證正交,一旦發(fā)現(xiàn)數(shù)據(jù)超過(guò)了閾值就會(huì)及時(shí)進(jìn)行調(diào)整。

分享到

doitmedia

相關(guān)推薦