1. 论文概述¶
本文由 Meta 团队提出 Generative Recommenders (GRs),一种全新的推荐系统范式。核心思想是将推荐问题重新建模为序列转换 (sequential transduction) 任务,用用户的行为动作(actions)作为一种新的"模态"进行生成式建模。为支撑这一范式,作者设计了 HSTU (Hierarchical Sequential Transduction Units) 架构,专为高基数 (high cardinality)、非平稳 (non-stationary) 的流式推荐数据优化。
关键贡献:
- GR 范式:统一异构特征空间为序列化表示,将排序和检索重新建模为序列转换任务
- HSTU 架构:比 FlashAttention2-based Transformers 快 5.3x-15.2x(序列长度 8192)
- M-FALCON 算法:推理时通过微批处理完全分摊计算成本,实现 285x 更复杂模型在同等推理预算下部署
- Scaling Law:首次展示推荐系统中类似语言模型的幂律缩放规律,训练计算量跨越三个数量级,达到 GPT-3/LLaMa-2 规模
- 工业部署:1.5 万亿参数模型已在 Meta 多个表面上线,线上 A/B 测试提升 12.4%
2. 从 DLRM 到 Generative Recommenders¶
2.1 统一异构特征空间¶
传统 DLRM 使用大量异构特征(类别型 + 数值型)。GR 将这些特征统一为单一时间序列:
类别型(稀疏)特征:包括用户喜欢的物品、关注的创作者、用户语言、人口统计等。处理方式: 1. 选择最长的时间序列(通常是用户互动物品序列)作为主时间序列 2. 缓慢变化的辅助时间序列(如人口统计、关注创作者)通过压缩——保留每段连续相同值的最早条目,然后合并到主时间序列
数值型(稠密)特征:如 CTR 计数器、比率等。这些特征变化频繁,完全序列化不现实。但关键观察是:这些数值特征的聚合操作基于的类别特征(如物品主题、位置)已在 GR 中被序列化编码。因此,给定足够表达力的序列转换架构 + target-aware 公式,可以移除数值特征。
2.2 将排序和检索重新建模为序列转换任务¶
给定 $n$ 个 token $x_0, x_1, \ldots, x_{n-1}$($x_i \in \mathbb{X}$),对应时间戳 $t_0, t_1, \ldots, t_{n-1}$,序列转换任务将输入映射到输出 $y_0, y_1, \ldots, y_{n-1}$($y_i \in \mathbb{X} \cup \{\varnothing\}$)。
用 $\Phi_i \in \mathbb{X}_c$($\mathbb{X}_c \subseteq \mathbb{X}$)表示系统推荐给用户的内容(如图片、视频),用户对 $\Phi_i$ 的回应动作为 $a_i$(如点赞、跳过、分享等)。
排序任务:通过交错 (interleaving) 物品和动作,公式化为:
$$p(a_{i+1}|\Phi_0, a_0, \Phi_1, a_1, \ldots, \Phi_{i+1})$$
(在类别特征之前),使用小型神经网络将 $\Phi_{i+1}$ 的输出转换为多任务预测。关键:这使得 target-aware 交叉注意力可以在一次 pass 中应用到所有 $n_c$ 个互动。
检索任务:学习分布 $p(\Phi_{i+1}|u_i)$,其中 $u_i$ 是用户在 token $i$ 处的表示,目标是选择 $\arg\max_{\Phi \in \mathbb{X}_c} p(\Phi|u_i)$。
| 任务 | 输入 $x_i$s | 输出 $y_i$s |
|---|---|---|
| 排序 | $\Phi_0, a_0, \Phi_1, a_1, \ldots, \Phi_{n_c-1}, a_{n_c-1}$ | $a_0, \varnothing, a_1, \varnothing, \ldots, a_{n_c-1}, \varnothing$ |
| 检索 | $(\Phi_0, a_0), (\Phi_1, a_1), \ldots, (\Phi_{n_c-1}, a_{n_c-1})$ | $\Phi'_1, \Phi'_2, \ldots, \Phi'_{n_c-1}, \varnothing$ |
2.3 生成式训练¶
工业推荐系统通常采用流式训练(每个样本按到达顺序处理一次)。传统印象级 (impression-level) 训练的计算复杂度为 $\sum_i n_i(n_i^2 d + n_i d_{ff} d)$。GR 通过以采样率 $s_u(n_i)$ 采样第 $i$ 个用户(设 $s_u(n_i) = 1/n_i$),将训练成本降至 $O(N^2 d + N d^2)$,减少 $O(N)$ 倍。实现方式是在用户请求/会话末尾发射训练样本,概率正比于 $1/n_i$。
3. HSTU 架构¶
3.1 整体结构¶
HSTU 是由残差连接的相同层堆叠而成,每层包含三个子层:
Pointwise Projection(逐点投影,公式1):
$$U(X), V(X), Q(X), K(X) = \text{Split}(\phi_1(f_1(X)))$$
Spatial Aggregation(空间聚合,公式2):
$$A(X)V(X) = \phi_2\left(Q(X)K(X)^T + \text{rab}^{p,t}\right) V(X)$$
Pointwise Transformation(逐点变换,公式3):
$$Y(X) = f_2(\text{Norm}(A(X)V(X)) \odot U(X))$$
其中:
- $f_i(X)$ 为 MLP,使用单个线性层 $W_i X + b_i$($f_1$ 和 $f_2$ 各用一层以降低计算量)
- $\phi_1$ 和 $\phi_2$ 为非线性激活,均使用 SiLU
- Norm 为层归一化
- $\text{rab}^{p,t}$ 为融合位置 $(p)$ 和时间 $(t)$ 信息的相对注意力偏置
- $U(X)$ 用于"门控"注意力池化的值 $V(X)$,$\text{Norm}(A(X)V(X)) \odot U(X)$ 也可视为 SwiGLU 的变体
HSTU 的设计允许用单一模块替换 DLRM 中的多个异构模块:
- Feature Extraction(特征提取):通过嵌入层检索类别特征的池化表示
- Feature Interaction(特征交互):HSTU 通过 $\text{Norm}(A(X)V(X)) \odot U(X)$ 实现特征"交互",替代 FM、DCN 等
- Representation Transformation(表示变换):元素级点积可虚拟实现 MoE 的门控操作
3.2 Pointwise Aggregated Attention¶
HSTU 采用逐点聚合(非归一化)注意力,而非 softmax 归一化注意力。动机: 1. target 相关的先前数据点数量是用户偏好强度的强信号,softmax 归一化后难以捕获 2. Softmax 对噪声鲁棒但不适合非平稳词表的流式场景
在合成数据(Dirichlet Process 生成非平稳词表的流式数据)上验证:
| 架构 | HR@10 | HR@50 |
|---|---|---|
| Transformers | .0442 | .2025 |
| HSTU (-rab^{p,t}, Softmax) | .0617 | .2496 |
| HSTU (-rab^{p,t}) | .0893 | .3170 |
HSTU 的 pointwise attention 比 softmax 版本 HR@10 提升 44.7%。
3.3 Stochastic Length(随机长度)¶
用户历史序列长度呈偏态分布,利用这种稀疏性可显著提升效率。Stochastic Length (SL) 通过以下策略选择子序列:
给定用户 $j$ 的序列 $(x_i)_{i=0}^{n_{c,j}}$,令 $N_c = \max_j n_{c,j}$,选择长度 $L$ 的子序列 $(x_{i_k})_{k=0}^L$:
$$ (x_i)_{i=0}^{n_{c,j}} \text{ if } n_{c,j} \leq N_c^{\alpha/2} $$ $$ (x_{i_k})_{k=0}^{N_c^{\alpha/2}} \text{ if } n_{c,j} \gt N_c^{\alpha/2}, \text{ w/ probability } 1 - N_c^\alpha / n_{c,j}^2 $$ $$ (x_i)_{i=0}^{n_{c,j}} \text{ if } n_{c,j} \gt N_c^{\alpha/2}, \text{ w/ probability } N_c^\alpha / n_{c,j}^2 $$
这将注意力相关复杂度降至 $O(N_c^\alpha d) = O(N^\alpha d)$,$\alpha \in (1,2]$。
SL 对模型质量的影响(30天用户历史,工业规模配置):
| Alpha ($\alpha$) | Max Sequence Lengths 1,024 | 2,048 | 4,096 | 8,192 |
|---|---|---|---|---|
| 1.6 | 71.5% | 76.1% | 80.5% | 84.4% |
| 1.7 | 56.1% | 63.6% | 69.8% | 75.6% |
| 1.8 | 40.2% | 45.3% | 54.1% | 66.4% |
| 1.9 | 17.2% | 21.0% | 36.3% | 64.1% |
| 2.0 | 3.1% | 6.6% | 29.1% | 64.1% |
表中数值为序列稀疏度。$\alpha=2.0$ 表示不使用 SL 的基线。蓝色下划线标记为模型质量无明显退化的设置。在 $\alpha=1.6$ 时,长度 4096 的序列被压缩到 776,去除超过 80% 的 token,且主要指标 NE 退化不超过 0.002 (0.2%)。
3.4 高效 GPU 内核¶
作者开发了高效的注意力内核,将稀疏的 ragged attention 计算转换为分组 GEMM,实现全 ragged 注意力计算。这使得 HSTU 的自注意力变为内存受限,缩放为 $\Theta(\sum_i n_i^2 d_{qk} R^{-1})$($R$ 为寄存器大小),带来 2-5x 吞吐提升。
3.5 激活内存优化¶
HSTU 显著减少激活内存:
- 注意力外部的线性层从 6 个减少到 2 个(与 SwiGLU 等方法对齐)
- 将 $\phi_1(f_1(\cdot))$、层归一化、可选 dropout 和输出 MLP 融合为单一算子
- 每层激活内存:$2d + 2d + 4hd_{qk} + 4hd_v + 2hd_v = 14d$(bfloat16)
对比 Transformer 每层需要 $33d$ 的总激活状态,HSTU 的设计使得可以构建超过 2 倍深度的网络。
3.6 M-FALCON 推理算法¶
M-FALCON (Microbatched-Fast Attention Leveraging Cacheable OperatioNs) 解决排序阶段需要对数千候选打分的挑战。
核心思想:通过修改注意力掩码和 $\text{rab}^{p,t}$ 偏置,在一个前向传播中并行处理 $b_m$ 个候选,使交叉注意力成本从 $O(b_m n^2 d)$ 降至 $O((n+b_m)^2 d) = O(n^2 d)$(当 $b_m = O(n)$ 时)。
将 $m$ 个候选分为 $\lceil m/b_m \rceil$ 个微批次,可选择跨前向传播或跨请求利用编码器级 KV 缓存。总体实现 285x 更复杂模型以线性扩展,在同等推理预算下实现 1.5x-3x 吞吐提升。
4. 实验¶
4.1 传统序列推荐设置(公开数据集)¶
在 MovieLens 和 Amazon Reviews 上与 SASRec 比较,使用 full-shuffle 和 multi-epoch 训练。
| 数据集 | 方法 | HR@10 | HR@50 | HR@200 | NDCG@10 | NDCG@200 |
|---|---|---|---|---|---|---|
| ML-1M | SASRec (2023) | .2853 | .5474 | .7528 | .1603 | .2498 |
| ML-1M | HSTU | .3097 (+8.6%) | .5754 (+5.1%) | .7716 (+2.5%) | .1720 (+7.3%) | .2606 (+4.3%) |
| ML-1M | HSTU-large | .3294 (+15.5%) | .5935 (+8.4%) | .7839 (+4.1%) | .1893 (+18.1%) | .2771 (+10.9%) |
| ML-20M | SASRec (2023) | .2906 | .5499 | .7655 | .1621 | .2521 |
| ML-20M | HSTU | .3252 (+11.9%) | .5885 (+7.0%) | .7943 (+3.8%) | .1878 (+15.9%) | .2774 (+10.0%) |
| ML-20M | HSTU-large | .3567 (+22.8%) | .6149 (+11.8%) | .8076 (+5.5%) | .2106 (+30.0%) | .2971 (+17.9%) |
| Books | SASRec (2023) | .0292 | .0729 | .1400 | .0156 | .0350 |
| Books | HSTU | .0404 (+38.4%) | .0943 (+29.5%) | .1710 (+22.1%) | .0219 (+40.6%) | .0450 (+28.6%) |
| Books | HSTU-large | .0469 (+60.6%) | .1066 (+46.2%) | .1876 (+33.9%) | .0257 (+65.8%) | .0508 (+45.1%) |
HSTU 标记的行使用与 SASRec 相同配置(相同层数、头数等)。HSTU-large 使用 4 倍层数和 2 倍头数。
扩展实验(Appendix D, Table 12)还包含 GRU4Rec 和 BERT4Rec 的比较,HSTU 显著优于所有方法。
4.2 工业规模流式设置¶
在工业规模数据集上训练超过 100B 样本(DLRM 等效量),64-256 张 H100 GPU。排序用 NE (Normalized Entropy) 评估,检索用 log perplexity 评估。
| 架构 | 检索 log pplx | 排序 NE E-Task | 排序 NE C-Task |
|---|---|---|---|
| Transformers | 4.069 | NaN | NaN |
| HSTU (-rab^{p,t}, Softmax) | 4.024 | .5067 | .7931 |
| HSTU (-rab^{p,t}) | 4.021 | .4980 | .7860 |
| Transformer++ | 4.015 | .4945 | .7822 |
| HSTU (original rab) | 4.029 | .4941 | .7817 |
| HSTU | 3.978 | .4937 | .7805 |
关键发现:
- HSTU 显著优于 Transformers,主要归因于 pointwise attention 和改进的相对注意力偏置
- 标准 Transformer 在排序中频繁出现 loss 爆炸(结果为 NaN),即使使用较低学习率和 pre-norm 残差连接
- HSTU 在此小规模设置下比 Transformer++ (RoPE + SwiGLU) 快 1.5x-2x,HBM 使用少 50%
4.3 编码器效率¶
HSTU vs FlashAttention2-based Transformers($d=512, h=8, d_{qk}=64$,bfloat16,NVIDIA H100 GPU):
- 训练:HSTU 最高达 15.2x 加速(序列长度 8192,$\alpha=1.6$)
- 推理:HSTU 最高达 5.6x 加速
4.4 GR vs DLRM 的端到端对比¶
检索模型离线/在线对比:
| 方法 | 离线 HR@K K=100 | K=500 | 在线 E-Task | C-Task |
|---|---|---|---|---|
| DLRM | 29.0% | 55.5% | +0% | +0% |
| DLRM (abl. features) | 28.3% | 54.3% | - | - |
| GR (content-based) | 11.6% | 18.8% | - | - |
| GR (interactions only) | 35.6% | 61.7% | - | - |
| GR (new source) | 36.9% | 62.4% | +6.2% | +5.0% |
| GR (replace source) | - | - | +5.1% | +1.9% |
排序模型离线/在线对比:
| 方法 | 离线 NE E-Task | C-Task | 在线 E-Task | C-Task |
|---|---|---|---|---|
| DLRM | .4982 | .7842 | +0% | +0% |
| DLRM (DIN+DCN) | .5053 | .7899 | - | - |
| DLRM (abl. features) | .5053 | .7925 | - | - |
| GR (interactions only) | .4851 | .7903 | - | - |
| GR | .4845 | .7645 | +12.4% | +4.4% |
GR 不仅在离线显著超越 DLRM,线上 A/B 测试也带来 12.4% 的指标提升。
关键发现:
- GR 使用原始类别互动特征,DLRM 使用大量手工特征;当给 DLRM 同样的 ablated features 时性能显著下降,说明 GR 能通过统一特征空间有意义地捕获这些特征
- 仅使用内容特征的 GR baseline 效果很差,凸显高基数用户动作的重要性
- 仅使用互动的 GR 比完整 GR 在主消费任务排序 NE 上差 2.6%,验证了辅助特征的价值
4.5 推理效率对比¶
使用 M-FALCON 的 GR 模型(285x FLOPs)vs DLRM(1x FLOPs):
- 当 scoring 1024/16384 个候选时,GR 实现 1.50x/2.99x 更高 QPS
- 这意味着 285x 更复杂的模型在相同推理预算下吞吐量更高
4.6 Scaling Law¶
首次展示推荐系统中的 scaling law:
- 在低计算量区间,DLRM 可能因手工特征优于 GR
- 但 GR 展示出显著更好的 FLOPs 缩放性,DLRM 性能在约 200B 参数时饱和,而 GR 可扩展到 1.5 万亿参数
- 所有主要指标(HR@100、HR@500、NE)均随训练计算量呈幂律缩放
- 跨越三个数量级的计算量,最大测试模型(8192 序列长度、1024 嵌入维度、24 层 HSTU)的总训练计算量(标准化为 365 天)接近 GPT-3 和 LLaMa-2
- 与语言模型不同,序列长度在 GR 中扮演显著更重要的角色
5. 相关工作对比¶
论文详细对比了 GR 与已有方法的关键差异:
| 模型 | 输入 | 期望输出 | 架构 | 训练方式 |
|---|---|---|---|---|
| GRs | $\Phi_0, a_0, \Phi_1, a_1, \ldots, \Phi_i$ | $a_i$ (target-aware) | Self-attention (HSTU) | Causal autoregressive (streaming/single-pass) |
| GRU4Rec, SASRec | $\Phi_0, \Phi_1, \ldots, \Phi_{i-1}$ | $\Phi_i$ | RNNs/Self-attention | Causal autoregressive (multi-pass) |
| BERT4Rec, S3Rec | $\Phi_0, \Phi_1, \ldots, \Phi_i$ (推理时) | $\Phi_i$ | Self-attention | Sequential multi-pass |
| DIN, BST, TWIN, TransAct | $(\Phi_0, a_0), \ldots, (\Phi_{i-1}, a_{i-1}), \Phi_i$ | $a_i$ (target-aware) | Pairwise/Self-attention | Pointwise (streaming/single-pass) |
GR 的核心优势: 1. 通过交错内容和动作序列,在因果自回归设置下实现 target-aware 注意力 2. 联合建模内容推荐过程和用户反应过程的联合分布 3. 全序列化设置使推荐可以端到端生成式建模
6. 结论¶
GR + HSTU 代表了推荐系统从特征工程驱动的 DLRM 向生成式序列建模的范式转变。特征的大幅简化为推荐、搜索和广告的基础模型 (foundation model) 铺平了道路,通过统一特征空间实现跨领域应用。全序列化设置也使推荐可以端到端的生成式方式建模。