Introduction
推荐系统(RS)的主要目标是通过分析用户的历史行为来推断用户偏好,并推荐最符合其兴趣的物品。为此,我们将推荐任务总结为以下子任务的组合:1)基于用户的点击行为推荐感兴趣物品;2)基于用户的购买行为推荐可能购买的物品;3)进行业务干预以探索用户其他潜在的兴趣。
传统CTR预测模型已被广泛应用于解决这些子任务。尽管在RS中取得了显著的性能提升,但它们仍面临两大挑战:1)高度依赖用户的浏览记录和用户反馈,限制了RS在冷启动场景中的性能;2)用户交互数据的稀疏性导致推荐感兴趣比推荐新物品更有效。
因此,结合有效的知识和大语言模型(LLM)以提高推荐系统的性能成为了趋势。我们提出了一种新的LLM-KERec推荐系统,该系统结合了传统模型高效的协作信号处理能力和大语言模型,帮助用户迅速找到他们喜欢的物品。该方法不仅减少了传统模型推荐结果中的重复性,还提高了整体点击率和转化效果。
System Overview
Traditional Recommendation Module
在传统的推荐架构中,用户打开应用时,推荐系统根据用户请求信息触发召回模块(热门召回、LBS召回、个性化召回等),筛选出大量可能感兴趣的候选物品。随后,粗排模型生成一个较小的候选物品集合,进一步缩小选择范围。最终,精排和重排模型决定展示顺序。每一步可能需要人工干预,例如分配物品权重以优化推荐效果。
LLM-based Complementary Knowledge Enhancement
在本文中,LLM-KERec 系统保持了高效处理大量协作信号的能力,并通过基于LLM的互补知识增强模块克服了挑战。为了在支付宝中建立不同物品之间的联系,LLM-KERec 通过为用户的购买行为和所有物品创建一个统一的实体系统,将这些物品联系起来。利用世界知识和常识知识,我们使用一个大语言模型来确定实体间的互补关系,构建互补图,并训练实体-实体-物品(E-E-I)权重决策模型。通过这种方法,我们可以为用户最喜欢的物品和互补物品提供个性化推荐,该解决方案已在支付宝营销场景中成功实施。
Diving into the LLM-KERec
LLM-KERec 系统中的模块功能如图所示:
Entity Extractor
Entity Dict
在实际应用中,例如支付宝,用户的操作覆盖多种场景。为了协调不同来源的信息,建立统一关联模式至关重要,这通过我们的实体词典实现,它包含数万个实体,并且每周都会更新。每个实体代表一个特定概念,如“电话”或“可乐”。
Extracting Entities
基于实体字典的方法,我们重点从支付宝用户行为中抽取实体(包括账单、访问日志及营销场景中的物品),这相当于命名实体识别(NER)任务。通过BERT-CRF模型,我们能准确抽取实体。在基于大语言模型的补充知识增强中,我们从用户最近的账单和物品信息中抽取实体,建立购买行为与推荐物品的联系,流程如图所示。
Complementary Graph Construction
我们利用实体提取器的结果构建一个互补图,这有助于我们了解用户的购买模式。具体而言,我们希望通过自然语言理解和常识推理来理解用户在购买物品 A(比如餐具)之后通常会购买哪些物品 B(比如纸巾)。
互补图的构建涉及两个主要步骤:
-
生成候选实体对,以提高效率并覆盖所有物品。
-
结合提示工程和大语言模型进行推理以提取有价值的见解。
Entity Pair Construction
首先,某些物品与特定概念之间存在互补关系,而这些概念通常涵盖了更多具体的物品。在工业电子商务场景中,尽管物品数量庞大,但概念类别相对有限。通过将概念作为实体,可以显著节省计算资源。在前面,我们已经使用实体提取器为所有物品分配了唯一的实体标识。
构建实体对的一种简单方法是:从包含 个实体的集合中选取元素,并将它们成对组合,从而产生 个候选实体对。然而,这种方法由于下游大语言模型的推理速度较慢而不经济。此外,实际场景中存在长尾分布,少数实体经常被购买,而大多数实体很少被消费。
为了解决这一挑战,我们设计了一种成本效益高的分段组合策略:
-
根据总转化率和点击率等指标将实体按降序排序,分为极度受欢迎、受欢迎和不受欢迎的实体。
-
专注于在受欢迎的实体之间构建实体对。
-
构建包括极度受欢迎和不受欢迎实体之间的实体对,确保对不受欢迎物品的互补图进行全面覆盖。
通过合并和消除所有实体对中的重复物品,我们获得最终输出。这种分段组合策略确保了对下游模块的可靠支持,同时最大限度地减少了资源浪费。
Large Language Model
我们利用Claude 2进行实体间互补关系的推理,具体方法是设计提示,涵盖输入格式、任务描述、示例及其理由和输出格式。最终答案表示为 Y 或 N,其中 Y 表示存在互补关系,N 表示不存在互补关系。此外,我们还探索了ChatGPT 3.5和ChatGLM 2。
Automatic Update Strategy
在真实的电子商务环境中,用户和商家彼此依赖并相互促进,实体的流行度是动态的。例如,商家通过营销策略吸引公众关注,而较老的产品会逐渐被取代。为此,我们实现了一个自动的每日调度来构建增量互补图,通过及时更新确保系统的有效和持续运行,这对于长期保持最佳性能至关重要。
E-E-I weight decision model
目前,我们已成功将每个用户的最近账单和物品链接到互补图中的实体。目标是基于用户的账单推荐互补物品,其中存在实体1-实体2的关系。然而,由于LLM在准确评估用户偏好的能力有限,我们需要一个E-E-I权重决策模型来完成此任务。
Model Overview
该模型的成功很大程度上依赖于高质量 E-E-I 重量决策模型的构建。我们提出了一种两阶段互补知识增强程序,包括排序阶段和集成阶段,如图所示。
Ranking Stage
如图所示,我们的模型采用双塔架构,其中双塔的输出分别代表互补物品和账单实体的表示。这些输出的点乘作为偏好水平指示器。对于物品的表示方法,可以从数据库中提取丰富的特征集。然而,对于实体的表示方法,我们面临一个挑战,因为我们除了一个预分配的ID外,缺乏具体描述它们的信息。为解决这一限制,我们采用图神经网络和对比学习从两个不同的视角来表示实体:一级可替代视图和二级互补视图。
排名阶段可以进一步细分为以下模块:
「图构建」
图神经网络(GNNs)在推荐系统中表现出色,因为它们可以有效地利用高阶关系。这些方法将交互数据表示为图,并通过迭代传播邻域信息来学习有效的节点表示。同样,如图所示,我们设计了以下边关系来更好地表示实体:
-
在用户节点和物品节点之间建立点击行为边。
-
在物品节点和实体节点之间建立依赖关系边。
-
在实体节点之间建立互补关系边。
给定用户集 ,物品集 和实体集 。节点数量为 。我们的方法将可用数据表示为用户-物品-实体图 ,其中 且 是邻接矩阵。
「一级可替代视图」
为了建模可替代关系,我们为每个实体考虑两种不同的信息来源:
-
从物品子视角出发,我们需要探索与当前实体有依赖关系的物品的共同特征。
-
从用户子视角出发,我们需要探索经常点击当前实体的用户的共同特征。
具体地,我们使用图注意力网络(GAT)进行信息聚合,表示为:
然后,我们可以基于注意力机制融合来自不同子视角(包括用户和物品侧)的信息,以获得实体节点 的嵌入:
「二级互补视图」
在建模互补关系时,我们同样为每个实体考虑两种不同的信息来源:
-
从互补图出发,我们设计了一个元路径 :物品(数据库)-> 实体(图)-> 实体(账单)。
-
从用户的日常行为出发,我们同样设计了一个元路径 :物品1(账单)-> 用户 -> 物品2(账单)-> 实体(账单)。
同样,我们通过公式获得实体节点 的表示:
「对比学习」
和 分别通过来自 一级可替代视图 和 二级互补视图 的信息进行聚合,分别从两个独立且互补的视角表示实体 。 和 互相关联且互补,可以在训练过程中相互监督。因此,我们利用对比损失 InfoNCE 来最大化正样本对的一致性并最小化负样本对的一致性:
最后,节点 的表示是 和 的加权和,将用于下游推荐任务。
「训练过程」
我们利用多任务训练策略来优化主要的 E-E-I 权重决策任务和辅助任务,包括对比学习任务和 L2 归一化任务:
Integration Stage
我们优化了召回模块和精排模型(如图所示),添加了一条新的召回路径,并引入了E-E-I权重决策模型来防止召回过多和提供评分、实体嵌入和物品嵌入。新的召回模块让精排模型关注互补商品,克服了曝光偏差问题。精排模型结合当前互补商品和用户行为特征,对候选商品进行全面且个性化的排序。
Experiments
Datasets
本文主要集中在数字营销场景下的推荐,利用了支付宝的真实世界工业数据集,包括超级567(数据集A)、消费频道(数据集B)和支付结果页面(数据集C)。
Offline Performance Comparison
如下表所示,LLM-KERec在三个数据集的AUC值方面优于其他方法,点击和转化AUC值分别表示三个数据集的点击和转化AUC值。
Online Performance Comparison
为了评估LLM-KERec在支付宝三个推荐场景的有效性,在超级567、消费频道和支付结果页面进行了在线A/B测试。数据集A和C分别使用Click和Conv,数据集B使用Click和GMV。目标为提高优惠券转化率和商品GMV。实际在线流量的10%进行测试,随机分配到两组。
结果表明,在数据集A中增加了6.24%的Conv,在数据集C中增加了10.07%的Conv,在数据集B中增加了6.45%的GMV。A/B测试的结果表明了LLM-KERec在真实工业推荐场景中的显著改进。
如何学习大模型 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 的正确特征了。