1. 研究动机与核心问题¶
大语言模型(LLM)在多个领域取得了显著成功,但将其应用于推荐系统的尝试迄今仅带来有限提升。论文指出三个关键未解决的问题:
- 预训练权重的实际价值:LLM 预训练权重中封装的世界知识对推荐任务究竟有多大帮助?
- 微调的必要性:是否需要针对推荐目标对 LLM 进行微调?
- 可扩展性:LLM 在推荐领域是否也能展现出类似其他领域的 scaling law?
现有 LLM 推荐方法面临的主要挑战:
- 将用户行为历史转化为文本导致输入序列过长,self-attention 复杂度随序列长度二次增长
- 推荐单个物品需要生成多个文本 token,导致效率低下
- 现有方法相比传统 ID-based 模型改进幅度有限
2. HLLM 架构设计¶
2.1 整体架构¶
HLLM 采用双层 LLM 架构,将物品建模与用户建模解耦:
- Item LLM:接收物品的文本描述(title、tag、description),提取物品特征,输出固定维度的 item embedding
- User LLM:接收用户历史交互的 item embedding 序列,建模用户兴趣,预测下一个物品
两个 LLM 参数不共享,均基于预训练权重初始化。
2.2 Item LLM¶
将物品 $I$ 的文本属性展平为句子 $T$,添加固定前缀 prompt,经 LLM tokenizer 处理后,在末尾追加特殊 token [ITEM]。输入 token 序列为:
$$\{t_1, t_2, \ldots, t_m, [\text{ITEM}]\}$$
其中 $m$ 为文本 token 长度。最后一层中 [ITEM] 对应的 hidden state 即为 item embedding。
关键设计:使用特殊 token 而非 mean pooling 提取特征(Table 10 实验证明 [ITEM] token 方法优于 mean pooling)。
2.3 User LLM¶
用户历史交互序列 $U = \{I_1, I_2, \ldots, I_n\}$ 通过 Item LLM 转换为特征序列 $\{E_1, E_2, \ldots, E_n\}$。User LLM 以此为输入,输出位置 $i$ 对应的预测为 $E'_{i+1}$,期望接近 $E_{i+1}$(即下一个物品的 embedding)。
关键设计:丢弃预训练 LLM 的 word embeddings,因为 User LLM 的输入输出都是 item embeddings 而非文本 token。但保留所有其他预训练权重——实验证明这些权重对用户兴趣推理非常有价值。
2.4 训练目标¶
生成式推荐(Generative Recommendation):采用 next item prediction,使用 InfoNCE loss:
$$\mathcal{L}_{gen} = -\sum_{j=1}^{b}\sum_{i=2}^{n} \log \frac{e^{s(E'_{j,i}, E_{j,i})}}{e^{s(E'_{j,i}, E_{j,i})} + \sum_{k}^{N} e^{s(E'_{j,i}, E_{j,i,k})}}$$
其中 $s$ 为带可学习温度参数的相似度函数,$N$ 为负样本数,$b$ 为 batch 中用户数,$n$ 为用户历史交互长度。
判别式推荐(Discriminative Recommendation):提供 Early Fusion 和 Late Fusion 两种变体:
- Early Fusion:将目标物品 embedding $E_{tgt}$ 拼接到用户历史序列末尾,通过 User LLM 生成高阶交叉特征,送入 prediction head 产生 logit
- Late Fusion:User LLM 独立于目标物品提取用户特征(通过
[USER]token),用户 embedding 与目标物品 embedding 一起送入 prediction head
Early Fusion 效果更好但计算成本高;Late Fusion 更高效但性能略低。
分类损失:
$$\mathcal{L}_{cls} = -(y \cdot \log(x) + (1-y) \cdot \log(1-x))$$
判别式推荐的最终损失:
$$\mathcal{L}_{dis} = \lambda \mathcal{L}_{gen} + \mathcal{L}_{cls}$$
其中 $\lambda$ 控制辅助生成损失的权重。
3. 实验设置¶
3.1 数据集¶
| Dataset | #User | #Item | #Interaction |
|---|---|---|---|
| Pixel200K | 200,000 | 96,282 | 3,965,656 |
| Pixel1M | 1,001,822 | 100,541 | 19,886,579 |
| Pixel8M | 8,886,078 | 407,082 | 158,488,652 |
| Books | 694,898 | 686,624 | 10,053,086 |
- PixelRec(Cheng et al. 2024):包含 200K、1M、8M 三个子集
- Amazon Book Reviews(McAuley et al. 2015)
采用 leave-one-out 评估,指标为 Recall@K(R@K)和 NDCG@K(N@K)。
3.2 Baseline 与训练配置¶
Baseline:
- SASRec(Kang and McAuley 2018):经典 ID-based 序列推荐模型
- HSTU(Zhai et al. 2024):面向工业级应用的 ID-based 序列推荐模型
- LEARN(Jia et al. 2024):基于文本的推荐模型
HLLM 配置:
- HLLM-1B:Item LLM 和 User LLM 均使用 TinyLlama-1.1B
- HLLM-7B:均使用 Baichuan2-7B
- 在 PixelRec 上训练 5 epoch,Amazon Reviews 上训练 5 epoch(其他模型训练 50/200 epoch)
- 学习率 1e-4,物品文本截断为 256 token
- PixelRec batch size 512,最大序列长度 10,正负样本比 1:5632
- Books batch size 128,最大序列长度 50,负样本数 512
4. 实验结果¶
4.1 预训练与微调的价值(RQ1)¶
Table 2: 预训练消融实验(Pixel200K, HLLM-1B)
| Item LLM | User LLM | R@5 | R@10 | N@5 | N@10 |
|---|---|---|---|---|---|
| Scratch | Scratch | 3.330 | 5.063 | 2.199 | 2.755 |
| Scratch | Pre-trained | 3.556 | 5.416 | 2.371 | 2.969 |
| Pre-trained | Scratch | 3.521 | 5.331 | 2.358 | 2.940 |
| Pre-trained | Pre-trained | 3.755 | 5.581 | 2.513 | 3.100 |
结论:预训练权重对 Item LLM 和 User LLM 都有显著帮助。即使 User LLM 不直接处理文本,预训练权重仍然有益,说明 LLM 预训练获得的世界知识确实对推荐有价值。
Table 3: 预训练 token 数的影响(Pixel200K, HLLM-1B)
| #Tokens | R@5 | R@10 | N@5 | N@10 | CSR ↑ |
|---|---|---|---|---|---|
| 0T | 3.330 | 5.047 | 2.199 | 2.755 | - |
| 0.1T | 3.539 | 5.142 | 2.399 | 2.915 | 46.11 |
| 1T | 3.613 | 5.409 | 2.414 | 2.993 | 50.22 |
| 1T+chat | 3.610 | 5.387 | 2.411 | 2.984 | 51.36 |
| 2T | 3.650 | 5.510 | 2.466 | 3.063 | 51.64 |
| 3T | 3.755 | 5.581 | 2.513 | 3.100 | 52.99 |
结论:性能与预训练 token 数正相关。SFT(对话数据微调)会略微降低推荐性能,可能因为世界知识主要在预训练阶段获取,SFT 主要增强指令遵从能力。
Table 4: 微调消融实验(Pixel200K, HLLM-1B)
| Item LLM | User LLM | R@5 | R@10 | N@5 | N@10 |
|---|---|---|---|---|---|
| Frozen | Learnable | 0.588 | 0.945 | 0.372 | 0.486 |
| Learnable | Frozen | 1.619 | 2.470 | 1.070 | 1.343 |
| Learnable | Learnable | 3.755 | 5.581 | 2.513 | 3.100 |
| SASRec-1B | 1.973 | 2.868 | 1.352 | 1.640 |
结论:两个 LLM 都必须微调才能超越 ID-based 模型。冻结 Item LLM 仅用 mean pooling 做特征提取效果极差,说明 LLM 需要训练才能成为好的特征提取器。冻结 User LLM 性能也很低。
4.2 模型扩展性(RQ2)¶
Table 5: Item LLM 不同规模(Pixel200K)
| Item Model | #Params | R@5 | R@10 | N@5 | N@10 |
|---|---|---|---|---|---|
| BERT-Base | 110M | 2.576 | 4.020 | 1.694 | 2.158 |
| BERT-Large | 340M | 3.032 | 4.635 | 1.993 | 2.508 |
| TinyLlama | 1.1B | 3.484 | 5.239 | 2.319 | 2.883 |
Table 6: User LLM 不同规模(Pixel200K)
| User Model | #Params | R@5 | R@10 | N@5 | N@10 |
|---|---|---|---|---|---|
| SASRec | 4M | 3.484 | 5.239 | 2.319 | 2.883 |
| Llama-2L | 0.1B | 3.494 | 5.233 | 2.338 | 2.898 |
| TinyLlama | 1.1B | 3.521 | 5.331 | 2.358 | 2.940 |
结论:Item LLM 和 User LLM 参数量增大都能带来性能提升,展现良好的可扩展性。
4.3 HLLM vs. SOTA 模型(RQ3)¶
Table 7: 与 SOTA 方法对比
| Dataset | Method | R@10 | R@50 | R@200 | N@10 | N@50 | N@200 | Impv.(avg) |
|---|---|---|---|---|---|---|---|---|
| Pixel8M | SASRec_vit (2024) | 3.589 | - | - | 1.941 | - | - | -27.72% |
| HSTU* (2024) | 4.848 | 10.315 | 18.327 | 2.752 | 3.939 | 5.135 | +0.0% | |
| SASRec* | 5.083 | 10.667 | 18.754 | 2.911 | 4.123 | 5.331 | +3.82% | |
| HSTU-1B* | 5.120 | 11.010 | 19.393 | 2.879 | 4.159 | 5.411 | +5.37% | |
| SASRec-1B* | 5.142 | 10.899 | 19.044 | 2.915 | 4.166 | 5.383 | +4.83% | |
| HLLM-1B (Ours) | 6.129 | 12.475 | 21.179 | 3.539 | 4.919 | 6.221 | +22.93% | |
| Amazon Books | SASRec (2018) | 3.06 | 7.54 | 14.31 | 1.64 | 2.60 | 3.62 | +0.0% |
| LEARN (2024) | 4.07 | 9.79 | 18.74 | 2.24 | 3.71 | 4.83 | +34.42% | |
| HSTU-large (2024) | 4.78 | 10.82 | 19.08 | 2.62 | 3.93 | 5.17 | +47.80% | |
| SASRec* | 5.35 | 11.91 | 21.02 | 2.98 | 4.40 | 5.76 | +64.96% | |
| SASRec-1B* | 5.09 | 11.11 | 19.45 | 2.86 | 4.17 | 5.42 | +55.68% | |
| HSTU-large* | 5.00 | 11.29 | 20.13 | 2.78 | 4.14 | 5.47 | +55.61% | |
| HSTU-1B* | 5.25 | 12.03 | 21.60 | 2.89 | 4.36 | 5.80 | +64.37% | |
| HLLM-1B (Ours) | 6.97 | 14.61 | 24.78 | 3.98 | 5.64 | 7.16 | +108.68% | |
| Amazon Books (扩大设置†) | HSTU-large†* | 6.49 | 12.22 | 19.81 | 3.99 | 5.24 | 6.38 | +88.94% |
| HLLM-1B-Scratch† (Ours) | 6.85 | 13.95 | 23.19 | 4.02 | 5.56 | 6.95 | +103.65% | |
| HLLM-1B† (Ours) | 9.28 | 17.34 | 27.22 | 5.65 | 7.41 | 8.89 | +166.42% | |
| HLLM-7B† (Ours) | 9.39 | 17.65 | 27.59 | 5.69 | 7.50 | 8.99 | +169.58% |
结论:
- HLLM-1B 在 Pixel8M 上平均提升 22.93%,在 Amazon Books 上平均提升 108.68%
- 相同实验设置下,ID-based 模型增加参数到 1B 仅获得微小提升(如 HSTU-large 在 R@200 仅增加 0.76),而 HLLM-1B 提升 2.44
- 扩大到 7B 参数后(HLLM-7B),性能进一步提升达 169.58%
- ID-based 模型(SASRec-1B、HSTU-1B)增大参数后提升非常有限,甚至出现下降(SASRec-1B 在 Books 上所有指标下降)
4.4 训练与服务效率(RQ4)¶
- HLLM 仅需 ID-based 模型 1/6 到 1/4 的训练数据即可达到相同性能(Figure 3)
- 通过 item caching 策略(冻结 Item LLM,缓存 item embedding),推理时只需运行 User LLM
Table 8: Item Caching 实验
| Method | R@5 | R@10 | N@5 | N@10 |
|---|---|---|---|---|
| HSTU-1B | 3.501 | 5.120 | 2.358 | 2.879 |
| HLLM-1B_cache | 3.585 | 5.218 | 2.432 | 2.958 |
| HLLM-1B | 4.278 | 6.106 | 2.935 | 3.524 |
结论:即使使用 item caching(冻结 Item LLM),HLLM 仍优于 HSTU-1B。完全微调的 HLLM 效果更好。
4.5 在线 A/B 测试¶
在线系统采用 HLLM-1B 的 Late Fusion 判别式推荐方案,三阶段训练: 1. Stage I:端到端训练所有参数,用户序列长度截断为 150 2. Stage II:冻结 Item LLM,缓存 item embedding,仅训练 User LLM,序列长度可扩展到 1000 3. Stage III:提取所有用户和物品特征,结合现有特征送入在线推荐模型
在线 A/B 测试中,关键指标提升 0.705%。
5. 附录实验¶
5.1 文本输入内容与长度消融(Table 9, Pixel200K)¶
| Tag | Title | Description | Length | R@5 | R@10 | N@5 | N@10 |
|---|---|---|---|---|---|---|---|
| ✓ | 64 | 0.082 | 0.196 | 0.049 | 0.086 | ||
| ✓ | ✓ | 64 | 3.520 | 5.317 | 2.348 | 2.926 | |
| ✓ | ✓ | ✓ | 64 | 3.610 | 5.439 | 2.415 | 3.003 |
| ✓ | ✓ | ✓ | 64 | 3.647 | 5.502 | 2.430 | 3.026 |
| ✓ | ✓ | ✓ | 256 | 3.755 | 5.581 | 2.513 | 3.099 |
结论:文本内容越丰富、长度越长,性能越好。Title 是最重要的属性,仅有 Tag 几乎无效。
5.2 特征提取方法(Table 10)¶
| Method | R@5 | R@10 | N@5 | N@10 |
|---|---|---|---|---|
| Mean Pooling | 3.386 | 5.159 | 2.257 | 2.826 |
| [ITEM] Token | 3.484 | 5.239 | 2.319 | 2.883 |
结论:[ITEM] 特殊 token 方法优于 mean pooling。
5.3 与 ID 特征的兼容性(Table 12, Pixel1M)¶
| Input Features | R@5 | R@10 | N@5 | N@10 |
|---|---|---|---|---|
| Item ID | 4.105 | 6.082 | 2.773 | 3.409 |
| LLM Emb | 5.201 | 7.564 | 3.538 | 4.299 |
| LLM Emb + Item ID | 5.154 | 7.501 | 3.504 | 4.260 |
| LLM Emb + Timestamp | 5.779 | 8.319 | 3.953 | 4.770 |
结论:加入 Item ID 反而略降性能(文本描述已充分覆盖物品特征),但加入 Timestamp 后提升显著,说明时间信息与文本特征互补。
5.4 工业数据集扩展性(Appendix B)¶
在抖音 3000 万样本数据集上:
- 序列长度从 200 增加到 1000,AUC 从 0.7429 提升到 0.7458(Table 13)
- Item LLM 和 User LLM 均从 1B 扩大到 7B,AUC 从 0.7458 提升到 0.7533(Table 14)
6. 核心创新总结¶
- 层次化解耦设计:将物品特征提取(Item LLM)与用户兴趣建模(User LLM)解耦为两个独立 LLM,解决了传统 LLM 推荐方法的长序列和效率问题
- 预训练知识有效迁移:即使 User LLM 不直接处理文本,预训练权重仍然有价值;性能与预训练 token 数正相关
- 优秀的可扩展性:从 1B 到 7B 参数均持续获得性能提升,而 ID-based 模型扩大参数后几乎无提升
- 高效的训练与服务:通过 item caching 策略实现高效推理,仅需 1/6 至 1/4 的训练数据即可匹配 ID-based 模型
- 实际部署验证:在线 A/B 测试获得 0.705% 的关键指标提升