隨著互聯(lián)網(wǎng)的高速發(fā)展捻激,每天都有成千上萬新應(yīng)用盒揉,新功能上線盗冷。對(duì)于擁有大流量的應(yīng)用來說,一個(gè)微小的頁面改版或者后臺(tái)推薦算法一個(gè)微小的參數(shù)調(diào)整都會(huì)帶來巨大的影響得封,如何能夠相對(duì)安全的驗(yàn)證這些改動(dòng)是否真正有助于業(yè)務(wù)的正向提高埋心?最容易想到做到的就是做AB實(shí)驗(yàn)。
A/B test 原理
AB測(cè)試是互聯(lián)網(wǎng)領(lǐng)域通用的方法呛每。將用戶分成幾組相似的用戶群踩窖,實(shí)驗(yàn)組展示新版本功能,對(duì)照組展示老版本功能晨横,根據(jù)用戶反饋數(shù)據(jù)洋腮,評(píng)估新版本的好壞。
科學(xué)的AB實(shí)驗(yàn)要求保證每次實(shí)驗(yàn)只有一個(gè)變量手形,各組其他所有元素都必須保持一致啥供。如果每個(gè)變量都獨(dú)立切分流量會(huì)大大制約實(shí)驗(yàn)的效率,一是實(shí)驗(yàn)流量變少库糠,得出顯著結(jié)果的時(shí)間會(huì)拉長(zhǎng)伙狐。二是可以并行的實(shí)驗(yàn)量受到了制約。如果不切分流量實(shí)驗(yàn)瞬欧,無法驗(yàn)證效果的變化究竟是那個(gè)改動(dòng)帶來的贷屎。比如首頁廣告位優(yōu)化了展示樣式,后端同時(shí)也更新了推薦算法參數(shù)艘虎。那最后用戶的停留時(shí)間和點(diǎn)擊率的變化究竟是誰的貢獻(xiàn)哪唉侄?顯然就無從得知了
而目前市面上各個(gè)公司對(duì)上述問題的解決,都是基于谷歌的這篇論文《Overlapping ExperimentInfrastructure More, Better, Faster Experimentation》的理念去設(shè)計(jì)的野建,我目前的公司也不例外属划。具體見下圖
對(duì)著這張圖我們來講幾個(gè)概念。
1.流量正交:層與層之間流量是正交的候生,一份流量穿越每層實(shí)驗(yàn)時(shí)同眯,都會(huì)再次隨機(jī)打散,且隨機(jī)效果離散唯鸭。
2.流量互斥:實(shí)驗(yàn)在同一層拆分流量须蜗,且不論如何拆分,不同組的流量是不重疊的目溉。
3.分層原則:通常來說有依賴關(guān)系的實(shí)驗(yàn)點(diǎn)必須劃分在同一層唠粥,例如頁面背景顏色和字體顏色必須在同一層,如果頁面背景顏色和字體顏色都被設(shè)置成藍(lán)色停做,那么我們就看不到頁面上的字了)晤愧,沒有依賴關(guān)系的實(shí)驗(yàn)點(diǎn)可以劃分在不同層,每個(gè)變量實(shí)驗(yàn)點(diǎn)只出現(xiàn)在一個(gè)層中蛉腌,不會(huì)出現(xiàn)在多層中官份。
圖中的PC,M站烙丛,APP舅巷,相當(dāng)于是3個(gè)域,各個(gè)域的流量之和等于該公司的100%流量河咽。
每個(gè)域下可以切分流量正交層钠右,即圖中示意的推薦,搜索忘蟹,購(gòu)物車推薦飒房,大促推薦搁凸,商詳頁推薦,UI狠毯。 這6層的流量是相等的且等于APP域的流量(這里是指不考慮各個(gè)場(chǎng)景間流量損失的情況下护糖,各層間應(yīng)是如水流一樣,流量相等嚼松。)
每一層中可以再進(jìn)行具體的實(shí)驗(yàn)嫡良,進(jìn)行流量互斥。比如在推薦里的召回層献酗,進(jìn)行切分了召回策略實(shí)驗(yàn)1寝受,2,3.這個(gè)時(shí)候 召回策略1+2+3的流量之和= 召回層的流量=推薦層的流量=APP域的流量罕偎。
所以通過這樣一套設(shè)計(jì)后很澄,就可以非常高效便捷的實(shí)現(xiàn)多層實(shí)驗(yàn)的并行且相互無干擾。
什么時(shí)候不適合A/B test ?
主要是兩種場(chǎng)景下锨亏,A/B test 會(huì)失效:
1)從測(cè)試到全量時(shí)痴怨,無法控制非實(shí)驗(yàn)條件不變
常見的線上產(chǎn)品是用戶自己使用,比如你刷抖音和別人刷抖音其實(shí)是互不干擾的器予,抖音修改了算法在20%用戶下算法效果提升浪藻,在全量用戶后算法效果應(yīng)該也是提升的。
但如果放量后人群間會(huì)互相影響乾翔,就難以保證A/B test 的實(shí)驗(yàn)效果了爱葵。比如滴滴的分單算法做了調(diào)整,一半的司機(jī)使用新算法反浓,一半的司機(jī)使用舊算法萌丈,新算法的司機(jī)如果拿了更多的訂單,就會(huì)影響其余司機(jī)雷则。那么可能全量之后算法效果不變或者下降辆雾。
2)不能做隨機(jī)性分配的場(chǎng)景:
典型的如商品定價(jià)策略,由于涉及大數(shù)據(jù)殺熟問題月劈,你是不能直接做商品原價(jià)的A/B 測(cè)試的度迂。
從A/B test 聯(lián)想到經(jīng)濟(jì)學(xué)的外部性
之前做一些項(xiàng)目分析時(shí),很容易只關(guān)注到調(diào)整部分的提升與否猜揪。就像微觀經(jīng)濟(jì)學(xué)的假設(shè)視角惭墓,關(guān)注在任何的外部變量后,微觀的變化如何而姐,再推廣至全局腊凶。但是很容易忽略的是,微觀的改變,對(duì)系統(tǒng)中其他個(gè)體的外部性钧萍,這些外部性可能是正褐缠,可能是負(fù),會(huì)對(duì)整個(gè)系統(tǒng)有影響划煮。所以不能只因?yàn)橐恍┳兞繉?dǎo)致這部分微觀群體的收益提升了送丰,就認(rèn)為系統(tǒng)整體收益提升了缔俄。
舉個(gè)我最近的工作例子弛秋。我對(duì)一批加價(jià)商品做了特殊的策略處理,并投放到feeds的指定坑位進(jìn)行流量加權(quán)俐载。一開始我只去關(guān)注這批商品加價(jià)后蟹略,訂單的下降/提升,流量的機(jī)會(huì)成本遏佣,損失的訂單收益 及加價(jià)后的收益是否能打平挖炬。
但是卻忽略了這批商品對(duì)于整個(gè)feeds場(chǎng)景的擠壓,忽略了這個(gè)場(chǎng)景整體的GMV變化情況状婶。
關(guān)于A/B test就先聊到這了意敛。A/B結(jié)果衡量P-value值等,大家可以再去自行了解膛虫,不過多介紹草姻。下一期接著聊電商。