1. 程式人生 > >個性化推薦系統(七)--- ABTest ab測試平臺

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

      個性化推薦系統、搜尋引擎、廣告系統,這些系統都需要在線上不斷上線,不斷優化,優化之後怎麼確定是好是壞。這時就需要ABTest來確定,

最近想的辦法、優化的演算法、優化的邏輯資料是正向的,是有意義的,是提升資料效果的。

        ab需求能方便測試,提供介面快速調整流量,調整流量後能夠方便看效果變化,以及不同ab分支演算法對比到底是a演算法好、還是b演算法好、還

是c演算法好。再有就是白名單配置上線新演算法時,實現新演算法上線測試,驗證程式是否正確。

        根據ABtest需求,系統有三個大的系統構成。一個系統是ABTest配置管理平臺用於管理每個ab需求。一個是ABTest實時分流服務,根據使用者設

備資訊、使用者資訊進行ab分流。一個系統是實時效果分析統計,將分流後程序點選、瀏覽、gmv轉化通過hive、hadoop程式統計後,在統計平臺上

進行展示。

        ABTest配置管理平臺,平臺設計為每一個ab測試生成唯一id,圍繞id生成測試物件,物件包含各種分組配置,每一組分組配置包含生效時間。

配置管理使用者白名單,白名單使用者會直接分配到配置分流,而不根據演算法計算分配到某個分支,白名單既能對分支演算法進行測試,避免找多個使用者

看使用者是否在需要測試演算法分支,當產品、運營需要看當前新演算法推出文章、商品到底是什麼情況也可通過白名單方便實現。

        線上實時分流服務目的是提供一個通用線上服務計算分流,返回分流結果。線上服務根據ab分流選擇演算法路徑給使用者提供個性化資料。ab服務

實現需要先判斷使用者是否在白名單中,在白名單中直接將白名單配置分流返回。

       實時分流服務演算法設計為介面,介面即是協議實現介面演算法皆可用以線上分流,現平臺用裝置尾號進行hash以保證使用者流量均分,避免流量未

打散、均分導致線上效果受影響。這一塊還可以進行分層支援,分層ab好處是可以同時進行大量ab演算法。能快速同時進行多組線上實驗,快速找到

好的方法提升線上效果。

        實時分流服務作為基礎服務,線上所有業務服務都會訪問,演算法正確性、服務穩定性、效能都極其重要。分流演算法正確性服務先在線上試執行

,一段時間後基本沒有問題。穩定性、效能需要極高因為線上服務均要呼叫它。架構設計方式配置管理平臺配置資訊要快取到本地快取中,避免每次

使用者請求請求mysql資料庫,每分鐘幾百萬次請求這對資料庫是災難。當配置有變化後通過zookeeper通知變化,或定時30s去拉去配置都是很好的實

現。效能要好因為線上服務均依賴它,它慢會導致線上服務慢。演算法實現要簡單明瞭,避免不必要迴圈以及邏輯,這點可通過review來保證。

        統計分析平臺,有了好用的配置管理平臺,方便高效能的線上服務,統計分析作為邏輯、演算法、優化是否有意義最終標準。要求是實時資料、

離線資料統計能通過圖表方便直觀查到,並且資料要正確有一定延時可以接受、準確性是更重要的指標。

        通過ABTest平臺方便我們不僅僅方便做搜尋引擎、推薦系統持續優化,其實線上UI、文案等各種優化,均可以通過ab來科學、直觀、方便分

析,到底是正向效果、沒有效果、還是負向效果,講科學避免拍腦袋。ab白名單還可以用來提供服務白名單服務,結合日誌服務實現線上白名單

服務,既方便定位問題,又能避免大量日誌導致線上服務效能差。

    公眾號:網際網路開發者Club

      掃碼關注公眾號