召回配置

更新时间:
复制为 MD 格式

一、概述

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 向量在线实时计算

语义泛化

通过深度网络学习用户-物品的隐式语义匹配

高效检索

百万级候选毫秒级召回,支持本地 FAISS 向量检索

特征丰富

支持用户画像、物品属性、行为序列等特征

2.3 关键配置参数

参数

说明

典型值

model_name

模型名称

dssm

model_type

模型类型

dssm / mind(多兴趣)

negative_sampler

负采样策略

1024 个负样本

train_days

训练天数

30 天

embed_dim_policy

Embedding 维度策略

EMB_SQRT4_STEP4(详见下方计算公式)

is_online_mode

在线模式

true/false

2.4 Embedding 维度计算策略

embed_dim_policy 用于自动计算离散特征的 Embedding 维度,假设特征枚举数为 N:

策略名称

计算公式

说明

EMB_SQRT4_STEP8

round(N^(1/4) / 8) × 8

四次方根,步长为 8

EMB_SQRT4_STEP4

round(N^(1/4) / 4) × 4

四次方根,步长为 4(默认

EMB_LN_STEP8

round(ln(N) / 8) × 8

自然对数,步长为 8

EMB_LN_STEP4

round(ln(N) / 4) × 4

自然对数,步长为 4

计算示例(假设特征枚举数 N = 10000):

  • EMB_SQRT4_STEP4: round(10000^0.25 / 4) × 4 = round(10 / 4) × 4 = 8

  • EMB_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 Processoreasyrec-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)

  • 时间衰减:近期行为权重更高

  • 多行为融合:点击、收藏、加购等行为加权

关键配置

参数

说明

典型值

day_interval

行为时间窗口

15 天

decay_coeff

时间衰减系数

0.2

trigger_top_n

Trigger 选取数目

10

u2i2i_top_n

召回数目

500

recall_engine

召回引擎

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,在服务启动后加载到内存

最佳实践

  1. DSSM 向量召回(TorchEasyRec) 作为核心深度召回

  2. 协同过滤 作为补充,挖掘行为关联

  3. 热门召回 作为兜底,保证覆盖率

  4. 按场景(猜你喜欢/相关推荐)选择合适算法组合