输入“/”快速插入内容

LLM(十四):基于 LLM 的推荐系统重构

2024年8月20日修改
作者:紫气东来
一、风云际会:推荐系统遇上 LLM
介绍了推荐系统发展过程及主流算法,该类方法有些主要特点:模型规模不大、关注用户和商品数据、针对特定任务等。随着 LLM 的兴起,以及在多领域多场景的良好表现,也为推荐系统的提供新的工具和思路。
1.1 基于 LLM 的推荐系统的优点
根据 LLM 和 推荐系统 的特点,二者结合的优点可从以下方面考虑:
缓解稀疏场景: LLM 的 zero-shot 和 few-shot 能力可用于解决冷启动问题和长尾问题。 实验表明,在冷启动场景下,具有超过 100B 参数的 LLM 的效果,与基于启发式的 baseline 相当;
庞大的信息存储: LLM 无需更改模型架构或重新训练即可适应新信息,像协同过滤这样的传统方法依赖于大量的训练数据。 相比之下,LLM 需要的数据要少得多,因为他们已经拥有大量关于 item 的世界知识;
更好的交互方式: LLM 可以让用户通过自然语言指令,通过基于聊天的界面自由、准确地表达他们的需求。 而在传统方法中,用户只是被动地(通过隐式反馈)参与改进推荐;
强大的泛化能力: 现有的推荐算法是 task-specific 的,需要特定的 user-item 交互数据进行训练, 这意味着它们缺乏泛化能力。 另一方面,LLM 可以使用表示为序列的用户交互数据以补充其知识;
建模及开发简单: 当前的推荐算法使用复杂的特征处理方法,如预处理策略、embedding 方法、自定义架构等。prompts 在很大程度上简化了这些特征处理和建模步骤;
使用便捷透明: 作为 CoT 推理的副产品,LLM 可以用自然语言生成解释,以证明特定建议的合理性,这增加了推荐系统的透明度。
1.2 基于 LLM 的推荐系统的不足
尽管 LLM 在推荐系统上有上述诸多优点,但仍然存在以下不足和限制:
生成过程的不可控性: 由于 LLM 生成过程的随机性,LLM 可能会推荐候选集中不存在的 item。 解决该问题的一个思路是将候选集输入 prompt,但这种方法也仅限于候选集较小的场景,同时需要面对有限的上下文长度等问题;
生成结果的不可控性: LLM 可能会生成无效或完全出乎意料的答案,即使提示在上下文中明确指定可能的答案集(小样本学习)也是如此;
要求很高的prompt技巧: LLM 可能对输入提示高度敏感,可能不会完全遵循说明提示;
推荐可能高度依赖于数据集: 例如,同一部电影在不同平台上的评分可能不同。 在这种情况下进行的评估可能会认为 LLM 的性能对于某些数据集来说是不可接受的;
数据安全及隐私问题: 最近的研究表明,LLM 中的通用知识与私有域数据中用户行为模式之间可能存在巨大差距。因此,零样本和少样本方法可能不足以在私有域中部署 LLM 推荐系统,同时也可能存在数据安全问题;
LLM 与推荐任务之间存在GAP: 当前流行的 LLM 的预训练目标不包括任何推荐目标。 因此,在解决复杂的专门任务的零样本和少样本设置下,这些 LLM 通常比现有的任务特定模型表现更差;
LLM 训练成本昂贵: GPT3 训练一次的成本约为 140 万美元,对于一些更大的 LLM(大型语言模型),训练成本介于 200 万美元至 1200 万美元之间;
LLM 输入受限: LLM 中有限的上下文长度使得很难将大量用户行为序列和/或候选项目合并到提示中。
二、百花齐放:当前流行方案一览
随着相关研究的广泛开展,已出现一些将 LLM 用于推荐系统的案例。主要都是 Instruction Tuning 的方式,即通过对面向推荐的指令数据进行指令微调 LLM ,以便有效地将隐私领域的用户行为与通用知识相结合。下面便结合部分案例进行讨论。
2.1 NIR
NIR (Zero-Shot Next-Item Recommendation) 论文 中,作者提出了一种在零样本设置中执行下一项推荐的提示策略。 他们的方法分为以下三个步骤:
候选集生成: 作者认为,像 GPT-3 这样的 PLM 在给出 zero-shot 提示时会表现不佳,例如: Based on the movies I have watched, including..., can you recommend 10 movies to me? 因为推荐空间很大, 因此,在他们的实验中,他们使用基于用户过滤或项目过滤的外部推荐系统组件来首先构建候选项目集;
三步 Prompt: 此步骤使用 GPT3 和三个 Prompt:
首先,他们提示 GPT3 使用观看历史记录中的项目来总结用户的偏好;
接下来,他们使用 GPT3 的响应和提示中的候选电影来请求 GPT-3 按偏好降序选择代表性电影;
最后,他们创建了一个推荐提示来引导 GPT3 从候选集中推荐 10 部与代表性电影最相似的电影。
答案提取: 他们使用基于规则的提取方法从 GPT3 的最终响应中获取推荐项目,提取的项目可用于下游应用,或用于性能评估。