UniDot: A Unified Network for Sequence Modeling and Feature Interaction in Large-scale Recommendation
UniDot 面向工业推荐的 post-click conversion prediction,把多字段特征交互与用户行为序列放入同一 token 空间。它用并行 token-mixing bus 和 sequence-retrieval bus,再通过 FM Highway 保留逐层点积交互;序列侧只编码一次,降低共享推理开销,并采用 Adagrad+Muon、转化延迟辅助头和多路径互学习。模型获 KDD Cup 2026 Industrial track 亚军。
INSIGHT对社区平台,统一“用户画像/帖子特征/跨场景行为”可减少 CTR 与深度消费模型各自为政;FM 点积既保留稀疏特征泛化,又能承接 attention。工程上先在粗排或精排做共享序列编码,配合辅助目标校准深度行为,离线同时看 nDCG、CTR、转化/阅读深度与 P99 延迟。
1. 问题与动机
UniDot 解决工业推荐里两个长期分裂的模型家族:一类在多字段 user/item 特征上做 FM、DeepFM 或其他 feature interaction,另一类在用户行为历史上做 DIN、Transformer 等 sequential modeling。生产系统通常把两者松散串接,导致画像、候选特征与行为序列不能在同一层充分交互;而 post-click conversion prediction 又面对稀疏正例、快速变化的候选库存和大量训练中未见过的 user-item pair。论文把问题放进 TAAC×KDD Cup 2026 Tencent Uni-Rec Challenge,任务要求在 inference-latency budget 下最大化 AUC,因此不是单纯追求更大的离线网络。
作者的核心观察是,FM 的 embedding inner product 与 attention 的 query·key 都是 token dot-product。FM 通过 user/item latent factor 的共现泛化到未见 pair,attention 则用同一个数学原语从序列中选择相关历史。若把两类输入都映射到同一 token 空间,就可以让一个可堆叠 backbone 同时建模显式二阶特征交互和候选条件下的行为检索,而不是把 feature tower 与 sequence tower 当成两个黑盒。
2. 方法详解
UniDot 先把 categorical fid、多值 ID 列表、预训练 embedding 和多域行为序列压缩到统一的 d 维 token 空间。普通 categorical fid 按位置 embedding 后,用可学习的 NCB(两层 linear+GELU 的 token-axis mixer)压缩到 token budget,模型自己学习哪些字段组合应形成一个 token。高价值但顺序无意义的 multi-value fid 使用 FAFE:以当前候选为 query 的 DIN-style attention pool,使同一个字段对不同候选产生不同的值组合。预训练 user/item 向量先归一化,再用小 MLP 投影成额外 token。行为序列也做 per-fid embedding 和 position-local 压缩,并且每次 forward 只编码一次,供所有消费者共享。
序列 trunk 有四步。第一,把多个行为域按 timestamp 交织成一个 cross-domain stream,帮助模型学习跨域时间关系;第二,用 kernel=21 的 depthwise Conv1d 低成本捕获局部 N-gram、行为 burst 和相邻事件模式;第三,用 DIN-style conditional SwiGLU,把用户、item、embedding 条件只放进 gate,gate 选择与当前 candidate 相关的历史位置,而 value path 保持纯序列变换;第四,用 causal Transformer 建模长程依赖,配置为 1 layer、4 heads、RoPE、window=128。
主干重复 L 个 macro-block,每个 block 有两条并行 bus。token-mixing bus 处理 user/profile/item 非序列 token;sequence-retrieval bus 让 item token cross-attend 行为历史。两条路径每层通过 FuseFFN/MLP-Mixer exchange state,同时 FM Highway 把每层的 per-domain query-key dot、聚合 Gram matrix 和跨 bus user-item dot 直接送入 classifier,绕过深层 residual fusion,避免显式二阶信号被冲淡。最终两条路径各自输出 logit,再取平均;训练时还用 two-path DML(multi-path mutual learning)让两个轻微差异的路径互相约束。
提交配置为 6 个 macro-layer、每层 2 个 mix-block、d_model=128、N=2 paths;用户侧 22 tokens,item mixing bus 12 tokens,item retrieval bus 24 tokens,5 条序列(4 个域加 merged stream),4 个 seq fid-compress tokens。模型约 2.1B 参数,但主要是 sparse embedding;dense compute 只有数千万参数。loss 是 BCE,另有 conversion-delay auxiliary head,λ=0.01;dense 参数用 Muon,sparse embedding 用 Adagrad,mutual loss 是 MSE、权重 λ=20。实验有 tiny(4M train/1M eval,1 GPU)、remote(35M train,4 GPU)、final(35M 全量重训,4 GPU)三种模式。
3. 核心技术贡献
第一,统一 token 空间和双 bus 结构把 feature interaction 与 sequence retrieval 放进同一个可重复 block;两路不是先后级联,而是每层并行并交换状态,因此用户/物品字段和跨域历史能共同演化。
第二,FM Highway 把 dot-product 从“隐式出现的深层能力”变成显式旁路信号。对广告/推荐的稀疏正例,它保留协同过滤式 user-item 泛化;对序列路径,它保留 candidate-history 匹配。消融中移除 FM Highway 的 AUC 下降 0.127%,是组件中损失最大者。
第三,FAFE、一次序列编码和 candidate-aware SwiGLU 解决了大规模 serving 的成本约束。FAFE 只对少数无序高价值 fid 做按候选 attention,序列 trunk 共享给多个消费者;两路径平均优于单路径,但单路径成本为 1x,仍有 0.83184 AUC,只比双路径 0.83217 低 0.033%。
4. 实验结果分析
主要结果和增量如下:
| 阶段/配置 | Test AUC | 相对变化 |
|---|---|---|
| competition baseline | 0.81398 | — |
| 加入 UniDot | 0.82500 | +1.102% |
| 加 item-id hash embedding、token 调优、batch 调优 | 0.82704 | 继续提升 |
| 加 FM Highway、Conv1d、delay loss、FAFE、EMA | 0.82993 | 逐项提升 |
| 加 dense scaling 与 multi-path DML | 0.83196 | 逼近最终值 |
| all-data retrain + EMA | 0.83217 | 总提升 +1.818% |
最终模型在 KDD Cup 2026 Industrial track 获亚军,epoch 5 的最终 test AUC 为 0.83217。增量实验显示,UniDot 主架构本身贡献 +1.102%,multi-path DML(d=64)贡献 +0.085%,EMA +0.099%,辅助 conversion-delay loss +0.075%,FAFE +0.026%。tiny mode 的 full 6-layer AUC 为 0.83657;去掉 FM Highway 的代价为 -0.127%,去掉 sequence cross-attention 为 -0.053%。2 层和 4 层分别比 full 低 0.057% 和 0.054%,8/10 层没有继续增益,作者认为在 4M 数据上出现过拟合。
推理侧 two-path 模型在包含一次 torch.compile 的 12M-example test 上耗时约 14,500 秒,single path 约 7,200 秒,约为一半。bf16 autocast 的 AUC 损失小于 0.0001。作者也报告 FuseFFN 的结果并不完全稳定:移除它在 tiny mode 使 AUC 轻微上升 0.022%,但 LogLoss 变差,说明静态 routing 可能是当前弱点,而不是 bus exchange 本身无效。
5. 局限与未来方向
论文实验主要来自 KDD Cup 的一个工业数据集和比赛式延迟预算,核心指标是 AUC,并没有在线 CTR/CVR A/B 或长期用户价值结果;因此从离线比赛成绩迁移到社区 UGC 搜索,仍需重新做曝光偏差、时间切分和线上实验。模型参数约 2.1B 且 embedding-dominated,虽然 dense 路径不大,但 embedding memory 和更新成本对中小团队仍高。单路径部署会损失 0.033% AUC,双路径又带来约 2 倍评测耗时。作者在消融中明确指出 8/10 层在 4M 数据上过拟合,并指出 FuseFFN 的静态融合存在设计空间,后续更清晰方向是 input-conditioned、second-order fuser。论文没有给出跨业务域泄漏、冷启动新用户或长尾作者的独立结果,这些应作为补充验证。
6. 工业实践意义
对社区 UGC 搜索/推荐,UniDot 的直接启发是把 query/session、用户画像、帖子字段、作者字段和评论/点赞序列放进同一个可控 token budget,而不是让每个模块各自输出一个分数再手工拼接。可以先在 rerank 或 conversion/deep-consumption 预测上复用现有行为 trunk,增加 FM Highway 保存 user-item 与 query-post 的显式匹配;对候选相关的无序标签集合,再选择性使用 FAFE,而不是对所有字段都做昂贵的 attention。
工程迁移要把“共享序列只编码一次”作为第一优先级。可先建立 tiny 版本做结构 A/B,再在 4 GPU 或分布式环境上验证全量;embedding memory、sparse lookup、bf16 数值稳定性和 P99 延迟应与 nDCG/CTR 一起看。社区场景不应直接复制 2.1B 配置,可用蒸馏、hash embedding、低维 token 和单路径部署作为起点。实验设计上,除 AUC 外要加入 nDCG@10、CTR、评论/收藏等深度行为、长尾作者曝光和分用户活跃度指标,并单独做严格时间切分,避免把用户未来行为泄漏进序列。