魅族推薦平臺架構解析(二)
三、魅族推薦平臺現狀
1、第三代架構的核心需求
為了解決上述問題,我們對魅族推薦平臺架構進行了優化。根據業務需要以及對一二代架構優缺點的總結,我們首先確定了第三代架構的核心需求:
- 叢集資源動態管理,解決模型儲存及計算資源利用率的問題
- 使用者行為資料能夠實時的進行計算,並最終反饋到模型,提高推薦結果的準確性
- 優法演算法模型訓練過程,將大部分工作能通過視覺化的方式完成,提高工作效率
- 解決業務之間的相互影響
- 優化高效的效能及穩定性
2、推薦平臺數據處理模型
上圖是推薦平臺數據處理的模型,我們把整個流程切割成幾塊,離線、近線、線上部分,不同的階段處理不同的事情,處理資料量級別及複雜度也在各階段不斷的減少
3、推薦平臺現有架構
上圖是推薦平臺現有架構圖,我們有一些資源管理和線上計算,還有機器學習平臺解決離線計算的問題。
3.1 推薦平臺架構分層
看架構主要看裡面的層次。魅族推薦平臺現有架構分為三層:
- offline運算層(離線計算):該層主要是離線對海量的資料進行建模加工,生產有價值的資料,如Item相似庫、user相關庫、CF離線推薦結果等。
- nearline運算層: 該層主要是利用式處理的技術對使用者實時產生的行為日誌進行加工,利用一些高效、高效能的演算法生產有價值的資料
- online運算層: 該層主要處理一些相對簡單的運算邏輯,線上進行計算。
3.2 推薦架構各模組的實現原理
線上模組
首先,統一接入規範
所有應用接入按照統一規範進行接入,所有提供出去的介面模式統一,這樣大大降低接入方的難度。
其次,路由
根據使用者標識、版本、伺服器IP以及權重規則路由到不同的Online計算外掛服務。這樣一來可以實現實現流量分流、A/B Test、灰度釋出的目的、介面代理
第三,接入許可權管理
統一管理介面呼叫許可權
第四,統一監控
統一進行業務設用監控,如業務呼叫量、QPS、響應時長、業務設用失敗告警等
A/B測試模組
在推薦平臺中最重要的一個功能就是A/B測試,A/B測試主要是對使用者進行抽樣分流到不同的演算法組合當中,最後通過評估資料來驅動演算法工程師對演算法效果不斷的進行調優
在做A/B測試的時候我們會通過一定的抽樣方式選取目標人群,
根據一定的規則做配置,讓他們訪問不同的演算法組合,我們再根據不同的組合做評估,上圖中我只寫了一個轉化率,真正的評估資料不只這些。
我們來看A/B測試效果評估過程:
使用者請求資料後App端及Web對使用者看到的推薦資料所產生的一系例行為進行上報,資料採集服務端對日誌資料進行收集並通過流平臺將資料進行歸併,同時對部分的實時資料進行線上統計分析最終產生效果評估資料。
上圖是擷取的一個A/B測試效果評估圖。真正的效果評估也不只這些,每一組業務場景的效果評估都是不一樣的。
線上模組-計算模組
計算模組分為兩大塊:
第一大塊是業務策略計算,主要是處理業務相關的一些排序、過濾、人工干預競價排名等於具體業務相關的邏輯,不同的業務個性化需求採用外掛化的方式進行接入;
第二大塊是初始化模組,主要是對物品進行精選相關的計算,同時管理對新的演算法的支援及模型的儲存。
從圖中看出,推薦一般性的資料處理過程從召回階段到預測再到業務重排階段資料量依次減少。
精選階段的資料是來源於召回的資料,有可能同時存在幾個或十幾個召回演算法,對不同召回的資料及相關的資源可能儲存在不同的機器上或者資料庫中,所以請求接收點結在接收請求後需要根據配置將不同的處理請求分發到不同的機器上進行計算然後再歸併返回。
接下來的文章中,我們把線上模組,線上儲存,資源排程等跟大家詳解。