如何設(shè)計(jì)一個(gè) A/B test?
實(shí)驗(yàn)設(shè)計(jì)
AB Test 實(shí)驗(yàn)一般有 2 個(gè)目的:
- 判斷哪個(gè)更好:例如,有 2 個(gè) UI 設(shè)計(jì),究竟是 A 更好一些,還是 B 更好一些,我們需要實(shí)驗(yàn)判定
- 計(jì)算收益:例如,最近新上線了一個(gè)直播功能,那么直播功能究竟給平臺帶了來多少額外的 DAU,多少額外的使用時(shí)長,多少直播以外的視頻觀看時(shí)長等
我們一般比較熟知的是上述第 1 個(gè)目的,對于第 2 個(gè)目的,對于收益的量化,計(jì)算 ROI,往往對數(shù)據(jù)分析師和管理者非常重要。
對于一般的 ABTest 實(shí)驗(yàn),其實(shí)本質(zhì)上就是把平臺的流量均勻分為幾個(gè)組,每個(gè)組添加不同的策略,然后根據(jù)這幾個(gè)組的用戶數(shù)據(jù)指標(biāo),例如:留存、人均觀看時(shí)長、基礎(chǔ)互動(dòng)率等等核心指標(biāo),最終選擇一個(gè)最好的組上線。
實(shí)驗(yàn)的幾個(gè)基本步驟一般如下:
流量分配
實(shí)驗(yàn)設(shè)計(jì)時(shí)有兩個(gè)目標(biāo):
- 希望盡快得到實(shí)驗(yàn)結(jié)論,盡快決策
- 希望收益最大化,用戶體驗(yàn)影響最小
因此經(jīng)常需要在流量分配時(shí)有所權(quán)衡,一般有以下幾個(gè)情況:
- 不影響用戶體驗(yàn):如 UI 實(shí)驗(yàn)、文案類實(shí)驗(yàn)等,一般可以均勻分配流量實(shí)驗(yàn),可以快速得到實(shí)驗(yàn)結(jié)論
- 不確定性較強(qiáng)的實(shí)驗(yàn):如產(chǎn)品新功能上線,一般需小流量實(shí)驗(yàn),盡量減小用戶體驗(yàn)影響,在允許的時(shí)間內(nèi)得到結(jié)論
- 希望收益最大化的實(shí)驗(yàn):如運(yùn)營活動(dòng)等,盡可能將效果最大化,一般需要大流量實(shí)驗(yàn),留出小部分對照組用于評估 ROI
根據(jù)實(shí)驗(yàn)的預(yù)期結(jié)果,大盤用戶量,確定實(shí)驗(yàn)所需最小流量,可以通過一個(gè)網(wǎng)站專門計(jì)算所需樣本量:
- 以次日留存率為例,目前大盤次日留存率 80%,預(yù)期實(shí)驗(yàn)?zāi)軌蛱嵘?0.2pp
(這里的留存率可以轉(zhuǎn)換為點(diǎn)擊率、滲透率等等,只要是比例值就可以,如果估不準(zhǔn),為了保證實(shí)驗(yàn)?zāi)軌虻玫浇Y(jié)果,此處可低估,不可高估,也就是 0.2pp 是預(yù)期能夠提升地最小值)
- 網(wǎng)站計(jì)算,最少樣本量就是 63W
(這里的最少樣本量,指的是最少流量實(shí)驗(yàn)組的樣本量)
- 如果我們每天只有 5W 的用戶可用于實(shí)驗(yàn)(5W 的用戶,指最少流量實(shí)驗(yàn)組是 5W 用戶),63/ 5 = 13 天,我們需要至少 13 天才能夠得到實(shí)驗(yàn)結(jié)論
如果我們預(yù)期提升的指標(biāo)是人均時(shí)長、人均 VV 等,可能就比較復(fù)雜了,我們需要運(yùn)用 t 檢驗(yàn)反算,需要的樣本量:
實(shí)驗(yàn)效果
我們以一個(gè)稍復(fù)雜點(diǎn)的運(yùn)營活動(dòng)實(shí)驗(yàn)為例,活動(dòng)有方案 1、方案 2,同時(shí)為了量化 ROI,對照組沒有運(yùn)營活動(dòng)。
需要回答幾個(gè)問題
- 方案 1 和方案 2,哪個(gè)效果更好?
- 哪個(gè) ROI 更高?
- 長期來看哪個(gè)更好?
- 不同群體有差異嗎?
第 1 個(gè)問題,方案 1 和方案 2,哪個(gè)效果更好?
還是要運(yùn)用假設(shè)檢驗(yàn),對于留存率、滲透率等漏斗類指標(biāo),采用卡方檢驗(yàn):
對于人均時(shí)長類等均值類指標(biāo),采用t 檢驗(yàn):
通過上假設(shè)檢驗(yàn),如果結(jié)論置信,我們就能夠得到方案 1 和方案 2 在哪像指標(biāo)更好(有顯著性差異), 對于不置信的結(jié)論,盡管方案 1 和方案 2 的指標(biāo)可能略有差異,但可能是數(shù)據(jù)正常波動(dòng)產(chǎn)生。
第 2 個(gè)問題,哪個(gè) ROI 更高?
一般有活動(dòng)相比無活動(dòng),留存、人均時(shí)長等各項(xiàng)指標(biāo)均會(huì)顯著,我們不再重復(fù)上述的假設(shè)檢驗(yàn)過程。
對于 ROI 的計(jì)算,成本方面,每個(gè)實(shí)驗(yàn)組成本可以直接計(jì)算,對于收益方面,就要和對照組相比較,假定以總?cè)栈钴S天(即 DAU 按日累計(jì)求和)作為收益指標(biāo),需要假設(shè)不做運(yùn)營活動(dòng),DAU 會(huì)是多少,可以通過對照組計(jì)算,即:
- 實(shí)驗(yàn)組假設(shè)不做活動(dòng)日活躍天 = 對照組日活躍天 * (實(shí)驗(yàn)組流量 / 對照組流量)
- 實(shí)驗(yàn)組收益 = 實(shí)驗(yàn)組日活躍天 - 實(shí)驗(yàn)組假設(shè)不做活動(dòng)日活躍天
這樣就可以量化出每個(gè)方案的 ROI。
第 3 個(gè)問題,長期來看哪個(gè)更好?
這里就要考慮新奇效應(yīng)的問題了,一般在實(shí)驗(yàn)上線前期,用戶因?yàn)樾迈r感,效果可能都不錯(cuò),因此在做評估的時(shí)候,需要觀測指標(biāo)到穩(wěn)定態(tài)后,再做評估。
例如有的時(shí)候出現(xiàn),剛剛上線前期,實(shí)驗(yàn)組效果更好,但是經(jīng)過以端時(shí)間,用戶的新鮮感過去了,實(shí)驗(yàn)組的效果可能更差,因此,從長遠(yuǎn)收益來看,我們應(yīng)該選擇對照組,是實(shí)驗(yàn)組的新奇效應(yīng)欺騙了我們,在做實(shí)驗(yàn)分析時(shí),應(yīng)剔除新奇效應(yīng)的部分,待平穩(wěn)后,再做評估
第 4 個(gè)問題,不同用戶群體有差異嗎?
很多情況下,對新用戶可能實(shí)驗(yàn)組更好,老用戶對照組更好;對年輕人實(shí)驗(yàn)組更好,中年人對照組更好,
作為數(shù)據(jù)分析師,分析實(shí)驗(yàn)結(jié)論時(shí),還要關(guān)注用戶群體的差異。
實(shí)驗(yàn)結(jié)束
實(shí)驗(yàn)結(jié)束后需要:
- 反饋實(shí)驗(yàn)結(jié)論,包括直接效果(滲透、留存、人均時(shí)長等)、ROI
- 充分利用實(shí)驗(yàn)數(shù)據(jù),進(jìn)一步探索分析不同用戶群體,不同場景下的差異,提出探索性分析
- 對于發(fā)現(xiàn)的現(xiàn)象,進(jìn)一步提出假設(shè),進(jìn)一步實(shí)驗(yàn)論證
更高級的實(shí)驗(yàn)
對于長線業(yè)務(wù),可能同時(shí)有數(shù)十個(gè)實(shí)驗(yàn)同時(shí)進(jìn)行,不但對比每項(xiàng)小迭代的差異,同時(shí)對比專項(xiàng)對大盤的貢獻(xiàn)量、部門整體對大盤的貢獻(xiàn)量,這樣就需要運(yùn)用到了實(shí)驗(yàn)的層域管理模型。
- 對比每個(gè)產(chǎn)品細(xì)節(jié)迭代的結(jié)果
- 對比每個(gè)專項(xiàng)在一個(gè)階段的貢獻(xiàn)
- 對比整個(gè)項(xiàng)目在一個(gè)階段的貢獻(xiàn)
多個(gè)活動(dòng)交集量化的實(shí)驗(yàn)設(shè)計(jì)
作為數(shù)據(jù)分析師,多團(tuán)隊(duì)合作中,經(jīng)常遇到多業(yè)務(wù)交集的問題,以我近期主要負(fù)責(zé)的春節(jié)活動(dòng)為例,老板會(huì)問:
- 春節(jié)活動(dòng)-明星紅包子活動(dòng)貢獻(xiàn)了多少 DAU?春節(jié)活動(dòng)-家鄉(xiāng)卡子活動(dòng)貢獻(xiàn)了多少 DAU?
- 春節(jié)活動(dòng)總共貢獻(xiàn)了多少 DAU?
嚴(yán)謹(jǐn)一點(diǎn),我們采用了 AB 實(shí)驗(yàn)的方式核算,最終可能會(huì)發(fā)現(xiàn)一個(gè)問題:春節(jié)活動(dòng)各個(gè)子活動(dòng)的貢獻(xiàn)之和,不等于春節(jié)活動(dòng)的貢獻(xiàn),為什么呢?
- 有的時(shí)候,活動(dòng) A 和活動(dòng) B,有著相互放大的作用,這個(gè)時(shí)候就會(huì) 1+1 > 2
- 還有的時(shí)候,活動(dòng) A 和活動(dòng) B,本質(zhì)上是在做相同的事情,這個(gè)時(shí)候就會(huì) 1+1 < 2
這個(gè)時(shí)候,我們準(zhǔn)確量化春節(jié)活動(dòng)的貢獻(xiàn),就需要一個(gè)【貫穿】所有活動(dòng)的對照組,在 AB 實(shí)驗(yàn)系統(tǒng)中通俗稱作貫穿層。
(說明:實(shí)驗(yàn)中,各層的流量是正交的,簡單理解,例如,A 層的分流采用用戶 ID 的倒數(shù)第 1 位,B 層的分流采用用戶 ID 的倒數(shù)第 2 位,在用戶 ID 隨機(jī)的情況下,倒數(shù)第 1 位和倒數(shù)第 2 位是沒有關(guān)系的,也稱作相互獨(dú)立,我們稱作正交。當(dāng)然,AB Test 實(shí)驗(yàn)系統(tǒng)真實(shí)的分流邏輯,是采用了復(fù)雜的 hash 函數(shù)、正交表,能夠保證正交性。)
這樣分層后,我們可以按照如下的方式量化貢獻(xiàn):
- 計(jì)算春節(jié)活動(dòng)的整體貢獻(xiàn):實(shí)驗(yàn)填充層-填充層填充組 VS 貫穿層-貫穿層填充組
- 計(jì)算活動(dòng) A 的貢獻(xiàn):活動(dòng) A 實(shí)驗(yàn)層中,實(shí)驗(yàn)組 VS 對照組
- 計(jì)算活動(dòng) B 的貢獻(xiàn):活動(dòng) B 實(shí)驗(yàn)層中,實(shí)驗(yàn)組 VS 對照組
業(yè)務(wù)迭代的同時(shí),如何與自身的過去比較
上面談到了【貫穿層】的設(shè)計(jì),貫穿層的設(shè)計(jì)其實(shí)不但可以應(yīng)用在多個(gè)活動(dòng)的場景,有些場景,我們的業(yè)務(wù)需要和去年或上個(gè)季度的自身對比,同時(shí)業(yè)務(wù)還不斷在多個(gè)方面運(yùn)用 AB Test 迭代。
類似與上面這種層次設(shè)計(jì),在推薦系統(tǒng)中較為常見,在某一些產(chǎn)品或系統(tǒng)中,貫穿層不能夠完全沒有策略,那么采用去年或上個(gè)季度的策略,代表著基準(zhǔn)值,從而量化新一個(gè)周期的增量貢獻(xiàn)
我們可以量化:
- 每個(gè)小迭代對整個(gè)系統(tǒng)的貢獻(xiàn):實(shí)驗(yàn)層中的實(shí)驗(yàn)組 VS 對照組
- 周期內(nèi),系統(tǒng)全部迭代與上個(gè)周期的比較:實(shí)驗(yàn)填充層 VS 貫穿層 1(或貫穿層 2)
- 同時(shí),可以量化去年策略的自然增長或下降,以衡量舊有系統(tǒng)是否具有長期的適用性(作為系統(tǒng)設(shè)計(jì)者,更應(yīng)鼓勵(lì)設(shè)計(jì)具有長期適應(yīng)性的系統(tǒng)):貫穿層 1(上個(gè)季度的策略)VS 貫穿層 2(去年的策略)
更為復(fù)雜的實(shí)驗(yàn)設(shè)計(jì)
我以我目前負(fù)責(zé)的業(yè)務(wù),微視任務(wù)福利中心的實(shí)驗(yàn)設(shè)計(jì)為例,舉例一個(gè)更復(fù)雜的實(shí)驗(yàn)系統(tǒng)設(shè)計(jì),綜合了上面提到的 2 個(gè)目的:
- 量化每一個(gè)實(shí)驗(yàn)迭代為系統(tǒng)帶來的增量貢獻(xiàn)
- 量化每一類迭代(如 UI 迭代、策略迭代),在一個(gè)階段的增量貢獻(xiàn)
- 量化系統(tǒng)整體在上一個(gè)周期(季度、年)的增量貢獻(xiàn)
- 量化任務(wù)福利中心的整體 ROI(本質(zhì)上,是給用戶一些激勵(lì),促進(jìn)用戶活躍,獲得更多商業(yè)化收益,所以和推薦系統(tǒng)不同的是,需要有完全沒有任務(wù)福利中心的對照組,用戶量化 ROI)