全部產品
Search
文件中心

Platform For AI:PAI-Rec模組化推薦演算法定製的最佳實務文檔

更新時間:Sep 08, 2026

為方便您快捷體驗PAI-Rec產品,本文提供了一份公開資料集,您可以按照文檔說明,按步驟體驗PAI-Rec推薦演算法定製的特徵工程、召回、精排等關鍵功能的配置,產生代碼並部署到DataWorks相應的商務程序中。相比原來的推薦方案定製功能,模組化可以實現單獨功能的上下線,減少對推薦其餘流程產生影響。

為什麼要把推薦方案定製做模組化的拆分?

  • 通過新增特徵組的概念,讓使用者更容易地新增特徵組迭代模型。

  • 一鍵上線,包含了部署、自動啟動補數任務,減少使用者的操作時間。

  • 在排序模組才能真正對需要的特徵組、樣本、fg等模組全部補數,如果特徵工程配置出錯,返工的成本更低。

前提條件

在開始執行操作前,請確認您已完成以下準備工作:

1.建立PAI-Rec執行個體並初始化服務

  1. 登入推薦系統開發平台首頁,單擊立即購買。

  2. 在PAI-Rec執行個體購買頁面,配置以下關鍵參數,然後單擊立即購買。

    參數

    說明

    地區和可用性區域

    您的雲端服務部署的地區。

    服务类型

    本方案選擇標準版,並啟用“推薦方案定製”功能。

  3. 登入PAI-Rec管理主控台,在頂部功能表列左上方處,選擇地區。

  4. 在左側導覽列選擇執行個體列表,單擊執行個體名稱,進入執行個體詳情頁面。

  5. 單擊操作指引地區的云产品配置,跳轉至系统配置>云产品配置頁面,單擊编辑,按照如下資源配置完成相應參數配置,然後單擊退出。

    資源配置

    參數

    說明

    建模

    机器学习平台 PAI 工作空间

    填寫已建立的PAI預設工作空間。

    大数据开发治理平台 DataWorks 工作空间

    填寫自動產生的DataWorks工作空間。

    大数据计算服务 MaxCompute 项目(工作)空间

    填寫已建立的MaxCompute專案。

    对象存储 OSS Bucket

    選擇已建立的OSS Bucket。

    引擎

    实时召回引擎

    確認是否使用PAI-FeatureStore,選擇是。

    实时特征查询

    確認是否使用PAI-FeatureStore,選擇是。

  6. 在左側導覽列選擇系统配置>权限管理,按照介面提示,在访问服务頁簽檢查各項雲產品授權情況,確保對應雲產品訪問狀態正常。

2. 複製公開資料集

1.同步資料表

本方案的輸入資料有兩種方案:

  1. 從pai_online_project專案中複製固定時間窗的資料,不支援任務例行調度執行。

  2. 提供Python指令碼,通過代碼產出資料,可以通過DataWorks執行任務產出指定時間段的資料。

如果需要調度每天產出資料和訓練模型,建議使用第二種方案。您需要部署指定的Python代碼以產生所需資料,詳情請參見“通過代碼產出資料”頁簽。

同步固定時間窗的資料

PAI-Rec在公開訪問的專案pai_online_project中提前準備了推薦演算法中常用的三張表:

  • 使用者表:pai_online_project.rec_sln_demo_user_table

  • 物品表:pai_online_project.rec_sln_demo_item_table

  • 行為表:pai_online_project.rec_sln_demo_behavior_table

本方案後續的操作均基於上述三張表,其資料均是隨機產生的類比資料,沒有真實業務含義,因此訓練得到的AUC等指標較低。您需要在DataWorks中執行SQL命令,從pai_online_project專案中將上述表資料同步到您的DataWorks專案(例如DataWorks_a)中。具體操作步驟如下:

  1. 登入DataWorks控制台,在頂部功能表列左上方處,選擇地區。

  2. 在左側導覽列單擊數據開發與營運>資料開發。

  3. 選擇已建立的DataWorks工作空間後,單擊進入資料開發。

  4. 滑鼠移至上方至新建,選擇建立節點>MaxCompute>ODPS SQL,按照如下資源配置完成相應參數配置,然後單擊确认。

    資源配置

    參數

    說明

    引擎執行個體

    選擇已綁定的MaxCompute資料來源。

    節點類型

    選擇節點類型ODPS SQL。

    路径

    選擇當前節點所在路徑。例如商務程序/Workflow/MaxCompute。

    名称

    自訂填寫,例如Data。

  5. 在建立節點地區,複製並運行下面的代碼,將使用者表、物品表、行為表從pai_online_project專案同步到您已建立的MaxCompute專案(例如project_mc)中。執行代碼需要設定變數,指定bizdate到bizdate日期之前100天的資料。一般把bizdate設定為當前的日期的前一天,設定調度參數如下:在 調度參數 地區,單擊 新增參數,手動添加兩個參數:參數名 bizdate,參數值為 $[yyyymmdd-1];參數名 bizdate_100,參數值為 $[yyyymmdd-100]。以下代碼執行一次,即可將資料從公用的pai_online_project專案複製到使用者的專案中:

CREATE TABLE IF NOT EXISTS rec_sln_demo_user_table_v1(
 user_id BIGINT COMMENT '使用者唯一ID',
 gender STRING COMMENT '性別',
 age BIGINT COMMENT '年齡',
 city STRING COMMENT '城市',
 item_cnt BIGINT COMMENT '創作內容數',
 follow_cnt BIGINT COMMENT '關注數',
 follower_cnt BIGINT COMMENT '粉絲數',
 register_time BIGINT COMMENT '註冊時間',
 tags STRING COMMENT '使用者標籤'
) PARTITIONED BY (ds STRING) STORED AS ALIORC;
INSERT OVERWRITE TABLE rec_sln_demo_user_table_v1 PARTITION(ds)
SELECT *
FROM pai_online_project.rec_sln_demo_user_table
WHERE ds >= "${bizdate_100}" and ds <= "${bizdate}";
CREATE TABLE IF NOT EXISTS rec_sln_demo_item_table_v1(
 item_id BIGINT COMMENT '內容ID',
 duration DOUBLE COMMENT '視頻時間長度',
 title STRING COMMENT '標題',
 category STRING COMMENT '一級標籤',
 author BIGINT COMMENT '作者',
 click_count BIGINT COMMENT '累計點擊數',
 praise_count BIGINT COMMENT '累計點贊數',
 pub_time BIGINT COMMENT '發布時間'
) PARTITIONED BY (ds STRING) STORED AS ALIORC;
INSERT OVERWRITE TABLE rec_sln_demo_item_table_v1 PARTITION(ds)
SELECT *
FROM pai_online_project.rec_sln_demo_item_table
WHERE ds >= "${bizdate_100}" and ds <= "${bizdate}";
CREATE TABLE IF NOT EXISTS rec_sln_demo_behavior_table_v1(
 request_id STRING COMMENT '埋點ID/請求ID',
 user_id STRING COMMENT '使用者唯一ID',
 exp_id STRING COMMENT '實驗ID',
 page STRING COMMENT '頁面',
 net_type STRING COMMENT '網路型號',
 event_time BIGINT COMMENT '行為時間',
 item_id STRING COMMENT '內容ID',
 event STRING COMMENT '行為類型',
 playtime DOUBLE COMMENT '播放時間長度/閱讀時間長度'
) PARTITIONED BY (ds STRING) STORED AS ALIORC;
INSERT OVERWRITE TABLE rec_sln_demo_behavior_table_v1 PARTITION(ds)
SELECT *
FROM pai_online_project.rec_sln_demo_behavior_table
WHERE ds >= "${bizdate_100}" and ds <= "${bizdate}";

通過代碼產出資料

使用固定時間窗的資料,不支援任務例行調度執行。如果有執行需求,您需要部署特定的Python代碼以產生所需資料。具體操作步驟如下:

  1. 在DataWorks控制台建立PyODPS 3節點,詳情請參見建立並管理MaxCompute節點。

  2. 單擊並下載create_data.py,將檔案內容粘貼到PyODPS 3節點中。

  3. 單擊右側的调度配置,並配置以下參數,然後單擊右上方的儲存image和提交image。

    • 配置調度參數:

      • 注意替換變數:

        $user_table_name可以替換為rec_sln_demo_user_table

        $item_table_name可以替換為rec_sln_demo_item_table

        $behavior_table_name可以替換為rec_sln_demo_behavior_table

        在調度參數配置面板中,除上述三個表名參數外,還包含調度參數 bizdate,其參數值為 $bizdate。

        替換後:

        調度參數中還需配置 bizdate 參數,值為 $[yyyymmdd-1],來源為手動添加。

    • 配置調度依賴。

  4. 單擊營運中心,並選擇周期任务运维 > 周期任务。

  5. 單擊目標任務操作列下的補資料 > 當前節點及下游節點。

  6. 在補資料配置面板中,設定業務日期,並單擊提交並跳轉。

    較好的補資料時間範圍為60天,建議您將業務日期設定為任務定時調度日期-60,以確保資料的完整性。

2.配置依賴節點

為了確保後續代碼產生與部署的順利進行,請預先在您的DataWorks專案中添加三個SQL代碼節點。請將這些節點的調度依賴配置為工作空間的根節點,完成所有設定後再發布節點。具體操作步驟如下:

  1. 滑鼠移至上方至新建,選擇建立節點>通用>虛擬節點,按照如下資源配置分別建立3個虛擬節點,然後單擊确认。

    資源配置

    參數

    說明

    方案預設樣本

    節點類型

    選擇節點類型。

    虛擬節點

    路径

    選擇當前節點所在路徑。

    商務程序/Workflow/通用

    名称

    分別填寫已同步的資料表名稱。

    • rec_sln_demo_user_table_v1

    • rec_sln_demo_item_table_v1

    • rec_sln_demo_behavior_table_v1

  2. 選中節點,分別將代碼節點內容設定為select 1;,然後單擊右側的调度配置,完成以下配置:

    • 在時間屬性地區,設定重跑屬性為運行成功或失敗後節點重跑。

    • 在調度依賴>依賴的上遊節點地區,輸入DataWorks工作空間名稱,選擇帶有_root尾碼的節點,單擊添加。

      3個虛擬節點均需配置。

  3. 單擊虛擬節點前的image,提交該節點。

3.註冊資料

為了後續在推薦方案定製功能中配置特徵工程、召回、排序演算法,您需要先註冊同步到DataWorks專案中的三張表,具體操作步驟如下:

  1. 登入PAI-Rec管理主控台,在頂部功能表列左上方處選擇地區。

  2. 在左側導覽列選擇執行個體列表,單擊執行個體名稱,進入執行個體詳情頁面。

  3. 在左側導覽列選擇推荐方案定制>数据注册,在MaxCompute表頁簽單擊新增数据表,按照如下資源配置分別新增1個使用者表、1個物品表和1個行為表,然後單擊开始导入。

    參數

    說明

    方案預設樣本

    MaxCompute專案

    選擇已建立的MaxCompute專案。

    project_mc

    MaxCompute表

    選擇已同步到DataWorks工作空間的資料表。

    • 使用者表:rec_sln_demo_user_table_v1

    • 物品表:rec_sln_demo_item_table_v1

    • 行為表:rec_sln_demo_behavior_table_v1

    資料表名稱

    自訂填寫。

    • 使用者表

    • 物品表

    • 行為表

4.建立推薦情境

在配置推薦任務之前需要先建立一個推薦情境。推薦情境的基本概念、流量編碼含義參考基本概念。

在左側導覽列選擇推荐场景,單擊创建场景,按照如下資源配置建立1個推薦情境,然後單擊确定。

資源配置

參數

說明

方案預設樣本

情境名稱

自訂填寫。

HomePage

情境介紹

關於情境的詳細說明。

無

5.建立並配置演算法方案

如果您需要完整配置一個真實情境,建議配置的召回和精排如下。

  • 全域熱門召回:日誌資料中,全面熱門資料的統計排名取Top k。

  • 分組熱門召回:按照城市、性別區間等指標來分類召回,這對提高熱門物品的準確性有協助。

  • etrec u2i召回:基於etrec協同過濾演算法。

  • swing u2i召回(可選):基於Swing演算法。

  • 向量召回(可選):DSSM向量召回。

  • 精排:單目標可以選擇MultiTower排序;多目標可選擇DBMTL排序。

本文旨在體驗配置與部署流程,因此在召回配置環節只配置了全域熱門召回及RECommender(eTREC,一種協同過濾的實現)的u2i召回策略。在排序配置上,選擇了精細化排名以最佳化體驗。具體操作步驟如下:

  1. 在左側導覽列選擇推荐方案定制>建立模組化推薦方案,選擇已建立的情境,並單擊创建模块化推荐方案,按照如下資源配置建立1個方案,然後單擊保存并进入算法方案配置。

    未說明的參數保持預設即可,詳情請參見資料表配置。

    資源配置

    參數

    說明

    方案名称

    自訂填寫。

    场景名称

    選擇已建立的推薦情境。

    离线数据源

    選擇推薦情境關聯的MaxCompute專案。

    算法框架

    此處選擇PyTorch,可以根據自己偏好選擇演算法架構

    DataWorks工作空间

    選擇推薦情境關聯的DataWorks工作空間。

    业务流程名称

    該名稱為後續部署推薦方案指令碼時,在DataWorks建立的商務程序名稱。可自訂填寫,例如Flow。

    StorageAPI配置

    中國內地:如北京、上海等可以選擇“StorageAPI”,即隨用隨付的Data Transmission Service;

    其他地區:如中國香港、新加坡、法蘭克福等,需要先購買與使用獨享Data Transmission Service資源群組(如沒有隨用隨付,需要購買包月的Data Transmission Service),然後重新整理選擇包月的Data Transmission Service名稱。在DataWorks的PAI-DLC的TorchEasyRec訓練任務中增加參數,形式類似:-odps_data_quota_name ot_xxxx_p#ot_yyyy。

    slim_mode

    如果DataWorks選購版本對遷移助手中匯入的程式碼封裝有大小限制,可使用此功能,並將超出大小限制的程式碼封裝手動上傳。本方案選擇否。

    OSS Bucket

    選擇推薦情境關聯的OSS Bucket。

    项目

    選擇已建立的FeatureStore專案,其中線上資料來源選擇FeatureDB。

    用户实体

    選擇FeatureStore專案對應的user特徵實體user。

    物品实体

    選擇FeatureStore專案對應的item特徵實體item。

  2. 在数据表配置,單擊目標資料表右側的添加,按照如下資源配置分別設定行為日誌表、使用者表和物品表,並設定相應的分區、事件、特徵、時間戳記等欄位,然後單擊下一步。

    未說明的參數保持預設即可,詳情請參見資料表配置。

    行為日誌表資源配置

    在配置行為日誌表時,應依據實際資料內容作出調整。以本文為例,行為日誌包含諸如請求ID、使用者唯一識別碼、行為發生的頁面、行為時間戳記及行為類別等核心資訊。若表中包含更豐富的資料維度,推薦將這些資訊按使用者和物品分類,配置到使用者資訊或物品資訊中,以便於後續的特徵工程處理。

    參數

    說明

    方案預設樣本

    行為表名稱

    選擇登入的行為表。

    rec_sln_demo_behavior_table_v1

    時間分區

    行為表的分區欄位。

    ds

    yyyymmdd

    行為資訊配置

    请求ID

    日誌中標記每次推薦請求的ID,一般是程式產生的UUID。可不填。

    request_id

    行為事件

    指日誌中記錄行為事件的欄位。

    event

    行為事件枚舉值

    行為事件中包含的枚舉值,如曝光、點擊、加購或購買等行為。

    expr,click,praise

    行為的值

    表示行為的深度,如成交價格、觀看時間長度等欄位。

    playtime

    行為時間戳記

    日誌發生的時間,精確到秒的時間戳記。

    event_time

    時間戳記格式

    和行為時間戳記配合使用。

    unixtime

    行為情境

    表示日誌發生的情境欄位,如首頁、搜尋網頁或商品詳情頁。

    page

    情境枚舉值

    指使用了哪些情境的資料,在後續特徵工程中可以分情境統計特徵。

    home,detail

    使用者資訊配置

    用户ID

    行為表中使用者ID的標識。

    user_id

    使用者類別特徵

    行為表中存在的使用者類別特徵,如網路、操作平台或性別等。

    net_type

    物品資訊配置

    物品ID

    行為表中物品ID的標識。

    item_id

    使用者表資源配置

    參數

    說明

    方案預設樣本

    使用者表名稱

    選擇已註冊的使用者表。

    rec_sln_demo_user_table_v1

    時間分區

    使用者表的時間分區欄位。

    ds

    yyyymmdd

    使用者資訊配置

    用户ID

    使用者表中的使用者ID欄位。

    user_id

    註冊時間戳記

    該使用者註冊的時間。

    register_time

    時間戳記格式

    和註冊時間戳記配合使用。

    unixtime

    類別特徵

    使用者表的類別欄位,如性別、年齡段或所屬城市等。

    gender,city

    数值特征

    使用者表的數值欄位,如作品數、積分等。

    age,item_cnt,follow_cnt,follower_cnt

    tag特徵

    tag特徵欄位名。

    tags

    物品表資源配置

    參數

    說明

    方案預設樣本

    物品表名稱

    選擇登入的物品表。

    rec_sln_demo_item_table_v1

    時間分區

    物品表的時間分區欄位。

    ds

    yyyymmdd

    物品資訊配置

    物品ID

    物品表中的物品ID欄位。

    item_id

    作者ID

    商品所屬的作者。

    author

    上架時間戳記

    物品上架時間戳記欄位名。

    pub_time

    時間戳記格式

    和上架時間戳記配合使用。

    unixtime

    類別特徵

    物品表的類別欄位,如類目。

    category

    数值特征

    物品表的數值欄位,如價格、累計銷量或點贊量。

    click_count,praise_count

  3. 在特征组配置,單擊添加,按照如下資源配置完成相應參數配置,設定特徵模組名稱,版本,分別勾選在数据表配置 中的使用者表,物品表,行為日誌表。

    資源配置

    參數

    說明

    方案預設樣本

    常用统计时间周期

    該配置將用於批量產生特徵。為了避免產生特徵過多,本方案設定統計時間周期為3、7、15天,分別為統計使用者和物品在最近3天、7天和15天內的統計特徵。

    如果使用者行為數量很少,可嘗試設定21天。

    3,7,15

    重点关注行为

    選擇已配置的行為事件,建議添加次序為expr(曝光)、click(點擊)、praise(點贊)。

    expr,click,praise

    單擊确定,會在使用者和物品側衍生出多種統計特徵,點擊該特徵組的特征配置可以查看到對應的驗證特徵,本方案不對衍生特徵進行二次編輯,保持預設即可。您可以根據自身業務需求,對衍生特徵進行編輯,詳情請參見特徵配置。點擊該特徵組的上线,任務運行日期選擇資料最新分區日期,調整任務最大並行數,最大為10,其餘配置預設,單擊确定。該動作會產出節點,並部署到DataWorks,同時根據日期補跑資料,當改模組狀態成為已上线才可進行後續配置。單擊該模組的上线详情可以查看該模組相關的詳細資料,其中补数任务列表可以查看到每個任務運行狀態,對於失敗的任務,點擊查看任务节点可以跳轉至DataWorks查看任務詳細報錯,對於失敗任務修正後點擊补数任务列表該節點重跑,通過後點擊續跑。

  4. Label表配置,此模組根據行為表構建樣本目標,點擊添加,選擇當前模組為label模組,輸入Label 模組名稱,特徵模組選擇上遊配置的特徵模組。單擊精排目標設定(labels)後的新增,新增如下兩個label:

    • 目標1:精排目標名稱填寫 is_click,精排目標運算式填寫 max(if(event='click',1,0)),目標類型選擇 分類(CLASSIFICATION)。

    • 目標2(注意ln中的l是L的小寫)配置精排目標:將 精排目標名稱 設定為 ln_playtime,精排目標運算式 設定為 ln(sum(playtime)+1),精排目標依賴 設定為 is_click,目標類型 選擇 迴歸(REGRESSION)。單擊 確定。

    • 确定後仿照特徵模組進行上線,等待狀態成為已上线後繼續下遊配置

  5. 样本配置,此模組功能是樣本目標表關聯特徵,並在feature-store產出模型特徵。點擊添加,選擇當前模組為樣本模組,並命名模型特徵,特徵模組選擇上遊產生的特徵模組,Label模組選擇上遊產出的Label模組,仿照上面進行上線,等待狀態成為已上线後繼續下遊配置。

  6. 特征生成配置,此模組可以將樣本表所有特徵進一步衍生,目前不支援自訂配置。點擊添加,選擇當前模組為特徵產生,特徵組建類型選擇排序,模型特徵模組選擇上遊樣本配置產生的模型特徵。等待狀態成為已上线後繼續下遊配置。

  7. 排序配置,點擊精排的添加,特徵模組輸出選擇上遊產出的特徵產生,其餘選項預設,點擊确定,仿照上遊進行上線。該模組狀態變成已上线,在pai-eas中能看到模型服務。

  8. 召回配置,單擊目標分類右側的添加,完成相應參數配置,單擊确认,然後進行上线。以下內容包含了多種召回配置方法,為了帶您快速體驗部署流程,您可以只配置全域熱門召回和etrec u2i召回。其他向量召回、協同度量召回等僅供參考。

資源配置

全域熱門召回

全域熱門召回是根據點擊事件統計得到熱門的物品熱門排行榜(top_n表示熱門排行榜個數)。如果要修改熱門的得分公式或者訪問事件,您可在產生相關代碼後,將其部署到DataWorks平台再進行修改。

打分公式為click_uv*click_uv/(expr+adj_factor)*exp(-item_publish_days/fresh_decay_denom),其中

  • click_uv:相同點擊率(CTR)時,點擊量越多,則越熱門。

  • click_uv/(expr+adj_factor):平滑後的點擊率(CTR),其中click_uv表示點擊使用者數量,expr表示曝光數量。增加調節因子adj_factor,一方面是為了防止分母為0,另一方面是當曝光數量很少的時候,CTR會接近於1,加上adj_factor之後CTR會遠離1,從而使得CTR更加趨近於真實的CTR。

  • exp(-item_publish_days/fresh_decay_denom):懲罰發布早的商品。其中item_publish_days表示從發布時間到當前的天數。

在編輯配置頁面,設定各參數:召回模型名稱為global_hot,版本為1,行為日誌表選擇rec_sln_demo_behavior_table_v1,物品表選擇rec_sln_demo_item_table_v1,召回時間視窗為15天,召回數目為500,曝光行為事件選擇expr,點擊行為事件選擇click,熱門得分公式開關保持關閉,召回引擎選擇FeatureStore。

etrec u2i召回

etrec是基於item的協同過濾演算法,詳情請參見協同過濾etrec。

配置etrec u2i召回表單:填寫召回模型名稱(如etrec)、版本(如1)、行為日誌表(如rec_sln_demo_behavior_table_v1),將是否採用即時u2i設為false,召回引擎選擇FeatureStore。在u2i行為權重中可新增事件及權重,例如click權重為1、praise權重為3。

參數

描述

訓練天數

表示使用多少天的行為日誌來訓練。預設為30天,您可以根據日誌量來增減。

召回數目

表示最終離線產出的使用者到物品的數量。

U2ITrigger

表示使用者有互動行為的物品。例如使用者點擊、收藏或購買的物品,一般不包含曝光物品。

行為時間視窗

表示收集多少天內的行為資料,預設為15,表示最近15天。

行為時間衰減係數

一般介於0-1之間,值越大表示過去的行為距離今天衰減越厲害,在構造trigger_item中其佔比權重越小。

Trigger選取數目

指每個使用者取多少個物品ID去與etrec產出的i2i資料做笛卡爾積。建議取值在10到50之間。如果Trigger的數目太大會造成召回的候選物品數量太多。

u2i行為權重

其中注意曝光事件要麼不設定,要麼設定為權重0。建議不設定曝光事件,即跳過使用者曝光資料。

I2I模型設定

etrec的參數設定,詳情請參見協同過濾etrec。其中相關Item選取數目建議不要太多。開啟開關後,配置以下參數:相似性計算策略(sim_type)可選 wbcosine、asymcosine、jaccard,樣本選中 wbcosine;相關Item選取數目(top_n)設為 500;單個使用者的最大行為數(max_bhv)設為 500;單個使用者的最小行為數(min_bhv)設為 2;計算策略(operator)可選 add、mul、min、max,樣本選中 add;相似性計算權重係數(weight)設為 1;衰減係數(alpha)設為 0.5。完成後單擊 Confirm。

分組熱門召回

即可設定按照城市、性別等屬性來統計熱門排行榜,能提供初步個人化的召回。如下樣本中,使用性別和數值的分桶號組合作為分組。

配置參數:召回類型選擇使用者分組熱門召回,召回模型名稱填寫group_hot,版本填寫1,行為日誌表選擇rec_sln_demo_behavior_table_v1,物品表選擇rec_sln_demo_item_table_v1,使用者表選擇rec_sln_demo_user_table_v1,特徵模組選擇ft,召回時間視窗填寫15,召回數目填寫500,曝光行為事件選擇expr,點擊行為事件選擇click。

在使用者分組trigger中,添加特徵gender(無分桶邊界)和follow_cnt(分桶邊界為1,5,10,20)。在行為分組trigger中,添加特徵net_type(無分桶邊界)。召回引擎選擇FeatureStore。

swing u2i召回

Swing是一種item相關性計算方法,基於User-Item-User原理衡量Item的相似性。

配置 Swing U2I 召回模型參數:召回類型選擇swing u2i 召回,召回模型名稱(name)填寫swing,版本(version)填寫1,行為日誌表(behavior_table)選擇rec_sln_demo_behavior_table_v1,是否採用即時u2i(use_rt)選擇false,訓練天數(train_days)填寫30,召回數目(u2i_top_n)填寫500,召回引擎(recall_engine)選擇FeatureStore,並開啟U2I Trigger(weighted_behavior_u2i)開關。

配置 U2I Trigger 參數:將行為時間視窗(day_interval)設定為 15,衰減係數(decay_coeff)設定為 0.2,Trigger選取數目(trigger_top_n)設定為 10。在u2i 行為權重(behavior_weights)中單擊新增添加行為事件:事件名稱 click 權重為 1,事件名稱 praise 權重為 3。

開啟 I2I 模型設定(swing) 開關後,配置各參數:相關Item選取數目(top_n) 設為 500,單個使用者的最大點擊數(max_click_per_user) 設為 600,單個物品的互動最大使用者數(max_user_per_item) 設為 700,最大時間跨度(max_time_span) 設為 1,調整係數(alpha1) 設為 5,調整係數(alpha2) 設為 1,調整係數(beta) 設為 0.3,Item權值計算方式(norm_method) 選擇 COUNT。

向量召回

提供一種向量召回方式DSSM ,具體介紹參考:

  • 召回目標名稱:一般指是否點擊,設定為is_click。

  • 召回目標選取: 設定為max(if(event='click', 1, 0))。

    該部分在執行的時候可以參考如下代碼:

    select max(if(event='click',1,0)) is_click ,...
    from ${behavior_table}
    where between dt=${bizdate_start} and dt=${bizdate_end}
    group by req_id,user_id,item

    其中:

    • ${behavior_table}:表示行為表。

    • ${bizdate_start}:是行為時間窗的開始日期。

    • event:是${behavior_table}表裡面事件欄位,需根據具體欄位選擇。

    • is_click:即目標名稱。

    其中維度計算的公式如下:

    EMB_SQRT4_STEP8: (8 + Pow(count, 0.25)) / 8) * 8
    EMB_SQRT4_STEP4: (4 + Pow(count, 0.25)) / 4) * 4
    EMB_LN_STEP8:    (8 + Log(count + 1)) / 8) * 8
    EMB_LN_STEP4:    (4 + Log(count + 1)) / 4) * 4

    其中count表示特徵枚舉值個數。當特徵取值個數較多時,使用Log函數。

配置召回模型參數:召回類型選擇向量召回,召回模型名稱輸入dssm,版本輸入1,特徵模組選擇ft,模型類型選擇dssm。開啟負採樣策略開關,採樣類型選擇negative_sampler,負樣本採樣數量設為1024。

設定目標類型為CLASSIFICATION,訓練天數為30,是否共用embedding選擇true,樣本權重開關保持關閉,是否增量訓練選擇true,增量訓練天數設定為1。