Introduction
大语言模型(LLMs)展示了在上下文学习、推理和编程等方面的强大能力。然而,将LLM应用于对话推荐系统仍面临挑战,如:当前LLM缺乏理解用户交互信号的能力,用户交互信号缺乏自然语言描述,微调LLM在用户交互信号上可能导致其原始能力的遗忘,以及通过矩阵分解方法引入的模态差距。
为了解决上述问题,我们提出了内容-语言模型(ILM),这是一个两阶段框架,包括内容-语言表示学习和内容-语言模型训练。ILM 通过 Q-Former 生成内容与语言对齐的表示,并将其整合到一个冻结的 LLM 中,用于对话推荐任务。实验结果显示,ILM 方法在各种对话推荐任务上优于现有方法。
Method
Model Architecture
在对话推荐任务中,模型交替输入内容和文本序列作为输入和输出。我们专注于输入内容的表示,采用Q-Former架构结合内容-文本对齐的预训练阶段,以提升推荐系统性能。如图所示,Q-Former编码内容并包含协同过滤信息。
Item-Language Representation Learning
在第一阶段,我们预训练Q-Former内容编码器,以确保它能够生成与内容协同过滤嵌入文本对齐的内容表示。我们采用BLIP-2中的三项任务:内容-文本对比学习、内容-文本生成和内容-文本匹配,如图所示。
对于内容-文本生成任务,我们在文本塔上使用自回归损失。对于内容-文本匹配任务,我们在文本塔输出的CLS标记上使用二元交叉熵损失。对于内容-文本对比学习任务,给定一个正的内容-文本对时,我们首先从Query塔计算出由可学习Query生成的输出表示,并使用文本塔的CLS输出表示作为文本表示。
其中是内容输入嵌入,是文本标记。
我们选择与最接近的Query表示作为内容表示:
然后我们使用in-batch负采样,计算和之间的对比损失。除了内容-文本对齐任务外,我们还引入了一种新的内容-内容对比学习损失,以防止模型在文本标签稀疏时过度拟合内容-文本数据,如图所示。
内容-内容对比损失通过扩展内容-文本对比损失的方式计算,给定一个正的内容-内容对时,我们首先计算两个内容的所有可学习Query的输出表示:
其中和分别是内容1和内容2的嵌入。注意我们为所有内容使用了一组可学习Query。我们选择最接近的Query表示对作为两个内容的表示:
然后,我们以与内容-文本对比损失相同的方式计算和之间的对比损失。引入内容-内容对比损失可以提供额外的好处,即Q-Former输出的表示更好。这种表示不仅编码了内容-文本相似性,还编码了内容-内容相似性。因此,对于没有任何文本标签的内容,它可以间接编码某些文本信息.由于对比损失的in-batch负采样,我们不能在同一个batch中混合内容-文本和内容-内容示例。为了解决这个问题,我们交替训练Q-Former在内容-文本和内容-内容batch上
Item-Language Model Training
在第二阶段,我们将Q-Former内容编码器与一个预训练的LLM集成。这个预训练的LLM可以是用于一般人类指令的模型,或经过推荐系统数据训练,具备生成性检索能力。在训练过程中,我们冻结LLM的参数,仅调整Q-Former编码器和线性投影层的参数,后者将Q-Former的输出映射到LLM的输入维度,如图所示。
Experiments
Datasets
对话推荐可以包含多个子任务,包括用户偏好引导、推荐、解释以及内容信息搜索。ELM 24 任务是从MovieLens 25M数据集创建的,包含单部电影任务和电影对任务。OpenP5是一个基于LLM的推荐数据集,用于开发、微调和评估。我们选择了MovieLens-1M、Beauty和Clothing数据集进行基准测试。每个示例的训练目标是真实物品的ID。我们采用了OpenP5数据集提供的训练、开发和测试集。
Results on ELM 24 tasks
我们展示了使用ILM方法在ELM 24任务上的结果,如表中所示。
我们的方法在所有任务上一致地优于MLP基线,ILM也显著优于ILM-rand,这表明内容-语言表示学习阶段的重要性。
Results on OpenP5 tasks
在OpenP5数据集中,每个任务包含10个训练提示模板和1个未见测试提示模板。我们展示了OpenP5 MovieLens-1M、Beauty和Clothing任务的已见和未见测试结果。对于ILM,我们使用一个带有8个变压器层的Q-Former编码器。
对于第一阶段训练,我们生成内容-文本对数据,包括从原始ML1M数据集中提取电影标题和类型,以及从原始亚马逊评论2014元数据中提取产品元数据,如标题、描述、特性、品牌等。由于OpenP5任务的输入包含用户ID和内容ID,我们生成用户-内容对数据并进行用户-内容对比训练。
对于第二阶段训练,我们使用8层变压器模型作为LLM主干,进行预训练并使用随机内容索引使模型具备生成检索功能。我们相信ILM方法可以与OpenP5数据集中的其他编码方法结合使用。
我们的方法在所有数据集上都优于其他基线,ILM 也优于 ILM-rand。
论文:https://arxiv.org/pdf/2406.02844
如何学习大模型 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 的正确特征了。