一、概述
PAI-Rec 推薦演算法定製提供豐富的召回演算法體系,覆蓋從簡單統計到深度學習的不同情境需求。本文介紹推薦演算法定製支援的所有召回演算法,並介紹 TorchEasyRec 環境下 DSSM 向量召回的功能特性。
召回演算法分類:
深度學習召回:DSSM 向量召回
協同過濾召回:ETrec、Swing、SimRank
統計召回:全域熱門、分組熱門
二、DSSM 向量召回(TorchEasyRec 版本)
2.1 演算法原理
DSSM(Deep Structured Semantic Model)是深度雙塔模型,將使用者和物品分別編碼為固定維度向量,通過向量相似性進行召回。
User Features Item Features
| |
┌─────┴──────┐ ┌─────┴─────┐
│ User Tower │ │ Item Tower│
│ (DNN) │ │ (DNN) │
└─────┬──────┘ └─────┬─────┘
user_embedding item_embedding
└──── dot product ────┘
Match Score
2.2 核心優勢
優勢 | 說明 |
雙塔解耦 | Item 向量離線預計算建索引,User 向量線上Realtime Compute |
語義泛化 | 通過深度網路學慣用戶-物品的隱式語義匹配 |
高效檢索 | 百萬級候選毫秒級召回,支援本地 FAISS 向量檢索 |
特徵豐富 | 支援使用者畫像、物品屬性、行為序列等特徵 |
2.3 關鍵配置參數
參數 | 說明 | 典型值 |
| 模型名稱 | dssm |
| 模型類型 | dssm / mind(多興趣) |
| 負採樣策略 | 1024 個負樣本 |
| 訓練天數 | 30 天 |
| Embedding 維度策略 | EMB_SQRT4_STEP4(詳見下方計算公式) |
| 線上模式 | true/false |
2.4 Embedding 維度計算策略
embed_dim_policy 用於自動計算離散特徵的 Embedding 維度,假設特徵枚舉數為 N:
策略名稱稱 | 計算公式 | 說明 |
|
| 四次方根,步長為 8 |
|
| 四次方根,步長為 4(預設) |
|
| 自然對數,步長為 8 |
|
| 自然對數,步長為 4 |
計算樣本(假設特徵枚舉數 N = 10000):
EMB_SQRT4_STEP4: round(10000^0.25 / 4) × 4 = round(10 / 4) × 4 = 8EMB_LN_STEP4: round(ln(10000) / 4) × 4 = round(9.21 / 4) × 4 = 8
2.5 TorchEasyRec 環境下的 DSSM 特性
在 TorchEasyRec 環境下,DSSM 具備以下特性:
特性 | 說明 |
訓練架構 | TorchEasyRec(PyTorch 後端) |
訓練平台 | PAI-DLC(GPU 訓練) |
向量索引 | FAISS(IVF 類型) |
線上服務 | EasyRec Processor(Torch 版本) |
特徵工程 | FG 特徵編碼(離線/線上一致性) |
模型熱更新 | 支援 steady_mode 自動載入 |
負採樣配置:
{
"negative_sampler": {
"sampler_type": "negative_sampler",
"num_sample": 1024
}
}
負採樣對向量召回至關重要,通過動態採樣負樣本提升模型區分能力。
2.5 TorchEasyRec 線上服務架構
TorchEasyRec 服務元件:
FG 編碼:保證離線/線上特徵一致性
User Tower:Torch ScriptModule 即時推理使用者向量
FAISS 索引:CPU 即可高效檢索(部署在 PAI-EAS CPU 機型)
TorchEasyRec Processor:
easyrec-torch-{version},參考版本列表
部署配置樣本:
{
"processor": "easyrec-torch-1.12",
"model_config": {
"fg_mode": "normal",
"faiss_neigh_num": 500,
"faiss_nprobe": 1000,
"steady_mode": true,
"period": 2880
}
}
三、熱門召回
3.1 全域熱門召回
原理:基於全站使用者行為統計,返回全域最熱門的物品。
計算公式:
適用情境:
新使用者冷啟動(無歷史行為)
兜底召回策略
熱門內容分發
配置要點:
參數 | 說明 |
行為權重 | 不同行為(曝光/點擊/轉化)賦予不同權重 |
時間衰減 | 近期行為權重更高 |
去重策略 | 按物品/作者/類目去重 |
3.2 使用者分組熱門召回
原理:將使用者按屬性(性別、年齡段、地區等)分組,統計各組內的熱門物品。
適用情境:
猜你喜歡首頁
不同人群偏好差異大的情境
優勢:
相比全域熱門更個人化
實現簡單,無需使用者歷史行為
3.3 物品分組熱門召回
原理:按物品屬性(類目、標籤等)分組,統計各組內的熱門物品。
適用情境:
詳情頁相關推薦,當協同過濾等演算法得到的相關物品不夠時(下面的ETrec I2I 召回),用分組熱門補全
基於當前物品的同類熱門推薦
四、協同過濾召回
4.1 ETrec U2I 召回
參考文檔:協同過濾etrec
原理:基於物品的協同過濾演算法(Item-based CF)。通過統計使用者-物品互動行為,計算物品之間的共現相似性,為使用者推薦與其歷史互動物品相似的其他物品。
核心特點:
支援即時行為觸發(U2I Trigger)
時間衰減:近期行為權重更高
多行為融合:點擊、收藏、加購等行為加權
關鍵配置:
參數 | 說明 | 典型值 |
| 行為時間視窗 | 15 天 |
| 時間衰減係數 | 0.2 |
| Trigger 選取數目 | 10 |
| 召回數目 | 500 |
| 召回引擎 | FeatureStore / Hologres |
4.2 ETrec I2I 召回
原理:基於物品的協同過濾,計算物品之間的相似性。
適用情境:
相關推薦(看了又看)
詳情頁相似物品推薦
相似性計算:
基於共現:兩個物品被同一使用者互動的次數
基於向量:物品 Embedding 的餘弦相似性
4.3 Swing U2I 召回
參考文檔:Swing演算法工具
原理:改進的協同過濾演算法,通過使用者-物品二部圖的 Swing 結構計算相似性。
核心思想:
如果兩個物品被大量共同使用者互動,則它們相似
引入使用者活躍度懲罰:活躍使用者權重降低
優勢:
緩解熱門物品過度推薦問題
發現長尾物品的關聯關係
4.4 SimRank U2I 召回
參考文檔:SimRank++相似性計算演算法
⚠️ 資源提示:SimRank 計算涉及多次迭代和全圖隨機遊走,資源消耗較大。建議使用 MaxCompute 包月資源以降低成本。
原理:基於圖結構的相似性演算法,通過隨機遊走計算節點相似性。
核心思想:
如果兩個使用者互動的相似物品多,則他們相似
如果兩個物品被相似的使用者互動,則它們相似
適用情境:
使用者行為稀疏的情境
需要挖掘間接關聯關係
特點:
迭代計算,收斂較慢
能捕捉多跳關聯
五、情境劃分:猜你喜歡 vs 相關推薦
5.1 為什麼要分情境?
不同情境的使用者意圖和推薦目標不同,需要採用不同的召回策略:
維度 | 猜你喜歡 | 相關推薦 |
頁面位置 | 首頁/推薦流 | 詳情頁/內容頁 |
使用者意圖 | 發現興趣,瀏覽消費 | 深入瞭解,決策輔助 |
觸發條件 | 使用者畫像 + 歷史行為 | 當前瀏覽物品 |
推薦目標 | 個人化探索 | 相似/互補推薦 |
多樣性要求 | 高(跨類目) | 中(同類目相關) |
5.2 猜你喜歡情境
適用演算法:
DSSM 向量召回:核心演算法,深度個人化
ETrec U2I:基於使用者歷史行為的協同過濾
Swing U2I:發現長尾興趣
SimRank U2I:挖掘間接關聯
使用者分組熱門:冷啟動兜底
配置特點:
強調使用者個人化
多路召回融合
多樣性控制
5.3 相關推薦情境
適用演算法:
ETrec I2I:基於物品相似性的協同過濾
物品分組熱門:同類目熱門推薦
DSSM 向量召回:語義相似性匹配
配置特點:
以當前物品為觸發
強調內容相關性
同類目/同主題優先
5.4 演算法-情境映射表
演算法 | 猜你喜歡 | 相關推薦 |
DSSM 向量召回 | ✅ 核心 | ✅ 輔助 |
ETrec U2I | ✅ 核心 | ❌ |
ETrec I2I | ❌ | ✅ 核心 |
Swing U2I | ✅ | ❌ |
SimRank U2I | ✅ | ❌ |
全域熱門 | ✅ 兜底 | ✅ 兜底 |
使用者分組熱門 | ✅ | ❌ |
物品分組熱門 | ❌ | ✅ |
六、演算法選型建議
6.1 按業務階段選型
階段 | 推薦演算法 |
冷啟動期 | 熱門召回 + 分組熱門 |
成長期 | 協同過濾(ETrec/Swing) |
成熟期 | DSSM 向量召回 + 多路融合 |
6.2 多路召回融合
生產環境通常採用多路召回策略:
融合策略:
加權融合:各路召回設定不同權重
去重融合:按物品 ID 去重,保留最高得分
配額融合:每路召回固定配額數量
七、總結
PAI-Rec 推薦演算法定製提供了完整的召回演算法體系:
演算法類型 | 代表演算法 | 核心能力 | 適用情境 |
深度學習 | DSSM(TorchEasyRec) | 語義匹配、高效檢索 | 大規模個人化 |
協同過濾 | ETrec/Swing/SimRank | 行為關聯、長尾發現 | 中規模情境 |
統計召回 | 熱門/分組熱門 | 簡單高效、冷啟動 | 兜底/新使用者 |
TorchEasyRec DSSM 核心優勢:
PyTorch 後端訓練,支援複雜模型結構
FAISS 向量索引,CPU 機型即可高效檢索
EasyRec Processor(Torch)統一線上服務
FG 特徵編碼保證離線/線上一致性
steady_mode 支援模型熱更新
EasyRec(TF)與 TorchEasyRec 向量索引對比:
架構 | 向量索引方案 | 說明 |
EasyRec(TensorFlow) | Hologres Proxima | 不支援 FAISS,Item 向量儲存在 Hologres 向量引擎 |
TorchEasyRec | FAISS | 支援 FAISS 索引,索引檔案與模型一起儲存在 OSS,在服務啟動後載入到記憶體 |
最佳實務:
以 DSSM 向量召回(TorchEasyRec) 作為核心深度召回
協同過濾 作為補充,挖掘行為關聯
熱門召回 作為兜底,保證覆蓋率
按情境(猜你喜歡/相關推薦)選擇合適演算法組合