超长序列建模 —— GEMs 精读笔记

文章链接:https://arxiv.org/pdf/2602.13631v1

机构:快手

发布时间:2026.02

Copyright (c) Wang-Luning. All Rights Reserved.

GR虽然具有强大的序列推理能力,但过高的推理成本导致实际应用时的序列长度受到大幅抑制,难以捕捉用户的终身兴趣。另外,attention机制对于近期行为的偏好同样抑制了对于从长期历史中进行学习的效果。

在过往的GR工作中,尽管已有尝试了超长的终身历史序列建模,但它们在如下方面仍存在问题:

GEMs(Generative recommendation with Multi-stream decoder)将超长的用户历史序列分割成3个段:近期段(Recent)、中期段(Mid-term)、早期段(Lifecycle),然后为每种时间流采用不同的推理方案:近期段采用单阶段的实时提取器,通过自注意力快速捕捉用户短期兴趣;中期段采用一个轻量级的indexer做稀疏交叉注意力,快速选出高价值tokens用以关注,来平衡实时推理的效率和用户兴趣建模的精度;早期段采用两阶段的离线-在线推理框架,其中离线阶段将用户的早期长历史序列通过可学习query+注意力得到压缩的表征并缓存起来,在线阶段时再取出这些表征用于推理。最终这些表征会通过一种无参数的方式来聚合(直接加和),从而避免额外的在线开销和训练不稳定。

 

宏观来看,GEMs将序列按照时序切分成3段:对于较短的近期段(描绘当前兴趣)使用丰富的特征+全注意力处理;对于较长的中段使用indexer选取最重要的tokens+稀疏注意力来降低在线推理成本,本质上和target attention选取和当前表征最相关的信息的思路是类似的;对于很长的早期段则先离线使用可学习query来得到压缩表征,并缓存起来(因为早期段很长时间内都是固定的,不会随着用户新行为的加入而频繁变化),在线时直接取缓存表征做attention从而引入长期信息。

 

设用户u的历史交互序列为Xu=[x1,,xt1],目标是预测下一个物品xt。在GR场景下,每个物品x使用一个embedding hRdim来表征,然后使用RQ-VAE等方法将h量化为一组SID:[s1,s2,,sd]

首先将完整的用户历史序列Xu=[x1,,xT]进行分割来形成3个对应不同时期的序列,其中x1表示最老的记录,xT表示最新的记录。设置两个阈值TlifecycleTrecent来将序列分成近期、中期、早期(终身)三段:

Xu,recent=Xu[Trecent:]Xu,mid-term=Xu[(Tlifecycle+1):Trecent]Xu,lifecycle=Xu[:Tlifecycle]

image-20260218151746886

 

综合推理流程如下图所示。本文采取的是端到端SID生成范式,模型由多个multi-stream decoder组成,每个decoder block里含有3个并行的子模块,分别对应了上述对于近期、中期、早期序列的处理。宏观来看,模型初始的输入为一个[BOS] token,通过自回归逐个生成下一个视频的各个SID,直到生成一组完整的SID从而可以解码出下一个预测的视频为止。历史信息则在模块中间以cross attention的方式插入进来(只不过3种不同时期的序列的具体策略不同),在每层block中3种表征都计算出来后通过相加的方式得到该层的总表征,并输入到下一层中(相比于之前有些工作通过可学习权重来融合几种表征,实验发现这样会偏好近期信息,而难以利用长期信息)。

image-20260218151806689

在训练时,主要loss就是NTP Loss,辅以indexer的loss:

L=LNTP+λLindexer

训练分为几个阶段: