LiGR 将生成式推荐(HSTU 风格)引入 LinkedIn 大规模排序,用 7 个特征 + Gated Transformer + Setwise Attention 超越了需要数百特征的 DLRM 基线,在 Feed 排序上验证了序列长度/层数/嵌入维度同步扩展的 Scaling Law,SID 替代 Post ID 将参数量压缩 4×,并在生产 A/B 测试中实现 DAU +0.27%。
论文:From Features to Transformers: Redefining Ranking for Scalable Impact
机构:LinkedIn, Mountain View, CA(KDD 2025)
发表:arXiv 2502.03417,KDD 2025
LinkedIn Feed 排序的三大目标
LiGR 是 LinkedIn 大规模排序框架(LinkedIn Generative Recommender for Ranking),在 Feed 排序和视频检索上全面取代传统 DLRM 方案。其三个突破性目标:
目标 1:大幅简化特征工程
传统 LinkedIn Feed 排序模型需要数百个手工特征(稠密特征、计数特征、交叉特征等),需要大量人工设计和维护。
成果:LiGR 只用 7 个特征即可超越传统方案的全特征性能,其中最重要的单个特征是 Actor ID(帖子作者 ID)。
目标 2:验证 Ranking 的 Scaling Law
语言模型领域已有大量 Scaling Law 研究,但推荐排序系统的 Scaling Law 在工业界鲜有验证。
成果:在序列长度、层数、嵌入维度上验证 Scaling Law——每增加一个数量级的训练 FLOPS,Long Dwell AUC 提升约 0.015。
目标 3:从 Pointwise 到 Setwise 排序
传统 Feed 排序依赖 Pointwise + 规则多样性重排(如:同一 Actor 帖子间必须至少间隔2个位置)。规则统一假设限制了个性化。
成果:Setwise 注意力模型替代多样性规则,A/B 测试显示 DAU +0.27%,Feed 时长 +0.28%。
对比:与 HSTU (Meta) 的差异
LiGR 将 Meta HSTU 方案(Actions Speak Louder Than Words)迁移到 LinkedIn 排序场景,并做出了关键改进:
- Gated Normalization(门控归一化)替代标准 LayerNorm
- Setwise 层处理会话内 item 交互
- Semantic ID(SID)替代 Post ID,参数量从 5.4B→1.3B
- 实验证明 LiGR 在各规模上均优于 HSTU
2.2 LiGR Transformer 核心设计
LiGR 是一个全序列 Transformer 架构,采用 HSTU 的动作交错(action interleaving)方案,将用户历史按序排列:
LiGR 输入序列格式
其中每个 token $X_i$ 是多个嵌入特征的拼接(item 特征、作者特征、内容嵌入等),$y_i$ 是多元动作标签(click/like/comment/share)。因果注意力(Causal Attention)防止位置 $i$ 向前看。
假设用户的历史行为是:看了帖子 A → 点赞,看了帖子 B → 仅查看,看了帖子 C → 评论+分享。
纯 item 序列(传统做法):序列 = [A, B, C],动作信息被丢弃。模型无法区分"看了 A 并点赞"与"看了 A 并滑走"——同样是帖子 A 出现在历史里,对下一个推荐的影响其实截然不同。
动作交错(LiGR 做法):序列 = [$X_A$, $y_{\text{点赞}}$, $X_B$, $y_{\text{查看}}$, $X_C$, $y_{\text{评论+分享}}$]。注意力机制可以学到:出现在高参与度动作之后的 item 类型预示着用户兴趣;低参与度动作之后的 item 可能是用户不感兴趣的内容类型。这种动作条件化的兴趣建模是纯 item 序列无法捕获的。
门控归一化公式:
- $h^j$:第 $j$ 层 Transformer 的隐状态
- $F(h^j)$:Multi-Head Attention 或 FFN 的输出
- $\sigma(h^j W)$:门控信号,线性投影 $W$ + Sigmoid,值域 $(0,1)$
- 整体等价于将残差连接乘以一个自适应的实值门控,类似 Highway Transformer,但门控作用在 $F(h^j)$ 上而非 skip 上
2.3 Setwise 排序层(关键创新)
标准 Transformer 的残差连接是 $h^{j+1} = h^j + F(h^j)$,没有任何门控。当模型深度增加(比如 16 层)或序列极长时,不同层的残差贡献可能差别很大,导致梯度爆炸或消失。
LiGR 的修复:$h^{j+1} = h^j + F(h^j) \times \sigma(h^j W)$。门控 $\sigma(h^j W) \in (0,1)$ 根据当前隐状态自适应地缩放残差的贡献。如果某层的 $F(h^j)$ 幅度过大,门控会自动变小以限制其影响——类似于 LSTM 中遗忘门的作用,但作用在 Transformer 的残差路径上。
工程效果:在 16 层 + 2048 步序列的大规模配置下,无门控训练会出现 loss spike;加了门控后训练曲线稳定,这是 LiGR 能 Scale 到大模型的关键之一。
LinkedIn Feed 传统的 Pointwise 排序 + 规则多样性重排存在明显局限:规则是一刀切的,无法个性化。LiGR 增加了 In-Session Setwise Attention:
Setwise 注意力机制
在 LiGR 的历史注意力之外,增加会话内注意力块(如 Figure 2 绿色块):会话内的候选 item 之间互相 attend,模拟用户在当前展示列表中的选择行为。
会话由 session ID 区分,使用 FlexAttention 高效处理变长会话的注意力掩码。
训练损失增强
在原有二元交叉熵之外,增加 Attention Rank Loss(Ai et al. 2018)——对会话内 item 的相对顺序进行优化,鼓励模型在会话级别正确排列 item。
实验结果:In-Session Setwise Attention 使 Long Dwell AUC 额外提升 +0.20%(Contributions AUC 无明显变化)。
2.4 Semantic ID 集成(LiGR + SID)
LiGR 中 SID 的作用是替代或补充 Post ID(数据库分配的帖子 ID),以解决大词汇量 ID 嵌入表的问题。
RQ-VAE 配置:3层 codebook,每层 1,000 个码向量,latent 维度 8,使用 FLOPs Regularizer 保证均匀聚类,使用指数移动平均 + 向量重置防止 codebook 塌陷。
Prefix 编码方案(concat pooling):
- 1-gram:$c_1$ 直接查嵌入表
- 2-gram:$(c_1, c_2)$ 拼接后查嵌入表
- 3-gram:$(c_1, c_2, c_3)$ 哈希到大小 $10^6$ 的嵌入表中
- 每级 SID 嵌入维度为 32,最终使用 concat pooling(拼接三级 embedding)而非求和
- Meta 使用求和(sum)聚合各前缀嵌入,LiGR 使用拼接(concat)——保留各层嵌入的独立信号
- Meta 的 codebook 大小 K=2048,LiGR 的 K=1,000(每层)
- Meta 的 RQ-VAE 在广告内容模型上训练;LiGR 的 RQ-VAE 在帖子内容嵌入上训练
| 特征组合 | Long Dwell AUC 变化 | Contribution AUC 变化 |
|---|---|---|
| All features (基准) | —— | —— |
| 只用 SID(去掉所有其他特征) | -6.5% | -4.6% |
| 去掉 Post ID,加入 SID | +0.40% | +0.11% |
| 保留 Post ID,额外加入 SID | +0.26% | +0.22% |
LinkedIn 的帖子(Post)数量是数十亿量级。直接为每个 Post ID 维护一个嵌入向量,需要约 5.4B 参数的嵌入表(数十亿 × 嵌入维度)。
SID 如何压缩:3 层 codebook,每层 1,000 个码向量。所有帖子共享同一套 3 × 1,000 = 3,000 个码向量。最终嵌入表参数量约 1.3B(约 75% 压缩),且对新帖子天然泛化(无需新增嵌入行)。
为什么 AUC 还更好?Post ID 是数据库随机分配的,相近的 ID 没有任何语义关联。SID 基于帖子内容嵌入(LiPost 模型)量化生成,相同主题的帖子会聚类到相近的 codebook 前缀(如科技类帖子 → 第1层码字同为 42,商业类帖子 → 第1层码字同为 17)。模型通过 SID 嵌入学到的是"话题级别"的兴趣模式,泛化能力更强。
concat vs sum 的直觉:concat 保留了各层码字的独立信号(第1层 = 粗粒度类别,第3层 = 细粒度子类),sum 会让粗细粒度信息互相叠加干扰。LiGR 实验验证了 concat (+0.40% Long Dwell) 优于 sum。
关键结论:SID 可以完全替代 Post ID,且替代后性能更好(+0.40% Long Dwell)。同时将模型参数量从 5.4B 降至 1.3B(约 75% 压缩)。
推理优化
LiGR 大模型的在线 serving 面临延迟挑战,采用以下四项优化:
- Split Scoring(分割打分):仅对 Pointwise 打分后的 top 10 帖子应用 Setwise 注意力,pointwise 和 setwise 的模型权重分开部署
- Score Combination(分数叠加):前 10 个帖子的 Setwise 分数叠加到 Pointwise 分数,11 位之后保持 Pointwise 排序
- 规则多样性重排下线:Setwise 模型上线后,传统基于规则的多样性重排器被关闭
- Unified Inference(统一推理):Pointwise 和 Setwise 模型权重合并,一次推理完成所有打分;所有候选打包为 batch,复用历史编码
最终增量延迟成本:p90 仅 10ms,满足 Feed 排序的严苛延迟要求。
训练优化:使用 Flash Attention + 混合精度(FP16),历史序列最长 2048 步,8×A100 GPU,训练数据 1.1 亿序列(2024年1月至8月)。嵌入表使用列向量分割(column-wise splitting)分布在多个设备,支持 5.4B 参数的稀疏嵌入表。
主要排序性能
| 模型 | Long Dwell AUC | Contributions AUC |
|---|---|---|
| 基线(DLRM,数百特征) | 0.755 | 0.903 |
| LiGR(7个特征) | 0.773(+2.4%) | 0.914(+1.2%) |
Scaling Law 实验
各维度 Scaling 分析
关键发现:
- 序列长度:独立 Scaling 时,所有指标均一致正向,是三维中最稳定的 Scaling 维度
- ID 嵌入维度:Long Dwell AUC 正向,但 Contributions AUC 不规律
- Transformer 层数:Long Dwell AUC 正向,但 Evaluation Loss 无明显规律
- 结论:要实现全面 Scaling,需要同时扩展所有三个维度,而非单独扩展
特征消融(Feature Ablation)
| 单特征 | Long Dwell AUC | Contribution AUC |
|---|---|---|
| Post ID | 0.703 | 0.857 |
| Original Actor ID | 0.731 | 0.893 |
| Post Type (Video/Photo/...) | 0.706 | 0.883 |
| Update Age of Post | 0.680 | 0.854 |
| Activity ID of Shared Post | 0.695 | 0.856 |
| Post content embedding (LiPost) | 0.703 | 0.878 |
| All 7 features | 0.767 | 0.912 |
| 基线(数百特征) | 0.755 | 0.904 |
最重要的单特征是 Actor ID(帖子作者 ID)——单凭此一个特征(0.731)已接近基线(0.755),体现了 LinkedIn Feed 中 user-author 关系的核心信号价值。
在线 A/B 测试
- DAU(每日活跃用户参与专业内容):+0.27%
- Feed 时长(Time Spent on Feed):+0.28%
- 规则多样性重排器下线,模型自动学习多样性
视频检索(LiGR for Retrieval)
在视频检索任务(2周数据),使用 LiGR + LiNR(LinkedIn GPU 检索系统):
| 实验配置 | Recall@400 | 相对提升 |
|---|---|---|
| 基线(无 LiGR,cosine) | 0.0799 | — |
| 共享层 + cosine | 0.1197 | +49.81% |
| 共享层 + MLP | 0.3905 | +226.23% |
| + LiGR(共享层 + MLP) | 0.3997 | +2.36% |
| + LiGR + Video ID | 0.4435 | +10.96% |
关于多样性
LinkedIn 多年来使用规则多样性重排(Rule-Based Diversity):同一 Actor 间最少 2 个间隔、Out-of-Network 内容最少 2 个间隔等。
- 消融实验:去掉所有多样性规则,DAU 下降 -0.18%(规则有价值)
- 但规则是一刀切方案,限制了个性化
- Setwise 模型替代后:DAU +0.27%,规则关闭,效果反而更好——模型学到了更个性化的多样性策略
关于 LiGR 开发路径
LiGR 的开发是对 LinkedIn 训练 pipeline 的全面重建(数据格式、特征、训练方式均与 DLRM 根本不同),经历了以下阶段:
- 验证 ID 特征的等效性:证明计数特征可以被 ID 嵌入特征模拟
- 从重要特征开始构建:从 DLRM 的 top 特征或对应 ID 特征逐个添加,直到新增特征的 AUC 收益很小
- 解决冷启动:太少特征时 item 冷启动严重,加入 Actor ID 等特征后冷启动显著改善;增加 user 历史时间窗口减少 member 冷启动
- 规模扩展:确保特征充足后,沿序列长度、嵌入维度、层数三个维度同步 Scale Up
大量架构变体实验(DCNv2、不同注意力激活函数、Position Embedding 方案)的结论是:大多数架构改变对 AUC 影响有限,性能提升的主要驱动力是特征和模型规模。这与 LLM 领域的经验一致:数据 + 规模 > 架构细节。
LiGR 将生成式推荐(HSTU 风格)引入 LinkedIn 大规模排序,用 7 个特征 + Gated Transformer + Setwise Attention 超越了需要数百特征的 DLRM 基线,在 Feed 排序上验证了序列长度/层数/嵌入维度同步扩展的 Scaling Law,SID 替代 Post ID 将参数量压缩 4×,并在生产 A/B 测试中实现 DAU +0.27%。
核心贡献总结
✅ 主要亮点
- 门控 skip-connection:解决大规模 Transformer 训练稳定性问题
- Setwise Attention:替代规则多样性,学到更好的会话多样性
- SID + concat pooling:替代 Post ID,参数量 5.4B→1.3B,AUC 提升
- 工程细节翔实:FlexAttention、分拆 Scoring、摊销历史推理等
- 特征消融结论实用:Actor ID 是最核心特征
⚠️ 局限与注意
- SID 仅替换 Post ID(内容稀疏特征),未涵盖 User ID 侧
- 序列长度 Scaling 最稳定,但计算成本也最高(O(n²) 注意力)
- 生产 A/B 测试只报告了 Setwise 部分,不清楚完整 LiGR 系统的在线增益
- LinkedIn Feed 是 professional 内容场景,结论未必完全迁移到娱乐/广告场景
LiGR 的工程路径可以作为"如何将生成式推荐从检索迁移到排序"的参考蓝图:(1)先验证 ID 嵌入能覆盖手工特征;(2)从少量核心特征开始,逐步加入直到边际收益小;(3)解决冷启动后再 Scale Up;(4)同步扩展三个维度而非单独扩展。核心技术点:Gated Normalization + Setwise Layer + SID Concat Pooling。