個性化推薦系統(七)--- ABTest ab測試平臺

       個性化推薦系統、搜索引擎、廣告系統,這些系統都須要在線上不斷上線,不斷優化,優化以後怎麼肯定是好是壞。這時就須要ABTest來肯定,最近想的辦法、優化的算法、優化的邏輯數據是正向的,是有意義的,是提高數據效果的。mysql

        ab需求能方便測試,提供界面快速調整流量,調整流量後可以方便看效果變化,以及不一樣ab分支算法對比究竟是a算法好、仍是b算法好、仍是c算法好。再有就是白名單配置上線新算法時,實現新算法上線測試,驗證程序是否正確。算法

        根據ABtest需求,系統有三個大的系統構成。一個系統是ABTest配置管理平臺用於管理每一個ab需求。一個是ABTest實時分流服務,根據用戶設備信息、用戶信息進行ab分流。一個系統是實時效果分析統計,將分流後程序點擊、瀏覽、gmv轉化經過hive、hadoop程序統計後,在統計平臺上進行展現。sql

        ABTest配置管理平臺,平臺設計爲每個ab測試生成惟一id,圍繞id生成測試對象,對象包含各類分組配置,每一組分組配置包含生效時間。配置管理用戶白名單,白名單用戶會直接分配到配置分流,而不根據算法計算分配到某個分支,白名單既能對分支算法進行測試,避免找多個用戶看用戶是否在須要測試算法分支,當產品、運營須要看當前新算法推出文章、商品究竟是什麼狀況也可經過白名單方便實現。數據庫

        在線實時分流服務目的是提供一個通用線上服務計算分流,返回分流結果。線上服務根據ab分流選擇算法路徑給用戶提供個性化數據。ab服務實現須要先判斷用戶是否在白名單中,在白名單中直接將白名單配置分流返回。緩存

       實時分流服務算法設計爲接口,接口便是協議實現接口算法皆可用以線上分流,現平臺用設備尾號進行hash以保證用戶流量均分,避免流量未打散、均分致使線上效果受影響。這一塊還能夠進行分層支持,分層ab好處是能夠同時進行大量ab算法。能快速同時進行多組線上實驗,快速找到好的方法提高線上效果。微信

        實時分流服務做爲基礎服務,線上全部業務服務都會訪問,算法正確性、服務穩定性、性能都極其重要。分流算法正確性服務先在線上試運行,一段時間後基本沒有問題。穩定性、性能須要極高由於線上服務均要調用它。架構設計方式配置管理平臺配置信息要緩存到本地緩存中,避免每次用戶請求請求mysql數據庫,每分鐘幾百萬次請求這對數據庫是災難。當配置有變化後經過zookeeper通知變化,或定時30s去拉去配置都是很好的實現。性能要好由於線上服務均依賴它,它慢會致使線上服務慢。算法實現要簡單明瞭,避免沒必要要循環以及邏輯,這點可經過review來保證。架構

        統計分析平臺,有了好用的配置管理平臺,方便高性能的線上服務,統計分析做爲邏輯、算法、優化是否有意義最終標準。要求是實時數據、離線數據統計能經過圖表方便直觀查到,而且數據要正確有必定延時能夠接受、準確性是更重要的指標。oop

        經過ABTest平臺方便咱們不單單方便作搜索引擎、推薦系統持續優化,其實線上UI、文案等各類優化,都可以經過ab來科學、直觀、方便分析,究竟是正向效果、沒有效果、仍是負向效果,講科學避免拍腦殼。ab白名單還能夠用來提供服務白名單服務,結合日誌服務實現線上白名單服務,既方便定位問題,又能避免大量日誌致使線上服務性能差。性能

        微信搜索:mydevclub測試

        微信掃碼或長按二維碼:

相關文章
相關標籤/搜索