这一两年推荐的论文工作离不开冷启和长尾问题,就像过去几年离不开序列和多目标一样,所套的壳子也从时序模型发展到对比学习和LLM,更像是“问题长期存在,我们现在有了更好的工具解决”,鸡生蛋与蛋生鸡总是这么的迷人和无所遁形。
关于冷启动和长尾推荐,以往推荐模型主要的问题是对于ID的依赖,大部分模型学到的价值都是ID对应的Embedding向量,由此数据量不够时就效果甚微。
分享一篇快手将百川大模型应用于推荐中的工作。
论文:Knowledge Adaptation from LLM to Recommendation for Practical Industrial Application
机构:快手
链接:https://arxiv.org/pdf/2405.03988
会议:论文里还是ACM的标准模板
LLM-Rec大模型推荐
大型语言模型(如GPT-3,文中使用的是Baichuan2-7B)在处理和理解自然语言方面表现出色,可以将其作为基座,认为具备更加普世的知识提取,从而使推荐系统更好地理解物品描述,提高推荐的准确性和多样性
Baichuan2-7B: https://huggingface.co/baichuan-inc/Baichuan2-7B-Base
将大语言模型引入到推荐中的工作在前几年也一直都有(指NLP模型,非要说BERT这类不算LLM那就不算),比如Bert4Rec、RankT5、RecFormer之类
过往使用大模型做推荐分为两种思路:
-
冻结LLM参数并适应推荐领域数据 :利用LLM生成物品的内容嵌入,通常是通过处理生成物品的文本描述(如标题、说明、评论等),从而捕捉物品的语义信息,比如Chat-Rec。
-
在推荐领域的特定文本数据集上微调LLM :利用LLM捕捉用户行为序列,通过设计提示prompt,使LLM学习用户和物品之间的潜在关系,在预测任务中理解用户的偏好变化和行为模式,从而更好地预测用户可能感兴趣的物品,比如TallRec。
文中认为以上其实都是将LLM的广域和推荐领域强行结合(Rec-to-LLM),可能会出现遗忘,即随着推荐任务的学习,模型会丢失在预训练过程中学到的知识。
由此有了新的这个LEARN框架(Llm-driven knowlEdge Adaptive RecommeNdation),旨在有效融合大模型和推荐系统(LLM-to-Rec),更像是一种特征提取,LEARN框架通过双塔结构(用户塔和物品塔),利用LLM生成的Embedding来改进推荐性能。
LEARN
LEARN模型的主要结构包括两个塔:用户塔(User Tower)和商品塔(Item Tower),每个塔由两个模块组成:内容嵌入生成模块(Content-Embedding Generation Module, CEG)和偏好理解模块(Preference Comprehension Module, PCH)。
商品文本描述
首先对每个商品按标题、品类、品牌、价格、关键词和属性进行文本描述:
耳环文本
智力板文本
内容Embedding生成模块(CEG)
通过主谓宾将item描述转为句子后使用大模型抽取token的高维向量,通过均一池化生成Embedding,在训练阶段,冻结LLM以防止其遗忘广域知识:
CEG
偏好理解模块(PCH)
其实是用户Embedding生成,将内容Embedding映射到推荐系统的协作域:使用来自用户历史交互的商品内容Embedding序列作为输入,传入Transformer中做时序预测,最终生成用户Embedding。在训练时,使用自监督对比学习作为训练目标,以增强模型区分用户偏好商品和非偏好商品的能力。
PCH
历史序列和目标序列
感觉是对行为序列做截断,当前曝光之前的作为历史序列,当前曝光之后的作为目标序列,对于第i
个用户,其历史交互序列和目标交互序列分别定义如下:
-
历史交互序列:
U_hist_i = {Item_i1, Item_i2, ..., Item_iH}
-
目标交互序列:
U_tar_i = {Item_i(H+1), Item_i(H+2), ..., Item_i(H+T)}
用户塔和商品塔
用户塔就是PCH,商品塔给了三种样式:
用户塔、商品塔
-
Variant 1 :使用与用户塔相同的架构和模型权重,但输入的是用户目标交互序列(user target interactions)。这种方法通过使用相同的因果注意机制(causal attention)来处理用户历史交互,从而对齐用户和商品Embedding。
-
Variant 2 :使用自注意机制(self-attention mechanism),只关注商品本身。独立处理每个商品,不考虑商品之间的顺序依赖。
-
Variant 3 :直接使用CEG生成的内容Embedding,在训练阶段使用用户目标交互序列,在推理阶段只使用商品的文本描述作为输入。
在训练阶段,Variant 1 使用用户目标交互序列作为输入,Variant 2 和Variant 3 独立处理每个商品。
在推理阶段,这三种变体只使用一个商品的文本描述作为输入,独立输出Embedding。
损失和实际模型
实际的使用还是要预测cvr,因此训练时再加一个传统的关于CVR任务的MLP结构:
实际模型
由此,损失包含主损失和辅助损失。
主损失(Main Loss)
主损失用于直接指导模型,利用用户和商品Embedding来预测用户对商品的偏好。主损失的目标是最小化推荐结果与实际用户行为之间的误差,从而提高模型的推荐准确度。通过模型的主塔计算,输入为用户Embedding和商品Embedding。正样本是用户实际与之交互的商品,负样本则是用户没有交互的商品。通过对比正负样本,模型能够更好地学习用户偏好的特征,因此损失为InfoNCE:
InfoNCE
辅助损失(Auxiliary Loss)
辅助损失用于进一步提升模型性能,帮助模型更好地融合不同类型Embedding,是一个转换率(CVR)损失,交叉熵吧。
实验
H代表命中率(hit rate),R代表召回率(recall rate):
命中率
召回率
商品Embedding:
商品Embedding
训练方式:
训练方式对比
和SOTA比较:
和SOTA对比
三个商品塔:
商品塔
PCH消融:
PCH
线上AB的AUC:
AUC
CVR提升:
CVR提升
冷启和长尾:
冷启和长尾
整体上就像曾经的ResNet、Attention、LSTM、GNN等,推荐领域紧跟时事,提一嘴Diffusion-Model,现在各家都在搞对比学习,为啥不给推荐序列加噪音呢??
如何学习大模型 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 的正确特征了。