魅族推薦平台架構

2021-09-11 09:12:19 字數 2707 閱讀 1717

做推薦模組的可以看看~

閱讀字數

t.cn/r9aqnzv

推薦可以提公升整體的系統目標,增加使用者粘性,提高使用者忠誠度,發現長尾。

支撐5個以上的大產品線的不同場景的推薦業務需求,保證業務穩定執行,可用性達到99.9%,推薦場景當次請求響應在100毫秒以內,一天需要支撐億級別的pv量。

針對於每乙個使用者的一次推薦需要從萬級甚至是十萬級別以上的物品中進行挑選使用者可能感興趣的物品。

每一次推薦需要同時計算十個甚至是數十個演算法資料,乙個演算法需要計算成百上千個維度。

一天需要實時處理上億條行為日誌,進行百億到千億次計算。

每天需要訪問資料儲存上十億次以上。

離線計算量大,需要將所有使用者的資料進行結果計算,同時浪費機器資源;

結果資料更新困難,大批量資料更新對資料庫衝擊大,可能直接造成使用者訪問超時,服務不可用;

資料更新延時大,超大資料量計算基本上只能實現t+1的方式進行資料更新,所以資料推薦都是基於舊行為資料進行**;

資料庫的瓶頸直接影響演算法結果資料輸出頻率,演算法調優困難;

擴充套件困難,所有結果資料已經固定輸出,很難插入一些業務上特定的需求。

使用者推薦資料實時根據使用者請求進行計算,減少離線計算量及減少資料儲存空間;

模組分離,業務各性化處理與模型計算分離,系統更抽象化,可復用度越高,可擴充套件性越好。

模型離線訓練,使用者實時產生的行為無法反饋到模型當中;

業務混布,各業務之間相互影響;

由於把離線的部分計算放到線上進行計算,在請求過程中計算量增大,系統相應時長挑戰增大;

業務接入越多,模型會越來越多,單台機器已經無法裝載所有的模型。

集群資源動態管理,解決模型儲存及計算資源利用率問題;

使用者行為資料能夠實時的進行計算,並最終反饋到模型,提高推薦結果的準確性;

優法演算法模型訓練過程,將大部分工作能通過視覺化的方式完成,提高工作效率;

解決業務之間的互相影響,優化高效的效能及穩定性。

推薦系統被分為三層。

nearline運算層:該層主要是利用流式處理的技術對使用者實時產生的行為日誌進行加工,利用一些高效、高效能的演算法生產有價值的資料。

統一接入規範:所有應用接入按照統一規範進行接入,所有提供出去的介面模式統一,這樣大大降低接入方的難度。

路由:根據使用者標識、版本、伺服器ip以及權重規則路由到不同的online計算外掛程式服務。這樣一來可以實現流量分流、a/b test、灰度發布的目的、介面**。

接入許可權管理:統一管理介面呼叫許可權。

統一監控:統一進行業務設用監控,如業務呼叫量、qps、響應時長、業務設用失敗告警等。

在推薦平台中最重要的乙個功能就是a/b測試,a/b測試主要是對使用者進行抽樣分流道不同的演算法組合當中,最後通過評估資料來驅動演算法工程師對演算法效果不斷的進行調優。

業務策略計算主要是處理業務相關的一些排序、過濾、人工干預競價排名等與具體業務相關的邏輯,不同的業務各性化需求採用外掛程式化的方式進行接入。

初始化模組主要處理演算法模型的管理(模型載入、解除安裝,儲存等等)、模型計算。

推薦一般性的資料處理過程從召回階段到**再到業務重排階段,資料量依次減少。

精選階段的資料是**於召回的資料,有可能同時存在幾個或者十幾個召回演算法,對不同召回的資料及相關的資源可能儲存在不同的機器上或資料庫中,所以請求接收點結在接收請求後,需要根據配置將不同的處理請求分發到不同的機器上進行計算,然後再歸併返回。

該層主要是利用流式處理的技術對使用者實時產生的行為日誌進行加工,利用一些高效、高效能的演算法生產有價值的資料,如處理演算法資料召回、實時資料統計等等。

機器動態劃分分組,可以按業務進行劃分,也可以按照模型資源情況進行劃分。

解決業務之間相互影響,按照業務對效能的要求及複雜度分配不同的硬體機器。同時能夠整合資源,不同大小的配置都可以在集群中得到應用。

解決記憶體模型儲存限制問題,將模型分散到不同的集群中進行橫向擴充套件。

在請求過程中,請求根據master進行動態排程,大型資源載入過程中機器請求自動排程到其它機器,解決大型資源載入過程中對業務的影響。

在儲存上多樣性,不同型別的組合使用,根據不同的場景與效能指標採用不同的儲存組合。

localcache:一般用來處理一次請求中訪問資料頻次超高但資料容量不需要太大的資料,如lr模型資料。

mysql、hbase、redis:這三種儲存的選擇一般從效能和各自的特性出發點來選擇是最合適的,各自都是集群的方式,mysql可以按業務資料進行拆分成不同的集群進行訪問。

提供特徵工程、統計、訓練、評估、**和模型發布等功能,覆蓋機器學習全流程,可以通過拖拽的方式完成模型訓練和評估。

模型訓練及評估介面化,與排程平台無縫整合,使得演算法離線模型處理及模型發布上線等更加高效簡單。

系統整合多種演算法可進行邏輯回歸lr、聚類kmeans、模型lda、協同過濾cf等多種模型訓練。

進行分布式資料處理與計算。

細粒度效能監控,可以細粒度到具體的業務請求介面,從業務qps、pv量、響應時長等等;

應用伺服器及作業系統各項指標監控;

業務指標監控,如演算法效果及其它業務指標監控;

監控指標可根據具體的需求擴充套件。

支撐起百億條/每天的日誌進行實時計算,毫秒級別地進行使用者模型更新;

支撐更多的魅族產品線業務;

推薦平台對外開放,能為行業其它的企業提供專業的推薦服務;

深度學習整合。

推薦文章

魅族推薦平台架構解析(三)

近線模組 該層主要是利用流式處理的技術對使用者實時產生的行為日誌進行加工,利用一些高效 高效能的演算法生產有價值的資料 如處理演算法資料召回 實時資料統計等等。如圖,近線模組 流式日誌資料傳輸分為以下幾個部分 資源排程管理 如下圖,機器動態劃分分組,可以按業務進行劃分,也可以按照模型資源情況進行劃分...

倪江利 魅族推薦平台的架構演進之路

3.1 第一代架構 上圖展示的是我們的第一代架構,在這個圖里可以看到整個過程比較簡單,可以通過這個一線模型計算,計算以後整個使用者的資料通過這個模型直接寫到庫里。第一代架構存在的問題 這個架構能夠滿足 使用者訪問量在幾十萬或者幾百萬規模的資料處理需求。但是當使用者訪問量呈現大規模增長,問題就暴露出來...

倪江利 魅族推薦平台的架構演進之路

一 魅族推薦平台架構演進 1.平台的核心需求 2.技術難點 三 魅族推薦平台架構的演變過程 3.1 第一代架構 上圖展示的是我們的第一代架構,在這個圖里可以看到整個過程比較簡單,可以通過這個一線模型計算,計算以後整個使用者的資料通過這個模型直接寫到庫里。第一代架構存在的問題 這個架構能夠滿足 使用者...