一、Long&FastInDouyin [2025]

《Make It Long, Keep It Fast: End-to-End 10k-Sequence Modeling at Billion Scale on Douyin》

  1. Douyin 等短视频推荐系统必须在不突破延迟和成本预算的前提下,充分利用极长的 user histories。本文提出一套端到端系统,将 long-sequence modeling 落地至生产环境的 10k-length histories

    • 首先,我们提出了 Stacked Target-to-History Cross Attention: STCA,以 stacked cross-attention from the target to the history 来替代 history self-attention,将计算复杂度从序列长度的二次方降至线性,实现高效的端到端训练。

    • 其次,我们提出了 Request Level Batching: RLB ,这是一种以用户为中心的 batching 方案,聚合同一用户/请求的多个 targets ,共享 user-side encoding ,在不改变 learning objective 的前提下,大幅降低与序列相关的存储的、通信的和计算的开销。

    • 第三,我们设计了长度外推训练策略(length-extrapolative training strategy)——在 shorter windows 上训练,在 much longer windows 上推理,使模型无需额外训练成本即可泛化至 10k histories

    离线和在线实验均表明,随着 history length 和模型容量的提升,模型性能呈现可预测的单调增长,这与大语言模型中观察到的 scaling law 趋势一致。该系统已在 Douyin 全流量上线,在满足生产环境延迟要求的同时,核心 engagement 指标实现显著提升,为端到端 long-sequence recommendation10k 长度规模的演进提供了可落地的技术路径。

  2. 深度神经网络已成为现代推荐系统的核心基础,支撑着电商、新闻信息流、短视频平台等各类应用的推荐业务。其核心优势在于能够挖掘 user behavior sequences 的价值——用户过往的 interactions 为推断用户偏好提供了关键信号。在 Douyin 等短视频推荐场景中,user histories 往往包含数千条视频记录,若能有效利用这些 long sequences,可显著提升 ranking 的性能。

    modeling longer sequences 的重要性与深度学习 scaling law 密切相关:模型性能通常会随数据量、参数量和计算量的增加呈现可预测的提升。与 NLP/CV 领域主要通过扩大数据集实现 scaling 不同,推荐系统的发展受限于 user-generated data 的规模。挖掘更多信息的一种自然方式,就是利用更长的 user histories。然而,大多数现有系统采用两阶段范式:先检索与 target 相似的少量 histories,再将截断后的序列馈入 ranker。该范式虽具备效率优势,却打破了端到端的 optimization,同时丢弃了大量有价值的 interactions。本文的实证结果( Figure 1)表明,当模型架构和系统支持真正的 long-sequence training and inference 时,模型效果会随 sequence lengthsequence-module capacity 的提升平稳增长,这与其他模态中观察到的 scaling-law 特性一致。

    要真正实现大型推荐模型的 scaling uplong sequences 的端到端训练必须考虑严苛的在线延迟、成本预算。相关设计需对计算资源进行选择性分配,而 longer histories 会进一步放大分布式训练中的存储开销、通信开销和计算开销。为此,本文融合三大核心技术:

    • (1):以 target 为中心的 single-query cross-attention model: STCA,每一层的计算成本与 sequence length 呈线性关系。

    • (2)Request Level Batching: RLB,将 user-side encoding 的开销平摊至一个 request 内的多个 targets;且可扩展至同一 user/session 的多个 requests 之间共享编码,进一步提升效率。

    • (3)"train sparsely/infer densely" 训练策略:在平均长度约 2k 的序列上训练,却在推理阶段支持 10k 长度的序列,在不增加训练计算量的前提下保留端到端建模的优势。

    上述技术组件的结合,使模型性能能随序列长度和模型容量的提升实现可预测的增长,与 scaling-law 的特性一致(Figure 1)。

    本文贡献:本文为实用化的端到端的 long-sequence recommendation 做出三项核心贡献:

    • 序列高效(sequence-efficient)的模型架构:我们提出 Stacked Target-to-History Cross Attention: STCA,优先考虑 target itemuser historycross-attention ,舍弃 history self-attention,这将计算复杂度从 O(L2) 降至O(L) ,其中 L 为序列长度。通过堆叠 multiple layers ,借助 target-conditioned fusion 来捕获更高阶的 dependencies

    • 基于用户中心的 batchingscalable training:我们提出 Request Level Batching: RLB,聚合同一用户的样本,使 multiple targets 共享单个 user-side encoding。该策略可自然扩展至同一 user/session 的多个 requests 间共享 encoding,进一步降低内存开销、通信开销和计算开销(在 request-level sharing 下,实测开销降低最高达 8 倍),同时仍是 empirical risk 的无偏估计量。

    • Train sparsely, infer densely :采用长度外推(length-extrapolative)的训练方案,在平均长度约 2k 的序列上训练,却在推理阶段支持最长 10k 的序列,将训练成本与部署阶段的 context length 解耦,无需额外 training compute 即可实现 long-sequence gains

    这些创新成果为生产环境约束下,沿 sequence dimension 实现推荐模型的 scaling 提供了实用框架。在大型短视频平台的落地结果表明,本文方法在多项业务指标上实现了显著的在线性能提升。

    STCADINtarget-attention 的升级版,重点在 target-attentionquery 上进行了改进。

    注意:STCA 可能难以训练,可以参考附录中的 Training Curriculum

1.1 相关工作

  1. Modeling User Behavior Sequences

    • 早期的推荐系统采用 non-deep methods 来建模用户序列,如 item-to-item CF《Amazon.com Recommendations: Item-to-Item Collaborative Filtering》)和 Markov transitions《Factorizing personalized Markov chains for next-basket recommendation》)。

    • 深度学习的发展带来了 session-based RNNs 和工业界的两阶段框架(如 YouTube 推荐系统)(《Deep Neural Networks for YouTube Recommendations》《Session-based Recommendations with Recurrent Neural Networks》)。

    • Attention/Transformer models 随后成为序列建模的主流:

      • DIN/DIEN 根据 candidateuser history 进行交互,突出 target-aware selection《Deep Interest Evolution Network for Click-Through Rate Prediction》《Deep Interest Network for Click-Through Rate Prediction》)。

      • SASRec/BERT4Rec 作为强的 self-attention baselines,通过双向注意力或单向注意力来建模用户行为的时间依赖(temporal dependencies)(《Self-Attentive Sequential Recommendation》《BERT4Rec: Sequential Recommendation with Bidirectional Encoder Representations from Transformer》)。

      • BST 进一步验证了该类模型在工业界信息流排序场景的在线落地可行性(《Behavior Sequence Transformer for E-commerce Recommendation in Alibaba》)。

    • 与此同时,multi-interest modeling 显式地捕获用户的多样化偏好,已在大型平台得到广泛应用(《Multi-Interest Network with Dynamic Routing for Recommendation at Tmall》)。

    • 近期的 production 研究聚焦于 long histories 建模和系统兼容性:

      • user-representation 方法(如,PinnerFormer )将 long-term behaviors 压缩为紧凑的 memories《PinnerFormer: Sequence Modeling for User Representation at Pinterest》)。

      • realtime/batch fusion 的方法(如 TransAct )将 streaming signalspre-computed features 融合,实现低延迟的推理服务(《TransAct: Transformer-based Realtime User Action Model for Recommendation at Pinterest》《Trans-Act V2: Lifelong User Action Sequence Modeling on Pinterest Recommendation》)。

      • 为进一步实现 scaling up ,两阶段范式会在精细建模前检索与 target 相关的序列切片(SIM, UBR4CTR )(《Search-based User Interest Modeling with Lifelong Sequential Behavior Data for Click-Through Rate Prediction》《User Behavior Retrieval for Click-Through Rate Prediction》),或设计 sparse memories/hierarchiesSAMN, TWIN/TWIN-V2 ),限制 long logs 的处理成本(《TWIN: TWo-stage Interest Network for Lifelong User Behavior Modeling in CTR Prediction at Kuaishou》《Sparse Attentive Memory Network for Click-through Rate Prediction with Long Sequences》《TWIN V2: Scaling Ultra-Long User Behavior Sequence Modeling for Enhanced CTR Prediction at Kuaishou》)。

      这些设计通常会以 truncation, retrieval, or summarization 的方式,牺牲 full sequence 的端到端梯度,换取计算效率。与之不同,本文的 STCAfull sequence 实现端到端的 single-query target --> history cross attention ,计算复杂度与序列长度 L 呈线性关系,且无需 retrieval/truncation 操作,为生产环境的 very long histories 建模提供了一条实用路径,同时保留了所有 observed interactions 的可微性。

  2. Organizing Training Samples:经典的训练范式包括:

    • pointwise/pairwise learning ,如 BPR

    • large-batch CTR pipelines ,如 DLRM, production systems

    • 以及 session-parallel batching for sequences

    在工业级规模下,训练过程通常受 IO/ memory 限制,而非 FLOP 限制,这推动了 truncation or retrieval-first 的样本构建方式,以及 ultra-long contexts 的工程优化。现代的模型框架(如 TorchRec)提供不规则张量和分片策略,提升硬件利用率并管理稀疏特征;生产系统会融合 real-time/batch 信号,平衡推荐的 freshnessstability

    在此背景下,本文的 Request Level Batching: RLBuser/request 为粒度重新组织数据:对单次请求仅计算一次 user/history encoder,将其复用至 mtargets,使 per-target user-path costO(L) 降至约 O(L/m),同时保持 empirical-risk objective 的无偏性。与 truncation/retrieval 不同,RLB 保留了完整的 user history,将 movement and recomputation开销平摊,直接解决了大规模训练中主导的 I/O and activation bottlenecks 。该策略与 retrievalkernel-level 加速、sharding(如 《TorchRec: a PyTorch Domain Library for Recommendation Systems》中的不规则张量)正交,且与生产环境的 request-level grouping 逻辑对齐,在不改变 loss 的前提下,提升了带宽利用率、降低了峰值内存、提高了 kernel 计算效率。

  3. Length Extrapolation:大语言模型的研究表明,通过位置编码设计(ALiBiRoPE)和 memory/attention 模式(Transformer-XLLongformerBigBird),"train sparsely, infer densely" 的长度外推策略具备可行性,使模型能泛化至超出训练窗口的序列长度。本文方法将该思想适配至推荐系统:

    • (1):以精确的 single-query cross attention: STCA 替代二次方复杂度的 history self-attention

    • (2):通过 RLB 重新组织训练过程,平摊 user encoding 开销。

    retrieval pipelines 不同,本文方法保留了完整序列的端到端梯度;与 kernel/sparsity 方法不同,本文方法精准匹配 target-over-history interaction,同时与生产环境的约束条件对齐。

    具体而言,本文在训练阶段采用随机长度采样(stochastic-length sampling),使平均序列长度较短,同时让模型接触到 longer contextsa calibrated tail;在推理阶段采用非常更长的历史序列。该训练方案借助 STCA 的线性计算复杂度和RLB 的开销平摊,使长度外推在生产环境具备了可行性,且无需截断或替代以 memories

1.2 研究背景与符号定义

  1. 符号定义:本文统一使用以下符号:

    • user interaction history 为长度 L 的序列 H={(vj,aj)}j=1L,其中 vj 为第 jhistorical videofeature vectoraj 为该次 interaction 的行为类型。

    • t 表示待排序的 candidate (target) video

    • (vj,aj)embeddingxjtarget tembeddingxt

    • dembedding 的维度,rSwiGLUFFNwidth 的扩展比(expansion ratio),hattention heads 数量,Mstacked cross-attention layers 的数量。

    • 模型输出 y^[0,1],表示用户针对target t 完成观看的预测概率;y{0,1} 为该预测任务的 ground-truth 标签。

  2. 本文研究面向大型短视频推荐场景(如 Douyin/TikTok)。在此类场景中,系统需要为单个用户对一组 candidate videos 进行排序。实际应用中,模型的 final score 可能融合多个优化目标(如完播 finish、点击 click 等);为表述清晰,本文聚焦于完播率(finish rate)的预测任务。

    user signalsinteraction history 主导。user interaction history 定义为:

    H={(v1,a1),,(vL,aL)}

    其中:

    • 其中 vj 为第 jhistorical video 的特征向量,aj 表示该次 interaction 的行为类型进行编码;t 为待排序的 candidate 视频。

    • 各类特征(IDs、多模态内容、creator 属性等)经嵌入后,(vj,aj) 对应的 embeddingxjtarget 视频 t 对应的 embeddingxt

    给定输入 (H,t)ranking model 输出标量 y^[0,1],表示基于用户历史 H,用户完成视频 t 观看的条件概率。这些符号定义将在后续的模型和训练策略介绍中统一使用。

 

1.3 方法

  1. 本文设计了一套面向短视频排序的端到端 long-sequence modeling 框架,融合了 sequence-efficient 的模型架构、以用户为中心的 batching 策略、以及长度外推的训练方案,整体框架如 Figure 2 所示。

1.3.1 Stacked Target Cross Attention: STCA

  1. ranking 任务中,用于预测用户对 target t 反馈的核心信号,来自 tuser’s historical behaviors 的直接交互,而 historical items 之间的 second-order relations 所提供的信息相对有限。然而,对 (H,t) 采用 Transformer 风格的 self-attention,会产生与 history length L 相关的 O(L2) 计算成本,从而限制了可建模的序列长度 L

    本文在模型容量与计算成本间做出显式的权衡:弱化显式的 history–history interactions,转而采用 a single-query target-to-history cross attention: STCA。将 target 作为唯一的 query,使每一层的计算复杂度与序列长度 L 呈线性关系,即 O(Ldh) ,避免生成长度 Lkey/value intermediates,同时将计算资源精准聚焦于 target–history relevance。计算量和内存开销的大幅降低,使模型能在相同的计算资源范围内,对 ultra-long histories(如 10k 级别)进行训练和推理,进而改善 scale-up:在计算量相当的情况下,STCA 能处理 much longer context,且相比只能处理短序列的 O(L2) 复杂度的 self-attention,实现了更高的预测准确性。

  2. Input encoding:每个 historical element (vj,aj) 经嵌入得到 xjRdvideo, action-type, position fused),历史序列的 embedding 矩阵为 X=[x1,,xL]RL×dtarget video t 经嵌入得到 xtRd。本文采用保持维度的 SwiGLUFFN blockSwiGLU + linear projection ),后续接一个 LayerNorm

    SwiGLUFFN(x)=((xWu)(xWvsigmoid(xWv)))Wo

    其中:

    • Wu,WvRd×(rd)WoR(rd)×dr1 为逐元素乘法。

    • 为简化表述,这里省略了 bias 项。

    对于 embedding 矩阵 X,我们对它的每一行应用该 SwiGLUFFN block,然后进行归一化:

    X~(1)=LN(SwiGLUFFN(1)(X))RL×dq(1)=LN(SwiGLUFFN(1)(xt))Rd

    其中:LN() 表示 LayerNorm ;上标的 (1) 表示第一层。

    X 的每一行代表 sequence 中的每个位置。

  3. multi-head target-to-history cross attention:在第 i 层,给定 q(i)X~(i),我们计算 h-head cross attention。令dh=d/h,以及:

    WQ(i,s),WK(i,s),WV(i,s)Rd×dh,WO(i)Rd×d

    对于每个 head s{1,,h}

    a(i,s)=softmax((q(i)WQ(i,s))(X~(i)WK(i,s))dh)R1×Lo(i,s)=a(i,s)(X~(i)WV(i,s))R1×dh

    将所有 heads 的输出拼接后,经线性投影得到该层的最终输出:

    o(i)=[o(i,1)o(i,h)]WO(i)Rd

    (H,t) 上,对于 a single target query ,每一层的计算成本为 O(Ldh),与序列长度 L 呈线性关系;而 self-attention 的计算成本为 O(L2dh),二者形成显著差异。

    注意:attention 之后并未接 FFN。而是在 SwiGLUFFN 之后接入 attention

    如果有多个 target,那么就对应了多个 query Q(i)=[q1(i),,qN(i)]Ntarget 数量。这就是 Request Level Batching: RLB 的思想。

    STCADINtarget-attention 的升级版,重点在 target-attentionquery 上进行了改进。

  4. Stacking and target-conditioned fusion:我们堆叠 Mcross-attention layers,并通过 target-conditioned fusion 来更新 query 。为保持维度一致性(输入维度为 d ),我们采用可学习的投影矩阵进行维度压缩:

    q(i+1)=SwiGLUFFN(i+1)([o(1)||||o(i)||xt]WC(i+1))

    其中:WC(i+1)R(i+1)d×d

    注意: 第一层的 query q(1)input 仅考虑了 xt ;而后续层的 query q(i+1) 融合了 xt 以及前面每一层的输出。

    M 层之后,我们收集所有层的输出作为历史序列的 summary:(这里可以删除,后面没用到)

    ZH=[o(1)o(M)]RM×d

    ZH 被用于 z 的计算。

  5. Prediction head and objective:将所有层的 attention 输出与 target 向量拼接,经维度压缩得到最终的 target-aware token

    z=SwiGLUFFN([o(1)||||o(M)||xt]WZ),WZR(M+1)d×d

    令:

    Xmix=concat(z,{uk}k=1K,{cl}l=1C)

    其中:

    • {uk}k=1Kuser-side tokens,如 profile/context features

    • {cl}l=1C 为与 target t 关联的 candidate-side tokens,如 content/creator modalities features

    Xmix 馈入 RankMixer《RankMixer: Scaling Up Ranking Models in Industrial Recommenders》):

    h=RankMixer(Xmix;Θ),y^=sigmoid(wh+b)

    其中:ΘRankMixer 的参数;w,b 为待学习的参数。

    模型采用二元交叉熵作为损失函数,优化目标为:

    LBCE=ylogy^(1y)log(1y^)
  6. single-query cross attention 的计算优化:每层仅包含一个 query,令 XRL×d,qR1×d,dh=d/h。标准的交叉注意力计算式为:

    o=Attn(q,X)=softmax((qWQ)(XWK)dh)(XWV)R1×dh

    该计算方式需对 Ltokens 进行两次投影操作。本文通过重排计算顺序,消除与长度 L 相关的投影操作,优化后的计算过程为:

    u=(qWQ)WKR1×dα=softmax(uXdh)R1×Lo=(αX)WV

    其中:WQ,WK,WVRd×dh

    单个 head 的计算成本为 O(ddh)+O(Ld)+O(ddh)hheads 的总计算成本为 O(Ldh+d2),且无需生成任何 L×dhintermediates

    原始计算方式中,对 (XWK,XWV) 的计算需约 4Lddh FLOPs ,且每个 head 会生成两个 L×dh 的张量。本文重排后的计算方式,将其替换为 a single weighted reduction αX,仅需 2Ld FLOPs ,且不必生成 L×dhintermediates 张量。因此,与序列长度相关的 FLOPs 缩减至原来的 2dh=2d/h 分之一;例如,当 d=256,h=8 (即,dh=32) 时,与 L 相关的 FLOPs 可减少约 64 倍。

1.3.2 Request Level Batching (RLB)

  1. STCA 使 per-target sequence costhistory length L 呈线性关系(O(L)),为 long contexts 建模奠定了基础。但在实际的业务日志中,单个用户在同一 request/session 内通常会对应多个 targets 。若仍基于独立的三元组 (u,v,y) 进行训练,相同的 long history H会被重复地序列化、传输(CPU --> GPU)和编码,导致随着 L 的增加,存储开销和带宽开销(而非 FLOPs)成为性能瓶颈。因此,RLB 作为 STCA 在系统层面的互补策略,消除了用户侧的冗余计算,使线性复杂度的 encoder 能在 production 预算下扩展至数 k 长度的序列。

  2. 核心思想与无偏性:RLB 将同一用户的 m 个样本聚合为一个 user micro-batch Bu={(u,vk,yk)}k=1m。令 Φuser(H) 表示 user/history path (所有 targets 所共享的)。当采用 RLB 策略时,仅需计算一次 Φuser(H) ,并将其复用至所有 {vk}k=1m。单个用户的损失函数和整体的优化目标分别为:

    Lu=1mk=1mLBCE(y^(u,vk),yk)L=1|U|uULu

    无偏性(unbiasedness):将传统的优化目标表示为“用户平均下的样本平均”,可以证明,将内层的样本平均替换为对 m targets 的无放回平均,其数学期望保持不变(期望的线性性)。因此,公式 L=1|U|uULu 是经验风险(empirical risk)的无偏估计量;RLB 仅改变了计算的组织形式,并未改变模型的学习目标。

  3. 系统层面的视角:RLB 将重复的用户侧计算转化为 “一次计算、m 次复用” 的模式,在 IO – memory – kernel–distributed stack 中实现了切实的性能提升:

    • Host <--> Device I/O:将单次请求的载荷拆分为 user / history bytes Uper-target bytes T 。传统的三元组 batching 需传输 m(U+T) bytes,而 RLB 仅需传输 U+mT bytes,节省约 (11/m)U bytes 的传输量。当 m=8 时,用户载荷的理想传输量可减少 87.5% ;本文的端到端实测结果(包含 non-sequence 特征)显示,带宽开销可减少77% ~ 84%

    • Peak memory and activationshistory encoderintermediate states (例如,从 X~(i) 生成的 "K/V -like" tensors)在 mtargets 之间共享,而非重复生成,使 per-target 的内存占用从 O(L) 降至 O(L/m)。这降低了 peak activation memory ,使模型能在相同的 GPU RAM 下处理远更长的序列长度 L ;实测表明,在硬件固定的情况下,可训练的最大序列长度 L 提升约 8 倍。

    • Kernel efficiency:复用 user encodings ,可将 target 侧的矩阵乘法 batch 为更大的通用矩阵乘法(GEMM),提升硬件占用率并减少 kernel 启动次数。结合不规则/压缩序列(ragged/compacted sequences)的处理方式,该策略减少了 padding 操作,提高了算术密度(arithmetic intensity),提升了样本处理速度;实测实现了单 GPU 吞吐量 2.2 倍的提升。

    • Distributed training:每一步训练中生成的 user encodings 的数量减少,降低了梯度聚合(gradient aggregation )和 PS/allreduce traffic 。实测表明,在保持模型准确率的前提下,Parameter-Server CPU 使用率、以及模块间的通信带宽均降低 50%

    总体而言,RLB 消除了 H 的冗余传输和重复计算,使线性复杂度的 STCA encoder 成为主导的计算开销(且该开销被平摊至多个 targets ),让 production 规模的 long-sequence training 具备了可行性。

1.3.3 Extrapolation: Train Sparsely, Infer Densely

  1. STCA 使 per-target sequence costL 呈线性关系,RLB 将用户侧编码开销平摊至 m targets,二者结合使模型能在严苛的延迟和带宽预算下实现 long-context serving。但在长度均匀的 long histories 上训练,计算量仍会随 number of tokens processed per batch 线性增长,导致随着 L 的增加,内存和吞吐量会迅速耗尽。为将训练成本与部署阶段的 context length 解耦,本文提出长度外推(length–extrapolation)训练方案——trains sparselylow average tokens per batch )、infers densely (测试阶段采用 long histories )。本节中,模型部署的推理序列长度固定为 Linfer=10k,训练的平均序列长度为 Ltrainavg=2k,长度外推比(extrapolation ratio)为:

    ρextra=LinferLtrain avg=5

    本文在训练阶段采用随机长度(Stochastic Length: SL)训练范式,对每个 input sequence 随机截断至长度 Ltrain[Ltrainmin,Ltrainmax],其中 LtrainmaxLinferLinfer 为推理阶段使用的最大序列长度。我们采用 sequence sparsity: SS 来量化该策略的计算效率,其定义为:

    SS=E[Ltrain]Ltrain max=Ltrain avgLtrainmax

    SS 反映了:平均计算成本相对于最大 training length 的计算成本的比值。

    Stack Cross-Attention: STCA 架构下,该随机长度训练策略面临两大核心挑战:

    • Batch-Level Load Balancing:变长序列会导致 GPU 的工作负载失衡,因为 batch 的处理时间由最长的序列决定,这会抵消 FLOPs savings 带来的性能增益。

    • Subsequence Selection:有效的子序列选择(subsequence selection)策略需在最小化 training sequence length (即最大化 SS)的同时,不降低模型的预测准确性。

  2. Subsequence Selection 策略:子序列选择过程包含两个步骤:

    • (1):随机采样一个 training length Ltrain

    • (2):从完整的 user history 中选择对应长度的 elements

    下面解释详细步骤:

    • Stochastic Length Sampling:我们从 Beta 分布中采样一个 normalized length ratio s,选择该分布的原因是其取值范围有界且具备灵活性。具体的,s 的采样方式为:

      sBeta(α,β),s(0,1)

      其中:α,βBeta 分布的超参数。

      然后我们计算 raw training length 为:

      Ltrain raw=Ltrain min+s×(Ltrain maxLtrain min)

      为适配硬件加速的要求(如 tensor core 对齐),我们将 Ltrain raw 四舍五入至 8 的最近倍数,得到最终的 training length Ltrain

      给定 a target average training length Ltrain avg,由数学期望的约束条件:

      E[Ltrain raw ]=Ltrain min +(Ltrain max Ltrain min )×αα+β=Ltrain avg 

      可推导出 Beta 分布的第二个形状参数:

      β=α×Ltrain max Ltrain avg Ltrain avg Ltrain min 

      因此,s 的采样分布为:

      sBeta(α,α×Ltrain max Ltrain avg Ltrain avg Ltrain min )

      平均长度 Ltrain avg 通过 SS=Ltrain avg /Ltrain max 直接控制 sequence sparsity。实验结果表明,调整形状参数 α>0,使 Beta 分布尽可能接近 U 型分布时,模型性能表现更优。

    • Element Selection Policy:给定 Ltrain,我们从用户的 full history 中选择对应数量的 items (推理阶段截断至Linfer )。实证结果表明,保留最新的 Ltraininteractions (即时间维度),能持续实现最优的模型准确性。

      即,保留最近的 Ltrain 个行为。

  3. Batch-Level Load Balancing:为缓解因为变长序列导致的 GPU 负载失衡问题,本文提出 batch-level load-balancing operator,使每个 batchtotal token budget 保持为 B×LtrainavgBbatch size),同时保留 stochastic training distribution 。该算子包含两个阶段:

    • Global Length Allocation:对序列进行随机截断,使 batch 内所有序列的总长度接近 B×Ltrainavg。这保证了 GPU 的利用率均衡,且 computational graph 可基于平均序列长度(而非最大序列长度)来构建。

    • Sequence Compaction:对序列进行压缩,使每个序列的长度精确等于 Ltrain avg 。将 longer sequences 的多余 tokens 重新分配至 shorter sequences ,消除 padding 操作,降低内存开销和 IO 开销(见 Figure 2 )。

    为高效处理这些压缩后的变长序列,本文设计了不规则目标注意力机制(Ragged Target Attention),由高度优化的 GEMM kernel 提供支持。与标准的 cross-attention 不同,该方法通过一个 auxiliary index tensor 来标记 segments 的边界,避免了padding 操作。将 KeysK)和 valuesV)展平为二维矩阵,每个 queryQ)仅关注 KV 中对应的 segments

1.3.4 Summary

  1. STCA 提供了一种以 target 为中心、可堆叠的交叉注意力机制,计算复杂度与序列长度 L 呈线性关系;RLB 在多个 targets 间共享用户侧计算,抑制 IO 开销和计算开销;长度外推策略在以短序列为主的数据集上训练,却在推理阶段实现长序列的性能增益。上述组件的结合,为严苛延迟预算下的端到端 long-sequence ranking 提供了一套完整的解决方案。

1.4 实验

1.4.1 Douyin 的离线对比实验

  1. Setup:本文在 Douyin 的离线数据集上对 sequence encoders 进行评估,优化目标包含三个核心业务指标:完播 finish(视频完整观看)、快滑 skip(快速滑动跳过视频)、主页点击 head(点击创作者主页),评价指标为 AUC(值越高越好)和负对数似然(NLL,值越低越好)。为使对比结果更严谨,所有基线模型均融合了 TWIN (10k)《TWIN V2: Scaling Ultra-Long User Behavior Sequence Modeling for Enhanced CTR Prediction at Kuaishou》)模块(基于 10k 长度 behavior search 的检索式模块);而本文的方法移除了 TWIN (10k) ,完全依赖端到端的 long-history modeling 。关键的是,所有对比模型均在计算量大致匹配的条件下进行评估:per-sample sequence FLOPsstep-time 在各方法间保持一致。对于二次方复杂度的 encodersTransformerHSTU),通过降低模型 depth/width,使其总计算量与 STCA 相当,确保对比的公平性。

    本文将 Single-layer target attentionDINTransformer (self-attention)HSTU 作为基线模型,与 STCA (stacked target --> history cross attention) with RLB and Train Sparsely / Infer Densely ("Ext")进行对比。表格中所有结果均为相对 production baseline 模型的变化百分比,production baseline 模型为:RankMixer + Single-layer Target Attention + TWIN(10k);其中 AUC 提升(ΔAUC 为正)、NLL下降(ΔNLL 为负)时,模型性能更优。

    所有模型共享完全相同的 non-sequence featuresoptimizersdata splits,仅 sequence encoder 和是否使用TWIN(10k) 存在差异。

    注意:

    • 所有 baselines 都融合了 TWIN (10k) ,基于 10k 长度 behavior search 的检索式模块。

    • 所有 baselines 都采用 RankMixer 来建模 feature interaction

    • Single-layer target attention 对应的 baseline 就是 production baseline,它是所有模型的基准。

    此外,DINSingle-layer target attention 的差异是注意力得分的计算公式不同:

    • Single-layer target attention:简单的向量内积作为注意力得分。

    • DIN:更复杂的 MLP-based activation unit 来计算注意力得分:

      score(i,t)=MLP([eieteiet])

      其中:i 为历史商品,ttarget 商品,ei,et 表示它们的 representation 表示向量拼接, 表示逐个元素乘法。

      DIN 的原始论文强调:用户对不同历史商品的“兴趣”不是简单的向量内积能刻画的,而是需要 local activation ——即 target 与历史商品的交互应该通过一个可学习的网络来建模。

  2. 实验结果与分析:Table 1 的结果显示,尽管未使用 TWIN (10k)STCA + RLB + Ext 在所有任务上均实现了最优的性能提升:

    • 完播任务 AUC 提升 0.49%NLL 下降 1.16%

    • 快滑任务 AUC 提升 0.71%NLL 下降 1.14%

    • 主页点击任务 AUC 提升 0.39%NLL 下降 1.41%

    在计算量匹配的设置下,基线模型也实现了一定的性能提升:

    • DIN 的最大提升为 AUC +0.23%NLL -0.21%

    • Transformer 的最大提升为 AUC +0.38%NLL -0.46%

    • HSTU 的最大提升为 AUC +0.52%NLL -0.86%

    但本文方法始终实现了最大的性能增益,在 NLL 指标上的提升尤为显著(如主页点击任务 NLL 下降 1.41% )。

    性能增益与本文的设计逻辑高度契合:

    • retrieval features 会通过预筛选丢失部分信息,且破坏端到端的梯度传播。

    • STCAO(L)per target 计算成本,对 full history 进行精确的 softmax attention

    • RLB 消除了多个 targets 间的 user encodings 冗余。

    • Train Sparsely / Infer Densely 策略让模型接触到 calibrated tail of long contexts,实现数 multi-thousand-token 的推理而无需 full-length training

  3. 核心结论:在 non-sequence features 相同、计算量匹配的条件下,STCA+RLB+Ext 同时提升了 rankingcalibration ,且简化了模型架构(无需 TWIN (10k)),为 Douyin 实现高准确性、可落地的 long-sequence modeling 提供了实用路径。

1.4.2 Ablation: Accuracy vs. Model Complexity

  1. Setup and metrics:本文对端到端的 STCA --> RankMixer with RLB (m=8) and single-query cross-attention 框架进行消融实验。除非特别说明,训练和评估的序列长度均为 L=512;评估指标为相对强基线模型的完播率 AUC 提升百分比,强基线模型为 RankMixer-only baseline 模型,且与实验模型共享相同的 non-sequence featuresoptimization

  2. 性能增益的来源:Table 2 的消融实验结果表明:

    • sequence path 中添加 a token-wise FFN ,并将 STCA 的层数从 2L 层增加至 4L 层,实现了最大的 single boostAUC+ 0.18%)。

    • FFN 升级为 SwiGLU ,进一步实现 AUC +0.11% 的提升。

    • 扩大 sparse ID embeddingsembedding 维度( AUC +0.08% )和引入时间差(time-delta )辅助信息( AUC +0.08% ),均对性能产生了显著的正向贡献。

    • attention heads 数量从 8 增加至 16 ,实现了小幅但正向的性能提升(AUC +0.05% )。

    • 最后,query fusion 机制(即,q(i+1))通过将 lower-layer summaries 重新注入 higher layers ,实现 target-conditioned reasoning,为模型带来 AUC +0.06% 的提升。

  3. Compute–quality scalingFigure 3 展示了模型 depth/width 匹配时,计算量(FLOPs)与模型准确性(NLL)的关系,有两个核心结论值得关注:

    • Linear vs. quadratic in LSTCAsequence-side FLOPs 与长度 L 呈线性增长,而 Transformer 呈二次方增长。当序列长度 L500 增至 10k 时,STCAFLOPs1.06 GFLOPs 增至 21.06 GFLOPs(约 19.9 倍),而 Transformer2.08 GFLOPs 增至 236.26 GFLOPs(约 113.6 倍)。

    • Better frontier at long L:在 NLL 相近(≈0.396 )的情况下,STCAL = 10k21.06 GFLOPs )下即可实现该准确性;而 Transformer 需要在 L = 8k156.24 GFLOPs )下才能实现,计算量约为 STCA7.4 倍。

    上述结果与本文的整体研究发现一致:

    • STCA 移除了 history self-attention ,将计算资源聚焦于 target <--> history relevance(接近线性的 scaling )。

    • RLB 将用 user path 开销平摊至多个 targets(并可扩展至多个 requests/sessions )。

    • train sparsely / infer densely 策略在 2k 长度的序列上训练,却在推理阶段支持 10k 长度。

    三者结合提供了一条实用的性能 scale-up 路径:STCA 能在计算量相当或更低的情况下,处理 longer contexts ,同时保持或提升 ranking quality

1.4.3 Request-Level Batching (RLB)

  1. SetupRLBrequest 边界实现以用户为中心的 batching :对于包含 one user history and multiple targets 的每个 request,仅传输并编码一次共享的 user/context payload,将其复用至所有 targets,在梯度同步前对 request level 的梯度进行聚合。除非特别说明,实验采用 STCA --> RankMixer 框架并启用 RLB ,与基于 point-wise baseline 模型在相同的数据集、optimizerbatch size 下训练。报告的带宽数据包含所有 non-sequence featuresprofile/context, content, creator 等),即端到端的载荷数据。

  2. 带宽占用:RLB 通过将 O(L)user/history payload 平摊至多个 targets ,大幅降低了模块间的通信流量:实测结果显示,当 history length L=512 时带宽开销减少 77%,在 L=2k 时带宽开销减少 84% (均包含所有现有特征)。更长序列下的带宽节省效果更显著,这是因为避免了 per-target 对相同 user history 的重复传输。

  3. 吞吐量与 scalability:相对 point-wise baseline (记为 1x ),RLB 实现了端到端训练吞吐量 2.2 倍的提升;结合进一步的kernel optimizations ——为 reordered single-query attention 设计专用的 batched matmul 、高吞吐量的 SwiGLUoptimized LayerNorm ,吞吐量的提升幅度可达 5.1 倍。在相同的基础设施下,将 per-target activations and payload 开销平摊,还使可训练的最大序列长度提升约 8 倍(原本在长度 L 下受 memory/IO 限制的工作负载,在约 8L 的长度下仍可训练)。

  4. 参数服务器与模块间成本:在梯度同步和 feature-serving 的边界,RLB 进一步降低了开销:实测表明,训练阶段 Parameter Server: PSCPU 使用率降低 50%data <--> training 间的通信带宽降低 50% ;训练侧的 Parameter Server CPU 负载同样降低 50%

  5. 讨论:这些性能增益与 STCA 的架构效率形成互补:

    • STCA 通过 single-query cross attention,将与 history length L 相关的计算复杂度从二次方降至线性O(L)

    • RLB 消除了同一 user/history 在多个 targets 间的冗余传输和重复编码。

    二者结合实现了更高的 samples-per-second、更低的 Parameter Server 资源竞争,以及更大的可行序列长度,使模型能在固定的延迟和硬件预算下实现长上下文建模。

1.4.4 Extrapolation: Train Sparsely, Infer Densely

  1. Setup:本文采用 STCA encoder with single-query optimization ,验证所提出的长度外推框架(extrapolation framework)。将 user token z 馈入 RankMixer 模型,并采用 RLB 训练(m=8)。训练阶段,历史长度 Ltrain 按照 1.3.3节的策略随机采样。所有结果均为相对于固定的 2k-token 的基线模型的完播率 AUC 提升百分比。除非特别说明,推理阶段的序列长度为 Linfer=10k

  2. 最大训练长度的影响(Table 3):将最大训练长度 Ltrain max2k 逐步增加至 10k,模型的 AUC 提升幅度也随之相应增加,从微弱的 +0.03% 提升至显著的 +0.21% 。上述结果证实,要使模型能稳健地泛化至 long contexts,训练方案必须让模型接触到与推理阶段长度接近或相似的序列。

  3. Sequence Sparsity OptimizationTable 4 展示了模型效率与准确性的权衡关系。

    • 将平均训练长度 Ltrain avg1.0k 增加至2.5kAUC 提升幅度从 +0.09% 增至 +0.22% ,而 sequence sparsity10% 降至 25%

    • 当平均训练长度超过 2.0k 后,性能提升的边际效应递减。

    这证实 sequence sparsity20% 时,模型能实现效率与准确性的最优平衡。与 HSTU 中的随机长度策略(sequence sparsity =57.6%)相比,本文方法实现了更优的计算效率。

  4. Subsequence Selection Strategy 验证:保留最新的 interactions(贪心策略)实现了 AUC +0.21% 的提升,而随机采样无任何性能增益。这有力证明了时间局部性(temporal locality )在用户行为建模中的重要性。

  5. Beta Distribution Shape 分析:Table 5 验证了本文的分布设计(distribution design):U 型分布(α=0.02)实现了最优的性能( AUC +0.21% ),显著优于 decreasing 分布(AUC +0.11% )和偏态分布(AUC +0.08%),证实双峰采样能优化 training curriculum

  6. Efficiency-Accuracy 的权衡:本文方法在 10k 推理长度下实现了离线 AUC +0.23% 的提升,以三分之一的计算成本实现了 10k 全长度训练性能增益(AUC +0.30% )的约 80%Online A/B tests 证实了该方法在生产环境的可行性(完播率 AUC +0.17%)。

  7. 结论:实验结果全面验证了本文方法的有效性:

    • (1):基于 UBeta 分布的随机长度训练策略,实现了高效的长度外推。

    • (2):最近时间的子序列选择策略,保留了用户行为的 sequential patterns

    • (3):负载均衡策略确保了训练效率。

    在本文的默认设置下——Ltrain avg =2kLtrain max =10kLinfer =10k(外推比 ρextra =5),与 HSTU 的随机长度策略(Sequence Sparsity = 57.6% )相比较,本文方法将 Sequence Sparsity 降至 20% ,同时保持模型准确性,实现了更优的计算效率。

1.4.5 Online A/B Results

  1. Setup:本文将 STCA + RLB + Extrapolation 的模型在 DouyinDouyin Lite 全量上线一个月,以 single-query target --> history encoder 替代 TWIN (10k)-augmented retrieval features,其余模型组件保持不变。报告了相对对照组的 30-day ActivenessApp Stay TimeFinishCommentLike 的提升百分比,包含整体用户和按用户活跃度划分的细分群体结果(Table 6)。

    本文方法在两款产品、所有用户群体中均实现了一致且显著的在线性能提升。整体而言:

    • 完播率(Finish )与 App Stay Time 同步提升,互动指标(CommentLike )实现大幅增长。

    • 性能增益在 low/medium 活跃度用户群体中尤为显著,表明模型在用户行为稀疏/噪声较大的场景下,实现了更优的个性化推荐效果。

    • 同时,用户 30-day Activeness 也实现了小幅但持续的提升。

    性能提升的核心原因在于:

    • (1)STCA 将计算资源精准聚焦于 long contextstarget --> history interactions

    • (2)RLBuser encoding 开销平摊,使模型推理成本控制在预算内。

    • (3)Train Sparsely/Infer Densely 策略让模型在训练阶段接触到 a calibrated tail of long sequences

    上述技术的结合,使端到端的 long-history modeling 在实现高准确性的同时,具备了生产级规模的可落地性。

1.5 结论

  1. 本文提出一套端到端的 long-sequence 推荐解决方案,同时实现了架构、系统和训练的高效性。

    • 在架构层面,STCAsingle-query target --> history cross-attention 替代 history self-attention ,使计算复杂度与序列长度呈线性关系(O(L))。

    • 在系统层面,RLBrequest level 复用 user encoding,消除冗余的传输和计算。

    • 在训练层面,"train sparsely / infer densely" 的长度外推策略,使模型能以适中的训练成本,在长序列上实现 dense inference

    离线和在线实验均表明,随着 sequence lengthsequence-module capacity 的提升,模型性能呈现稳定且显著的增长,且符合 scaling-law 的特性。

  2. 本文的核心发现包括:

    • single-query attention 足以支撑短视频排序任务,且保持 O(L) 的计算成本。

    • 基于小 α 值的 Beta 分布的随机长度采样,能以约三分之一的训练成本,实现 10k 窗口性能增益的约 80%

    • 模型的参数量预算应优先分配至 sequence path ,如 SwiGLUcross-layer query fusiontime-delta features —— 它们的作用会随序列长度的增加而增强。

    • 系统层面的优化手段对模型的可落地性起决定性作用——当 L=2k 时,RLB 使端到端带宽开销降低最高达 84% ,参数服务器CPU 使用率减半,吞吐量提升 2.2 倍,可训练的最大序列长度提升 8 倍。

  3. 在实际应用中,一套高性能的配置方案为:4-layer STCA (配备 SwiGLUquery fusion )+ time-delta features + RLB + stochastic-length training (小 α 值,训练平均长度 ≈2k ),推理长度为 10k5倍的 extrapolation ratio )。该配置使模型性能可以随 sequence lengthsequence-module capacity 的提升实现单调增长,同时将训练成本和推理成本控制在预算内,为实现高准确性、生产级的 long-sequence 推荐建模提供了可落地的技术路径。

二、附录

2.1 Training Curriculum 和模块化集成

  1. 直接在 long contexts 上训练易导致模型不稳定(如 L=204 )。因此,本文采用简单的 curriculum

    • (1):在 L=512 的序列上预训练,构建鲁棒的 token-level filtersattention patterns

      token-level filters 指的是 target-history attention

    • (2):在 L=2048 的序列上继续训练。在 architecture iteration 阶段,为实现更快的收敛和更低的资源消耗,在L=512 的序列上进行原型验证。

    为将该模型集成至更大的 production stack ,首先将 sequence sub-network 训练至收敛,将其参数加载至 composite model,最后进行 joint finetuning 。这种分阶段的训练策略,避免了当框架其他部分已具备较强性能时,sequence path 出现梯度消失的问题。

2.2 STCA 的泛化性与鲁棒性

  1. STCA 在不同序列长度上具备良好的泛化性,原因在于每个 history token 均基于 target 进行独立处理,使模型架构天然具备长度无关性;通过堆叠多个 layers,信息聚合的效果能随序列长度 L 的增加平稳提升。通过在每一层基于 targetuser history 进行筛选,STCA 对真实日志中常见的无关行为或噪声行为的敏感度更低,提升了模型对变长序列和 heterogeneous user patterns 的鲁棒性——这些特性对模型在工业级规模的落地至关重要。

2.3 RLB与常见样本组织方式的对比

  1. Instance-wise (triplet) batching ,会对每个样本(u,v,y) 重复编码完整的用户历史 H,导致数据集规模和 IO 开销为 O(mL)

    • 按序列长度进行 padding/bucketing,能缓解 kernel 的计算差异,但仍会重复进行用户编码。

    • History truncation / retrieval-first 的方式,通过缩短序列或选择子序列降低计算成本,但会丢失信息并破坏完整序列的端到端梯度。

    • Embedding caching / clustering 的方式,通过压缩用户历史来降低成本,但会引入近似误差。

    与之相反,Request-Level Batching: RLB 是无损且端到端的策略:保留完整的用户历史 H,保持优化目标不变,将 per-target user-path 计算复杂度从 O(L) 降至约 O(L/m)。在实际应用中,本文设置 m=8,使用户侧的带宽和编码器计算开销降低约 8倍,提升 GPU 利用率,同时使可处理的序列长度 L 大幅增加。

2.4 与 Attention Optimizers 和 Fused Kernels 的关系

  1. GQA/MQA 通过减少 distinct K/V projections 的数量,降低内存/带宽开销,但在长度 L 序列上的 score 计算仍为 O(L2d) 复杂度。IO 高效的 kernels (如 FlashAttention)减少了内存通信量,但仍保持二次方的计算复杂度;线性/低秩注意力变体通过近似实现 O(Ld) 的复杂度,但牺牲了计算精度。

    STCA 则完全移除了 history self-interactions ,以 O(Ldh)per layer 计算成本实现精确的 single-query target --> history attention(矩阵乘法重排进一步降低了计算量),而下游的 RankMixer 仅对少量的、与长度无关的张量进行处理。RLB 作为互补策略,将用户侧计算开销平摊至 m targets ,使 per target 的计算复杂度从 O(L) 有效降至 O(L/m)。 这些技术与 head sharingfused kernels 兼容,但我们的主要节省源于:

    • (1):从架构层面消除二次复杂度。

    • (2) :实现 system-level 摊销。

    这一切都无需借助 retrievaltruncation 即可完成。