推薦策略產(chǎn)品經(jīng)理實(shí)操(五):AB 試驗(yàn)
編輯導(dǎo)語:在做產(chǎn)品功能或者需求時(shí),時(shí)常會被人問到這個(gè)功能/需求能夠帶來多大的收益。但其實(shí)我們對于需求所能夠帶來的實(shí)際收益是不明確的。這時(shí),AB test就能夠協(xié)助我們衡量需求收益。本文主要對AB試驗(yàn)的大致邏輯和一些重要節(jié)點(diǎn)和概念進(jìn)行介紹,希望對你有所幫助。
在產(chǎn)品做一個(gè)功能或需求時(shí),聽到最多的疑問就是:你這個(gè)功能/需求能帶來的收益是什么?收益能有多大?那我們怎么去衡量一個(gè)需求帶來的實(shí)際收益?這個(gè)時(shí)候,AB test就是協(xié)助我們衡量需求收益的好朋友。
一、AB test是什么?
專業(yè)術(shù)語說:AB測試的本質(zhì)是分離式組間試驗(yàn),也叫對照試驗(yàn),在科研領(lǐng)域中已被廣泛應(yīng)用(它是藥物測試的最高標(biāo)準(zhǔn))。自2000年谷歌工程師將這一方法應(yīng)用在互聯(lián)網(wǎng)產(chǎn)品以來,A/B測試在國外越來越普及,已逐漸成為互聯(lián)網(wǎng)產(chǎn)品運(yùn)營精細(xì)度的重要體現(xiàn)。
現(xiàn)實(shí)業(yè)務(wù)使用中,我認(rèn)為AB test就是保證2組或多組根據(jù)條件限制劃分的用戶在只有1個(gè)變量條件情況下,對分組用戶的各項(xiàng)數(shù)據(jù)指標(biāo)進(jìn)行匯總,對比指標(biāo)變化漲幅來確定試驗(yàn)好壞,并且伴隨數(shù)據(jù)分析去發(fā)現(xiàn)問題,解決問題的一個(gè)過程;
二、AB test的使用場景
產(chǎn)品UI變動(dòng)時(shí),AB一下新的UI是否會給用戶帶來更好的交互體驗(yàn)和視覺感受;
新增功能,想給產(chǎn)品增加一個(gè)新功能,AB一下新功能能帶來多少收益,后期還值得公司投入多少資源去做這一塊。
推薦系統(tǒng)中,首頁推薦/搜索/推送業(yè)務(wù)都會用到AB test:推薦上用來對比一個(gè)策略、一個(gè)模型、甚至增加或減少一路召回、增加或減少一個(gè)特征、或強(qiáng)插一路新內(nèi)容冷啟動(dòng);搜索加一個(gè)推薦業(yè)務(wù)模型、上一個(gè)意圖識別服務(wù),建一個(gè)自定義糾錯(cuò)庫;推送給用戶推的頻率、推的內(nèi)容、推的時(shí)間等等,這些都需要AB試驗(yàn)去協(xié)助決策。
使用場景很多,以上只是我在工作實(shí)踐中遇到的需要做AB試驗(yàn)的場景。凡是涉及到單一變量的數(shù)據(jù)對比,在用戶進(jìn)行維度打散的情況下,萬物皆可AB。
三、AB test怎么用?
1. 在業(yè)務(wù)中的生效邏輯
AB試驗(yàn),既可以做客戶端試驗(yàn),也可以做服務(wù)端試驗(yàn),下面就根據(jù)客戶端和推薦服務(wù)端和AB試驗(yàn)平臺的試驗(yàn)流程來講一下其中的區(qū)別和生效邏輯:
客戶端試驗(yàn)(左圖),主要是說用戶請求推薦時(shí),客戶端主動(dòng)帶著用戶信息(app版本號、渠道號、新老用戶、用戶onlyid)去AB試驗(yàn)平臺上獲取用戶的試驗(yàn)配置,試驗(yàn)平臺會根據(jù)用戶的onlyid進(jìn)行哈希分流(這個(gè)下面有講到)。
然后將用戶分進(jìn)對應(yīng)的試驗(yàn)組,客戶端會把用戶的試驗(yàn)信息存在本地,每次用戶打開app時(shí)會再去拉取一次配置,然后帶著用戶配置請求推薦接口,推薦會根據(jù)用戶的試驗(yàn)配置返回對應(yīng)的推薦列表。
而服務(wù)端試驗(yàn)(右圖),則是將客戶端請求試驗(yàn)平臺變成了服務(wù)端請求試驗(yàn)平臺獲取用戶試驗(yàn)配置,再返回對應(yīng)的推薦列表。
2種試驗(yàn)方式各有利弊,客戶端試驗(yàn)不需要再經(jīng)過服務(wù)端獲取用戶配置就能直接請求AB試驗(yàn)平臺,邏輯上相對簡單些,但是缺點(diǎn)是客戶端依賴版本更新,版本迭代較慢,試驗(yàn)全量起來比較慢,不好控制。
服務(wù)端試驗(yàn)的缺點(diǎn)則是需要在邏輯上多加一層去請求AB試驗(yàn)平臺獲取用戶配置,但發(fā)版較快且不受客戶端版本更新限制,試驗(yàn)全量比較好控制。
2. 業(yè)務(wù)指標(biāo)建設(shè)
通常,我們做AB試驗(yàn)的時(shí)候,都會根據(jù)當(dāng)下試驗(yàn)新增幾個(gè)試驗(yàn)指標(biāo),當(dāng)然,所有的試驗(yàn)都會帶上大盤指標(biāo)。根據(jù)公司業(yè)務(wù)和規(guī)劃的差異,各公司的大盤指標(biāo)都會存在差異,電商類產(chǎn)品多關(guān)注點(diǎn)擊率、成交率、留存以及GMV等指標(biāo)。
視頻類產(chǎn)品多關(guān)注滲透率(完播率)、轉(zhuǎn)化率等,資訊類產(chǎn)品多關(guān)注點(diǎn)擊率、轉(zhuǎn)化率、留存等。一般都會關(guān)注的大盤指標(biāo)就是留存,留存又分進(jìn)組留存和活躍留存。
業(yè)務(wù)指標(biāo)建設(shè)的時(shí)候,主要會根據(jù)這個(gè)試驗(yàn)的初衷來設(shè)置,比如,我這個(gè)試驗(yàn)的目的是想提升點(diǎn)擊率,那么,點(diǎn)擊率的指標(biāo)就是我此次試驗(yàn)的核心指標(biāo);如果試驗(yàn)是為了提升轉(zhuǎn)化率,那么從開始到結(jié)束的每一步轉(zhuǎn)化率指標(biāo),就是我們試驗(yàn)的核心指標(biāo)。
當(dāng)然,并非所有的試驗(yàn)都需要大盤數(shù)據(jù)增長才是好試驗(yàn),而一些代碼重構(gòu),或換系統(tǒng)等試驗(yàn),多數(shù)需要保證大盤指標(biāo)數(shù)據(jù)無下降即可。
3. 用戶進(jìn)組設(shè)置
試驗(yàn)平臺是怎么將用戶分配到某個(gè)試驗(yàn)組中的?簡單來說就是桶位算法。
可以理解為將用戶流量分為了100個(gè)桶位(現(xiàn)實(shí)中會分成1000個(gè)桶位或更多),假設(shè)我們要開一個(gè)10%流量的試驗(yàn),需要對用戶onlyid進(jìn)行哈希取余,如果余數(shù)落在前10個(gè)桶位,用戶就命中這10%的流量,否則就不命中實(shí)驗(yàn),用戶也就不會進(jìn)這個(gè)實(shí)驗(yàn)組。
4. 試驗(yàn)層流量控制
AB試驗(yàn)可以單層,也可以多層,通常根據(jù)產(chǎn)品的用戶量來決定是否采取多層試驗(yàn),用戶量較大,業(yè)務(wù)較多時(shí),需要做的試驗(yàn)也越多,就需要通過多層試驗(yàn)?zāi)J饺ミM(jìn)行AB,實(shí)現(xiàn)流量最大化利用。
(1)單層試驗(yàn)
單層試驗(yàn)上,流量100%,每個(gè)試驗(yàn)的流量是互斥的,舉例,試驗(yàn)1的用戶,命中試驗(yàn)1,就不會再進(jìn)同一個(gè)試驗(yàn)層上的試驗(yàn)2或試驗(yàn)3,在單層試驗(yàn)上,用戶只能進(jìn)一個(gè)試驗(yàn)的一個(gè)組,即便是對照組流量,也是如此。
每個(gè)試驗(yàn)的流量至少會分成2組,也有多組試驗(yàn),有試驗(yàn)組和對照組,每個(gè)試驗(yàn)中的各試驗(yàn)組的流量分配可以均勻分配,也可以自定義分配。
(2)多試驗(yàn)層——分層流量
多層試驗(yàn),可以理解是多個(gè)單層試驗(yàn)的組合,每個(gè)試驗(yàn)層就是上面說的單層試驗(yàn),而試驗(yàn)層與試驗(yàn)層之間的流量是正交的,也就是說,在召回層的試驗(yàn)1和試驗(yàn)2的2個(gè)用戶,在召回層是互斥的,但在粗排層,很有可能在一個(gè)試驗(yàn)中,而在其他層,可能又會中其他的試驗(yàn),業(yè)務(wù)越復(fù)雜,試驗(yàn)層越多。
當(dāng)兩個(gè)試驗(yàn)處于不同層時(shí),需要保證試驗(yàn)內(nèi)容互不相關(guān),也就是相同的試驗(yàn)配置需要開在一個(gè)單層試驗(yàn)層上互斥,否則將會干擾試驗(yàn)數(shù)據(jù)。通常,用戶量大一些的公司,都會采取多試驗(yàn)層,這樣試驗(yàn)流量也多,且各試驗(yàn)之間互不干擾。
四、AB test數(shù)據(jù)控制
1. AB試驗(yàn)的原理是什么?如何判斷數(shù)據(jù)置信?置信區(qū)間怎么計(jì)算?
AB試驗(yàn)的原理就是統(tǒng)計(jì)對照組用戶和試驗(yàn)組用戶的樣本數(shù)據(jù)(主要是樣本平均數(shù)和樣本方差),通過正太分布公式,計(jì)算試驗(yàn)組總體樣本數(shù)據(jù)比對照組總體樣本數(shù)據(jù)提升或下降的概率。
怎么判斷一個(gè)試驗(yàn)的結(jié)果是否置信?這里需要講到2個(gè)概念:P值(p_value)和置信區(qū)間(可以看一些專業(yè)的相關(guān)文章)。
什么是P值?P值也叫顯著性水平,可以理解P值是一個(gè)概率,是一個(gè)統(tǒng)計(jì)學(xué)上的衡量指標(biāo),有很多算法都可以統(tǒng)計(jì)出P值,通常用的比較多的是雙側(cè)雙樣本T檢驗(yàn),Z分?jǐn)?shù)算出來P值(這里不做過多介紹)。
知道本質(zhì)是通過進(jìn)組用戶樣本算出檢驗(yàn)統(tǒng)計(jì)量,再通過統(tǒng)計(jì)量算出P值就可以了。是指在原假設(shè)為真的條件下,樣本數(shù)據(jù)拒絕原假設(shè)這樣一個(gè)事件發(fā)生的概率。
置信區(qū)間(Confidence interval)就是用來對一個(gè)概率樣本的總體參數(shù)的進(jìn)行區(qū)間估計(jì)的樣本均值范圍。置信區(qū)間展現(xiàn)了這個(gè)均值范圍包含總體參數(shù)的概率,這個(gè)概率稱為置信水平。
(1)顯著正向舉例
置信區(qū)間為: [0.356269%, 3.063578%],p-value: 0.013292
試驗(yàn)版本樣本均值對比對照版本的變化率為1.709294%。在95%置信度下,置信區(qū)間為[0.356269%, 3.063578%],統(tǒng)計(jì)顯著正向說明當(dāng)前的樣本容量條件下已經(jīng)檢測出試驗(yàn)版本優(yōu)于對照版本。
(2)顯著負(fù)向舉例
置信區(qū)間為: [–0.161000%, –0.043200%],p-value: 0.000682
試驗(yàn)版本樣本均值對比對照版本的變化率為-13.064318%。在95%置信度下,置信區(qū)間為[-0.161000%, -0.043200%],統(tǒng)計(jì)顯著負(fù)向說明當(dāng)前的樣本容量條件下已經(jīng)檢測出試驗(yàn)版本劣于對照版本
(3)不顯著舉例
置信區(qū)間為: [-0.999858%, 0.989777%],p-value: 0.992076
試驗(yàn)版本樣本均值對比對照版本的變化率為-0.005041%。在95%置信度下,置信區(qū)間為[-0.999858%, 0.989777%],置信區(qū)間一負(fù)一正,試驗(yàn)結(jié)果是非統(tǒng)計(jì)顯著的
這里可以簡單的理解為試驗(yàn)組與對照組之間樣本的總體均值之差是一個(gè)范圍,如果這個(gè)范圍同正,那么試驗(yàn)就為顯著正向,如果同負(fù),那么試驗(yàn)就是顯著負(fù)向,如果范圍一正一負(fù),就說明試驗(yàn)數(shù)據(jù)不置信。
2. 單天數(shù)據(jù)和多天數(shù)據(jù)怎么計(jì)算?多天數(shù)據(jù)用戶去重?
大多數(shù)試驗(yàn)都需要開多天,我們觀察試驗(yàn)數(shù)據(jù)的時(shí)候,既需要觀察好幾天的數(shù)據(jù),也需要對比每一天的數(shù)據(jù),每一天的數(shù)據(jù)計(jì)算就是根據(jù)指標(biāo)計(jì)算方式來計(jì)算即可,但指標(biāo)的多天數(shù)據(jù)展示并不丹丹是簡單的多天相加這樣。
例如求用戶人均時(shí)長指標(biāo)的多天數(shù)據(jù),就會將多天的用戶去重進(jìn)行人均時(shí)長計(jì)算,或者其他指標(biāo)用用戶去重求均值的方式計(jì)算多天指標(biāo),這一步主要看業(yè)務(wù)指標(biāo)的定義以及需要對比的數(shù)據(jù)是什么性質(zhì)。
基本上就是天級加和求平均和用戶去重計(jì)算均值這2種方式。
3. 存在數(shù)據(jù)波動(dòng)
我們開試驗(yàn)的時(shí)候,有時(shí)候會遇到一些數(shù)據(jù)波動(dòng)的情況,比如大盤數(shù)據(jù)今天是顯著下降的,但是第二天數(shù)據(jù)有做平了,第三天又微降了,這種時(shí)候通常是因?yàn)樵囼?yàn)流量太小,用戶量太少導(dǎo)致的數(shù)據(jù)波動(dòng),解決的辦法主要是擴(kuò)大試驗(yàn)流量以及長期觀察(一周左右),試驗(yàn)中每個(gè)試驗(yàn)組保證單天進(jìn)組用戶人數(shù)在10萬+是比較置信的流量,數(shù)據(jù)量過少不能輸出置信的結(jié)果。
五、根據(jù)實(shí)際業(yè)務(wù)試驗(yàn)改編舉例
之前得一篇文章介紹過負(fù)反饋功能,那這里我們就以負(fù)反饋功能的增加作為AB試驗(yàn)實(shí)例進(jìn)行擴(kuò)展,這里就是新增功能AB,因?yàn)樯婕暗焦緲I(yè)務(wù),因此以下試驗(yàn)內(nèi)容做了細(xì)節(jié)調(diào)整;
1. 功能開發(fā)、埋點(diǎn)注冊
這一步在前面的文章中講過,主要就是功能的設(shè)計(jì)和相關(guān)埋點(diǎn)的設(shè)計(jì)和注冊,后期需要分析的數(shù)據(jù)都需要在這一步準(zhǔn)備好,因此這一步至關(guān)重要;
2. 試驗(yàn)設(shè)計(jì)
(1)試驗(yàn)內(nèi)容
- 對照組:base(基線,沒有負(fù)反饋功能)
- 試驗(yàn)組1:負(fù)反饋1(有負(fù)反饋功能)
- 試驗(yàn)組2:負(fù)反饋2(有負(fù)反饋功能,且新老用戶都會觸發(fā)1次引導(dǎo))
- 試驗(yàn)組3:負(fù)反饋3(有負(fù)反饋功能,且只有老用會戶觸發(fā)1次引導(dǎo))
(2)版本限制
appversioncode>=XXX(這里主要是針對客戶端版本更新做限制)
(3)試驗(yàn)層
可以在多層試驗(yàn)中單獨(dú)新建一個(gè)試驗(yàn)層進(jìn)行試驗(yàn);
(4)試驗(yàn)流量
XX%(這里需要提前計(jì)算我們需要的試驗(yàn)用戶量當(dāng)下一共有多少量,假設(shè)我們一共需要10萬用戶,而我們需要的版本用戶目前一共有100萬用戶,那么我們的試驗(yàn)就需要開10%的流量)
3. 試驗(yàn)指標(biāo)設(shè)置
這個(gè)試驗(yàn)對比大盤數(shù)據(jù)的影響我們在開始試驗(yàn)之前就能大概預(yù)測到不會有太大影響,因?yàn)橥裙δ芨采w率都不高。
但是還是需要確保該功能不會給大盤數(shù)據(jù)帶來負(fù)向影響,主要還有對首頁推薦的點(diǎn)擊、轉(zhuǎn)化指標(biāo)是否有影響,基本上都是講和功能可能會造成的影響對應(yīng)的數(shù)據(jù)指標(biāo)設(shè)置成試驗(yàn)指標(biāo)就可以。
4. 取數(shù)分析
試驗(yàn)進(jìn)行到一個(gè)置信的階段(數(shù)據(jù)顯著增長或下降或者用戶量夠多時(shí)間夠長的情況下),我們就可以下試驗(yàn)結(jié)論。
而下結(jié)論之前我們需要去取數(shù)分析,這里是一個(gè)功能試驗(yàn),那么就需要計(jì)算一下這個(gè)功能的覆蓋率(使用功能的用戶占數(shù)/這個(gè)功能的日活用戶數(shù)),功能的數(shù)據(jù)轉(zhuǎn)化(觸發(fā)功能的用戶有多少使用了這個(gè)功能),以及使用這些功能的用戶的用戶分群數(shù)據(jù)。
例如,1萬個(gè)用戶觸發(fā)了這個(gè)功能,有9000個(gè)用戶使用了這個(gè)功能,而9000個(gè)用戶中男女比例為1:3,等等,這些細(xì)化數(shù)據(jù)都需要我們后期的分析,因?yàn)樵囼?yàn)數(shù)據(jù)沒有變化,不代表功能沒有意義。
可能是這個(gè)功能在某一類用戶群上有正向效果,在另一類用戶群上有負(fù)向效果,然后正負(fù)效果相抵消了。這些細(xì)化分析都需要在做的時(shí)候考慮到。
5. 結(jié)論、優(yōu)化方向
當(dāng)我們細(xì)化試驗(yàn)數(shù)據(jù)以后,就可以對試驗(yàn)下一個(gè)結(jié)論,試驗(yàn)是正向還是負(fù)向,在某些用戶上是正向,在某些用戶上是負(fù)向。
這里對用戶的分群可以是根據(jù)用戶app版本、用戶年齡段、性別、新老用戶、用戶渠道等等各種維度。得出結(jié)論后,如果不能上線或數(shù)據(jù)不是正向,我們就可以知道下一步的優(yōu)化方向是什么,朝著優(yōu)化方向繼續(xù)進(jìn)行AB試驗(yàn)或其他的操作,直到我們不再優(yōu)化或迭代,這一個(gè)功能試驗(yàn)才算結(jié)束。
以上就是本次AB試驗(yàn)的大致邏輯和一些重要節(jié)點(diǎn)和概念的介紹。
加油,打工人!
本文由 @王珂 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理,未經(jīng)作者許可,禁止轉(zhuǎn)載。
題圖來自Unsplash,基于CC0協(xié)議。
如何才能加到作者微信呢?可以告知下嗎?
果斷收藏
給大佬跪了
寫的好專業(yè)~真的秀
內(nèi)容蠻詳細(xì)的,頂一下