← Back to list
HLLM

HLLM: Enhancing Sequential Recommendations via Hierarchical Large Language Models for Item and User Modeling

判别式推荐 ByteDance
Abstract 8 Reading 8 Rating —
2024-09-19
Junyi Chen, Lu Chi, Bingyue Peng, Zehuan Yuan
ByteDance
提出层次化大语言模型架构HLLM,用两个独立LLM分别建模物品特征提取和用户兴趣序列,在多个大规模数据集上显著超越传统ID-based和文本-based推荐方法
transformer pretrained-lm parameter-scaling industrial ad-rec

1. 研究动机与核心问题

大语言模型(LLM)在多个领域取得了显著成功,但将其应用于推荐系统的尝试迄今仅带来有限提升。论文指出三个关键未解决的问题:

  1. 预训练权重的实际价值:LLM 预训练权重中封装的世界知识对推荐任务究竟有多大帮助?
  2. 微调的必要性:是否需要针对推荐目标对 LLM 进行微调?
  3. 可扩展性: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. 核心创新总结

  1. 层次化解耦设计:将物品特征提取(Item LLM)与用户兴趣建模(User LLM)解耦为两个独立 LLM,解决了传统 LLM 推荐方法的长序列和效率问题
  2. 预训练知识有效迁移:即使 User LLM 不直接处理文本,预训练权重仍然有价值;性能与预训练 token 数正相关
  3. 优秀的可扩展性:从 1B 到 7B 参数均持续获得性能提升,而 ID-based 模型扩大参数后几乎无提升
  4. 高效的训练与服务:通过 item caching 策略实现高效推理,仅需 1/6 至 1/4 的训练数据即可匹配 ID-based 模型
  5. 实际部署验证:在线 A/B 测试获得 0.705% 的关键指标提升