若您已部署一套包含召回、過濾、精排及重排的成熟推薦系統,在引入 PAI-Rec 時,完整的在PAI-Rec上複現所有邏輯會有較大的工作量,因此我們建議您先替換原有系統的精排和重排模組,同時複用已有的召回結果。待 PAI-Rec 的精排模型在實驗中取得顯著效果後,再逐步將召回策略遷移至 PAI-Rec 引擎。
架構圖

架構的核心是將您系統中的召回結果作為輸入,交由PAI-Rec進行精排,再返回給您原有的系統。
召回與過濾:原有系統完成召回與過濾處理,產生待排序的物品列表。
流量切分與API調用:通過使用者ID等方式切分部分流量,調用PAI-RecRecommendation Engine介面。在調用時,將待排序的物品列表通過
item_list參數傳入。PAI-Rec精排處理:PAI-Rec接收到請求後,將
item_list作為一路召回源。隨後,引擎擷取使用者與物品特徵,利用已部署的精排模型進行打分排序,並可執行重排等後續操作。結果返回與日誌記錄:PAI-Rec返回排序後的物品列表以及本次推薦的實驗ID(
exp_id)。您的用戶端需記錄exp_id與request_id,用於後續的效果分析和實驗評估。
PAI-Rec側配置
基於PAI-Rec的推薦方案(使用PAI-FeatureStore來管理特徵),配置特徵工程、精排模型,然後產生代碼,部署到DataWorks中。
模型打分服務:分為TensorFlow和PyTorch版本,請分別參考EasyRec Processor和 TorchEasyRec Processor。
PAI-Rec引擎內部:
通過FeatureStore擷取使用者特徵,詳情請參見PAI-FeatureStore。
引擎配置單中配置上下文召回(ContextItemRecall)。配置上下文召回之後,Recommendation Engine才會把介面傳入的item_list作為一路召回。
{ "SceneConfs": { "${scene_name}": { "default": { "RecallNames": [ "ContextItemRecall" ] } } } }在PAI-Rec引擎配置單中設定調用精排模型,詳情請參見精排配置。
通過A/B服務管理內部的A/B實驗,可按照使用者ID分桶,設定多個排序模型。
使用者側工作
使用者側推薦系統保留原有的召回、過濾和曝光等操作,並將召回結構、使用者ID、使用者特徵和過濾規則等傳給PAI-Rec做排序打分、重排等邏輯。此外,為配合PAI-Rec的整合,原有系統需要進行如下少量改造:
介面調用:改造推薦請求邏輯,調用PAI-Rec引擎介面,並在
item_list參數中傳入召回和過濾後的物品ID列表。日誌埋點:在曝光和行為日誌中,記錄從PAI-Rec介面返回的
request_id和exp_id欄位,這是進行實驗效果歸因和資料診斷的關鍵。