B test應用調研—讓最佳推薦一眼萬年

Btest是什麼?

ABtest,又名A/B測試,即有兩個即將面對大眾的設計版本(A和B)。通過小範圍發佈,得到並比較這兩個版本之間你所關心的數據(轉化率,業績,跳出率等),最後選擇效果最好的版本。

A/B test應用調研—讓最佳推薦一眼萬年


圖1 A/B test實例

對於互聯網產品來說,通過A/B測試提升點擊轉化率,優化獲客成本已得到越來越多的關注。以獲客環節為例:許多產品都會在百度、頭條等渠道投放落地頁廣告,以完成新用戶的註冊轉化,而落地頁效果的好壞,會直接影響轉化率和獲客成本。

以每月200萬投放費用為例,如果通過A/B測試將落地頁的註冊轉化率有效提升20%,相當於每月能多獲得價值40萬推廣成本的新用戶。

同一個優化目標,對樣本劃分幾個群體,並對這幾個群體跑不同的模型,統計每個模型下輸出的結果,如圖2所示,50%的流量看到的是A版本,其他50%的流量看到的是B版本。


A/B test應用調研—讓最佳推薦一眼萬年


圖2 A/B test實例

A/B test主要用於新產品正式上線前的測試。對於產品web的相關應用,一般採用線上的A/Btest決策最終上線的版本,這是因為可以通過用戶的行為決定哪個版本的轉化率更高。對於模型層面的相關應用,一般採用線上線下相結合的方式測試。模型線下測試時,可以用歷史數據模擬現在的用戶行為,這樣一方面可以更快的得到結果,另一方面為上線前提供模型的baseline版本;模型線上測試時,是用線上的數據檢驗模型的泛化能力。最終評價模型的方式是看A,B版模型上線後,它們分別對整個業務評價指標提升了多少。

主要應用的場景

(1) 當產品有以下問題或滿足相關條件,可以考慮使用AB test

a)數據驅動決策的場景;

b)網站或app的日流量不低於1000,最好在1w+[1];

c) 重大產品功能很難決策。不確定哪個方案效果最優;

d)“後驗”成本高,如果改版失敗,業績損失無法挽回等。

(2) A/B test的應用

A/B test的應用案例如圖3所示,主要包含以下幾個層面的內容:

A/B test應用調研—讓最佳推薦一眼萬年


圖3 A/B test在國內企業中的系統應用案例

a)應用層面,如web界面設計,使得轉化率比原來的版本提升了多少?如offerdetail頁面測試等。

b)模型層面,模型的更新對整個業務提升了多少?美團在做推薦系統時,測試用戶相似度計算的方式對下單轉化效果的影響時,發現llr(Log-likelihood ratio)的相似度計算比cosine相似度計算的最終效果要好一些;阿里的搜索排序測量模型的更新對最後的成交率的提升。阿里在很多場合都在用A/B測試,比如:會員登錄系統、促銷活動、阿里金融的貸款、利率、訂單等等都用到了A/B測試。

A/B測試框架

(1)優化目標明確時,A/B測試架構(模型層面)

a)確定評價指標;評價指標如新用戶轉化率、購物網站的成交率、貸款逾期率、營銷新用戶轉化率等。

b)對樣本數據分流,分成實驗組(B模型)和對照組(A模型);這一部分需要考慮多方面因素:實驗組與對照組的流量佔比、樣本分佈、是否剔除影響實驗組結果的一些特定的用戶等。

c)構造A,B模型;A模型一般為現在正在用的模型,B模型為新模型。B模型不僅是算法上的更新,還包括參數的調整等。

d)觀察兩組數據在A,B模型上的結果。例如,在利用模型通過現有好客戶找更多的好客戶的場景中,模型的更新,統計並比較兩個模型中好客戶的轉化率。

(2)優化目標不明確時,A /B測試架構

a)觀察用戶行為:利用訪問者行為分析工具,如熱圖,訪客錄製,表單分析和頁面調查,找到阻礙流量轉化的內容。

b)構造A,B,C,D…場景。

c)觀察數據在A,B,C,D…場景上的結果。

特定的場景需要考慮的問題

針對銀行/金融等公司特定場景,需要考慮的問題有哪些?

(1)在設計A/B測試時,總有一個無法避免的問題:實驗需要收集多少樣本才能使結果顯著?

通過假設檢驗的方法判斷是支持還是拒絕關於樣本數量或分佈的原假設。在做統計檢驗時,會出現假陽性和假陰性錯誤,假陽性表示原假設為真時拒絕了原假設,假陰性表示原假設為假時沒有拒絕原假設。顯著性控制著假陽性的概率,假陽性和假陰性決定假設檢驗的容錯性,容錯性降低,則需要用更多的樣本支持我們的結論[2]。在測試多個假設檢驗時,會增加整體的假陽性概率(false positive probability)。如果一個測試的假陽性概率為0.05,那麼20個測試中沒有一個產生假陽性的概率急劇下降到(1 - 0.05)20 = 0.36。

更重要的是,這個計算假定測試是獨立的。如果測試不是獨立的(當n個模型都來自同一個訓練數據集時),那麼假陽性概率可能更高,更高的假陽概率需要更多的樣本支持假設檢驗。這個問題可以通過文獻[3]解決。

(2)數據流的分配方式、數量、進入不同場景的唯一性。希望樣本數據儘可能代表整個用戶群,可以使用層次模型( 如Beta-Binomial model),它的優點在於它不需要採用明確的先驗分佈,只是假設先驗分佈來自某個分佈族(即Beta),然後根據數據推斷出可能的先驗分佈[4],可以使用貝葉斯算法,源碼如參考文獻[5]。

(3)樣本要具有相似性——指用戶群體各個維度的群體特徵相似;樣本最多隻能參加A,B測試中的一個。

(4)無交集的場景可以並行處理。

應用案例

(1) 產品層面上

杭州某家小額信用借貸公司[6],主營面向 C 端的小額信用貸款服務,核心體驗主打快速、便捷,2分鐘到賬。廣告投放是獲取新用戶的重要渠道。因此,產品部門的核心任務就是通過優化著陸頁H5的文案和佈局來提升最終註冊轉化率。A/B test在百度、今日頭條兩個渠道分別測試不同的試驗方案,不同渠道的兩個版本流量均分配為50%。頁面變化如圖4所示,百度SEM試驗版本相對有20%左右的增長,今日頭條的整體點擊轉化率增幅超過30%。


A/B test應用調研—讓最佳推薦一眼萬年


圖4杭州某家小額信用借貸公司A/B場景


(2)模型層面上

天貓技術部算法組,評價指標:通過推薦,給天貓帶來多少成交?

測試方法一:A/Btest,使用90%-95%的流量作為基準,5%-10%的流量作為測試。讓測試流量中的50%看到A模型推薦的產品,剩餘50%看到B模型推薦的產品,統計並計算A,B模型下的購買轉化率。若B模型的效果更好,則考慮將B替代A模型全流量上線。

測試方法二:離線評測與A/Btest並用。先通過離線測試篩選出比現有模型A模型效果好的模型,然後再進行線上的A/Btest。離線的數據來源為以前的日誌文件,相當於用之前的日誌文件模擬現在的用戶行為,這樣得到模型結果的時間短。

美團推薦系統,A/Btest的原理與天貓技術部算法組的類似,系統架構如圖5所示(2014年)


A/B test應用調研—讓最佳推薦一眼萬年


圖5 美團推薦系統架構


接口層會調用 abtest 配置模塊,對接入的流量按照uuid、城市等維度進行分流量的配置。abtest 對於推薦系統是很重要的基礎模塊,美團對這個模塊的要求是可以有友好的配置界面,靈活根據不同維度進行分流量配置,並且立即生效,無需重啟服務。

Abtest 配置模塊之下,是推薦候選集的生成,排序和業務處理模塊。候選集生成和排序模塊,除了針對不同展位有不同邏輯以外,對同一展位的不同策略也有不同的邏輯。abtest 模塊在配置流量策略的時候,可以根據需要單獨配置候選集策略和排序策略。業務規則處理模塊,則有統一的處理邏輯,也有每個展位獨特的邏輯,而同一展位的不同策略,通常來說在這一層處理邏輯不會有區別。

重新從接口層開始換個方向來看這個框架。在響應請求的同時,會打印一些必要的日誌,記錄這次請求的一些必要的上下文信息以及用戶及item相關的特徵信息,以便生成訓練數據。這些日誌通過flume傳輸到HDFS上面。除了推薦系統以外的美團App其他後臺服務,也會把各自的日誌傳遞給HDFS,以方便後續進行數據挖掘。藉助Hadoop、Hive、Spark等平臺以及美團自己實現的一些機器學習/推薦通用算法,對原始日誌進行處理,從而得到需要的各種數據及模型:包括用戶的profile信息,用戶之間的相似度,item之間的相似度等。

一些開源的A/Btest庫

一些開源的A/Btest庫

Alephbet/alephbet (AlephBet是一個面向開發人員的純javascriptA / B(多變量)測試框架)

PlanOut | A framework foronline field experiments(由facebook開發,已移植到所有主要的Web編程語言,包括Python,Java,PHP,JavaScript,Ruby和Go)

Abba - JavaScript a/b testing • Alex MacCaw (2013年,基於js的架構)

maccman/abba(github開源API)

An Ab Testing Framework from SeatGeek

indeedeng/proctor(github開源API)

Wasabi(github開源API)[7]

參考文獻

[1] http://www.sohu.com/a/111383493_351385

[2] https://zhuanlan.zhihu.com/p/33415389

[3] YoavBenjamini and Yosef Hochberg,Journal of the Royal StatisticalSociety.Series B (Methodological)Vol. 57, No. 1 (1995), pp. 289-300.

[4]http://sl8r000.github.io/ab_testing_statistics/use_a_hierarchical_model/

[5]http://nbviewer.jupyter.org/github/CamDavidsonPilon/Probabilistic-Programming-and-Bayesian-Methods-for-Hackers/blob/master/Chapter2_MorePyMC/Ch2_MorePyMC_PyMC3.ipynb#An-algorithm-for-human-deceit

[6]http://www.appadhoc.com/blog/exptdriveonlinefinance/

[7]https://medium.com/blueprint-by-intuit/open-sourcing-wasabi-the-a-b-testing-platform-by-intuit-a8d5abc958d

End

文 | 中誠信徵信 數據研究部

聯繫合作:[email protected]


分享到:


相關文章: