【运营】关于A/BTest的简单介绍
A/BTest
分離式組間試驗,也叫對照試驗,科研領域(藥物測試)中已廣泛應用。
簡單來說,A/B測試在產品優(yōu)化中的應用方法是:在產品正式迭代發(fā)版之前,為同一個目標制定兩個(或以上)方案,將用戶流量對應分成幾組,在保證每組用戶特征相同的前提下,讓用戶分別看到不同的方案設計,根據(jù)幾組用戶的真實數(shù)據(jù)反饋,科學的幫助產品進行決策。
?
ABTest的一些特性:
先驗性:?A/B測試其實是一種“先驗”的試驗體系,屬于預測型結論,與“后驗”的歸納性結論差別巨大。同樣是用數(shù)據(jù)統(tǒng)計與分析版本的好壞,以往的方式是先將版本發(fā)布,再通過數(shù)據(jù)驗證效果,而A/B 測試卻是通過科學的試驗設計、采樣樣本代表性、流量分割與小流量測試等方式來獲得具有代表性的試驗結論,這樣就可以用很少的樣本量就能推廣到全部流量可信。
并行性:?A/B測試是將兩個或以上的方案同時在線試驗,這樣做的好處在于保證了每個版本所處環(huán)境的一致性,便于更加科學客觀地對比優(yōu)劣。同時,也節(jié)省了驗證的時間,無需在驗證完一個版本之后再測試另一個。
科學性:?這里強調的是流量分配的科學性。A/B 測試的正確做法,是將相似特征的用戶均勻的分配到試驗組中,確保每個組別的用戶特征的相似性,從而避免出現(xiàn)數(shù)據(jù)偏差,使得試驗的結果更有代表性。
基于OpenResty的分流機制
Nginx 是俄羅斯人發(fā)明的, Lua 是巴西幾個教授發(fā)明的,中國人章亦春把 LuaJIT VM 嵌入到 Nginx 中,實現(xiàn)了 OpenResty 這個高性能服務端解決方案。
通過 OpenResty,你可以把 nginx 的各種功能進行自由拼接, 更重要的是,開發(fā)門檻并不高,這一切都是用強大輕巧的 Lua 語言來操控。
穩(wěn)定分流的實現(xiàn):murmurHash算法
說道ketamahash,它是一致性哈希算法,一般說來都是由若干固定的虛擬節(jié)點來計算出每個虛擬節(jié)點的slots,數(shù)據(jù)存儲的時候,算出key的slot值,然后存入相鄰最近的虛擬節(jié)點。而murmurhash則是散列算法,由于其計算產生的結果足夠劇烈,所以是目前最好的幾種散列算法之一。它主要用來計算出key的slot值的。有人會問,java中的hashcode也能計算出來呀,但是hashcode計算出來的值的劇烈程度遠遠比不上murmurhash。拿abc和abd來說,hashcode計算出來的差值相差不大,但是murmurhash計算出來的差值則相差甚遠。
二者結合,可以實現(xiàn)出類似redis cluster使用的路由算法,且效果也是很好的。目前已知的開源中,jedis,memcache,redis, Hbase等都有采用過,所以將這兩種哈希算法吃透,可謂是如虎添翼。【參考:淺析ketamahash和murmurhash】
這邊補充一些正交和互斥實驗的區(qū)別。互斥是指兩個實驗流量獨立,用戶只能進入其中的一個實驗。而正交意味著用戶進入所有的實驗之間沒有必然聯(lián)系。
?
【參考】
1.?AppAdhoc A/B Testing使用文檔
2.?馬蜂窩ABTest多層分流系統(tǒng)的設計與實現(xiàn)
總結
以上是生活随笔為你收集整理的【运营】关于A/BTest的简单介绍的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 大一python基础编程试卷_2020年
- 下一篇: 0.5mm的焊锡丝能吃多大电流_工程施工