背景
1. 论文名称:
CoLLM: Integrating Collaborative Embeddingsinto Large Language Models forRecommendation
《CoLLM:将协同嵌入整合到大型语言模型中以实现推荐》
3. github:
https://github.com/zyang1580/CoLLM
5.一句话概括:该论文提出 CoLLM 方法,将协同信息作为独立模态,通过传统协同模型提取并映射到 LLM 的输入文本token空间,解决现有 LLMRec 方法未充分利用协同信息的问题,在推荐任务中表现出色且灵活高效,实验验证了其有效性和适应性。
论文挑战
在推荐系统领域,利用LLMs进行推荐(LLMRec)面临着一些挑战,这些挑战主要体现在以下几个方面:
1. 模型性能优化挑战
(1)缺乏特定任务训练:尽管 LLMs 在自然语言处理方面表现出色,但原始 LLMs 未针对推荐任务进行训练,在推荐准确性上存在不足。即使经过微调,现有 LLMRec 方法在处理具有历史行为的用户 / 项目时,仍难以超越传统训练良好的推荐模型。
(2)协同信息建模缺失:当前 LLMRec 方法主要依赖文本语义进行推荐,忽视了用户 - 项目交互中隐含的局部协同信息,而这些信息对推荐,尤其是对交互丰富的热启动场景推荐至关重要,忽略它们会导致性能欠佳。
2. 协同信息整合挑战
(1)传统整合方式的局限:一种直接的解决思路是在 LLMs 中引入额外的token和embeddings来表示用户 / 项目以编码协同信息,但这会降低大规模推荐的可扩展性,增加token冗余,降低信息压缩率,使预测任务更具挑战性,且缺乏灵活性来纳入更高级的建模机制。
(2)有效整合的难题:如何在不修改 LLMs 本身的情况下,有效地将协同信息整合到 LLMs 中,使其能够在冷启动和热启动场景下都能提升推荐性能,是一个亟待解决的问题。
3. 计算效率挑战:LLMRec 方法通常计算成本较高,这对其实际应用构成了重大阻碍,如何在提升推荐质量的同时提高计算效率,是需要解决的重要问题。
4. 模型遗忘问题:在将语言模型与协同模型结合的方法中,如 CTRL,存在遗忘问题,导致语言模型信息丢失,且未能充分利用语言模型的推理等固有能力。
论文贡献点
1. 强调协同信息建模的重要性
指出在推荐任务中,将协同信息建模融入LLMs对于提升其在冷启动和热启动场景下的性能至关重要,这为 LLMRec 的发展提供了新的方向。
2.提出 CoLLM 方法
(1)创新整合方式:将协同信息视为独立模态,通过传统协同模型提取信息,并利用多层感知器(MLP)将其映射到 LLM 的输入文本标记空间,从而有效整合协同信息,提升推荐性能。
(2)保持模型优势:在不修改 LLM 本身的情况下实现协同信息的引入,既保持了 LLM 的可扩展性,又能灵活采用不同的协同信息建模机制,克服了传统方法的局限性。
3. 实验验证有效性与适应性
(1)广泛实验评估:在两个真实世界数据集上进行了大量实验,对比多种方法,结果表明 CoLLM 在推荐性能上显著优于现有方法,有力地证明了其有效性。
(2)方法通用性强:进一步验证了 CoLLM 在不同数据集和 LLM 骨干网络上的适用性,展示了其良好的通用性和适应性。
CoLLM
模型架构
CoLLM 模型架构包含三个组件:prompt construction、hybrid encoding 和 LLM prediction。
1. Prompt Construction(提示构建)
(1)模板设计:使用固定提示模板生成提示,描述用户时包含其历史交互的项目标题,同时引入用户和项目 ID 相关字段(虽无实际语义但用于注入协同信息),将其视为用户 / 项目的一种特征,以保持语义连贯性。
示例模板:
在这个模板中,“⟨HisItemTitleList⟩” 表示用户与之交互过的项目标题列表,按照交互时间戳排序,作为用户偏好的文本描述。“⟨TargetItemTitle⟩” 指的是要预测的目标项目的标题。“⟨UserID⟩” 和 “⟨TargetItemID⟩” 字段分别用于纳入用户和项目 ID,以注入协同信息。为了在整合用户 / 项目 ID 时保持语义连贯性,将它们视为提示中用户 / 项目的一种特征,如模板中划线部分所示。对于每个推荐样本,用样本的相应值填充这四个字段,以构建特定于样本的提示。
2. Hybrid Encoding(混合编码)
(1)总体方式:采用混合编码方法将输入提示转换为适合 LLM 处理的潜在向量(嵌入)。
文本内容处理:对于所有文本内容,利用 LLM 内置的标记化和嵌入机制将其转换为token及相应的token embeddings。
(2)用户 / 项目 ID 处理:对于 “⟨UserID⟩” 和 “⟨TargetItemID⟩” 字段,使用基于传统协同推荐器构建的协同信息编码(CIE)模块提取协同信息。CIE 模块由传统协同模型(如 MF 或 LightGCN)和映射层
组成,先由协同模型生成用户和项目 ID 表示(编码协同信息),再通过映射层将其映射到 LLM 标记嵌入空间,得到最终的协同嵌入eu和ei。
3. LLM Prediction(LLM 预测)
(1)预测方式:将输入提示转换为嵌入序列E后,LLM 利用其进行预测。但由于 LLM 缺乏特定推荐训练,引入额外的 LoRA 模块进行推荐预测,LoRA 模块通过添加低秩分解权重矩阵来学习新任务(推荐),仅需更新 LoRA 权重,实现参数高效学习。预测公式为
,其中是预训练 LLM 的固定模型参数,
是 LoRA 模块的可学习参数,是预测为 “是”(即用户喜欢该项目)的概率。
训练策略
1.整体思路:为加快调优过程,冻结 LLM 及其嵌入层,专注于调整插件 LoRA 和 CIE 模块。CIE 模块负责提取协同信息并使其可用于 LLM 推荐,LoRA 模块帮助 LLM 学习推荐任务。
2. 两步调优方法
第一步:调整 LoRA 模块:为赋予 LLM 冷启动推荐能力,首先仅使用提示中的文本部分来微调 LoRA 模块以学习推荐任务,排除与协同信息相关部分,通过最小化预测误差来调整 LoRA 模块参数。具体通过
公式实现,其中Et是文本提示的嵌入序列,l是二元交叉熵(BCE)损失。
第二步:调整 CIE 模块:在第一步后,调整 CIE 模块,同时保持其他组件冻结。利用包含协同信息的完整提示生成预测,调整 CIE 模型以最小化预测误差。有两种选择:一是仅调整映射层
(即),使用预训练的协同模型
;二是同时训练协同模型
和映射层(即
)。第一种选择训练速度可能更快,第二种选择可能带来更好性能。在这一步中,不微调 LoRA 模块,因为相信在第一步后 LLM 已具备推荐能力,协同信息映射到标记嵌入空间后可直接被 LLM 有效利用。
其他
1.与软提示调优的关系:若不考虑 LoRA 模块,该方法可视为推荐系统中软提示调优的一种变体,其中协同嵌入作为软提示。其独特之处在于软提示具有低秩特性(源于传统协同模型的低秩表示),且协同模型能为学习软提示提供约束和先验,更有效地捕获协同信息和编码个性化信息。
2. 推理效率:LLMRec(包括 CoLLM)面临计算成本高的挑战,但已有针对 LLMs 的加速技术(如缓存和重用),CoLLM 有望从中受益。同时,与现有 LLMRec 方法(如 TALLRec)相比,CoLLM 仅引入 CIE 模块,该模块规模小且训练不涉及更新 LLM,在训练和推理中不会引入过多额外开销。
实验与效果
实验设置
数据集:在 ML - 1M(电影推荐数据集)和 Amazon - Book(书籍推荐数据集)上进行实验,对数据集进行预处理,按交互时间戳划分为训练集、验证集和测试集,并过滤掉交互次数较少的用户和项目。
评估指标:采用 AUC和 UAUC(每个用户在暴露项目上的 AUC 平均值)评估推荐性能。
对比方法:与常规协同方法(如 MF、LightGCN)、结合语言模型和协同模型的方法(如 CTRL)以及 LLMRec 方法(如 ICL、Prompt4NR、TALLRec)进行比较,同时实现了 CoLLM 的多个版本(CoLLM - MF、CoLLM - LightGCN 等)。
实现细节:所有方法用 PyTorch 2.0 实现,优化损失、优化器、超参数设置等依据不同方法和模型的特点确定,CoLLM 中 CIE 模块的 MLP 隐藏层大小及 LoRA 模块参数也有相应设置。
性能比较
1. 总体性能
-
CoLLM 在两个数据集的两种评估指标上均优于其他方法,证实了其有效性。
-
与最佳的 LLMRec 基线 TALLRec 相比,多数情况下 TALLRec 优于 MF、LightGCN 和 SASRec,但不如 DIN;引入协同信息后的 CoLLM 在 LLMRec 基础上实现性能提升,超越相应的协同基线,表明协同信息的必要性。
-
ICL 方法性能最弱,突显 LLM 在推荐任务中微调的重要性;Prompt4NR 虽微调 LLM 且使用自适应提示,但不及 CoLLM,表明 CoLLM 的性能提升源于协同信息建模机制。
-
CTRL 方法在整合语言模型和协同模型时,虽能提升一个指标但会对另一个指标产生负面影响,存在遗忘问题且未充分利用语言模型能力;CoLLM 有效缓解这些问题,持续提升性能。
-
CoLLM 在使用不同协同模型实现 CIE 模块时,大多情况下优于相应基线,体现其灵活性,且其性能与协同模型性能呈正相关。
-
集成实验表明,CoLLM - MF 优于 MF 和 TALLRec 的集成方法,且 CoLLM - MF 自身集成可进一步提升性能,凸显 CoLLM 整合协同信息机制的优越性。
2. 冷暖场景性能
-
warm场景下,TALLRec 在 AUC 上低于 MF,MF 低于 CoLLM;在 UAUC 上,MF 低于 TALLRec,TALLRec 低于 CoLLM,表明现有 LLMRec 在温暖场景存在不足,而协同信息可带来改进。
-
cold场景下,TALLRec 和 CoLLM 均优于 MF,突显 LLMRec 在冷启动场景的优势;CoLLM 在 AUC 上与 TALLRec 相当,在 UAUC 上略差,表明 CoLLM 在冷场景仍能有效利用 LLMRec 优势。总体而言,CoLLM 在温暖场景显著改进且在寒冷场景保持优势,成功整合协同信息实现目标。
深入分析
1. CIE 模块的影响:通过对比 CoLLM - MF 及其变体(去除 CIE 模块 “w/o CIE” 和直接引入用户 / 项目标记 “w/ UI - token”),发现 CIE 模块对 CoLLM 性能提升至关重要,直接引入标记会增加标记化冗余、降低模型压缩效率和预测能力,而 CoLLM 采用传统协同模型编码能有效保持协同信息低秩状态减少冗余。
2. 调优选择的影响
对比默认的两步调优策略(先仅用文本信息训练 LoRA,再调整 CIE 模块的映射层)与其他调优策略(如 T1 调整整个 CIE 模型且初始化协同模型为预训练,T2 从头训练整个 CIE 模型,T3 一步同时调整 LoRA 和 CIE 映射层),发现两步调优中额外调整协同模型(T1 和 T2)可提升性能,但计算开销大且收敛慢;单步调优方法 T3 性能相对较差,尤其在冷场景,强调了第一步使用文本数据学习推荐任务对冷启动性能的重要性。
3.效率分析
(1)训练效率方面,CoLLM 主要增加的成本来自 CIE 模块训练,但由于 CIE 中协同模块的预训练,与 TALLRec 相比,训练时间仅增加约 15.5%。
(2)推理效率方面,CIE 模块成本可忽略,主要额外成本来自提示模板中描述协同信息的少量额外标记,CoLLM 总推理成本平均仅增加 12.5%。
4. 方法通用性
(1)在不同 LLM 骨干网络上,使用 Qwen2 - 1.5B 实现 CoLLM - MF 和 TALLRec 进行对比,CoLLM 表现更优,证明其在不同 LLM 骨干网络上的通用性。
(2)在不同数据集上,以 CoLLM - MF 为例,在 Video Games 和 CDs & Vinyl 数据集上与 MF 和 TALLRec 对比,CoLLM - MF 性能持续提升,表明其在不同数据集上的有效性。
如何学习大模型 AI ?
由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。
但是具体到个人,只能说是:
“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。
这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。
我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。
我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。
第一阶段(10天):初阶应用
该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。
- 大模型 AI 能干什么?
- 大模型是怎样获得「智能」的?
- 用好 AI 的核心心法
- 大模型应用业务架构
- 大模型应用技术架构
- 代码示例:向 GPT-3.5 灌入新知识
- 提示工程的意义和核心思想
- Prompt 典型构成
- 指令调优方法论
- 思维链和思维树
- Prompt 攻击和防范
- …
第二阶段(30天):高阶应用
该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。
- 为什么要做 RAG
- 搭建一个简单的 ChatPDF
- 检索的基础概念
- 什么是向量表示(Embeddings)
- 向量数据库与向量检索
- 基于向量检索的 RAG
- 搭建 RAG 系统的扩展知识
- 混合检索与 RAG-Fusion 简介
- 向量模型本地部署
- …
第三阶段(30天):模型训练
恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。
到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?
- 为什么要做 RAG
- 什么是模型
- 什么是模型训练
- 求解器 & 损失函数简介
- 小实验2:手写一个简单的神经网络并训练它
- 什么是训练/预训练/微调/轻量化微调
- Transformer结构简介
- 轻量化微调
- 实验数据集的构建
- …
第四阶段(20天):商业闭环
对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。
- 硬件选型
- 带你了解全球大模型
- 使用国产大模型服务
- 搭建 OpenAI 代理
- 热身:基于阿里云 PAI 部署 Stable Diffusion
- 在本地计算机运行大模型
- 大模型的私有化部署
- 基于 vLLM 部署大模型
- 案例:如何优雅地在阿里云私有部署开源大模型
- 部署一套开源 LLM 项目
- 内容安全
- 互联网信息服务算法备案
- …
学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。
如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。