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

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

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

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

——by Sean Ellis函數

Sean Ellis 是增加黑客模型(AARRR)之父,增加黑客模型中提到的一個重要思想就是「AB實驗」。測試

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

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

咱們來看兩個著名案例
案例1 :奧巴馬宣傳團隊用AB實驗幫其得到更高的支持率spa

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

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

最終以下方案勝出:
圖片描述

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

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

圖片描述
(上圖爲老版)

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

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

圖片描述

因而可知失敗的產品方案不可怕,可怕的是沒有通過AB實驗就直接上線的公司制度和文化。

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

數據訓練營|BAT都在用的方法,詳解A/B測試的那些坑!
如上是不一樣的引導卡片樣式的AB實驗,最終結果樣式2比樣式1的CTR提高24.8%。

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

二、你的團隊很是有想法,但你們互不相讓,誰也不能說服誰,致使團隊決策變得很困難。

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

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

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

圖片描述

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

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

二、若是在實驗的過程當中有新的方案想法C,可否直接發佈到線上同時實驗?

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

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

五、如何肯定方案B與A的指標數值不一樣是隨機偏差形成仍是統計可信的?

......

AB實驗的基本原理是「控制變量法」。

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

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

AB實驗的做用很大,可是AB實驗的實現並不簡單,每每會踩坑無數。

AB實驗的坑有哪些?
一、人羣不一樣質

AB實驗須要切分流量到不一樣方案,若是不能正確切分,使得分到不一樣方案的用戶羣體特徵分佈一致,那麼實驗將沒有任何意義。爲了便於理解,咱們來看一個例子:

若是咱們要對人羣G作一個AB實驗來找到發放什麼禮品才能使用戶的註冊轉化率更高?A、B分別表明發放不一樣的獎品BB霜與剃鬚刀,G由子羣G1與G2構成(G一、G2分別表明女生、男生,且各佔50%)。按照同質用戶的要求,分給這兩方案的用戶流量中男女比例必須與整體一致,也即女:男=1:1。

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

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

確定是不能的。這個決策至關於認爲女生喜歡的就是男生喜歡的,根據實驗結論,你應該對全部的用戶G都發放註冊轉化率更高的禮品A。試想下男生領到BB霜時他們心裏是何種感覺?

圖片描述
這裏的問題就是不一樣方案分得的人羣是不一樣質帶來的。上述舉的例子爲了便於理解,故比較絕對,實際過程當中遇到更多的是A方案、B方案都是男女混合的羣體,可是比例卻與整體1:1的分佈不一樣,這樣一樣帶來錯誤的實驗結論。

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

二、實驗不一樣時

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

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

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

最後列舉一個咱們參與的一個case讓你們感覺下:

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

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

因爲早期未規範實驗管理規範,兩個樣式的實驗並不是同時開始:

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

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

最終統計的表現不一:

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

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

此處也告訴咱們:

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

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

三、沒有AA實驗的意識

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

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

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

因此具有AB實驗素養的團隊,必定會在AB實驗前佈置AA實驗。

四、實驗反轉

假如一個實驗佈置到線上第一天,方案A比方案B好,可否表明次日,第三天的數據表現仍是如此?

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

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

通常狀況下,咱們不建議樣本量小於1000用戶的產品進行AB實驗,由於實驗結果很可貴到保證。

五、延滯效應

記得咱們在上化學實驗課時,老師必定是先讓你把試管洗乾淨吧?這麼作可不僅是爲了衛生。待實驗的化學藥劑若是與試管中殘留的藥劑混合,則實際實驗的則是這種「被混合的藥劑」,實驗結果固然不可信。上述說的問題就是carry over——延滯效應。

圖片描述
一樣在互聯網產品實驗中,也存在這樣的問題。舉個例子,編號爲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),轉載請註明出處

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

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

相關文章
相關標籤/搜索