《Actions Speak Louder than Words: Trillion-Parameter Sequential Transducers for Generative Recommendations》
大型推荐系统的特点是依赖高基数(high cardinality)的异构(heterogeneous )的特征,且每天需要处理数百亿的用户行为。尽管大多数工业界的 Deep Learning Recommendation Models: DLRMs 在包含数千个特征的海量数据上进行训练,但它们在计算(compute )的扩展性方面表现不佳。受 Transformer 在语言和视觉领域取得成功的启发,我们重新审视了推荐系统的基础设计选择(fundamental design choices )。我们将推荐问题重新定义为生成式建模框架(generative modeling framework )内的序列转换(sequential transduction )任务(即,"Generative Recommenders"),并提出了一种新架构 HSTU,该架构专为高基数、非平稳(non-stationary )的流式推荐数据设计。在合成数据集和公开数据集上,HSTU 的 NDCG 指标比基线模型最高提升65.8%,并且在处理长度为8192的序列时,其速度比基于 FlashAttention2 的 Transformer 快 5.3 到 15.2 倍。基于 HSTU 的 Generative Recommenders 拥有 1.5 万亿(1.5T )参数,在在线 A/B tests 中指标提升12.4%,并已部署在拥有数十亿用户的大型互联网平台的多个业务场景中。更重要的是,实验表明,Generative Recommenders 的模型质量随训练计算量呈幂律(power-law)缩放,覆盖三个数量级,达到 GPT-3/LLaMA-2 的规模,这降低了未来模型开发所需的碳足迹(carbon footprint),并为推荐领域的首个 foundation models 铺平了道路。
推荐系统是在线内容平台和电子商务领域的核心,每天在为数十亿用户体验个性化服务方面发挥着关键作用。近十年来,推荐领域的 SOTA 方法一直基于 Deep Learning Recommendation Models: DLRMs。DLRMs 的特点是使用异构特征(heterogeneous features ),例如numerical features (计数器和比值)、embeddings features、以及 categorical features (如 creator ids, user ids 等等)。由于每分钟都有新内容和新商品被添加,特征空间具有极高的基数,通常达到数十亿级别。为了利用数万个此类特征,DLRM 采用各种神经网络来组合特征、转换 intermediate representations 、并生成 final outputs 。
尽管 DLRM 利用了大量人工设计的 feature sets 并在海量数据上进行训练,但工业界的大多数 DLRMs 在 compute 的扩展性方面表现较差。这一局限性值得关注,但尚未得到解决。
受 Transformer 在语言和视觉领域成功的启发,我们重新审视了现代推荐系统的基础设计选择(fundamental design choices )。我们发现,在十亿用户规模下,替代的方案需要克服三个挑战。
首先,推荐系统中的特征缺乏显式结构(explicit structures )。虽然在小规模场景中已经探索了序列化的方法(sequential formulations )(详细讨论见附录 B ),但异构特征(包括 high cardinality ids、交叉特征、计数器、比值等)在工业级 DLRMs 中起着关键作用。
其次,推荐系统使用不断变化的十亿级 vocabulary 。与语言模型中 10 万级的静态 vocabulary 相比,十亿级动态 vocabulary 带来了训练挑战;并且由于需要以 target-aware 的方式考虑数万个 candidates ,导致推理成本较高。
最后,计算成本是启用大型序列模型的主要瓶颈。GPT-3 在数千块 GPU 上用 1-2 个月的时间训练了 300B tokens 。这一规模看似惊人,但与用户行为的规模相比却相形见绌。最大的互联网平台每天服务数十亿活跃用户,用户每天与数十亿的帖子、图片、以及视频进行互动。用户序列的长度可能高达 tokens 数量比语言模型在1-2 个月内处理的多几个数量级。
在这项工作中,我们将用户行为视为生成式建模(generative modeling)中的一种新模态(modality)。我们的核心见解是:
a):在适当的新特征空间下,工业级 recommenders 中的核心的 ranking task 和 retrieval task 可以被建模为生成式建模问题。
b):这种范式使我们能够系统地利用 features 、training 和 inference 中的冗余来提高效率。
由于我们的新公式,我们部署的模型在计算复杂度上比之前的 SOTA 模型高三个数量级,同时 topline 指标提升了 12.4%,如 Figure 1 所示。

我们的贡献如下。
首先,我们在第 2 节中提出 Generative Recommenders: GRs ,这是一种取代 DLRMs 的新范式。我们将 DLRMs 中的异构特征空间序列化(sequentialize )和统一化(unify );当序列长度趋于无穷大时,新方法将近似于完整的 DLRM 特征空间。这使我们能够将主要的推荐问题( ranking 和 retrieval )重新定义为 GRs 中的纯序列转换任务(pure sequential transduction tasks)。重要的是,这进一步使模型能够以 sequential 、generative 的方式进行训练,从而允许我们用相同的计算量训练几个数量级的更多数据。
接下来,我们在训练和推理过程中解决计算成本挑战。我们提出了一种新的 sequential transduction 架构,即 Hierarchical Sequential Transduction Units: HSTU。HSTU 针对大型的 non-stationary 的 vocabulary 修改了注意力机制,并利用 recommendation 数据集的特性,在处理 8192 长度的序列时,相比基于 FlashAttention2 的 Transformer 实现了 5.3 倍至 15.2 倍的加速。
此外,通过一种新的算法 M-FALCON (通过 micro-batching 完全分摊计算成本,见第 3.4节),我们可以在传统 DLRMs 使用的相同推理预算下,服务复杂度高 285 倍的 GR 模型,同时实现 1.50 倍至 2.99 倍的加速。
最后,在第 4 节中我们通过合成数据集、公开数据集、以及在拥有数十亿日活跃用户的大型互联网平台的多个业务场景中的部署,验证了所提出的技术。据我们所知,我们的工作首次表明,在 generative settings 中,像 HSTU 这样的 pure sequential transduction-based 架构在大型工业场景中显著优于 DLRM 。值得注意的是,我们不仅克服了传统 DLRMs 中已知的 scaling 瓶颈,还成功证明了 scaling law 适用于推荐系统,这标志着推荐系统可能迎来类似 ChatGPT 的时刻。
现代 DLRM 模型通常使用大量的 categorical (即,'sparse')特征和 numerical(即,'dense')特征进行训练。在 GRs 中,我们将这些特征整合并编码为一条单一的统一时间序列(single unified time series ),如 Figure 2 所示。
Categorical ('sparse') features:此类特征的示例包括用户喜欢的 items、用户关注的类别(如“户外”)中的创作者(creators)、用户语言、用户加入的社区、请求发起的城市等。
我们按以下方式将这些特征序列化:
首先选择最长的时间序列作为主时间序列(main time series )。通常是通过合并这类特征来实现的:该特征表示用户所交互的 items。
剩余的特征通常是随时间缓慢变化的时间序列,如人口统计信息、或者所关注的创作者。我们通过保留每个连续区间(consecutive segment )的 earliest entry 来压缩这些时间序列,然后将结果合并到主时间序列中。由于这些时间序列变化非常缓慢,这种方法不会显著增加 overall sequence 的长度。
Numerical ('dense') features:此类特征的示例包括 weighted and decayed counters、比值(ratios)等。例如,一个特征可以表示用户过去对给定 topic 的点击率(click through rate: CTR),即用户在匹配给定 topic 的 items 上的点击率。
与 categorical 特征相比,这些特征变化更为频繁,可能在每个 (user, item) interaction 中都会变化。因此,从计算和存储的角度来看,完全序列化这些特征是不可行的。然而,一个重要的观察是,执行这些 aggregations 的 categorical features (如 item topics, locations )已经在 GRs 中被序列化和被编码。因此,在 GRs 中,如果有一个足够 expressive 的 sequential transduction 架构,结合 target-aware formulation,随着序列长度和计算量的增加,可以有意义地捕获 numerical features,我们就可以移除 numerical features。
由于移除了
numerical features,因此就需要模型来自动捕获numerical features。因此,模型需要足够强大、序列需要足够长。

给定按时间顺序排列的包含 tokens 的一个列表 sequential transduction任务将此 input sequence 映射到 output tokens
是 token空间,它是异构的,可能包含以下类型的数据:item id、用户统计学特征、用户关注的作者,...。
我们使用 non-stationary)的。用户可以对 video completion+share ),其中
为内容空间,它是同构的,由所有的 item组成。
在因果自回归(causal autoregressive)的设置中,标准的 ranking 和 retrieval 任务可以定义为 sequential transduction 任务(Table 1 )。我们有以下观察:
Retrieval:在推荐系统的检索阶段,我们学习在 token representation 。典型 objective 是选择 autoregressive setup 有两个不同之处:
首先,
例如,用户在
上的行为(及 )是不喜欢( unlike)。
其次,当 engagement 无关的 categorical feature(如人口统计信息)时,
根据实验章节的描述,
Retrieval阶段使用了负样本采样,而不是完整的softmax output。在
inference的时候,根据分布从 candidate space中选择top-K candidates。
Ranking:GRs 中的 ranking 任务面临独特挑战,因为工业推荐系统通常需要一个 "target-aware" 的公式。在这种 settings 中,target “interaction” 需要尽早发生,而标准 autoregressive setup 中的 “interaction” 发生较晚(如 encoder output 之后的 softmax ),这是不可行的。
在 Table 1 中,我们通过交错 items 和 actions 来解决这一问题,使 ranking 任务可以表示为 categorical features 之前)。在实践中,我们应用一个小型神经网络将 outputs 转换为 multi-task predictions 。重要的是,这使我们能够在 one pass 中对所有 engagements 应用 target-aware cross-attention。
即:每个
task对应一个ranking candidates,预测对应的action。

工业推荐器(industrial recommenders)通常在 streaming setup 中训练,其中每个示例在 available 时按顺序地处理。在这种 setup 中,基于 self-attention 的 sequential transduction 架构(如 Transformer)的总计算需求按 tokens 数量,embedding 维度。
括号中的第一部分来自 self-attention 。其中,假设由于大多数亚二次(subquadratic)的算法涉及 quality tradeoffs ,且在wall-clock time 中表现不如二次(quadratic )的算法,其 scaling factor 为
括号中的第二部分来自 pointwise MLP layers ,hidden layers 的尺寸为
令:
总体时间复杂度降为
为了以可扩展的方式训练长序列上的 sequential transduction 模型,我们从传统的 impression-level training 转向 generative training ,将计算复杂度降低 Figure 2 的顶部所示。通过这样做,encoder 成本在多个 targets 之间分摊。
更具体地说,当我们以速率 training examples ,导致
这短话的意思是说:
传统的
impression-level training是在每个item impression上预测一次,每次预测一个item。这里是在每个
session上预测一次,每次预测多个item。因此可以将复杂度降低倍。但是这有一个缺点:模型能够很好地捕获 cross-session的pattern,但是未能学习within-session的pattern。
cross-session:在每个session开始的瞬间,预测用户在这个session可能对什么item感兴趣。
within-session:在session内部,已知用户历史行为(包括session内的行为),预测用户在该session中的下一个行为。传统的
impression-level training无法实现这种一次性预测多个item的能力。
为了将 GRs 扩展到具有大型 non-stationary 词表的工业级推荐系统,我们接下来介绍一种新的编码器设计,即 Hierarchical Sequential Transduction Unit: HSTU。HSTU 由通过残差连接(residual connections )所连接的 identical layers 堆叠而成。每层包含三个子层:Pointwise Projection 、Spatial Aggregation 和 Pointwise Transformation :
Pointwise Projection:
Spatial Aggregation:
Pointwise Transformation:
注意:根据论文后续章节的描述,这里有可选的
Dropout。
其中:
queries、keys、values、gating weights。
注意,它们都是
multi-head的,为 head数量。
attention 操作。
MLP 。我们对 fused kernel 为 queries keys values gating weights batches computations )。
SiLU 。Norm 是 layer norm 。
relative attention bias 。
relative attention bias要比仅仅考虑位置的效果更好,可以借鉴。
根据论文后续章节的描述,上述公式在实现时采用了
kernel fuse。
完整符号见 Table 9 。

GRs 的整体架构如下图所示。

HSTU 的 encoder design 允许用 a single modular block 替换 DLRMs 中的 heterogeneous modules 。我们观察到,DLRMs 实际上包含三个主要阶段:特征提取(Feature Extraction )、特征交互(Feature Interactions )和表征转换(Transformations of Representations )。
Feature Extractions 检索 categorical features 的 pooled embedding representations,其最先进的版本可以被推广(be generalized )为 pairwise attention 和 target-aware pooling,这在 HSTU layers 中得到体现。
Feature Interaction 是 DLRMs 中最关键的部分,常用方法包括因子分解机(factorization machines )及其神经网络变体、高阶特征交互(higher order feature interactions)等。
采用公式 HSTU 通过使 attention pooled features 直接与其他特征“交互”来取代 feature interactions 。这种设计的动机是:learned MLPs 近似 dot products 的困难。考虑到 SiLU 应用于 SwiGLU 的变体。
Transformations of Representations 通常通过 Mixture of Experts: MoEs 和 routing 来处理多样化的、异构的群体(populations),核心思想是通过为不同用户专门化(specializing )子网络来执行条件计算(conditional computations)。HSTU 中的逐元素乘积(即,MoE 中使用的gating operations ,作为一个 normalization factor 。
HSTU 采用新的 pointwise aggregated (normalized) attention 机制。相比之下,softmax attention 在整个序列上计算归一化因子(normalization factor )。这一设计基于两个因素:
首先,与 target 相关的先验数据点(prior data points )的数量是指示用户偏好(user preferences )强度的强特征,这在 softmax 归一化后难以捕捉。这一点至关重要,因为我们需要预测 engagements 强度(如在给定 item 上的停留时长)、以及 items 的相对排序(如预测排序以最大化 AUC )。
读者理解这段话的意思是:
softmax归一化是计算historical action sequence中所有item之间的相对强度。极端情况下,即使用户对所有item都不感兴趣,这个归一化的强度也是非零的一个较大的值。而这里的pointwise aggregated (normalized) attention不是归一化的,它得到的是绝对强度。
其次,尽管 softmax activation 本质上对噪声是 robust 的,但它不太适合 streaming settings 中的 non-stationary vocabularies 。
所提出的 pointwise aggregated attention 机制为:
重要的是,pointwise pooling 后需要 layer norm 来稳定训练。通过遵循 Dirichlet Process 在一个 nonstationary vocabulary 上生成 streaming data 的合成数据(细节见附录 C),可以理解这一设计。在此设置中,我们观察到 softmax attention setup 和 pointwise attention setup 之间的差距高达 44.7% ,如 Table 2 所示。
“需要
layer norm来稳定训练”:即,中的 Norm(.)。

在推荐系统中,用户历史序列的长度通常遵循偏态分布(a skewed distribution),导致稀疏的 input sequences,尤其是在序列极长的情况下。这种稀疏性可用于显著提高 encoder 的效率。为此,我们针对 GPU 开发了一种高效的 attention kernel ,该 kernel 以类似于 《Self-attention does not need o(n2) memory》、《FlashAttention: Fast and memory-efficient exact attention with IO-awareness》的方式融合连续的 GEMMs (通用矩阵乘法),但执行完全分块(fully raggified )的注意力计算(attention computations )。这本质上把注意力计算转换为不同大小的 grouped GEMMs(附录 G)。因此,HSTU 中的 self-attention 变为内存有界的(memory-bound ),内存访问规模为 register size。如实验章节所述,这种方法本身即可带来 2-5 倍的吞吐量提升。
我们进一步通过随机长度(Stochastic Length: SL)算法增加用户历史序列的稀疏性。推荐系统中用户历史序列的一个关键特征是用户行为具有时间重复性(temporally repetitive ),即用户行为在其交互历史的多个尺度上表现出规律性。在不影响模型质量的前提下,这为人为增加稀疏性提供了机会,从而显著降低 encoder 成本为
我们可以将用户 SL 按以下方式选择 input sequences:
为最长的用户行为序列。 SL算法的核心为:
如果用户行为序列较短
,那么直接使用原始的整个序列。 如果用户行为序列较长,那么以较大的概率(即,
) 使用采样的、长度为 的序列;以较小的概率(即, )使用原始的整个序列。 因此,期望的序列计算复杂度
为 。
这将 attention 相关的复杂度降低为 F.1。我们注意到,将 SL 应用于训练可实现高性价比的 system design ,因为训练通常比推理涉及更高的计算成本。
Table 3 展示了具有 30 天用户历史的典型工业规模的 configuration 下,不同序列长度和 F)。模型质量下降可忽略的 settings 用蓝色下划线突出显示。标记为 SL 的 base sparsity 的情况。较低的 8192。
第一行
84.4%表示:当时,应用 SL之后,序列长度低于8192的序列数量占比为84.4%。

在推荐系统中,large batch sizes 对 training throughput 和 model quality 都至关重要。因此,activation memory usage 成为主要的 scaling bottleneck ,这与通常使用 small batch sizes 训练且以 parameter memory usage 为主的大型语言模型不同。
与 Transformer 相比,HSTU 采用 a simplified and fully fused design ,显著减少了 activation memory usage。
首先,HSTU 将 attention 之外的线性层数量从 6 个减少到 2个,这与最近使用 elementwise gating 减少 MLP computations 的工作一致(《Transformer quality in linear time》、《Efficiently modeling long sequences with structured state spaces》)。
其次,HSTU 将 computations 积极地融合到单个算子中,包括:
公式
以及公式 layer norm 、optional dropout 、以及 output MLP 。
这种简化的设计将 bfloat16 格式下每层的 activation memory usage 减少到
相比之下,Transformer 在 attention 后使用一个 feedforward layer 和 dropout ((intermediate state );随后是包含 layer norm, linear, activation, linear, and dropout 的 pointwise feedforward block ,intermediate states 为 input 和 input layer norm (qkv projections 后,总 activation states 为 HSTU 的设计因此支持扩展到深度超过 2 倍的 deeper layers。
此外,用于表示词汇表(vocabularies )的大规模 atomic ids 也需要大量内存。对于 10b 规模的词汇表、512d embeddings 和Adam optimizer,以 fp32 存储 embeddings 和 optimizer states 已需要 60TB 内存。为缓解内存压力,我们采用 rowwise AdamW optimizers 并将 optimizer states 放置在 DRAM 上,这将 HBM usage per float 从 12 bytes 减少到 2 bytes。
我们要解决的最后一个挑战是推荐系统在 serving 时需要处理大量 candidates 。我们将重点放在 ranking 上,因为对于 retrieval 来说,encoder 成本可以完全分摊(fully amortizable),并且对于利用 quantization, hashing, or partitioning 的 MIPS、以及通过 beam search or hierarchical retrieval 的 non-MIPS 的情况,都存在高效算法。
对于 ranking,我们需要处理多达数万个 candidates 。我们提出一种算法 Microbatched-Fast Attention Leveraging Cacheable OperatioNs: M-FALCON,用于处理 input sequence size 为 candidates 。
在一次前向传播中,M-FALCON 通过修改 attention masks 和 biased ,并行处理 candidates ,使得为 candidates 执行的 attention operations 完全相同。当 cross-attention 的成本从candidates 划分为 microbatches ,以跨前向传播利用 encoder-level 的 KV caching 来降低成本,或跨 requests 最小化 tail latency (详细讨论见附录 H )。
总体而言,M-FALCON 使模型复杂度能够与 candidates 数量线性扩展,这些 candidates 数量是传统的 DLRMs 的 ranking stages 的数量。在实验章节讨论的典型 ranking configuration 中,我们成功应用了复杂度高 285 倍的 x target-aware cross attention model ,同时在恒定推理预算下实现了 1.5x-3x 的吞吐量。
实验的
setup(如超参数的配置)未给出来。也没有复现的代码。
传统的 sequential settings:我们首先在两个流行的推荐数据集 MovieLens 和 Amazon Reviews 上评估 HSTU 的性能。我们遵循文献中的 sequential recommendation settings ,包括 full shuffle 和 multi-epoch training 。基线使用 SOTA 的Transformer 实现的 SASRec。我们报告整个语料库的 Hit Rate@K 和 NDCG@K ,与近期工作一致(《A case study on sampling strategies for evaluating neural sequential item recommendation models》、《Revisiting neural retrieval on accelerators》)。
结果如 Table 4 所示。
“SASRec (2023)” 表示《Revisiting neural retrieval on accelerators》 中报告的最佳 SASRec 方案。
标记为 “HSTU” 的行使用与 SASRec 相同的配置(相同的层数、头数等)。
“HSTU-large” 表示更大的 HSTU encoders (4 倍层数和 2 倍头数)。
结果表明:
a):HSTU 通过针对 recommendations 而优化的设计,在使用相同配置时显著优于基线。
b):HSTU 在 scale up 时进一步提升性能。
需要注意的是,此处使用的评估方法与 industrial-scale settings 有显著差异,因为 full-shuffle and multi-epoch training 在工业使用的 streaming settings 中通常不可行(《Monolith: Real time recommendation system with collisionless embedding table》)。

工业规模的 streaming settings:接下来,我们在 streaming setting 中使用工业规模数据集比较 HSTU 、消融的 HSTU 和Transformer 的性能。在本节其余部分,对于 ranking ,我们报告 Normalized Entropy: NE 。我们在 100B 个样本(相当于 DLRM 的 100B 样本)上训练模型,每个 job 使用 64-256 个 H100 GPU 。
由于 ranking 在 multi-task setting 中进行,我们报告 main engagement event(E-Task)和 main consumption event (C-Task)。在我们的上下文中,NE 减少 0.001 即视为显著,因为这通常会为数十亿用户带来 0.5% 的关键指标提升。
对于 retrieval ,由于 setup 类似于 language modeling ,我们报告 log perplexity 。
由于资源限制,我们在 smaller-scale setting 中固定 encoder parameters (这里应该是 encoder hyper-parameters ,而不是待学习的 encoder parameters ),并网格搜索其他超参数:
对于 ranking:
对于 retrieval:
为序列长度、 为 layer num、为 embedding size。
结果如 Table 5 所示。
首先,HSTU 显著优于 Transformer ,尤其是在 ranking 任务中,这可能归因于 pointwise attention 和改进的 relative attention biases(即,
其次,消融的 HSTU 与 HSTU 之间的差距证实了我们设计的有效性。基于 Softmax 的 HSTU 和 Transformer 的最佳学习率比其他模型低约 10 倍,这是由于训练稳定性原因。即使使用较低的学习率和 pre-norm residual connections ,我们在 ranking 中使用标准 Transformer 时仍频繁遇到损失爆炸。
最后,HSTU 优于 LLM 中流行的 Transformer 变体 Transformer++ (《Llama: Open and efficient foundation language models》),后者使用 RoPE、SwiGLU 等。
总体而言,在 small scale setting 中,HSTU 以 1.5x-2x 的速度和 50% 的 HBM usage实现了更好的质量。

随机长度(Stochastic Length):Figure 4 和 Figure 5(a) 展示了 stochastic length: SL 对模型指标的影响。
当 4096 的序列大部分时间会被转换为长度为 776 的序列,即移除超过 80% tokens 。即使稀疏率增加到64%-84% 时,我们在 main task 中获得的NE下降不超过 0.002 (0.2% )。这一证据表明,对于合适的 SL 不会对模型质量产生负面影响,并允许通过高稀疏性降低训练成本。我们在附录 F.3 中进一步验证,SL 显著优于现有的长度外推(length extrapolation )技术。


编码器效率:Figure 5 比较了 HSTU 和 Transformer 编码器在 training and inference settings 中的效率。对于Transformer,我们使用最先进的 FlashAttention-2 (《Flashattention-2: Faster attention with better parallelism and work partitioning》)实现。我们考虑序列长度从 1024 到 8192 ,并在训练期间应用 Stochastic Length: SL 。在评估中,我们为 HSTU 和 Transformer 使用相同的配置(relative attention bias(考虑到HSTU 在没有 Transformer ,如前面的实验部分所示)。我们在 NVIDIA H100 GPU 上以 bfloat16 格式比较 encoder-level 性能。总体而言,HSTU 在训练和推理中分别比 Transformer 高效 5.3-15.2 倍和 5.6倍。
为 head数量,为 query embedding。
此外,如正文部分所述,activation memory usage 的减少使我们能够构建比 Transformer 深 2 倍以上的 HSTU 网络。
最后,我们在工业规模 streaming settings 中比较 GRs 与 SOTA 的 DLRM baselines 的端到端性能。我们的 GR implementation 反映了生产中使用的典型 configuration ,而 DLRM settings 反映了数百人多年迭代的结果。由于推荐系统的 retrieval 阶段使用多个 generators ,我们报告 adding GR (“add source” )和替换现有 main DLRM source (“replace source”)的在线结果。Table 6 和 Table 7 显示,GR 不仅在离线指标上显著优于 DLRM ,还在A/B tests 中带来 12.4% 的提升。
如正文章节所述,GRs 基于 raw categorical engagement features 来构建,而 DLRMs 通常使用大量特征来训练,其中大部分是从 raw signals 中手工设计的。如果我们向 DLRMs 提供 GRs 中使用的相同特征集( “DLRM (abl. features)” ),DLRM 的性能显著下降,这表明 GRs 可以通过其架构和统一特征空间(unified feature space)有意义地捕捉这些特征。
我们通过与传统 sequential recommender setup (“GR (interactions only)”,仅考虑用户历史交互 items ,《Self-attentive sequential recommendation》)进行比较,进一步验证正文章节中的 GR 公式。结果显著较差,其 ranking variant 在 main consumption task 中的 NE 比 GRs 差 2.6%。
考虑到基于内容的方法(包括大语言模型)的流行,我们还包括仅含内容特征的 GR baseline(“GR (content-based)” )。基于内容的基线与 DLRM/GRs 之间的显著性能差距凸显了 high cardinality 的用户行为的重要性。

我们最终在 Figure 6 中比较了 GRs 与我们的 production DLRMs 的效率。尽管 GR 模型的计算复杂度高 285 倍,但由于 HSTU 和新型 M-FALCON 算法,在对 1024/16384 个 candidates 打分时,我们实现了 1.50x/2.99x 的更高 query-per-second: QPS。

众所周知,在大规模工业环境中,DLRM 的质量会在特定计算量和参数规模下达到饱和(《Breaking the curse of quality saturation with user-centric ranking》)。为了更好地理解这一现象,我们比较了 GRs 和 DLRMs 的可扩展性。
由于特征交互层(feature interaction layers )对 DLRM的 性能至关重要(《Software-hardware co-design for fast and scalable training of deep learning recommendation models》),我们在 ranking setting 中对 Transformer 、DHEN、以及我们生产环境中使用的带 residual connections 的 DCN 变体进行了实验,以 scale up DLRM 基线。对于 retrieval baseline ,由于我们的基线使用 residual setup ,我们 scaled up 了 hidden layer sizes, embedding dimensions, and number of layers 。对于基于 HSTU 的 Generative Recommenders: GRs ,我们通过调整 HSTU 的超参数(包括 residual layers 数量、序列长度、 embedding 维度、注意力头数等)来 scaled up 模型,同时调整 retrieval 的负样本数量。
结果如 Figure 7 所示。
在低计算量的区域,DLRM 可能由于手工设计的特征而优于 GRs ,这证实了传统 DLRM 中特征工程的重要性。
然而,GRs 在 FLOPs 方面表现出显著更好的 scalability ,而 DLRM 的性能则趋于平稳,这与之前的工作结果一致。
我们还观察到,在 embedding 参数和 non-embedding 参数方面,GRs 均具有更好的可扩展性,支持训练 1.5T 参数的模型,而 DLRM 的性能在约 200B 参数时达到饱和。
最终,我们的所有主要指标(包括 retrieval 的 HR@100 和 HR@500 ,以及 ranking 的 NE)在适当的超参数下,经验上均随计算量呈幂律(power law )缩放。我们在三个数量级范围内观察到这一现象,直至我们能够测试的最大模型( 8192 序列长度、1024 的 embedding 维度、24 层HSTU),此时我们使用的总计算量(归一化至 365 天,因为我们使用了标准 streaming training setting )接近 GPT-3 和 LLaMA2 的总训练计算量,如 Figure 1 所示。在合理范围内,与应用的总训练计算量相比,具体的模型超参数影响较小。与语言建模(《Scaling laws for neural language models》)不同,序列长度在 GRs 中起着更为关键的作用,因此同步 scale up 序列长度和其他参数至关重要。这可能是我们提出的方法最重要的优势,因为我们首次证明了来自 LLMs 的scaling law 也适用于大规模推荐系统。

先前关于 sequential recommenders 的工作将用 user interactions 简化为 items 上的单一 homogeneous sequence (《Session-based recommendations with recurrent neural networks》、《Self-attentive sequential recommendation》)。sequential approaches 的工业应用主要是作为 DLRM 的一部分,采用 《pairwise attention》(《Deep interest network for click-through rate prediction》)或 sequential encoders(《Behavior sequence transformer for e-commerce recommendation in alibaba》、《Transact: Transformer-based realtime user action model for recommendation at pinterest》)。multi-stage attention 已被探索用于替代 self-attention 以提高效率(《Twin: Twostage interest network for lifelong user behavior modeling in ctr prediction at kuaishou》)。将 IDs 表示为 token series 的生成式方法已在 retrieval 中得到探索(《Learning optimal tree models under beam search》)。我们在附录 B.1 中提供了对先前工作的更详细讨论。
由于 self-attention 的 scaling factor ,高效的 attention 一直是主要研究方向,相关工作包括 factorized attentions (《Generating long sequences with sparse transformers》)、low-rank approximations(《Transformers are rnns: Fast autoregressive transformers with linear attention》)等。最近,sequential transduction settings 的替代公式也得到了探索(《Efficiently modeling long sequences with structured state spaces》、《Transformer quality in linear time》)。特别是,HSTU 的 elementwise gating 灵感来自FLASH(《Transformer quality in linear time》)。最近的 hardware-aware 公式已被证明可显著减少内存使用(《Self-attention does not need o(n^2) memory》、《Reducing activation recomputation in large transformer models》、《Bytetransformer: A highperformance transformer boosted for variable-length inputs》),并提供更好的 wallclock time 结果(《FlashAttention: Fast and memory-efficient exact attention with IO-awareness》)。长度外推(length extrapolation)使训练于较短序列的模型能够泛化,尽管大多数工作集中于 finetuning 或 improving bias 机制(《Train short, test long: Attention with linear biases enables input length extrapolation》)。受 depth dimension 随机化工作(《Deep networks with stochastic depth》)的启发,我们的工作在 length dimension 上引入了随机性。
对大型语言模型的兴趣促使人们将各种推荐任务视为 pretrained LLMs 上的 in-context learning (《Zero-shot recommendation as language modeling》)、instruction tuning (《Tallrec: An effective and efficient tuning framework to align large language model with recommendation》)或 transfer learning(《Text is all you need: Learning language representations for sequential recommendation》)。LLM 中嵌入的世界知识(world knowledge)可以迁移到下游任务(《M6-rec: Generative pretrained language models are open-ended recommender systems》),并在 zero-shot 或 few-shot 情况下改进推荐。用户行为序列的 textual representations 在中等规模数据集上也表现出良好的 scaling 行为(《Scaling law for recommendation models: towards general-purpose user representations》)。大多数关于 LLMs 用于推荐的研究集中在低数据的领域;在 large-scale settings 中,它们在 MovieLens 上尚未超越协同过滤( 《Large language models are zero-shot rankers for recommender systems》)。
我们提出了 Generative Recommenders: GRs,这是一种将 ranking 和 retrieval 定义为 sequential transduction tasks 的新范式,使其能够以生成式方式进行训练。这得益于新颖的 HSTU encoder 设计,该设计在处理 8192 长度序列时比 SOTA 的Transformer 快 5.3-15.2 倍,并通过 M-FALCON 等新型训练和推理算法实现。借助 GRs ,我们部署了复杂度高 285 倍的模型,同时使用更少的推理计算量。GRs 和 HSTU 已在生产环境中实现 12.4% 的指标提升,并展现出优于传统 DLRMs 的 scaling 性能。我们的结果证实,user actions 是 generative modeling 中一个未被充分探索的模态——正如标题所示,"Actions speak louder than words"。
我们工作中的 features 的极大简化,为推荐、搜索和广告领域的首个 foundation models 铺平了道路,使得 unified feature space 可跨领域使用。GRs 的 fully sequential setup 还使推荐能够以端到端的生成式方式建模。这两者均能帮助推荐系统更全面地为用户提供服务。
论文中的符号及其说明参考 Table 8 、Table 9 。


许多读者可能更熟悉经典的 Deep Learning Recommendation Models: DLRMs (《Software-hardware co-design for fast and scalable training of deep learning recommendation models》),因其自 YouTube DNN 时代(《Deep neural networks for youtube recommendations》)以来的普及性,以及在所有大型在线内容和电商平台中的广泛应用。DLRMs 通过各种神经网络(包括 feature interaction 模块、sequential pooling 或 target-aware pairwise attention 模块,以及高级 multi-expert multi-task 模块)在异构特征空间上运行。因此,我们在正文章节中通过与经典 DLRMs 的显式对比,提供了 Generative Recommenders: GRs 的概述。在本节中,我们从经典 sequential recommender 的文献出发,为读者提供另一种视角。
RNNs:Recurrent neural networks: RNN 最早在 GRU4Rec (《Session-based recommendations with recurrent neural networks》)中应用于推荐场景。GRU4Rec考虑了 Gated Recurrent Units: GRUs ,并在两个数据集上进行了应用。在这两种情况下,仅将 positive events(点击的电商商品、或用户观看至少一定时间的视频)作为输入序列的一部分。我们进一步观察到,在经典的工业级两阶段 recommendation system setup (包含 retrieval 和 ranking 阶段)中, GRU4Rec 解决的任务主要对应retrieval 任务。
Transformers、sequential transduction architectures、及其变体:后续几年,sequential transduction architectures (尤其是 Transformer)的进展推动了推荐系统的类似发展。SASRec首次在 autoregressive setting 中应用 Transformer。他们将评论或评分的存在(presence )视为正反馈,从而将 Amazon Reviews 和 MovieLens 等经典数据集转换为 positive items 的序列,这与 GRU4Rec 类似。模型采用二元交叉熵损失,其中 positive target 定义为 next “positive” item (本质上是评论或评分的存在),negative target 从 item corpus
大多数后续研究基于与 GRU4Rec 和 SASRec 类似的设置,例如应用 BERT 双向编码器设置的 BERT4Rec、引入显式 pre-training 阶段的 S3Rec 等。
序列方法(包括 sequential encoders 模块和 pairwise attention 模块)已广泛应用于工业场景,因其能够增强 user representations从而作为 DLRMs 的一部分。DLRMs 通常使用相对较短的序列长度,例如 BST(《Behavior sequence transformer for e-commerce recommendation in alibaba》)中的 20、DIN(《Deep interest network for click-through rate prediction》)中的 1000 ,以及 TransAct (《Transact: Transformer-based realtime user action model for recommendation at pinterest》)中的 100 。我们观察到,这些长度比本文中的 8192 短 1-3 个数量级。
尽管使用短序列长度,大多数 DLRMs 仍能成功捕捉长期用户偏好,这归因于两个关键因素:
首先,现代 DLRMs 普遍使用预计算好(precomputed )的 user profiles/embedding (《Transact: Transformer-based realtime user action model for recommendation at pinterest》)、或外部向量存储(《Twin: Twostage interest network for lifelong user behavior modeling in ctr prediction at kuaishou》),这些有效扩展了回顾窗口(lookback windows)。
其次,模型通常使用大量的上下文特征、用户侧特征、以及 item 侧特征,并通过各种异构网络(如 FM 、DCN、MoE等)转换representations 并组合 outputs。
与附录 B.1.1 "学术研究" 中讨论的序列设置不同,所有主要的工业界的工作均针对 (user/request, candidate item) pairs 来定义 loss。在 ranking setting 中,常用 multi-task binary cross-entropy loss ;在 retrieval setting 中,双塔设置(《Deep neural networks for youtube recommendations》)仍是主流方法。
最近的研究探索了将待推荐的 next item 表示为 a sequence of (sub-)tokens 上的概率分布,如 OTM(《Learning optimal tree models under beam search》)和 DR(《Learning an end-to-end structure for retrieval in large-scale recommendations》)(注意:在其他近期工作中,相同 setting 有时被称为 “generative retrieval” )。它们通常利用 beam search 从 sub-tokens 中解码 item。随着 GPU、定制ASIC 和 TPU 等现代 accelerators 的普及,替代 two-tower setting 和 beam search 的高级的 learned similarity functions (如 mixture-of-logits ,《Association for Computing Machinery》)也被提出并部署。
从问题公式的角度,我们认为上述所有工作均属于 DLRMs 的范畴,即使其模型架构、使用的特征和损失函数与附录 B.1.1 中讨论的学术序列推荐研究有显著差异。值得注意的是,在本文之前,工业界尚未有成功的 fully sequential ranking settings 的应用,尤其是在十亿日活跃用户(daily active users: DAU)规模下。
我们接下来讨论传统 sequential recommender settings 和 DLRM settings 的三个局限性,以及 Generative Recommenders: GRs 如何从问题公式角度解决这些问题。
忽略 user-interacted items 以外的特征:过去的 sequential formulations (包括GRU4Rec、SASRec、BERT4Rec、S3Rec等)仅考虑用户显式交互的内容( items);此外,GRs 之前的工业级推荐系统通过在大量特征之上进行训练从而增强用户和内容的 representation 。
GRs 通过以下方式解决这一局限性:
a):压缩 other categorical features 并与 main time series 合并。
b):通过 target-aware formulation (Figure 2)利用 cross-attention interaction 来捕获 numerical features 。我们通过实验验证了这一点:忽略此类特征的传统 “interaction-only”公式导致模型质量显著下降。而在 Table 7 和 Table 6 中的 “GR (interactions only)” 我们发现,仅仅使用 interaction history 将导致retrieval 的 HR@100 下降 1.3% 、ranking 的 NE 下降 2.6% (0.1% 的 NE 变化即视为显著)。
GR可以捕获user-interacted items以外的特征。
user representations 在 a target-independent setting 中被计算:大多数传统 sequential recommenders(包括GRU4Rec、SASRec、BERT4Rec、S3Rec等)在 target-independent 的方式下建模:对于 target item encoder input 来计算 user representations ,然后 user representations 再被用于预测。相比之下,工业场景中使用的大多数主流 DLRM 方法以 target-aware 的方式设计 sequential modules ,能够将 “target”( ranking candidate )信息融入 user representations ,例如 DIN、BST、TWIN和 TransAct。
Generative Recommenders: GRs 通过交错 content and action sequences 结合了两者的优势,从而应用于 causal, autoregressive settings 中。我们在 Table 10 中对现有工作和 GRs 进行了分类和对比:
注意:
大多数大规模工业 recommenders 因日志数据量庞大,需在 a streaming/single-pass setting 中训练。
BERT4Rec 利用 a mixture of Cloze and pointwise (last item) supervision losses 的 multi-pass training ;S3Rec 通过 pre-training and finetuning 两阶段进行 multi-pass training。

判别式公式限制了 sequential recommender 在 pointwise settings 中的适用性:传统 sequential recommenders 本质上是判别式的,现有文献(如 GRU4Rec 和 SASRec )对 next item to recommend 的条件分布。然而,标准推荐系统中存在两个概率过程:
推荐系统向用户推荐内容
以及用户通过动作
生成式方法需要对推荐内容和用户动作的联合分布 Generative Recommenders 支持对此类分布的建模,如 Table 11( Figure 8 )所示。注意,next action token (prediction task 正是 Table 1 中讨论的 GR ranking setting;而 next content (prediction task 类似于适配于 interleaved setting 的 retrieval setting ,其目标是学习 input data distribution。
重要的是,这种公式不仅支持对 data distribution 的正确建模,还允许通过 beam search 等方法直接采样待推荐的 sequences of items。我们假设这将比传统 listwise settings (如 DPP 《Expectation-maximization for learning determinantal point processes》和 RL 《Deep reinforcement learning for page-wise recommendations》)更优,并将此类系统的完整公式和评估作为未来工作。


如正文章节所述,标准的 softmax attention由于其归一化因子,难以捕获用户偏好的强度,而这一点对于 user representation learning 至关重要。在推荐场景中,系统不仅需要预测 items 的相对排序,还可能需要预测 engagements 的强度(例如,在特定 topic 上未来 positive actions 的数量),因此这一特性尤为关键。
为了理解这种行为,我们构建了遵循狄利克雷过程(Dirichlet Process )的合成数据,该过程用于生成 a dynamic set of vocabulary 上的 streaming data 。狄利克雷过程能够捕获 user engagement 历史中 “富者愈富” ('rich gets richer')的现象。我们将人工合成实验设置如下:
我们将 20,000 item ids中的每个 item id 随机分配给 100 categories 中的某一个。
我们生成 1,000,000 条记录,每条记录长度为 128。其中,每条序列的前 90% 用于训练,最后 10% 用于测试。为模拟 streaming training setting ,初始时仅开放 40% 的 item ids;其余 item ids 按等间隔逐步开放;即,在第 500,000 条记录时,可采样的最大 item ID 为
也就是说,训练过程中,
vocabulary是动态增加的。其中0.5 = 500,000/1,000,000意味着到50%的进度。
对于每条记录,我们从 100 categories 中随机选择最多 5 个类别,并为这 5 个类别随机生成先验分布 category,具体规则如下:
对于
以概率
以概率 items 的类别为
根据流式约束(streaming constraints),随机采样一个属于类别 items。
其中,(1.0, 500.0) 中均匀随机采样。
模型需要预测的就是这个下一个被采样到的
item。即模型是拟合这个采样过程。
实验结果见 Table 2 。由于该数据集不包含时间戳,我们在 HSTU 中移除了 HSTU 的 Hit Rate@10 相比标准 Transformer 提升了 100% 以上。重要的是,将 HSTU 的 pointwise attention 机制替换为 softmax(即,“HSTU w/ Softmax”)也会导致 hit rate 显著下降,这验证了 pointwise attention-like 的聚合机制的重要性。

我们在实验章节的评估聚焦于将 HSTU 与采用最新训练方案的 SOTA 的Transformer baseline (即 SASRec )进行对比。在本节中,我们进一步考虑另外两种替代方法。
Recurrent neural networks: RNNs:我们考虑序列推荐领域的经典工作 GRU4Rec,以帮助读者理解包括 Transformer 和HSTU 在内的 self-attention 模型在充分融入最新 modeling 与 training 改进后,与传统 RNNs 的对比情况。
Self-supervised sequential approaches:我们考虑最具代表性的工作 BERT4Rec,以探究双向自监督( BERT4Rec 通过Cloze objective 来利用该机制)与单向 causal autoregressive settings(如 SASRec 和 HSTU)的差异。
结果如 Table 12 所示。我们复用了 《Turning dross into gold loss: is bert4rec really better than sasrec?》 在 ML-1M 和 ML-20M 数据集上报告的 BERT4Rec 和 GRU4Rec结果。由于使用了 sampled softmax loss ,我们将负样本数量固定( ML-1M 和 ML-20M 为 128,Amazon Books 为 512),以确保方法间的公平比较。
结果表明,在使用 sampled softmax loss 的传统 sequential recommendation settings 中,SASRec 仍是最具竞争力的方法之一,而 HSTU 显著优于所有评估的 Transformer、RNN 和自监督双向 Transformer 模型。

实验章节中使用的 DLRM baseline configurations 反映了数百名研究人员和工程师多年来的持续迭代,并且非常接近在部署 HSTU/GR 之前某大型互联网平台(拥有数十亿日活跃用户)的 production configurations 。以下是所使用模型的 high level 描述。
Ranking Setting:如 《Software-hardware co-design for fast and scalable training of deep learning recommendation models》 所述,baseline ranking model 采用了约一千个 dense features 和五十个 sparse features 。我们整合了多种建模技术,包括 Mixture of Experts( 《Modeling task relationships in multi-task learning with multi-gate mixture-of-experts》)、Deep & Cross Network 的变体 (《Dcn v2: Improved deep & cross network and practical lessons for web-scale learning to rank systems》)、各种 sequential recommendation modules (包括工业场景中常用的 target-aware pairwise attention 变体, 《Deep interest network for click-through rate prediction》),以及特殊 interaction layers 上的 residual connection。在 scaling law 章节(论文 4.3.1 章节)的低 FLOPs 区域中,一些计算成本较高的模块被简化和 / 或替换为其他 SOTA 变体(如 DCN)以达到所需的 FLOPs。
尽管由于保密原因我们无法披露确切 settings,但据我们所知,我们的 baseline 代表了整合最新研究后的最佳已知 DLRM 方法之一。为了验证这一说法并帮助读者理解,我们在 Table 7 中报告了基于相同特征但仅使用主要已发表成果(包括 DIN、DCN 和 MMoE)的典型配置(“DLRM (DIN+DCN)”),其组合架构如 Figure 9 所示。该 setup 在 main E-Task 的 NE 上比我们的 production DLRM steup 显著差 0.71%,在 main C-Task 的 NE 上差 0.57%(0.1% 的 NE 变化即视为显著,如实验章节所述)。


Retrieval Setting:基线 retrieval model 采用标准的双塔 neutral retrieval setting (《Deep neural networks for youtube recommendations》),结合了混合的 in-batch sampling 和 out-of-batch sampling 。输入 feature set 包括 high cardinality sparse features(如 item ids、user ids)和 low cardinality sparse features (如 languages, topics, interest entities)。使用带有 residual connections 的 feed forward layers 的堆叠将 input features 压缩为 user embeddings 和 item embeddings。
Features and Sequence Length:DLRM baseline 中使用的特征(包括各种 sequential encoder/pairwise attention modules 所利用的 main user interaction history )是所有 GR candidates 所用特征的严格超集。这适用于本文进行的所有研究,包括 scaling studies (原文第 4.3.1 节)。
在如下公式中:
我们从完整的用户历史中选择长度为 subsequence selection 技术的精心设计可以提高模型质量。我们计算指标 item subsequence selection 方法进行了离线实验:
这里的“稀疏性”可以理解为避免信息冗余,让被选中的子序列包含更多样化、更有信息量的
items,从而更好地代表用户的整体兴趣。
Greedy Selection:从集合 items。
表示最后一个时刻;这意味着从集合 中选择最近的 个 items。如果用户最近短时间内密集地交互了同一类物品,那么选出的序列多样性不足。仅仅选择最近的个 items可能导致信息冗余,以及丢失关键的长期兴趣。
Random Selection:从集合 items。
Feature-Weighted Selection:根据加权分布 items 。
这个公式有误,应该是
。分母代表所有 items距离最近时刻的时间量的总和,用于归一化。代表归一化的时间量。因此,距离现在越近,选中的概率越大。
在离线实验中,feature-weighted subsequence selection 方法实现了最佳模型质量,如 Table 13 所示。

Figure 10:Stochastic Length 对 ranking 模型指标的影响。从左到右:

在 Table 3 中,我们展示了 Stochastic Length 对具有 30-day user engagement history 的典型工业规模配置的 sequence sparsity 的影响。sequence sparsity 定义为:
其中:均值 avg、最大值 max 都是在所有样本上进行统计的。

为了更好地刻画 sparse attentions 的计算成本,我们还定义了 1 减去 attention matrix 的稀疏性。作为参考,我们在 Table 14 和 Table 15 中分别展示了 60-day and 90-day user engagement history 的结果。

我们进行了额外研究,以验证 Stochastic Length 与语言建模中使用的现有序列长度外推(sequence length extrapolation)技术的竞争力。许多现有方法通过修改旋转位置编码(RoPE,《Roformer: Enhanced transformer with rotary position embedding》)来执行序列长度外推。为了与现有方法进行比较,我们训练了一个不带 relative attention bias 但带有 rotary embeddings 的 HSTU 变体(HSTU-RoPE)。
我们在 HSTU-RoPE 上评估了以下序列长度外推方法:
Zero-Shot:应用 NTK-Aware RoPE(《YaRN: Efficient context window extension of large language models》),然后直接评估模型,不进行微调。
Fine-tune:应用 NTK-by-parts(《YaRN: Efficient context window extension of large language models》)后,对模型进行 1000 steps 的微调。
我们在 HSTU(包含 relative attention bias,无 rotary embeddings)上评估了以下序列长度外推方法:
Zero-Shot:根据最大训练序列长度来限制 relative position bias ,直接评估模型(《Exploring the limits of transfer learning with a unified text-to-text transformer》、《Train short, test long: Attention with linear biases enables input length extrapolation》)。
Fine-tune:根据最大训练序列长度来限制 relative position bias ,在评估模型前对其进行 1000 steps 的微调。
在 Table 16 中,我们报告了训练期间引入 data sparsity 的模型((Stochastic Length 、zero-shot、fine-tuning)与在 full data 上训练的模型之间的 NE 差异。
我们将 zero-shot 和 fine-tuning 技术的 sparsity 定义为:训练期间的平均序列长度与评估期间的最大序列长度之比。所有 zero-shot 和 fine-tuned 模型均在 1024 序列长度的数据上训练,并在 2048 和 4096 序列长度的数据上进行评估。
为了为这些技术找到合适的 Stochastic Length baseline ,我们选择了导致相同 data sparsity 指标的 Stochastic Length settings。
我们认为, zero-shot 和 fine-tuning 的序列长度外推方法不太适合处理 high cardinality ids 的推荐场景。根据经验,我们观察到 Stochastic Length 显著优于 fine-tuning 和 zero-shot 方法。我们认为这可能是由于我们的 large vocabulary size 。 zero-shot 和 fine-tuning 方法无法为 older ids 学习良好的 representations ,这可能会影响它们充分利用 longer sequences 中信息的能力。

我们提供了有关正文章节中介绍的高效 HSTU attention kernel 的补充信息。我们的方法基于 Memory-efficient Attention (《Self-attention does not need o(n^2) memory》) 和 FlashAttention (《FlashAttention: Fast and memory-efficient exact attention with IO-awareness》),是一种内存高效的自注意力机制。它将 input 划分为多个 blocks,避免在反向传播中实现巨大的 intermediate attention tensors。通过利用输入序列的稀疏性,我们可以将 attention computation 重新表述为一组形状各异的 back-to-back GEMMs。我们实现了高效的 GPU kernels 来加速这一计算。
由于 memory accesses 问题,relative attention bias 的构建也是一个瓶颈。为了解决这个问题,我们将 relative bias construction 和 grouped GEMMs 融合到一个 GPU kernel 中,并在反向传播中利用 GPU 的快速共享内存(fast shared memory )来积累梯度(accumulate gradients )。虽然我们的算法需要在反向传播中重新计算 attention 和 relative bias ,但它比 Transformers 中使用的标准方法速度更快,内存占用也更少。
本节将详细描述正文章节中讨论的 M-FALCON 算法。我们在 Algorithm 1 中给出了 M-FALCON 的伪代码。

M-FALCON 引入了三个关键思想。
batched inference 可以应用于 causal autoregressive settings 。GR 中的 ranking task 以 target aware fashion 的方式构建,如正文章节所述。通常认为,在 target-aware setting 中,我们需要一次对一个 item 进行推理,对于 candidates 和一条长度为 vanilla Transformer,我们也可以修改自注意力机制中使用的 attention mask ,以 batch 处理此类操作(即,“batched inference”),并将成本降低至
Figure 11 给出了一个说明。Figure 11 (a) 和 (b) 都包含一个用于 causal autoregressive settings 的 attention mask matrix。关键区别在于:
图 Figure 11 (a) 使用 size为 causal training。
而 Figure 11 (b) 修改了一个 size 为 False 或 target positions attention mask 对 tokens 进行前向传播,我们现在可以对最后 tokens 获得相同的结果,就像我们利用标准 causal attention mask 对 tokens 进行了 0 开始)。

microbatching 可将 batched inference 扩展到大型 candidate sets 。ranking 阶段可能需要处理大量 ranking candidates ,多达数万个。我们可以将全部 candidates 分成 microbatches ,使得 recommender settings 中 candidates。
encoder-level caching 支持在 requests 内和 requests 之间共享计算资源。最后,KV caching (《Efficiently scaling transformer inference》)可应用于 requests 内和 requests 之间。例如,对于 HSTU 模型,
requests 内和/或 requests 之间跨 microbatches 进行缓存。对于被缓存的 forward pass ,我们只需要为最后 tokens 计算 tokens 的 sequentialized user history 重用被缓存的 candidates 重新计算。这将 cached forward pass 的计算复杂度降低至 2-4 倍。
algorithm 1 如 Figure 11 所示,以帮助理解。我们指出,M-FALCON 不仅适用于 HSTU 和 GR,而且可广泛应用于其他基于自注意力架构的 target-aware causal autoregressive settings的 inference optimization 算法。
如正文章节所述,M-FALCON 并行处理 candidates ,以在推理时将计算成本分摊到所有 candidates 上。为了理解我们的设计,我们比较了基于相同硬件配置的 GRs 和 DLRMs 的吞吐量(即每秒评分的 candidates 数量,QPS)。
如 Figure 12 和 Figure 13 所示,由于 batched inference 能够实现成本分摊,GRs 的吞吐量会根据 ranking 阶段候选集的数量 (batched inference 在 causal autoregressive settings 中的重要性。由于 attention 复杂度按
microbatches 本身就可以提高吞吐量。caching 进一步消除了 microbatching 之上的冗余的 linear and attention computations。如 Figure 13 所示,与使用单个 microbatch 的 1.99 倍的额外加速。总体而言,凭借高效的 HSTU encoder 设计并利用 M-FALCON,基于 HSTU 的 Generative Recommenders 在大规模 production setup 下的吞吐量方面比 DLRM 高达 2.99 倍,尽管 GR 在 FLOPs 方面复杂度要高出 285 倍。

