本篇的目的是從三個(gè)不均勻性的角度,對(duì) AB 實(shí)驗(yàn)進(jìn)行一個(gè)認(rèn)知的普及,最終著重講述 AB 實(shí)驗(yàn)的一個(gè)普遍的問(wèn)題,即實(shí)驗(yàn)準(zhǔn)確度問(wèn)題。
一、AB 實(shí)驗(yàn)場(chǎng)景
在首頁(yè)中,我們是用紅色基調(diào)還是綠色基調(diào),是采用門店小列表外 + 商品 feed(左圖),還是采用門店大列表囊括商品 feed(右圖),哪種更吸引用戶瀏覽下單呢,簡(jiǎn)單來(lái)處理讓 50% 的用戶看到左圖效果,讓 50% 的用戶看到右圖效果,最終通過(guò)點(diǎn)擊量,單量等指標(biāo)進(jìn)行比對(duì)得出結(jié)論,這是典型的 AB 實(shí)驗(yàn)場(chǎng)景
二、AB 實(shí)驗(yàn)的定義
A/B 實(shí)驗(yàn)就是針對(duì)想迭代的產(chǎn)品功能,提供兩種不同的備選解決方案,然后讓一部分用戶使用方案 A,另一部分用戶使用方案 B,最終通過(guò)實(shí)驗(yàn)數(shù)據(jù)對(duì)比來(lái)確定最優(yōu)方案。 從定義里我們就可以看出來(lái),最直觀的一個(gè)概念,就是用戶的分流,此時(shí)就涉及到分流人數(shù)是否均勻的問(wèn)題,即人數(shù)比例的均勻性。
三、AB 中的三個(gè)不均勻
1、人數(shù)比例的不均勻
目前 AB 實(shí)驗(yàn)的分流核心算法是通過(guò)的哈希算法,假設(shè)我們按用戶名做為分流因子,使用 murmurhash 算法,以 100 桶制為例,確定一個(gè)人的位置的算法就是
//將用戶名通過(guò)hash算法計(jì)算出一個(gè)整數(shù) int hashNum = MurmurHash3.murmurhash3_x86_32(useName) //整數(shù)值對(duì)100取模 int bucket = hashNum % 100;當(dāng)我們定義一個(gè)實(shí)驗(yàn)兩個(gè)策略的人數(shù)均為 50% 時(shí),那么 bucket 為 0-49 的用戶由 AB 系統(tǒng)標(biāo)記為 A, 業(yè)務(wù)系統(tǒng)根據(jù) A 標(biāo)記,使得用戶使用方案 A bucket 為 50-99 的用戶由 AB 系統(tǒng)標(biāo)記為 B, 業(yè)務(wù)系統(tǒng)根據(jù) B 標(biāo)記,使得用戶使用方案 B。 可是我們都知道哈希算法并不是絕對(duì)均勻的,當(dāng) 100 人時(shí),基本上不會(huì)出現(xiàn)有 50 個(gè)人走 A,50 個(gè)人走 B,但是 1 萬(wàn)個(gè)人的時(shí)候,兩部分流量可能就接近了 1:1,10 萬(wàn)人的時(shí)候可能更接近 1:1。 之前有位運(yùn)營(yíng)的同學(xué)問(wèn)過(guò),為什么不能用一種很均勻的算法,比如第一個(gè)人來(lái)了,放入 A,第二個(gè)人來(lái)了放入 B,第三個(gè)人來(lái)了放入 A,第四個(gè)人來(lái)了放入 B....,這樣一天 1W 個(gè)人來(lái),5000 個(gè)取 A 策略,5000 個(gè)取 B 策略。 假設(shè)我們真的這么做了,第一天是 OK 的,第二天進(jìn) A 只來(lái)了 4000 人,這樣還是不均勻的,如果你第二天仍然按第一天的規(guī)則重新分配,這樣會(huì)有一部分人亂了策略,不符合我們固定人群走固定策略的實(shí)驗(yàn)?zāi)康摹?所以說(shuō)這個(gè)不均勻是無(wú)解的,HASH 算法是目前最理想的解決方案,前提是你需要一定的流量,流量越大,分流相對(duì)就比較準(zhǔn)確。
2、人群素質(zhì)的不均勻
我們假設(shè)流量足夠大,人數(shù)比例很均勻了,但是還有個(gè)問(wèn)題就是人群素質(zhì)的均勻問(wèn)題。這里的素質(zhì)包括消費(fèi)能力,活躍度,年齡等各種人群因素。 假設(shè)現(xiàn)在我們的活動(dòng)統(tǒng)一采用的 A 策略(現(xiàn)狀),我們想驗(yàn)證一下 B 策略(新策略)會(huì)不會(huì)帶來(lái)客單價(jià)的提升,就直接做了 AB 實(shí)驗(yàn),還按 1:1 比例來(lái)分流,發(fā)現(xiàn)使用 A 方案的人群客單價(jià)是 100,使用客單價(jià) B 的人群是 96,此時(shí)我們能認(rèn)為原有 A 方案優(yōu)于 B 方案嗎?其實(shí)是不能的,怎樣確定這種人群素質(zhì)的差異呢,可以采用 AA 實(shí)驗(yàn),就是兩部分人都走 A,進(jìn)行分開統(tǒng)計(jì),可能會(huì)發(fā)現(xiàn),位于 0-49 桶的人群本身客單價(jià)就是 100,而位于 50-99 桶的人群可能只有 94,這么看來(lái) B 方案是能提升客單價(jià)的,因?yàn)槲挥?50-99 桶的人群本身指標(biāo)就差一些。 當(dāng)然 AA 不是必須的,可能你有整體的客單價(jià)指標(biāo),上了 B 策略后發(fā)現(xiàn)整體提升了,這種情況相當(dāng)于灰度驗(yàn)證了,但實(shí)際情況是比較復(fù)雜的,整體指標(biāo)你是不清楚的(因?yàn)檫@里的整體可能只是你取的業(yè)務(wù)中的一部分流量)。 所以解決素質(zhì)不均勻的手段就是采用 AA 提前確定差異性,再在這個(gè)差異性基礎(chǔ)上看差異的變化。
3、實(shí)驗(yàn)間影響的不均勻
這個(gè)不均勻性是最復(fù)雜的,一般做實(shí)驗(yàn)我們走兩種極端: 第一種是完全不復(fù)用人群,每個(gè)實(shí)驗(yàn)人群都是獨(dú)立的,這樣的話效果比較準(zhǔn)確,但是弊端是,當(dāng)所有流量都被用去后,不能有新實(shí)驗(yàn)開始,必須等待有結(jié)束的實(shí)驗(yàn)后才能繼續(xù)做。 第二種,所有實(shí)驗(yàn)都用全部流量,此時(shí)我們認(rèn)為實(shí)驗(yàn)雖然互相之間有影響,但是這種影響是正交的,量大的時(shí)候應(yīng)該是均勻的,如下圖所示,P 實(shí)驗(yàn)的兩個(gè)策略人群,到 Q 實(shí)驗(yàn)時(shí),對(duì) Q 的兩個(gè)策略影響是均勻的。
這種可以滿足無(wú)限個(gè)實(shí)驗(yàn),想做多少實(shí)驗(yàn)都可以,但弊端是,實(shí)驗(yàn)太多,必然有影響不均勻的,且我們無(wú)法消除這種不均勻。 所以我們想能不能結(jié)合以上兩種情況來(lái)處理呢,結(jié)合 google 的 Overlapping Experiment Infrastructure 文章我們?cè)O(shè)計(jì)出分層的實(shí)驗(yàn)管理模型
首先我們將總流量分成兩部分,正交域,垂直域(含對(duì)比區(qū)) 我們假設(shè)如圖取 80% 的流量用做正交閾,20% 用作垂直域,垂直域中有 5% 用做對(duì)比區(qū)。 上圖正交域下 4 個(gè)層,層內(nèi)實(shí)驗(yàn)流量互斥,層間實(shí)驗(yàn)流量正交,我們將可能會(huì)互相影響的實(shí)驗(yàn)放到同一層內(nèi)進(jìn)行流量互斥,而影響不大的實(shí)驗(yàn)可以放到不同層內(nèi)。 垂直域中的實(shí)驗(yàn)流量只能互斥,且不與任何實(shí)驗(yàn)正交,可以理解用最純正的流量做實(shí)驗(yàn),可以 I1 和 I2 兩個(gè)策略間對(duì)比,也可以 I1 或 I2 和對(duì)比域(現(xiàn)狀)比對(duì)。 那此時(shí)有一個(gè)很重要的問(wèn)題需要解決,我們?cè)趺创_定哪些實(shí)驗(yàn)互相影響較大,需要放到同一層下。 有一些簡(jiǎn)單標(biāo)準(zhǔn),比如入口不一樣,目標(biāo)不一樣等等,這種可以放到不同層,我們可以忽略正交不均勻的問(wèn)題,反之就不行。 比如活動(dòng)頁(yè)劵對(duì)單量提升度的實(shí)驗(yàn)和會(huì)員頁(yè)面入會(huì)效果的實(shí)驗(yàn),就可以放到不同層。 而首頁(yè)上滿減活動(dòng)實(shí)驗(yàn)對(duì)客單價(jià)提升的實(shí)驗(yàn)和同樣首頁(yè)買贈(zèng)活動(dòng)對(duì)客單價(jià)提升的實(shí)驗(yàn),最好是不共用用戶,放到同層比較合適。 但對(duì)于很多實(shí)驗(yàn)是不太容易通過(guò)簡(jiǎn)單規(guī)則來(lái)確定的,需要大數(shù)據(jù)的同學(xué)和產(chǎn)品,甚至研發(fā)來(lái)共同決定實(shí)驗(yàn)放到哪些層和哪些實(shí)驗(yàn)互斥,這確實(shí)在實(shí)際的運(yùn)作中是最難的點(diǎn)。 總之采用這種策略,可以復(fù)用流量的同時(shí)還可以降低不必要的互相影響,比較綜合考慮了流量和準(zhǔn)確度問(wèn)題。
四、總結(jié)
現(xiàn)在我們對(duì)以上問(wèn)題進(jìn)行總結(jié),從問(wèn)題到解決方案上來(lái)認(rèn)識(shí) ab 實(shí)驗(yàn) 1、人群做不到絕對(duì)的均勻,只能通過(guò) HASH 算法,結(jié)合一定的流量來(lái)解決。 2、通過(guò) AA 實(shí)驗(yàn),來(lái)提前確定人群素質(zhì)的不均勻。最終的實(shí)驗(yàn)數(shù)據(jù)結(jié)合 AA 實(shí)驗(yàn)數(shù)據(jù)來(lái)確定最終效果。 3、設(shè)計(jì)出正交垂直域,正交閾內(nèi)多個(gè)層,每個(gè)層內(nèi)放可能相互影響的實(shí)驗(yàn),層內(nèi)互斥,層間正交,保留垂直域,為要求精準(zhǔn)的實(shí)驗(yàn)留出流量,來(lái)解決實(shí)驗(yàn)間相互影響的問(wèn)題。 本篇從核心分流與實(shí)驗(yàn)間相互影響角度講解 ab 實(shí)驗(yàn),希望能引起大家在做實(shí)驗(yàn)前能有更多的思考,來(lái)更準(zhǔn)確的驗(yàn)證自己想要的效果,希望大家有興趣的可以留言討論。
審核編輯 :李倩
-
算法
+關(guān)注
關(guān)注
23文章
4612瀏覽量
92900 -
模型
+關(guān)注
關(guān)注
1文章
3243瀏覽量
48842
原文標(biāo)題:從不均勻性角度淺析AB實(shí)驗(yàn)
文章出處:【微信號(hào):OSC開源社區(qū),微信公眾號(hào):OSC開源社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論