字节发布用于序列推荐的分层大模型 HLLM 技术解析
近期,Meta 发布的 HSTU 点燃了业界对 LLM4Rec(大语言模型用于推荐系统)的热情。探索推荐领域的 Scaling Law、实现推荐的 ChatGPT 时刻、取代传统推荐模型等话题引发了广泛讨论。然而,理想与现实之间仍存在差距,尚未有业界公开工作真正复刻 HSTU 的辉煌。这既可能是因为落地过程中存在诸多挑战,也可能是因为 Meta HSTU 的基线设置相对较弱,导致在竞争激烈的国内推荐领域难以产生突破性效果。
尽管实施困难,但总需要先行者迈出这一步。字节跳动于 2024 年 9 月 19 日在 arXiv 上公开了名为 HLLM(Hierarchical Large Language Model,分层大语言模型)的工作。该论文遵循并扩展了 HSTU 的思路,针对序列推荐任务提出了新的架构。
1. 背景与挑战
1.1 传统推荐问题
传统推荐系统的核心在于建模 User 和 Item 的特征。主流方法是基于 ID(ID-based),将用户和物品转化为 ID 并构建对应的 Embedding 表。这种方法存在以下局限性:
- 冷启动问题严重:严重依赖 ID Feature,对于新物品或新用户表现不佳。
- 表达能力有限:模型参数较小,难以建模复杂且多样的用户兴趣变化。
1.2 LLM 在推荐中的探索方向
过往利用 LLM 进行推荐探索主要分为三类:
- 利用 LLM 提供额外信息给推荐系统。
- 将推荐系统转变为对话驱动的形式。
- 修改 LLM 输入输出机制,例如直接输入 ID Feature 给 LLM。
1.3 LLM4Rec 的核心挑战
将 LLM 应用到推荐系统面临两个主要问题:
- 输入复杂度:在相同时间跨度下,相比 ID-based 方法,LLM 的输入更长,计算复杂度更高。
- 性能提升不明显:相对于传统方法,LLM-based 方法的性能提升往往不显著。
为此,研究重点评估了三个关键问题:
- 预训练权重的价值:模型权重蕴含世界知识,如何激活这些知识?是否只能使用文本输入?
- 微调的必要性:直接使用 Pretrain 模型还是需要进行进一步微调?
- Scaling Law 特性:LLM 是否可以应用在推荐系统中并呈现规模效应?
2. 方法详解
HLLM 架构分为 Item LLM 和 User LLM 两部分,两者参数不共享,均可训练并通过 Next Item Predict 进行优化。
2.1 架构设计
- Item LLM:以物品的描述信息作为输入,包括 Title、Tag、Description,最后添加一个特殊 Token
[ITEM]。该 Token 对应的输出代表该物品的 Embedding。可以直接基于预训练好的模型(如 Llama、Baichuan)进行训练。
- User LLM:输入为用户历史交互序列,序列中每个 Item 由 Item LLM 生成的 Embedding 表示。由于输入并非原始文本 Token,因此去除了预训练模型的 Word Embedding 层。
2.2 优化目标
推荐系统通常分为生成式推荐与判别式推荐,HLLM 同时应用了这两种范式。
生成式推荐
针对 User LLM,采用 InfoNCE Loss 作为生成损失。对于某个正样本物品,模型输出其嵌入,随机抽取的其他物品作为负样本。这种将对比学习融入预测的设计非常巧妙。
生成式损失函数定义如下:
$$ \mathcal{L}{gen} = -\log \frac{\exp(sim(u_t, i{t+1})/\tau)}{\sum_{k=1}^{K} \exp(sim(u_t, i_k)/\tau)} $$
其中,$sim$ 为相似度函数,$u_t$ 为用户 $t$ 的历史交互嵌入,$i_{t+1}$ 为目标物品嵌入,$K$ 为负采样数量。
判别式推荐
业界主流仍为判别式推荐,HLLM 同样支持。给定用户行为序列和一个目标 Item,模型预测用户对该 Item 感兴趣程度(如点击、购买)。
融合策略分为两种:
- Early Fusion:将 Item LLM 输出的 Embedding 直接拼接到序列后输入给 User LLM,对应位置输出做分类。效果好但效率低。
- Late Fusion:类似于 Item LLM,使用 User LLM 提取用户 Embedding,即
[USER] 拼到序列后输入给 User LLM,将对应位置输出与目标 Item 拼接做分类。效果略差但效率高。实际落地使用的是 Late Fusion。
预测为二分类问题,训练损失函数为交叉熵损失:
$$ \mathcal{L}{cls} = -[y \log(x) + (1-y) \log(1-x)] $$
此外,Next Item Prediction 可作为辅助损失进一步提升性能,最终损失函数为:
$$ \mathcal{L}{total} = \mathcal{L}{cls} + \lambda \mathcal{L}{next} $$
3. 实验结果
3.1 公开数据集实验
- 数据集:PixelRec、Amazon Book。
- Baseline:SASRec、HSTU。
- 模型设置:HLLM-1B(基于 TinyLlama-1.1B)、HLLM-7B(基于 Baichuan2-7B)。
- 训练轮次:HLLM 仅训练 5 个 Epoch,而对比方法需 50-200 Epoch。
离线实验表明,HLLM 在生成式推荐设置下,效果优于 SASRec 和 HSTU。在线 A/B 实验则采用判别式推荐 + Late Fusion 配置。
3.2 在线 A/B 实验
- 模型:HLLM-1B。
- 训练策略:三阶段训练法。
- 阶段 1:端到端训练 HLLM(Item LLM + User LLM),用户行为长度截断为 150 以加速。
- 阶段 2:固定 Item LLM,缓存所有 Item Embedding,只训练 User LLM,用户行为长度扩大至 1000。
- 阶段 3:提取 User Feature 和 Item Feature 喂给线上模型训练,HLLM 权重不再改变。
- 推理优化:Item Embedding 创建时提取并缓存,User Embedding 天级别更新(仅在用户发生交互时更新)。线上推理时间基本无变化。
- 结果:重要指标提升 0.705%。
4. 关键问题分析
4.1 微调 vs 预训练
- 结论 1:对于 Item LLM 和 User LLM,基于预训练权重进行微调效果更好。
- 结论 2:预训练使用的 Token 越多,效果越好。若预训练后进行 SFT(指令微调),效果反而下降,原因可能是 SFT 仅训练了指令跟随能力,对推荐任务本身无益。
- 结论 3:Item LLM 和 User LLM 联合训练效果最佳。
4.2 Scaling 特性
针对 Item 和 User LLM 均进行了 Scaling 实验。结果表明,随着模型参数增大,HLLM 具有显著的 Scaling 特性,性能随模型规模增加而提升。
4.3 对比 SoTA 优势
在相同设置下,HLLM 优于 HSTU。当增加负样本数量和 Batch Size 时,基于 ID 的模型(HSTU)提升有限(HSTU-Large R@200 +0.76),而相同设置的 HLLM-1B 提升显著(+2.44)。
4.4 效率分析
- 数据需求:相对于 HSTU,HLLM 达到相同性能只需 1/6 至 1/4 的数据量。
- 推理优化:通过 Cache Item Embedding,可以先训练 Item LLM 并缓存,再训练 User LLM。实验显示,即使 Item Cache 导致性能略微降低,仍优于 HSTU。
- 工业场景:工业场景下用户行为数据量远大于 Item 数量,成本一致。随着预训练数据量增加,Item Cache 与全量微调之间的 Gap 会大大缩小。
5. 消融实验
5.1 Item LLM 配置
- 输入特征:Tag + Title + Description + Length=256 效果最好。
- Embedding 提取:采用
[ITEM] Token 提取 Embedding 优于 Mean Pooling 方法。
5.2 User LLM 配置
- 序列长度:输入用户序列长度 Length=50 优于其他短序列。
- Embedding 组合:User LLM 生成的 Embedding 优于 Item ID Embedding;加上 Timestamp Embedding 效果最佳。
5.3 工业场景调优
- 模型规模:7B 模型效果优于小模型。
- 序列长度:User LLM 输入长度采用 1k 最佳。
6. 总结
字节推出的 HLLM 利用大语言模型提取物品特征并建模用户兴趣,有效地将预训练知识集成到推荐系统中,并证明了基于推荐目标的微调至关重要。HLLM 在更大的模型参数下展现了出色的可扩展性。实验表明,HLLM 优于传统的基于 ID 的模型,在学术数据集上取得了很好的结果。在线 A/B 测试进一步验证了 HLLM 的实际效率和适用性,标志着 LLM4Rec 的重大进展。
该工作为推荐系统与大模型的结合提供了新的思路,特别是在解决冷启动和复杂兴趣建模方面展示了潜力。未来的研究方向可能包括更高效的推理优化、多模态特征的融合以及更大规模的工业级部署验证。