0408周五-如何做好ABTest流量分發(fā)-業(yè)界Tricks總結(jié)
流量為王的時(shí)代,如何精準(zhǔn)的利用用戶的流量進(jìn)行分析和產(chǎn)品的迭代?ABTest就是其中不可缺少的一環(huán),那么ABTest是什么呢?下面來(lái)一層一層揭開(kāi)它神秘的面紗。
0.流量分發(fā)在互聯(lián)網(wǎng)流量的分發(fā)模式中,主要的兩種分發(fā)模式為:
- 中心化:平臺(tái)負(fù)責(zé)流量的分配,節(jié)點(diǎn)的流量來(lái)自平臺(tái)分配,平臺(tái)擁有流量的控制權(quán),比如像淘寶、京東、美團(tuán)等互聯(lián)網(wǎng)產(chǎn)品都是一個(gè)中心化的流量分發(fā)模式
- 去中心化:相對(duì)于中心化而言,去中心化模式并不負(fù)責(zé)流量的分配,節(jié)點(diǎn)的流量需要自己獲取,節(jié)點(diǎn)本身?yè)碛辛髁康目刂茩?quán),其中典型的產(chǎn)品是微信,張小龍?jiān)陉U述微信公眾平臺(tái)的八大觀點(diǎn)時(shí),就提到說(shuō)“微信要打造的是一個(gè)真正的去去中心化系統(tǒng),不會(huì)提供一個(gè)中心化的流量入口來(lái)給所有的第三方平臺(tái)”
因?yàn)楸疚闹饕榻B的是ABTest,所以針對(duì)去中心化的模式就不展開(kāi)敘述,主要聊一下中心化模式。
基于不同的流量分發(fā)模式,流量分發(fā)的方式包括:搜索分發(fā)、算法分發(fā)、社交分發(fā)、人工分發(fā)、付費(fèi)分發(fā),其對(duì)應(yīng)的產(chǎn)品如下所示,其中除了社交分發(fā)是屬于去中心化的模式,其他的均屬于中心化的流量分發(fā)方式,可見(jiàn)中心化分發(fā)方式的廣泛性。

其中搜索分發(fā)和算法分發(fā)應(yīng)該是做算法同學(xué)接觸最多的了,因?yàn)樗褟V推的場(chǎng)景下流量的珍貴性和嚴(yán)謹(jǐn)性,是我們算法策略迭代的基石。
在互聯(lián)網(wǎng)行業(yè),無(wú)路是構(gòu)建搜索、廣告、推薦系統(tǒng),還是智能營(yíng)銷等場(chǎng)景,其實(shí)都是圍繞著用戶流量進(jìn)行不同的實(shí)驗(yàn),這其中流量的分發(fā)顯得就格外的重要,因?yàn)槲覀円诓煌牧髁?,進(jìn)行各項(xiàng)指標(biāo)的監(jiān)控和對(duì)比,繼而決策算法策略改進(jìn)的方法。
而流量分發(fā)中一個(gè)很重要的概念就是ABTest(AB實(shí)驗(yàn)),那么什么是ABTest呢?我們往下看。
1.ABTest介紹1.1 ABTest來(lái)源
ABTest的前身是隨機(jī)對(duì)照試驗(yàn)-雙盲測(cè)試,是「醫(yī)療/生物試驗(yàn)將研究對(duì)象隨機(jī)分組,對(duì)不同組實(shí)施不同的干預(yù),對(duì)照起效果」。
雙盲測(cè)試中病人被隨機(jī)分成兩組,在不知情的情況下分別給予安慰劑和測(cè)試用藥,經(jīng)過(guò)一段時(shí)間的實(shí)驗(yàn)后再來(lái)比較這兩組病人的表現(xiàn)是否具有顯著的差異,從而決定測(cè)試用藥是否真的有效。
2000年谷歌工程師進(jìn)行了第一次AB Test,試圖確定在搜索引擎結(jié)果頁(yè)面上顯示的最佳結(jié)果數(shù)量。后來(lái)AB測(cè)試不斷發(fā)展,但基礎(chǔ)和基本原則通常保持不變,2011年,谷歌首次測(cè)試后11年,谷歌進(jìn)行了7000多次不同的AB測(cè)試。
12年奧巴馬競(jìng)選網(wǎng)站的樣式,通過(guò)AB Test 找到了更能吸引募捐,幫助奧巴馬贏得了更高的募捐金額。
1.2 ABTest描述
關(guān)于ABTest并沒(méi)有一個(gè)官方的定義或者怎么樣,因?yàn)閺拿稚衔覀兙涂梢灾榔浯蟾诺谋硎龊x,每個(gè)人理解的都相差無(wú)幾。維基百科上給ABTest下了一個(gè)定義為:
A/B testing is a way to compare two versions of a single variable, typically by testing a subject's response to variant A against variant B, and determining which of the two variants is more effective.
其實(shí)通俗來(lái)講,ABTest就是比較兩個(gè)事物好壞的一套方法論。比如某個(gè)平臺(tái)將不同的用戶分成不同的組,同時(shí)測(cè)試不同的方案,通過(guò)用戶反饋的真實(shí)數(shù)據(jù)來(lái)找出哪一個(gè)方案更好。這解決的是“多種方案需要拍腦袋確認(rèn)哪一種更好的問(wèn)題”。
1.3 ABTest特性
對(duì)于ABTest,有哪些特性呢?如下描述
- 先驗(yàn)性:ABTest 是一種“先驗(yàn)體系”,屬于預(yù)測(cè)型結(jié)論(與其相對(duì)的是后驗(yàn)型的經(jīng)驗(yàn)歸納)。同樣是一個(gè)方案是否好壞:ABTest 通過(guò)小流量測(cè)試獲得具有代表性的實(shí)驗(yàn)結(jié)論,來(lái)驗(yàn)證方案好壞后再?zèng)Q定是否推廣到全量;后驗(yàn)型則是通過(guò)發(fā)布版本后的版本數(shù)據(jù)對(duì)比總結(jié)得到
- 并行性:是指支持兩個(gè)或以上的實(shí)驗(yàn)同時(shí)在線,并需要保證其每個(gè)實(shí)驗(yàn)所處環(huán)境一致。并行性極大的降低了多實(shí)驗(yàn)的時(shí)間成本
- 科學(xué)性:ABTest是用科學(xué)的方式來(lái)驗(yàn)證方案,科學(xué)性體現(xiàn)在流量分配的科學(xué)性、統(tǒng)計(jì)的科學(xué)性。記得在開(kāi)篇提到的“AB測(cè)試的前身是隨機(jī)對(duì)照實(shí)驗(yàn),醫(yī)療/生物實(shí)驗(yàn)將研究對(duì)象隨機(jī)分組,對(duì)不同組實(shí)施不同的干預(yù),對(duì)照起效果”,這要求ABTest將相似特征的用戶均勻的分派到實(shí)驗(yàn)組別中,確保每個(gè)組別的用戶特征相同
1.4 ABTest目的
一些通用目的為:
- 減少發(fā)布新功能或者改版的風(fēng)險(xiǎn),比如某個(gè)產(chǎn)品需要進(jìn)行界面的改版,在沒(méi)有進(jìn)行ABTest的情況貿(mào)然切換到新版,如果引發(fā)用戶流失、相關(guān)指標(biāo)的下降,帶來(lái)的后果是非常嚴(yán)重的。
- 收集用戶的數(shù)據(jù),基于數(shù)據(jù)了解平臺(tái)用戶的偏好,現(xiàn)在很多功能的改動(dòng),都是抄襲競(jìng)品的變化,看對(duì)手動(dòng)了,沒(méi)有去思考對(duì)方為什么這么改動(dòng),是否適合我們的用戶,經(jīng)過(guò)多次AB測(cè)試后,能讓我們更加了解自己的用戶偏好,用戶群的畫(huà)像特征,也更利于下一次改版
- 真正的用數(shù)據(jù)幫助決策,通過(guò)AB實(shí)驗(yàn)的效果數(shù)據(jù),決定策略的迭代和更新
在做推薦算法的過(guò)程中,我們也離不開(kāi)ABTest,這樣的背景下,ABTest的目的主要是評(píng)估優(yōu)化后策略算法的效果,如果我們優(yōu)化的一個(gè)策略相對(duì)于基準(zhǔn)組是正向且顯著的,那么就可以將該策略進(jìn)行推全。
1.5 ABTest局限
ABTest雖然強(qiáng)大,但卻不是萬(wàn)能的,因?yàn)锳BTest是驗(yàn)證方案、想法、策略的有效性,而不是憑空去創(chuàng)造一個(gè)方案、想法、策略。
知乎上有一個(gè)關(guān)于ABTest的描述極其的準(zhǔn)確,分享給大家:
你可以用A/B測(cè)試讓你在已經(jīng)到達(dá)的山上越來(lái)越高,但你不能用它來(lái)發(fā)現(xiàn)一座新的山脈。如果你的產(chǎn)品真正需要的是一個(gè)完整的改造,那么A/B測(cè)試可能做不到
同時(shí)字節(jié)跳動(dòng)創(chuàng)始人張一鳴在清華經(jīng)管學(xué)院,對(duì)問(wèn)題“PM是否可以產(chǎn)品設(shè)計(jì)上是否更多的依賴ABtest而非直覺(jué)?”的解答,也準(zhǔn)確的描述ABTest的意義:
我們認(rèn)為這和ABtest同樣重要。我們反對(duì)從邏輯到邏輯,從邏輯到邏輯,很容易失之毫厘謬以千里。有一手的體驗(yàn)?zāi)軒臀覀冞h(yuǎn)離偏差,我們?cè)敢獍延脩舻母惺?、體會(huì)帶到公司。我們?nèi)蚧牡谝患虑槭呛M庥脩舴答?,提供?lián)系方式,讓用戶可以直接聯(lián)系到我們。PM是需要sense的,AB的science可以用來(lái)的降低在細(xì)節(jié)層面的精力付出。
ABTest是有開(kāi)發(fā)成本的,一個(gè)公司想要打磨出一個(gè)優(yōu)秀的ABTest平臺(tái)必定要投入大量的精力、人力。
ABTest的數(shù)據(jù)只有現(xiàn)象,沒(méi)有詳情。它可以給出實(shí)驗(yàn)組比對(duì)照組的效果好現(xiàn)象,但無(wú)法給出過(guò)程數(shù)據(jù)。測(cè)試相對(duì)復(fù)雜的方案,ABTest無(wú)法表述出具體是哪個(gè)方面呈現(xiàn)出了優(yōu)勢(shì)。
所以說(shuō)ABTest并不是萬(wàn)能的,但是在做產(chǎn)品的過(guò)程中離開(kāi)ABTest也是萬(wàn)萬(wàn)不能的。
2.產(chǎn)品發(fā)展到哪個(gè)階段需要ABTest上面針對(duì)ABTest做了詳細(xì)的介紹,那么在針對(duì)一個(gè)產(chǎn)品做到什么程度需要ABTest呢?當(dāng)然有精力、能力的團(tuán)隊(duì)可以在產(chǎn)品的一開(kāi)始就進(jìn)行ABTest平臺(tái)的建設(shè)和利用,但是大多數(shù)團(tuán)隊(duì)和產(chǎn)品在產(chǎn)品的出去階段并沒(méi)有能力去建設(shè)自己的ABTest平臺(tái)。
所以這個(gè)答案并不是一概而論的,一個(gè)比較通常的理解是當(dāng)產(chǎn)品在初期階段、或者是月活只有幾十萬(wàn)的級(jí)別并不需要搭建復(fù)雜的ABTest平臺(tái),但是這并不說(shuō)明不需要進(jìn)行ABTest,可以利用一些簡(jiǎn)單的做法進(jìn)行ABTest,比如利用用戶的唯一ID做簡(jiǎn)單的Hash進(jìn)行測(cè)試,或者一開(kāi)始設(shè)計(jì)用戶ID時(shí)進(jìn)行自增設(shè)計(jì),這種情況下可以利用ID的尾數(shù)進(jìn)行簡(jiǎn)單的分桶測(cè)試。
當(dāng)產(chǎn)品的月活達(dá)到百萬(wàn)級(jí)別時(shí),這時(shí)候就需要開(kāi)始搭建自己的ABTest平臺(tái)了,這時(shí)候月活已經(jīng)到達(dá)了一定的規(guī)模,需要對(duì)流量進(jìn)行控制和有效的利用,基于此來(lái)進(jìn)行產(chǎn)品的迭代和策略的更替。
當(dāng)產(chǎn)品的月活達(dá)到千萬(wàn)、億級(jí)別時(shí),這時(shí)候自己公司的ABTest平臺(tái)應(yīng)該是達(dá)到了一個(gè)比較完善和精準(zhǔn)的狀態(tài)了,因?yàn)閲?guó)內(nèi)用戶的流量?jī)r(jià)值比較高,這時(shí)候需要進(jìn)行可靠的、精準(zhǔn)的分發(fā)和測(cè)試。
當(dāng)然上述只是筆者自己的觀點(diǎn),不過(guò)大多數(shù)互聯(lián)網(wǎng)公司的產(chǎn)品是符合這個(gè)發(fā)展規(guī)律的。針對(duì)一些大平臺(tái)孵化的一些小產(chǎn)品,可能在產(chǎn)品的初期階段就會(huì)進(jìn)行精準(zhǔn)的ABTest,因?yàn)橐呀?jīng)有成熟的內(nèi)部平臺(tái)可以使用了。
3.ABTest流量切分方式這里結(jié)合推薦系統(tǒng)來(lái)介紹ABTest流量的切分方式,將推薦系統(tǒng)簡(jiǎn)化為召回和精排兩個(gè)過(guò)程。
ABTest流量切分主要有兩種方式:
- 水平的切分方式
- 樹(shù)形的切分方式
水平的切分方式比較容易理解:比如我們有100%的流量,將其中的50%流量分給召回,把剩下的50%流量分給精排。在這種情況下進(jìn)行試驗(yàn),當(dāng)某個(gè)試驗(yàn)的指標(biāo)為正向時(shí),進(jìn)行推全,然后在該部分流量上繼續(xù)進(jìn)行別的試驗(yàn),這種流量切分方式比較直觀,可以看到定向組合流量下得到的試驗(yàn)效果,但是不夠靈活,流量的利用程度不高。
樹(shù)形的切分方式則是將推薦系統(tǒng)中的不同模塊進(jìn)行分層,比如召回是一個(gè)層,精排是一個(gè)層,因?yàn)檎倩爻鰜?lái)的結(jié)果需要匯聚之后送到精排層做排序。這種情況下每層都是100%的流量,可以進(jìn)行流量的充分利用。
一般情況下,采用的流量切分方式為:樹(shù)形的切分+水平的切分。
比如召回100%的流量,召回中又分為多路召回,在召回層中我們可以采樣水平的切分方式,將流量切分為若干個(gè)桶,比如1-10,然后選定基準(zhǔn)桶(假設(shè)編號(hào)為1),然后在剩下的2-10個(gè)桶里進(jìn)行不同的召回試驗(yàn)。同樣可以將精排層的流量劃分為若干個(gè)桶,每個(gè)桶進(jìn)行不同的模型試驗(yàn)、不同的特征試驗(yàn)、不同的參數(shù)試驗(yàn)等。
4.ABTest平臺(tái)應(yīng)該包含哪些功能一個(gè)標(biāo)配的ABtest平臺(tái)應(yīng)該包含哪些功能呢?這里主要借鑒的OPPO的ABTest平臺(tái)知識(shí),詳細(xì)原文可以閱讀:OPPO在A/B實(shí)驗(yàn)分析平臺(tái)的建設(shè)與實(shí)踐
4.1 ABTest的核心能力
從A/B實(shí)驗(yàn)的形態(tài)上來(lái)看,可以分為算法類、產(chǎn)品功能類、頁(yè)面展示類等實(shí)驗(yàn)。從集成端看,可以分為服務(wù)端、客戶端、網(wǎng)關(guān)等。
站在實(shí)驗(yàn)生命周期的角度考慮,一個(gè)完整的實(shí)驗(yàn)流程一般是創(chuàng)建實(shí)驗(yàn) —> 做實(shí)驗(yàn) —> 實(shí)驗(yàn)效果分析 —> 調(diào)整實(shí)驗(yàn)的閉環(huán),流程的示意圖如下。

整個(gè)核心流程主要涉及三個(gè)階段,創(chuàng)建實(shí)驗(yàn)和調(diào)整實(shí)驗(yàn)可歸結(jié)為同一階段,不同的階段各自可以相互獨(dú)立又相關(guān),每個(gè)階段需要提供的能力如下:
- 創(chuàng)建/編輯實(shí)驗(yàn)需要提供實(shí)驗(yàn)相關(guān)的管理,如參數(shù)、變量、版本控制、回滾,流量占比配置等一系列能力,可以抽取出一個(gè)實(shí)驗(yàn)管理模塊
- 做實(shí)驗(yàn)階段主要涉及分流和埋點(diǎn)數(shù)據(jù)上報(bào),分流主要通過(guò)SDK來(lái)實(shí)現(xiàn),同時(shí)還需要一些服務(wù)化的能力提供些外部接口以及SDK的數(shù)據(jù)交互,埋點(diǎn)數(shù)據(jù)主要是實(shí)驗(yàn)數(shù)據(jù)的回收
- 實(shí)驗(yàn)效果分析主要涉及指標(biāo)體系的構(gòu)建和實(shí)時(shí)表報(bào)的開(kāi)發(fā)等一整套o(hù)lap的能力
4.2 實(shí)驗(yàn)管理
試驗(yàn)管理可以理解為一個(gè)易操作的web系統(tǒng),除了管理試驗(yàn)外,需要包含一些相關(guān)的配置功能:業(yè)務(wù)線管理、賬號(hào)管理、權(quán)限管理等。而實(shí)驗(yàn)管理主要涉及:
- 應(yīng)用:是管理所有實(shí)驗(yàn)的單元體,一個(gè)應(yīng)用可以創(chuàng)建多個(gè)AB實(shí)驗(yàn),應(yīng)用也可以理解為一個(gè)個(gè)的實(shí)驗(yàn)場(chǎng)景,比如首頁(yè)推薦、猜你喜歡
- 層:是應(yīng)用內(nèi)流量的橫向劃分,可以創(chuàng)建多層,每層是相同的流量,通過(guò)算法實(shí)現(xiàn)層與層的流量正交,層中包含實(shí)驗(yàn),創(chuàng)建實(shí)驗(yàn)需要指定實(shí)驗(yàn)層,一個(gè)層同時(shí)只能做一個(gè)實(shí)驗(yàn),因?yàn)橐刂谱兞?/li>
- 指標(biāo):在每一個(gè)AB測(cè)試實(shí)驗(yàn)中,用于對(duì)比不同實(shí)驗(yàn)組優(yōu)劣的數(shù)據(jù)就是指標(biāo)(這里需要注意的是分析相關(guān)指標(biāo)需要有相應(yīng)的數(shù)據(jù)上報(bào))
- 實(shí)驗(yàn)組:實(shí)驗(yàn)組和對(duì)照組是一組相對(duì)的概念,AB實(shí)驗(yàn)通常是為了驗(yàn)證一個(gè)新策略的效果,對(duì)照組一般又稱base組
4.3 分流服務(wù)
分流服務(wù)主要解決流量控制和切分,主要參考2010年Google論文《Overlapping Experiment Infrastructure:More, Better, Faster Experimentation》確定了流量模型,劃分了放量域、非重疊域、重疊域,重疊域支持分層,具體的了流量模型如下圖:

確定流量模型后,還需要解決如何分流,即一個(gè)用戶發(fā)起一個(gè)請(qǐng)求,如何命中實(shí)驗(yàn)?這涉及分流算法、用戶標(biāo)識(shí)、標(biāo)簽、流量比例等一系列因素,這里為了突出分流的過(guò)程,結(jié)合分流算法和用戶標(biāo)識(shí),抽象出了分流樹(shù)。如下圖,圖示的灰綠色箭頭為一次請(qǐng)求的完整分流過(guò)程,即一次分流,可能命中多個(gè)實(shí)驗(yàn)或者一個(gè)實(shí)驗(yàn),也可能沒(méi)有任何命中,圖中的hash屬于一種分流算法,目前除了支持Hash算法,還支持隨機(jī)算法,也可讓業(yè)務(wù)方自定義分流算法

服務(wù)主要以SDK的方式提供服務(wù),接入方只需要集成相應(yīng)語(yǔ)言的SDK即可,這樣可以避免不必要的網(wǎng)絡(luò)請(qǐng)求,保障分流的穩(wěn)定性和響應(yīng)延遲。
4.4 實(shí)驗(yàn)效果
實(shí)驗(yàn)效果主要是在進(jìn)行實(shí)驗(yàn)后,針對(duì)AB實(shí)驗(yàn)差別的可視化能力,為了方便業(yè)務(wù)團(tuán)隊(duì)快速的分析,需要構(gòu)建一些基礎(chǔ)的指標(biāo)體系,比如:
- 基礎(chǔ)指標(biāo):PV、UV、人均次數(shù)、滲透率、分位數(shù)、去重
- 自定義組合指標(biāo)
數(shù)據(jù)回收與分析
實(shí)驗(yàn)數(shù)據(jù)的回收,主要使用公司的統(tǒng)一埋點(diǎn)SDK實(shí)現(xiàn),有客戶端將實(shí)驗(yàn)ID映射帶埋點(diǎn)事件,隨埋點(diǎn)上報(bào)到數(shù)據(jù)中心,然后使用flink從kafka消費(fèi)入庫(kù)到分析引擎ClickHouse,為了達(dá)到數(shù)據(jù)延遲在1分鐘以內(nèi),數(shù)據(jù)在flink完成hash分片,然后直接寫(xiě)到ClickHouse本地表。
5.ABTest指標(biāo)選擇與有效性檢驗(yàn)當(dāng)設(shè)計(jì)好ABTest實(shí)驗(yàn)時(shí),最重要的兩點(diǎn)就是實(shí)驗(yàn)評(píng)判指標(biāo)的選擇和實(shí)驗(yàn)結(jié)果的有效性檢驗(yàn)。
5.1 評(píng)判指標(biāo)選擇
做AB實(shí)驗(yàn)之前,需要明確測(cè)試的目的,根據(jù)目標(biāo)去制定合理的指標(biāo)。
比如針對(duì)產(chǎn)品的首頁(yè)改版,我們更加關(guān)注的是老用戶的留存率,因?yàn)椴煌捻?yè)面對(duì)于老用戶的心智影響比較大,老用戶的行為習(xí)慣已經(jīng)被養(yǎng)成了,當(dāng)改動(dòng)頁(yè)面時(shí)老用戶可能會(huì)因?yàn)椴涣?xí)慣新頁(yè)面的變化而流失。所以在做這類實(shí)驗(yàn)時(shí),要盡量避免大的改版,而且改版后給予的流量不要太大,否則影響會(huì)比較大。
比如電商產(chǎn)品的詳情頁(yè)改版,其目的是提高商品詳情頁(yè)的轉(zhuǎn)化率,因此確定指標(biāo)就需要考慮過(guò)程性指標(biāo),也要考慮結(jié)果指標(biāo),當(dāng)然結(jié)果指標(biāo)是最重要的。
過(guò)程性指標(biāo):商品詳情頁(yè)的跳出率、平均停留時(shí)長(zhǎng),頁(yè)面功能的點(diǎn)擊率
結(jié)果指標(biāo):加購(gòu)或者立即購(gòu)買的轉(zhuǎn)化率,支付金額、支付人數(shù)
比如:社區(qū)類產(chǎn)品增加了一個(gè)模塊,目的是增加用戶的粘性
過(guò)程性指標(biāo):新模塊的曝光點(diǎn)擊情況,舊模塊的曝光人數(shù)、舊模塊的點(diǎn)擊人數(shù)來(lái)判斷新增模塊對(duì)舊模塊的負(fù)面影響
結(jié)果指標(biāo):用戶總時(shí)長(zhǎng)、用戶人均時(shí)長(zhǎng)
最終根據(jù)這些指標(biāo)進(jìn)行評(píng)價(jià)功能的好與壞,來(lái)決定新功能是否要保留上線
當(dāng)對(duì)于一些策略的AB實(shí)驗(yàn)時(shí),我們更關(guān)注的則是相關(guān)的業(yè)務(wù)KPI指標(biāo),比較策略算法都是為了業(yè)務(wù)服務(wù)的。經(jīng)常關(guān)注的一些指標(biāo)比如:CTR、CVR、CXR、交易額、RPM等。
5.2 有效性檢驗(yàn)
當(dāng)產(chǎn)出ABTest的結(jié)果時(shí),如何去判斷我們的結(jié)果是否有效呢?
首先需要保證的是我們流量比例,即樣本的量級(jí)。假設(shè)AB兩組實(shí)驗(yàn)的用戶具有相同的標(biāo)準(zhǔn)差
,根據(jù)公式,帶入n1,同時(shí)根據(jù)假設(shè)p值和a值,推導(dǎo)出需要的最低用戶數(shù)。
圖片其次是假設(shè)檢驗(yàn),在適當(dāng)?shù)臈l件下,中心極限定理告訴我們,大量相互獨(dú)立隨機(jī)變量的均值適當(dāng)標(biāo)準(zhǔn)化后依分布收斂于正態(tài)分布,AB測(cè)試采用雙樣本對(duì)照的z檢驗(yàn)公式,顯著性上,根據(jù)z檢驗(yàn)算出p值,通常我們會(huì)用p值和0.05比較,如果p<0.05,我們認(rèn)為AB沒(méi)有顯著差異,置信問(wèn)題上,對(duì)一個(gè)概率樣本的總體參數(shù)進(jìn)行區(qū)間估計(jì)的樣本均值范圍,他展現(xiàn)了這個(gè)均值范圍包含總體參數(shù)的概率,這個(gè)概率稱為置信水平。
從另一個(gè)角度來(lái)說(shuō),AB兩個(gè)實(shí)驗(yàn)組之間即使有差異,也不一定能被觀測(cè)出來(lái),必須保證一定的條件才能使你能觀測(cè)出統(tǒng)計(jì)量之間的差異;否則,結(jié)果也是不置信的。而這個(gè)條件就是開(kāi)頭提到的問(wèn)題,樣本數(shù)量問(wèn)題。
關(guān)于假設(shè)檢驗(yàn),這里就不展開(kāi)表述了,具體可以參考知乎文章:假設(shè)檢驗(yàn)——這一篇文章就夠了
6.業(yè)界的一些ABTest經(jīng)驗(yàn)6.1 ABTest的兩種形式
據(jù)筆者了解到,業(yè)界ABTest的實(shí)現(xiàn)基本有兩種做法:
- 提前劃分好流量進(jìn)行實(shí)驗(yàn)
- 動(dòng)態(tài)配置流量進(jìn)行實(shí)驗(yàn)
第一種就是提前分配好流量,對(duì)應(yīng)的是「流量切分方式」中的水平切分方式,比如將所有的流量劃分為20個(gè)桶,然后選定基準(zhǔn)的試驗(yàn)桶,在剩余的各個(gè)桶內(nèi)進(jìn)行AB實(shí)驗(yàn),當(dāng)實(shí)驗(yàn)效果是顯著正向時(shí),將該實(shí)驗(yàn)進(jìn)行推全(即在每個(gè)實(shí)驗(yàn)桶都進(jìn)行配置,或者做一個(gè)前置的控制)。
第二種則是根據(jù)需要?jiǎng)討B(tài)的劃分流量,這里可以區(qū)分層(比如推薦系統(tǒng)中的召回、粗排、精排等),也可以不進(jìn)行層的區(qū)分。當(dāng)進(jìn)行層的區(qū)分時(shí)就是樹(shù)形的流量切分方式+水平的切分方式,如果不進(jìn)行分層,就是根據(jù)需要?jiǎng)澐?%或者10%或者其他占比的流量進(jìn)行實(shí)驗(yàn)。
針對(duì)第二種分層控制時(shí),我們的召回有若干路,分別使用大些字母ABCD等表示,當(dāng)只有ABC三組召回時(shí),可以進(jìn)行配置的方式為:A:0-33,B:34-67,C:68-99,當(dāng)新增召回源D時(shí),可以將陪配置修改為:A:0-24,B:25-49,C:50-74,D:75-99。依次類推。
這里還有一種特殊的ABTest形式,就是字節(jié)跳動(dòng)的賽馬機(jī)制,不過(guò)這里是針對(duì)item的。其基本原理介紹如下:
- 冷啟動(dòng)推薦:通過(guò)審核后,抖音會(huì)對(duì)實(shí)時(shí)在線用戶進(jìn)行流量分桶,每桶按照總用戶量10%分配進(jìn)行實(shí)驗(yàn)推送,第一步叫冷啟動(dòng)流量池曝光,比如你今天上傳一個(gè)視頻,通過(guò)雙重審核的作品,系統(tǒng)將會(huì)分配給你一個(gè)初始流量池:200-300在線用戶。不論你是不是大號(hào),只要你有能力產(chǎn)出優(yōu)質(zhì)內(nèi)容,就有機(jī)會(huì)跟大號(hào)競(jìng)爭(zhēng)
- 標(biāo)簽積累:分配的視頻流量再進(jìn)行分配實(shí)驗(yàn)組,每個(gè)實(shí)驗(yàn)組按照5%比例分配,并為用戶貼上相近標(biāo)簽
- 加權(quán)推薦:把作品送量測(cè)試給首個(gè)實(shí)驗(yàn)組用戶,根據(jù)用戶反饋的轉(zhuǎn)、評(píng)、贊、完播率等計(jì)算作品基數(shù),決定是否進(jìn)行第二輪推薦及推薦力度。即播放量=A完播率+B 點(diǎn)贊率+C* 評(píng)論率+D* 轉(zhuǎn)發(fā)率。
- 加大流量推薦:達(dá)到通過(guò)推薦基數(shù),繼續(xù)把作品推送下一個(gè)分配實(shí)驗(yàn)組進(jìn)行測(cè)試
- 頂流推薦:進(jìn)入精品推薦池,大規(guī)模曝光,一旦進(jìn)入精品推薦后,人群標(biāo)簽就被弱化了,幾乎每個(gè)抖音用戶都會(huì)刷到
6.2 其他公司的ABTest做法
技術(shù)揭秘大眾點(diǎn)評(píng)大規(guī)模并行AB測(cè)試框架Gemini
教你如何對(duì)產(chǎn)品做AB測(cè)試
7.1 文章
- 流量的概述系列:流量的分發(fā)
- 從數(shù)據(jù)產(chǎn)品經(jīng)理視角,聊聊科學(xué)的AB Test
- OPPO在A/B實(shí)驗(yàn)分析平臺(tái)的建設(shè)與實(shí)踐
- 流量為王:ABTest流量分層分桶機(jī)制
- 假設(shè)檢驗(yàn)——這一篇文章就夠了
7.2 論文
Overlapping Experiment Infrastructure: More, Better, Faster Experimentation
