推薦引擎基本概念及內容 如何搭建個性化推薦引擎系統?( 二 )


1. 離線流程
一般情況下 , 離線流程的輸入和輸出都是MaxCompute(原ODPS)表 , 所以離線數據規范其實上是一組MaxCompute表的格式規范 , 包括接入數據、中間數據和輸出數據三類數據的格式規范 。 接入數據指客戶離線提供的用戶、物品、日志等數據 , 中間數據是在離線算法流程中產生的各種中間性質的結果數據表 , 輸出數據是指推薦結果數據表 , 該結果最終將會被導入到在線存儲中 , 供在線計算模塊使用 。
2. 近線流程
推薦引擎的的近線流程主要處理用戶行為發生變化、推薦物品發生更新時 , 對離線推薦結果進行更新 。 不像離線算法 , 天然以MaxCompute(原ODPS)表作為輸入和輸出 , 近線程序的輸入數據可以來自多個數據源 , 如在線的表格存儲(原OTS) , 以及用戶的API請求 , 又或者是程序中的變量;輸出可以是程序變量 , 或者寫回在線存儲 , 或者返回給用戶 。 出于安全性考慮 , 推薦引擎提供了一組SDK供客戶自定義在線代碼讀寫在線存儲(Table Store) , 不允許直接訪問 , 所以需要定義每類在線存儲的別名和格式 。 對于需要頻繁使用的在線數據 , 無論其來自在線存儲還是用戶的API請求 , RecEng會預先讀好 , 保存在在線程序的變量中 , 客戶自定義代碼可以直接讀寫這些變量中的數據 。
3. 在線流程
推薦引擎的的在線流程負責的任務是推薦API接收到API請求時 , 實時對離線和近線修正產生的推薦結果進行過濾、排重、補足等處理;后者主要處理用戶行為發生變化、推薦物品發生更新時 , 對離線推薦結果進行更新
一個場景只包含一個離線流程和一個近線流程 , 可以包含多個在線流程 , 用于支持A/BTest 。

  • 算法策略(Algorithm Strategy)
算法策略定義了一套離線/近線流程 。 并且透出相關的算法參數 , 幫助客戶構建自己的算法流程 。 一個場景可以配置多個算法策略 , 最終會合并執行 , 產出一系列推薦候選集和過濾集 , 在線流程通過引用這些候選集來完成個性化推薦 。
  • 作業/任務(task)
【推薦引擎基本概念及內容 如何搭建個性化推薦引擎系統?】作業指運行中的離線流程實例 , 作業和離線流程的關系完全等同于進程和程序的關系 。 每個作業都是不可重入的 , 即對每個離線流程 , 同一時間只允許運行一份實例 。 作業直接存在上下游關系 , 如果上游作業失敗 , 下游任務也會被取消 。 阿里云開發者社區全面升級 , 一站式體驗 , 用得更爽

推薦閱讀