小红书精读:SequenceO1: End-to-End Ultra-Long (100K) Sequence Modeling in Recommendation with Low-Rank Caching
100K序列也能端到端建模了?🔥
各位算法同学们,你敢信推荐精排模型能直接端到端吃下10万步用户行为序列?字节这篇SequenceO1已经在抖音全流量跑100K历史建模,核心不是把attention改得花哨,而是把“压缩”和“缓存”塞进同一个框架。做工业推荐或长期行为建模的,重点看它怎么把长序列的边际成本压成常数。
📄 SequenceO1: End-to-End Ultra-Long (100K) Sequence Modeling in Recommendation with Low-Rank Caching
🔧 创新一:Sketch Attention压缩100K历史。用可学习原型加逐原型归一化,把原始序列压成固定大小的用户草图,不依赖当前候选。草图只用用户信息生成,所以训练和推理时可以被反复缓存,成本不跟原始100K长度线性上涨。
🧩 创新二:10K后缀+草图的双时间尺度推理。最近10K走目标条件STCA抓短期兴趣,草图再进一个STCA补长期偏好。压缩后的固定输入还能让端到端目标条件和排序梯度传到长序列分支,不用拆成两段式。
⚙️ 创新三:系统侧低秩缓存。训练用本地KV Cache加多请求user-level batching,让同一用户sketch跨训练实例共享;线上把sketch当可缓存状态,连续请求直接复用,命中后相对原始100K长度的开销是O(1)。配套还写了FlashSA kernel处理ragged batching。
📈 实验数字:100K长度下,训练FLOPs比直接STCA降49.9倍,推理FLOPs降63.9倍,系统收益是真的明显。
📊 质量收益:平均85K历史的ablation里,SequenceO1相对512截断baseline有+1.07% Finish AUC涨幅;直接端到端STCA跑约100K是+1.29%。固定草图大概保留83%的超长序列增益,这个代价挺划算。
✅ 部署状态:已经全流量上线抖音,属于工业级验证。
总结判断:这套做法最聪明的是把长度难题拆成“模型侧压缩”和“系统侧缓存”,让100K的额外代价不再线性增长,比硬堆长度外推要稳。落地主要卡在工程:本地缓存、用户级batching和融合kernel都得自己造,小团队硬上会很吃力。真正要盯的是缓存命中率,还有草图相比全量100K到底留下多少涨点,直接决定值不值得跟。
原文:AlphaXiv