惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

P
Privacy & Cybersecurity Law Blog
SecWiki News
SecWiki News
T
Troy Hunt's Blog
Y
Y Combinator Blog
V
V2EX
美团技术团队
Last Week in AI
Last Week in AI
S
Security @ Cisco Blogs
IT之家
IT之家
博客园_首页
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
阮一峰的网络日志
阮一峰的网络日志
AI
AI
罗磊的独立博客
人人都是产品经理
人人都是产品经理
H
Hacker News: Front Page
N
News and Events Feed by Topic
P
Privacy International News Feed
V2EX - 技术
V2EX - 技术
Recent Commits to openclaw:main
Recent Commits to openclaw:main
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
GbyAI
GbyAI
L
LINUX DO - 热门话题
C
Cybersecurity and Infrastructure Security Agency CISA
Microsoft Azure Blog
Microsoft Azure Blog
Martin Fowler
Martin Fowler
月光博客
月光博客
WordPress大学
WordPress大学
Latest news
Latest news
Google DeepMind News
Google DeepMind News
S
Schneier on Security
N
Netflix TechBlog - Medium
腾讯CDC
T
Tailwind CSS Blog
TaoSecurity Blog
TaoSecurity Blog
S
Secure Thoughts
L
LINUX DO - 最新话题
Project Zero
Project Zero
Cyberwarzone
Cyberwarzone
D
DataBreaches.Net
Webroot Blog
Webroot Blog
B
Blog
www.infosecurity-magazine.com
www.infosecurity-magazine.com
S
SegmentFault 最新的问题
The GitHub Blog
The GitHub Blog
H
Help Net Security
L
LangChain Blog
A
Arctic Wolf
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻

博客园_首页

Plist 二进制格式 Milvus 和 PGVector,哪个更好? OpenClaw 已过时?在 VS Code 中运行 Hermes Agent! 第30篇文章:一个大三计科生的自白 Manim如何在数学公式中完美显示中文? Docker 部署 RocketMQ 5 并发编程核心概念辨析 C#事务处理最佳实践:别再让“主表存了、明细丢了”的破事发生 CLI 是什么?为什么大厂突然集体卷命令行? 【从0到1构建一个ClaudeAgent】协作-自主Agent UIImageView 设置图片不生效的原因排查 最小二乘问题详解20:无先验约束下的增量式SFM自由网平差 痞子衡嵌入式:大话双核i.MXRT1180之XIP应用里借助MU实现可靠Flash IAP的方法 AI Chat 封装, SemanticKerne.AiProvider.Unified 已发布 Windows下右键编辑js文件无法打开记事本——在注册表中使用环境变量 在后台服务中使用 Scoped 服务,为什么总是报错? H200 安装驱动并使用sglang启动模型 wireshark 抓包Trap上报告警内容 我用 AI 辅助开发了一系列小工具(2):图片压缩工具 [A Primer On MC and CC] 2.1 Memory Consistency 1 - 指令重排序和 SC 模型 Oracle数据库SCN推进技术详解与实践指南 玩转控件:封装个带图片的Label控件 Claude Code 4.7 真正该升级的不是模型,而是你的工作流 前端小白一句话,AI 帮我做了个颜值拉满的桌面媒体播放器。当代码不再是门槛,一句话编程就是现实。 5. WorkBuddy: 小龙虾的灵魂三件套,让你的小龙虾不只是工具 SQLite 分片方案实战:三种分片策略的深度对比 告别简陋 UI!一款基于 Fluent Design 和基于 WinUI 的开源免费、现代化的 Avalonia UI 控件库 关于二进制排列组合枚举的总结 AI开发-python-LangGraph框架(3-27-LangGraph从零实现大模型智能决策工作流) ElasticSearch主分片和副本分片概念详解 【002】HTTPS 粗解:证书、TLS 握手与对后端配置的影响 Hermes Agent 一周暴涨五万 Star,但我劝你别急着追 明明连接的是Redis的DB0,为什么能查到DB3的数据? 【从0到1构建一个ClaudeAgent】协作-Agent团队 熟悉电子元器件之后,电子小白下一步该怎么走? MAF快速入门(23)通过C#类定义Skills .NET 高级开发 | 手写一个对象映射框架 FastAPI数据库ORM怎么选?我肝了三个Demo后,终于不再纠结了 mysqldump 参数拾遗:在遗忘与铭记之间 C# .NET 周刊|2026年3月5期 Claude code入门 - 陈彦斌 一文学习入门 ThingsBoard 开源物联网平台 GitHub 热门项目 | 2026年04月16日 如何为GIT设置全局勾子,为每次提交追加信息 Number.isFinite和isFinite与isNaN()和Number.isNaN的区别 PortSwigger SQL注入LAB2 推荐一个测试人必备的Skills,从功能到性能全搞定(附详细实操和安装下载方式) 筑基期:掌握Odoo基础核心知识点02(Odoo XML 开发方式详解) GLM模型这么火,咱们用vllm也咧一个呗! 深入理解 AbortController:从底层原理到跨语言设计哲学 字符串学习笔记 多租户系统框架的基础模块设计和分析设计 Apache SeaTunnel Zeta 为什么能做到“又快又稳”? AI开发-python-LangGraph框架(3-26-LangGraph基本概念及第一个简单样例) Vue 3 组件通信,别只会用 Props 和 Emits 了,这几个狠活儿你得看看 ElasticSearch7.X版本配置密码 用Manim实现动态交点计算--从一个动点问题说起 团结引擎+Addressable+Instant Game打包抖音小游戏 function call 实战:让 LLM 自动判断 pod 异常、调用日志工具并完成故障分析 bubseek —— 让 Agent 的足迹,变成团队的洞察 通过 C# 读取并导出 PDF 书签 如何用 GitHub Actions 实现 Steam 自动化发布 【从0到1构建一个ClaudeAgent】并发-后台任务 .NET 高级开发 | 定制 ASP.NET Core 框架 电子小白:什么是运算放大器(运放) zero2Agent:面向大厂面试的 Agent 工程教程,从概念到生产的完整学习路线 堆上的ORW HC32F460 USB CDC通信异常:非对齐访问异常排查 20260413-Hyperbridge 攻击事件:发生在默克尔山上的验证绕过 那些喊着AI 要淘汰你的人,正在靠你的焦虑赚大钱! 深度学习进阶(八)Swin Transformer 最小二乘问题详解19:带先验约束的增量式SFM优化与实现 SnapTranslate 3.0 正式发布:全局划词翻译 + 完整英语学习闭环,一站式搞定查词、记词、复习 工作的意义、工作的困难认知再思考 .NET + AI 进阶实战:基于类的技能开发 - 打造可治理的 Agent 能力模块 【从0到1构建一个ClaudeAgent】规划与协调-技能 上周热点回顾(4.6-4.12) 电子小白的工具三件套:面包板、杜邦线、万能板 单表五亿数据的查询优化 | Mysql、StarRocks 2. WorkBuddy:从“我是谁”到“帮我干活” C# 如何减少代码运行时间:7 个实战技巧 基于HelixToolkit.SharpDX 渲染3D模型 - 笺上知微 从零开始的双臂具身VLA起源及现阶段发展综述 - SkyXZ 记对 xonsh shell 的使用, 脚本编写, 迁移及调优 - pluvium27 受够了Vibe Coding的失控?换个起点,让AI事半功倍 从开始配置漏洞环境到漏洞复现流程 - 難しい 关于10年工作经验的程序员对OpenClaw的实战经验分享以及看法 - 虚无境 Any metadata 的内存布局 C# .NET 周刊|2026年3月2期 - InCerry 我帮你测过了,测试圈排名第二的 Skill 依然很牛逼 Skill Discovery | 无监督技能发现的经典工作总结 - MoonOut 上下文工程是什么?过时了么?一文讲明白! - 一枫说码 开了 TUN 模式还是直连?90% 的人都踩过这个坑 AScript扩展多种脚本语言 - rockey627 AI 学习笔记:Agent 的记忆机制 你能被装进一个文件里吗?——7 万人把同事"蒸馏"成了 AI - 我没有三颗心脏 Claude Code 通关手册(七):给 AI 装上技能包——Skills 完全指南 - 暮色之狐 在浏览器中快速编辑代码:VSCode Web 集成实践 - Newbe36524 蒸馏自己 skill?基于 Deepseek 的蒸馏器,丐版蒸馏方式,简单便捷 - To_Carpe_Diem Spring AI Aliababa和AgentScope,哪个更好? - 苏三说技术
"OneTrans: Unified Feature Interaction and Sequence Modeling with One Transformer in Industrial Recommender" 论文笔记
绵满 · 2026-05-10 · via 博客园_首页

字节跳动在排序领域的工作 OneTrans,发表于 WWW 2026,用一个统一的 Transformer Backbone 完成序列建模和特征交互的开创性工作,支持了统一的 Ranking LLM 优化和 Scaling

背景

工业推荐系统的排序模型,长期以来沿用一种固定的两阶段范式:先用序列建模(Sequence Modeling)模块(例如 DIN、LONGER)对用户历史行为序列进行编码,得到压缩的用户兴趣表示;再将其与用户画像、物品特征、上下文这些非序列特征拼接,送入特征交互(Feature Interaction)模块(例如 DCNv2、Wukong、RankMixer)完成高阶交叉。这一设计被称为 encode-then-interaction pipeline

这种两阶段范式存在两个根本性缺陷:其一是信息流的单向性:行为序列被压缩为固定向量之后,才与物品和上下文特征交互,这意味着物品特征无法在序列编码阶段对用户历史产生影响;其二是执行碎片化:两个模块独立计算,无法共享 KV Cache、FlashAttention 等 LLM 工程优化,导致在线延迟偏高、扩展困难

image

为了解决这些问题,OneTrans 提出了一个根本性的解决思路:直接将序列特征与非序列特征统一表示为 Token 序列,用同一个 Transformer Backbone 完成序列建模与特征交互的全部计算,从而打通双向信息流,并使整个模型能够直接复用 LLM 的训练与推理优化栈

方法

image

Feature and Tokenization

OneTrans 首先通过 Tokenizer 将所有输入特征映射为统一维度的 Token 序列,输入特征被分为两类:来自用户的历史行为序列特征(S-tokens),以及来自用户画像、物品属性、上下文信息的非序列特征(NS-tokens)。最后得到的初始 Token 序列就是把 S-tokens 和 NS-tokens 拼接起来

(1)非序列特征的 Tokenization

由于工业系统通常涉及数百个具有不同重要性的特征,因此有两种选择来控制非顺序令牌的数量:

  • Group-wise Tokenizer(与 RankMixer 一致):按不同语义人工预先分组,每组特征在组内拼接后通过各自独立的 MLP 投影为一个 \(d\) 维 Token:

  • Auto-Split Tokenizer:将所有非序列特征统一拼接为一个向量,通过一次 MLP 投影到 \(L_{NS} \times d\) 维空间,再按维度切分为 \(L_{NS}\) 个 Token:

Auto-Split 的优势在于只需一次稠密矩阵乘法,减少了 kernel 启动开销;更重要的是 MLP 的权重矩阵是 dense 的,每个输出维度可以感知全部输入特征,因此模型可以自动学习跨语义类别的特征组合,而不受人工分组的约束(消融实验证实,Auto-Split 在 CTR 和 CVR 指标上均优于 Group-wise 方案)。更重要的是,虽然 Auto-Split 中一个特征的信息可能被分散到多个 Token 中,但这种 distributed representation 类似于 NLP 中词向量的工作方式,与后续 Transformer 层中的 token-level attention 能够重新整合这些分布式信息是完美契合的

(2)序列特征的 Tokenization

不同序列的原始特征维度各异,因此 OneTrans 为每一种行为序列分配一个共享的 MLP 投影层,将该序列内的每一个事件 embedding 统一映射为 d 维向量。完成维度对齐后,所有行为序列需要被合并为一个整体的 S-token 序列送入主干网络,合并策略主要有两种:

  • 时间戳感知融合:严格遵循事件发生时间的先后,将所有行为序列交织在一起。这是最自然、信息最无损的方式,能精确捕捉用户兴趣演化的先后顺序。

  • 时间戳无关融合:当部分序列缺乏精确时间戳时,按用户意图强度(购买 > 加购 > 点击 > 曝光)降序拼接,并在不同行为序列之间插入可学习的 [SEP] token 作为边界标识

最终消融实验发现,时间戳感知融合策略始终是最优选择,说明时间顺序本身蕴含的演化信息比人工定义的事件重要性更为关键

OneTrans Block

完成 Tokenization 后,所有 S-tokens 与 NS-tokens 拼接为统一序列,送入堆叠的 OneTrans Block 进行处理,每个 Block 遵循标准的 Pre-Norm Transformer 结构。这里 OneTrans 的核心改动是混合参数化,使其适应于推荐系统的输入特征的异构性

(1)混合因果注意力

工业推荐系统的 token 序列与纯文本截然不同:S-tokens 是同质的,都是用户行为的投影;而 NS-tokens 是高度异质的,可能分别代表用户画像、物品属性、统计特征等,其数值分布和语义空间差异巨大。若对所有 token 采用统一的 Q/K/V 投影,会迫使模型在扭曲的语义空间中学习,导致注意力坍缩或训练不稳

OneTrans 将所有 S-tokens 共享一套 Q/K/V 权重,而每个 NS-token 拥有独立特有的权重。在这种混合设计中,它催生了几种天然的交互模式:

  • S-side(序列内交互):每个行为 token 只能看到其历史时刻之前的行为,天然符合用户兴趣演化的因果逻辑

  • NS-side(特征交互):NS-tokens 可以“看见”它前面的所有 NS-tokens,实现了类似传统特征交叉的高阶交互

  • Cross-side(序列与特征交互):所有 NS-tokens 被放置在序列末尾,因此可以看见全部的 S-tokens,这意味着物品特征或上下文特征可以直接从完整的用户行为历史中提取相关兴趣信号

(2)混合前馈网络

遵循同样的逻辑,S-tokens 共享一个 FFN,而每个 NS-token 拥有独立的 FFN。最终,OneTrans 在仅仅微调参数分配方案的前提下,就优雅地弥合了文本 Token 和推荐系统特征间的巨大鸿沟

Pyramid Stack & Cross-Request KV Caching

统一架构带来的一个隐患是计算量,用户行为序列可能长达数千,即使使用高效注意力机制,对所有 token 进行全层推理仍然成本高昂。为此,OneTrans 设计了两个精巧的工程优化来确保其生产级效率:

  • 金字塔堆叠(Pyramid Stack):考虑到因果掩码会将信息集中在序列尾部,冗长的早期行为可能在经过几层编码后,其关键信息已被尾部 token 所吸收。因此,从底层到顶层,每过一个 Block,模型就剪枝掉一部分最古老的 S-tokens。这形成了一个上窄下宽的金字塔结构。它带来的好处是双重的:既节省了大量计算和显存,又实现了对用户历史信息的渐进式蒸馏,迫使模型将长历史中的有效信息压缩进幸存的最新行为和 NS-tokens 中

  • 跨请求键值缓存(Cross-Request KV Caching):在推理中,同一用户请求可能要对数百个候选物品打分,而这些候选物品共享完全相同的用户历史序列。因此在同一次请求中, OneTrans 可以直接将 S-side 的 K/V 在请求级别缓存并复用,每位候选物品只需计算 NS-side 的增量;又由于用户行为是 append-only 的,下一次请求到来时,可以复用上一次的缓存,仅需计算增量行为的新 K/V,从而实现跨请求的键值缓存

实验

image

在系统层面,FlashAttention-2、BF16 混合精度训练以及 Activation Recomputation 的组合应用使得 OneTransL(330M 参数,8.62 TFLOPs)在线上的 p99 推理延迟(13.2ms)甚至略低于参数量仅为其 1/33 的 DCNv2+DIN 基线(13.6ms),证明了统一 Backbone 在工程优化方面的显著优势

总结

OneTrans 的核心贡献在于用一个统一的 Transformer Backbone 完成序列建模和特征交互,实现了特征的统一、计算的统一、优化的统一