數據訓練營|BAT都在用的方法,詳解A

作者|螞蟻金服人工智能部產品經理 範磊

本文首發|微信公眾號 友盟數據服務 (ID:umengcom),轉載請註明出處

If you are not running experiments,you are probably not growing!

——by Sean Ellis

Sean Ellis 是增長黑客模型(AARRR)之父,增長黑客模型中提到的一個重要思想就是“AB實驗”。

從某種意義上講,自然界早就給了我們足夠多的啟示。為了適應多變的環境,生物群體每天都在發生基因的變異,最終物競天擇,適者生存,留下了最好的基因。這個精巧絕倫的生物算法恐怕是造物者佈置的最成功的AB實驗吧。

數據訓練營|BAT都在用的方法,詳解A/B測試的那些坑!

將目光轉到互聯網世界,AB實驗的受重視程度正在空前提高。

我們來看兩個著名案例

案例1 :奧巴馬宣傳團隊用AB實驗幫其獲得更高的支持率

2008年,奧巴馬在競選中勝出,出任美國第44任總統,這離不開其個人人格魅力,但他的競選宣傳團隊的作用也是不可忽略的,在總統競選頁面上,他的團隊就用AB實驗在16種方案中找到了最佳方案,將競選頁面"change"的轉化率提升40.6%。

數據訓練營|BAT都在用的方法,詳解A/B測試的那些坑!

數據訓練營|BAT都在用的方法,詳解A/B測試的那些坑!

實驗這樣設計的:圖一中的圖片或視頻與圖二中的不同文案按鈕任意組合,形成4*4共16種不同方案組合,每個方案都獲得一定比例的流量,觀察一段時間後,從中選擇轉化率最高的方案,推廣到全部用戶。

最終如下方案勝出:

數據訓練營|BAT都在用的方法,詳解A/B測試的那些坑!

其團隊事後給出的解釋是:視頻播放給用戶很大壓力,且當時的網絡環境不能保證播放效果,故視頻不如圖片,且美國人崇尚家庭文化,一副溫馨的全家福圖片能拉近與選民的距離。至於按鈕文案,則是因為美國選民的獨立思考意識高,“join us”、“sign up”等文案讓人感覺非常簡單粗暴,有煽動的嫌疑,所以大家更接受平和一點的“learn more”。

案例2 :Facebook用AB實驗挽救了20%的虧損

2012年,Facebook的產品vp Sam Lessin在扎克伯克的大力支持下,親率30人團隊花費大半年時間開發了一款新的版本。在上線前邀請的一些外部用戶與內部員工的評價中,新版本酷炫時尚,比老版本好看的多。如圖:

數據訓練營|BAT都在用的方法,詳解A/B測試的那些坑!

(上圖為老版)

數據訓練營|BAT都在用的方法,詳解A/B測試的那些坑!

(上圖為新版)

Facebook不愧是一家世界一流的互聯網公司,重大的迭代一定會進行AB實驗。他們先分配1%的流量給新版本,然後逐漸增多到2%,5%......實驗的結果出乎大家意料,新版本在用戶參與度、在線時長、廣告展示數、營收等四個核心指標的表現上嚴重落後老版本,剛開始大家覺得可能是用戶不習慣,但隨著新版本流量放大到12%,觀察的時間也拉長到3個月,但情況同樣很糟,新版本直接導致了20%的營收下降。最終Facebook壯士斷腕,讓所有用戶回滾到老版本,這才恢復了之前的數據。

而在國內,一家知名的大學生社交網站因為看到了正在進行小流量實驗的B方案,就直接copy並快速全流量上線,結果你們都知道的。到現在,這家網站已經徹底淪為了三流互聯網產品。

數據訓練營|BAT都在用的方法,詳解A/B測試的那些坑!

由此可見失敗的產品方案不可怕,可怕的是沒有經過AB實驗就直接上線的公司制度和文化。

我們再來看國內一線公司內的一個AB實驗case吧!

數據訓練營|BAT都在用的方法,詳解A/B測試的那些坑!

如上是不同的引導卡片樣式的AB實驗,最終結果樣式2比樣式1的CTR提升24.8%。

你的團隊是否有這樣的問題?

1、不經過AB實驗就直接全流量上線,成員在上線後拼命找數據證明自己正確,即便證據牽強,只要向外發佈聲明都千篇一律##指標又提升了##,眾人紛紛點贊。要知道Google、Facebook、Microsoft做AB實驗的經驗是——90%的新設計都不如線上版本。及時你的團隊也很牛,但也不至於把谷哥、face哥、微軟哥吊打吧?

2、你的團隊非常有想法,但大家各執己見,誰也不能說服誰,導致團隊決策變得很困難。

數據訓練營|BAT都在用的方法,詳解A/B測試的那些坑!

團隊的改變從第一個AB實驗開始——誰的方案好,誰的方案能推全,與其吵吵吵,不如佈置個AB實驗,用數據來PK。

下文為你詳細解釋下AB實驗的基本概念和常踩之坑。

什麼是AB實驗?

舉個例子,你提出了一個產品改進方案(假設叫B),但不確定是否效果比線上版本(假設叫A)好,於是就將線上用戶1%的流量分到B,99%的流量分到A,持續觀察一段時間,如果B比A好,就將B推到100%的流量,如果A比B好,那就重新修改你的設計方案,重新再做實驗。而如果不做AB實驗直接上線新方案,如Facebook的例子,新方案甚至可能會毀掉你的產品。這裡的方案可能是一組算法、一組文案、一組運營活動、一組UI樣式,同時實驗的並不一定是AB兩種方案,很可能是ABCDE...實驗。

數據訓練營|BAT都在用的方法,詳解A/B測試的那些坑!

AB實驗會遇到的問題

AB實驗的實現當然不會像上面的例子一樣簡單,比如你會遇到下面的問題:

1、如何確保1%的流量與99%的流量用戶群特徵分佈是一致的?

2、如果在實驗的過程中有新的方案想法C,能否直接發佈到線上同時實驗?

3、如何同時並行所需總流量超過100%的多組實驗?

4、如何選取指標衡量AB方案,如果多個指標數據表現不一,怎麼決策?

5、如何確定方案B與A的指標數值不同是隨機誤差造成還是統計可信的?

......

AB實驗的基本原理是“控制變量法”。

設指標數值=F({隱變量列}、{顯變量列(含方案變量)})。一個指標的數據表現是由函數F和多個變量取值共同決定,所以指標衡量結果不能簡單歸因於方案的差異,特別是其中還有很多我們永遠無法知道的隱變量在施加影響。

那麼我們是否要知道F和所有的變量才能下結論麼?還有更加簡便的方法。我們可以確保兩個方案中其他的變量保持一致,那麼A、B方案的指標結果差異就只能歸結為版本的差異。AB實驗就是利用控制變量法的思想,保證各個產品方案針對同質人群(特徵分佈相同)、同一時間進行實驗,確保了除方案變量外其他變量一致,故能判定指標差異是方案不同造成的,從而選擇出優勝版本全流量上線,實現數據增長。

AB實驗的作用很大,但是AB實驗的實現並不簡單,往往會踩坑無數。

AB實驗的坑有哪些?

1、人群不同質

AB實驗需要切分流量到不同方案,如果不能正確切分,使得分到不同方案的用戶群體特徵分佈一致,那麼實驗將沒有任何意義。為了便於理解,我們來看一個例子:

如果我們要對人群G做一個AB實驗來找到發放什麼禮品才能使用戶的註冊轉化率更高?

A、B分別代表發放不同的獎品BB霜與剃鬚刀,G由子群G1與G2構成(G1、G2分別代表女生、男生,且各佔50%)。按照同質用戶的要求,分給這兩方案的用戶流量中男女比例必須與總體一致,也即女:男=1:1。

這時,發生了一些意外......

實驗中分給方案A的群體不幸都是G1(女生),分給方案B的群體是G2(男生),最終一種獎品比另外一種獎品有更高的註冊轉化率,比如A高於B,那麼這時能下結論“獎品A比獎品B更受用戶喜歡,應該給所有用戶發放獎品A”麼?

肯定是不能的。這個決策相當於認為女生喜歡的就是男生喜歡的,根據實驗結論,你應該對所有的用戶G都發放註冊轉化率更高的禮品A。試想下男生領到BB霜時他們內心是何種感受?

數據訓練營|BAT都在用的方法,詳解A/B測試的那些坑!

這裡的問題就是不同方案分得的人群是不同質帶來的。上述舉的例子為了便於理解,故比較絕對,實際過程中遇到更多的是A方案、B方案都是男女混合的群體,但是比例卻與總體1:1的分佈不同,這樣同樣帶來錯誤的實驗結論。

所以設計合理的分流算法,確保分流到每個方案的都是同一特徵分佈的人群是AB實驗結論可信的前提。達爾文AB實驗系統經過一年多的探索,已形成一套相對可靠的分流算法。

2、實驗不同時

在上面的例子中,如果方案A與方案B都是分到同一特徵分佈的群體G,那麼數據一定具有可比性麼?不一定。還是用極端的例子幫助理解。假設第一天,A方案分到100萬個用戶流量,B方案分到0個用戶流量,第二天A方案分到0個流量,B方案分到100萬個用戶流量,從整體看,這兩天的A方案與B方案的累計實驗流量都是100萬,且人群是同質的,實驗結果應該可信,但事與願違,如果這是一個社交網站,實驗是為了觀察不同產品版本A和B下用戶的主動加好友數量,則A方案明顯優勢大很多,畢竟用戶多了一整天的時間去添加好友,這種情況下任何時間截面數據B都處於劣勢,且這種劣勢並不是方案不同造成的。同理,一個博客網站,如果對比不同方案下用戶的博客開通率、撰寫率,也可能犯同樣的錯誤。

另外一種情況是,在一些特殊日子中,用戶的活躍度會暫時性增高,如果A方案的作用時間剛好是節日,方案B的作用時間非節日,那麼顯然這種比較對於B方案是不公平的。

上文提到的公式:“指標結果=F({隱變量列}、{顯變量列(含方案變量)})”,隱變量、顯變量中很大一部分跟時間相關,時間不同,這些變量的取值也不同,從而就破壞了控制變量法的前提,得不出正確的實驗結論。

最後列舉一個我們參與的一個case讓大家感受下:

數據訓練營|BAT都在用的方法,詳解A/B測試的那些坑!

樣式1的文案:《葵花寶典》帶你輕鬆使用XXX

樣式2的文案:哪些功能最熱門,我來告訴你

由於早期未規範實驗管理規範,兩個樣式的實驗並非同時開始:

1、樣式1,在4月7日的10:00開始實驗

2、樣式2,在4月7日的0:00開始實驗

最終統計的表現不一:

如果看4月7日10:00之後進入實驗的用戶數據,樣式2比樣式1的CTR只提升了大約0.3%,符合實驗同時的前提條件,因此結論可信;

但如果看4月7日全天的數據,樣式2比樣式1的CTR提升了大約1%,這個不符合我們提到的實驗同時做的條件,結論不可信;

此處也告訴我們:

1、進行對比的各個實驗版本(上文的樣式1與樣式2)一定要同時開啟實驗

2、實驗過程中不能隨意修改每個版本的流量,這也會間接導致上述問題

3、沒有AA實驗的意識

AA實驗是AB實驗的孿生兄弟,有的互聯網公司也叫空轉實驗。AA指的是實驗中的各個方案都是一致的。這麼做的目的是啥?這是為了測試埋點、分流、實驗統計的正確性,增加AB實驗的實驗結論可信度。

設命題1為:“如果實驗的埋點、分流和統計都沒有問題,那麼AA實驗中各個方案的數據表現一定一致”,若命題1成立,則其逆否命題2:“如果AA實驗中各個方案的數據表現存在顯著差異,則實驗的埋點、分流和統計肯定至少一項有問題。”也必定成立。

嚴格意義上講AA實驗的通過並不能證明上述三項(埋點、分流、統計)絕對沒有問題,但是AA實驗不通過一定能證明上述三項至少一項存在問題。

所以具備AB實驗素養的團隊,一定會在AB實驗前佈置AA實驗。

4、實驗反轉

假如一個實驗佈置到線上第一天,方案A比方案B好,能否代表第二天,第三天的數據表現還是如此?

用戶進入到新方案中,很可能因為好奇而表現的更加活躍,但隨著時間推移,逐漸趨於冷靜,數據表現回到本該有的水平,如果實驗觀察期設置的過早,則容易得出錯誤的結論。反過來也如此,有的改版用戶很不習慣,但用了熟練之後發現比老版更便捷,數據會逐漸回暖。

另外一方面,做實驗的樣本量太少,也可能出現反轉,拋100次硬幣和拋100萬次硬幣正面的頻次很可能不一樣,根據大數定律,隨著隨機實驗的次數增加,隨機變量的頻次分佈趨向於其概率分佈。在這裡,假設實驗的第一天只有100個用戶進入,由於樣本量太少,實驗結果的隨機性太強,隨著天數增加,實驗樣本也增加,實驗結果可能會反轉。

一般情況下,我們不建議樣本量小於1000用戶的產品進行AB實驗,因為實驗結果很難得到保證。

5、延滯效應

記得我們在上化學實驗課時,老師一定是先讓你把試管洗乾淨吧?這麼做可不只是為了衛生。待實驗的化學藥劑如果與試管中殘留的藥劑混合,則實際實驗的則是這種“被混合的藥劑”,實驗結果當然不可信。上述說的問題就是carry over——延滯效應。

數據訓練營|BAT都在用的方法,詳解A/B測試的那些坑!

同樣在互聯網產品實驗中,也存在這樣的問題。舉個例子,編號為00001-10000與編號10001-20000的用戶之前被分到不同的實驗方案(A和B)進行實驗,這個實驗結束後團隊開始要進行一個新的實驗,如果沒有特殊處理,則可能00001-10000及10001-20000的用戶也是被分到兩個方案中(A1,B1),此時實驗結果可信麼?00001-10000的用戶之前經歷過方案A,現在全部落在了方案A1上,10001-20000的用戶之前經歷了方案B,現在全部落在了方案B1上,也許在做第一個實驗前兩個用戶群是同質的,但做了第一個實驗後,這兩個群體已經不同質,要進行第二個實驗則必須採用一定的算法將兩個用戶群重新打散,獲得 一個新的編號排列,再切分出兩個同質人群進行第二個實驗,或者重新拿出新的號段出來實驗,比方20001-30000,30001-40000。

以上列舉的只是一些常識性的坑,實際過程中還會遇到更多.....

在國內的頂級互聯網公司BAT中,AB實驗已非常普遍,百度同時有上千個AB實驗並行,阿里巴巴和騰訊也有自己的AB實驗系統用以支持多業務大規模並行的AB實驗。

“如何把AB實驗文化根植到公司的基因中去?”,時代正在向所有的互聯網公司發出提問。

本文首發自微信公眾號 友盟數據服務 (ID:umengcom),轉載請註明出處

數據智能 驅動品牌 / 業務持續增長

歡迎點擊:【友盟+】官網 瞭解更多解決方案

歡迎搜索:www.umeng.com 瞭解更多解決方案


分享到:


相關文章: