在人工智能飞速发展的版图中,两大巨头虽各领风骚却鲜有联手: 深度学习推荐模型 (DLRMs)大型语言模型 (LLMs)

DLRMs 是你的 TikTok 信息流、亚马逊推荐列表和 Netflix 主页背后的无声引擎。它们擅长“协同过滤”——基于数百万用户的数学模式来预测你可能喜欢什么。然而,它们通常是“黑盒”;它们能告诉你看什么,但很少能用人类的语言解释为什么

另一方面,LLMs (如 GPT-4) 是语言和推理的大师。它们理解“蝙蝠侠: 黑暗骑士”和“奥本海默”是同一位导演的作品,即使电影类型完全不同。然而,LLMs 历来在推荐任务上表现挣扎,因为它们缺乏那种协同的直觉。它们并不天生知道第 4592 号用户上周二买了什么,也难以轻松处理发现这些模式所需的海量、稀疏的数据集。

这就引出了一篇引人入胜的研究论文: “PepRec: Progressive Enhancement of Prompting for Recommendation” (PepRec: 渐进式增强推荐提示) 。 研究人员提出了一个新颖的框架来弥合这一差距。PepRec 允许 LLM 在无需复杂训练的情况下执行协同过滤,有效地教会模型“浏览”相似用户的历史记录以优化其预测。

在这篇文章中,我们将剖析 PepRec 的工作原理,为什么它代表了推荐系统的一种范式转变,以及它是如何利用“免训练”的方法来超越传统深度学习模型的。


问题所在: 内容 vs. 协同

要理解为什么 PepRec 是必要的,我们需要首先区分推荐的两大引擎。

  1. 基于内容的过滤 (Content-Based Filtering): 这依赖于物品属性。如果你喜欢一本关于“太空旅行”的书,系统会推荐另一本标签为“科幻”的书。LLMs 天生精通此道,因为它们理解词语和概念之间的语义关系。
  2. 协同过滤 (Collaborative Filtering): 这依赖于用户行为。如果用户 A 和用户 B 都喜欢物品 X 和 Y,而用户 A 喜欢物品 Z,系统会推断用户 B 也会喜欢物品 Z。传统 DLRMs 在这方面占据主导地位,因为它们学习了用户交互的密集向量表示 (embeddings) 。

当前 LLM 方法的局限性

以前试图将 LLMs 引入推荐系统 (如 LLM4RS 或 TALLRec) 的尝试,通常涉及将用户的历史记录转换为文本提示: “用户观看了电影 A、电影 B 和电影 C。他们会喜欢电影 D 吗?”

这对内容匹配很有效,但它未能捕捉到“群体智慧”。LLM 是孤立的;它只看到当前用户的历史。它错过了传统模型捕捉得非常好的协同信号。此外,试图通过微调 (fine-tuning) 来“教会”LLM 协同过滤,计算成本高昂且耗时。

PepRec (Progressive Enhancement of Prompting) 通过将协同信号输入到提示本身来解决这个问题,迭代地优化 LLM 对用户的理解。


解决方案: PepRec 框架

PepRec 是一个免训练框架。这意味着它不需要更新 LLM (如 GPT-4) 的权重。相反,它利用一种巧妙的聚类和迭代提示架构来提取偏好。

该方法分为两个不同的阶段: 用户聚类 (准备阶段) 和推理 (预测阶段) 。

第一阶段: 用户聚类

在我们要求 LLM 查看“相似用户”之前,我们必须定义谁是那些相似用户。由于 Token 限制,将整个数据库发送给 LLM 是不可能的,因此 PepRec 首先将用户组织成簇 (clusters) 。

Overview of training user clusters.

图 4 展示了系统如何获取原始训练数据——用户 ID、人口统计学信息 (年龄、职业) 和交互历史——并将其聚合成文本档案。

  1. 数据聚合: 系统将用户的元特征和物品历史编译成一个句子 (例如: “该用户是一名女性……她喜欢 Samsung DA29……”) 。
  2. 编码: 这段文本通过预训练的句子转换器 (如 Sentence-BERT) 生成一个固定大小的向量。
  3. 聚类: 使用 K-Means 算法对这些向量进行分组。具有相似品味和人口统计学特征的用户最终会处于同一个簇中。

这一步至关重要,因为它为每个用户创建了一个可搜索的“邻域”,作为后续协同过滤的基础。

第二阶段: 推理工作流

这是见证奇迹的时刻。当有一个请求预测特定用户 (我们称她为 Alice) 是否会喜欢特定物品时,PepRec 不会立即询问 LLM。它会经历一个Bootstrapping (引导)偏好生成提示增强的循环。

请看下面的详细工作流:

The detailed process of PepRec during the inference stage.

让我们分解图 1 中展示的步骤:

  1. 聚类分配: Alice (用户 523) 被映射到她预定义的簇中。
  2. Bootstrapping: 系统在该簇内识别出一列“邻居”用户。
  3. 迭代增强:
  • 系统基于 Alice 自己的历史生成她的偏好摘要。
  • 然后它从她的邻居那里采样历史记录。
  • 它要求 LLM 基于邻居喜欢的东西来细化 Alice 的档案。
  • 这个循环持续进行,直到档案“收敛” (即,新的邻居不再增加新的有用信息) 。
  1. 最终预测: 完全增强后的提示被发送给 LLM 以预测点击概率。

偏好生成器 (The Preference Generator)

PepRec 如何将点击列表转化为有意义的心理画像?它使用了一个名为偏好生成器的模块。

原始数据 (用户 841 点击了物品 1234) 对于 LLM 来说很难直接作为个性特征来消化。PepRec 将历史记录分为“喜欢” (正向交互) 和“不喜欢” (负向交互) ,分别处理后再合并。

Demonstration of the preference generator, using a similar user history.

图 2 所示,生成器使用特定的提示模板 (\(T_{like}\) 和 \(T_{disl}\)) 将原始列表总结为简明的描述 (\(P'_1\)) 。

例如,LLM 不会仅仅列出 20 种美容产品,而是总结道: “用户偏好有机护肤品,并避免使用香味浓烈的产品。”

这是用于总结喜欢的实际模板 (\(T_{like}\)) :

Prompt template of T_like.

这是用于总结不喜欢的模板 (\(T_{disl}\)) :

Prompt template of T_disl.

通过将原始 ID 和标题转换为语义偏好,PepRec 将海量交互数据压缩成适合 LLM 上下文窗口的格式,同时保留了行为背后的“推理”。

渐进式提示增强 (协同过滤)

这是 PepRec 的核心创新。用户自己的历史记录往往是稀疏的。也许 Alice 只买过三件东西。仅凭这些很难建立稳健的画像。

PepRec 使用 Bootstrapping 来借用邻居的智慧。

  1. 初始提示 (\(P_{e,0}\)): 仅根据 Alice 的历史生成。
  2. 邻居采样: 系统从 Alice 的簇中挑选一小批 (例如 5 个) 用户。
  3. 整合: 系统向 LLM 提问: “鉴于 Alice 与这些用户相似,而这些用户喜欢 X、Y 和 Z,请更新 Alice 的偏好档案。”
  4. 相似度检查: 系统使用余弦相似度比较新档案 (\(P_{e,1}\)) 和旧档案 (\(P_{e,0}\))。
  • 如果相似度低 (意味着档案发生了显著变化) ,说明我们学到了新东西!我们用更多邻居重复这个过程。
  • 如果相似度高 (档案没怎么变) ,我们就收敛了。我们停止添加邻居以节省成本和时间。

这模仿了人类做决策的方式。我们会征求朋友的建议,直到我们确信自己了解了各种选择。

案例研究: 观察提示的演变

这真的有效吗?让我们看看论文中的一个真实案例,看看提示在“咨询”相似用户后是如何变化的。

Examples of prompt enhancement process on two datasets.

图 3 (第一行) 中,看看关于“Aquaphor Healing Ointment (优色林修复膏) ”的推荐。

  • 初始提示 (\(P_{e,0}\)): 基于用户有限的历史,模型只知道他们喜欢“有机”产品。预测结果是五五开 (0.5)。
  • 增强提示 (\(P_{e,1}\)): 在查看邻居后,档案更新为相似用户喜欢“像精华液一样的护肤品”和“修复膏”。
  • 结果: 预测置信度跃升至 0.8 , 这与真实标签 (用户确实购买了它) 相符。

这证明了协同信号 (邻居买了什么) 成功地增强了内容信号 (用户以前买了什么) 。


实验与结果

研究人员在两个真实的基准数据集上测试了 PepRec: Amazon Beauty (美妆)Amazon Appliance (家电) 。 这些数据集包含了用户交互 (点击/购买) 日志和物品元数据。

竞争对手

PepRec 与两类基线模型进行了对比:

  1. 传统 DLRMs: FM, DeepFM, Wide&Deep (WD)。这些是协同过滤的行业标准。
  2. 基于提示的模型: LLM4RS, LLMRec, TALLRec。这些是使用 LLM 进行推荐的其他尝试,其中一些涉及昂贵的微调。

裁决

结果在统计学上是显著的。PepRec 的表现优于传统深度学习模型和其他基于 LLM 的方法。

Table 1: Comparison of overall performance.

表 1 中,我们查看 AUC (越高越好) 和 Logloss (越低越好) 。

  • Beauty 数据集上,PepRec 达到了 0.7318 的 AUC,以明显优势击败了最好的基线模型 (ReLLA 的 0.6976)。
  • Appliance 数据集上,PepRec 达到了 0.7501 , 超过了 DeepFM (0.7167) 和 ReLLA (0.7386)。

关键要点: PepRec 在无需训练参数的情况下取得了这些结果。虽然像 TALLRec 和 ReLLA 这样的模型需要在推荐数据上微调 LLM,但 PepRec 使用了固定的 LLM (GPT-4),仅仅通过 Bootstrapping 方法更好地“设计”了上下文。

超参数分析

你可能想知道: 这种方法有多敏感?它需要数百个聚类吗?

Hyperparameter analysis.

图 8 展示了聚类数量 (a) 和采样用户数量 (b) 的影响。

  • 聚类: 即使聚类数量很少 (大约 7 个似乎是最佳的) ,性能也令人惊讶地稳定。这表明你不需要细粒度的微细分就能获得协同过滤的好处。
  • 采样: 在 Bootstrapping 步骤中采样大约 11 个用户会产生峰值 AUC。采样太多会引入噪声 (不相关的偏好) ,导致性能下降。

LLM 基座模型重要吗?

由于 PepRec 依赖 LLM 的推理能力来合成偏好,模型的“智力”至关重要。

Impact of GPT backbones.

图 9 比较了 GPT-3.5 Turbo、GPT-4 和 GPT-4 Turbo。

  • GPT-4 (标准版) 的表现始终最好。
  • GPT-3.5 Turbo 明显落后,可能是因为它难以处理将相互冲突的用户历史合并为连贯档案所需的复杂推理。
  • 有趣的是,GPT-4 Turbo 在这些特定测试中的表现不如标准 GPT-4,这可能是由于概率估计 (Logloss) 中的校准问题,即使它的排名能力仍然不错。

最终预测

一旦提示通过协同见解得到了充分增强,PepRec 如何做出最终决定?它使用一个直截了当的模板来询问 LLM 一个概率分数。

Prompt template for predictions

图 7 所示,系统严格指示 LLM 输出一个 0 到 1 之间的数字,代表“喜欢”的可能性。这种数值输出允许 PepRec 与标准的回归指标 (如 Logloss) 进行评估,从而弥合了定性文本生成与定量推荐评分之间的差距。


结论与启示

PepRec 框架代表了自然语言处理和推荐系统融合迈出的重要一步。

为什么这很重要:

  1. 可解释性: 与基于矩阵乘法输出分数的神经网络不同,PepRec 生成的是文本档案。我们可以确切地读到模型为什么认为用户会喜欢某件物品 (例如,“用户偏好节能家电”) 。
  2. 免训练: 部署推荐模型通常涉及庞大的 MLOps 流程,每天都要重新训练模型。PepRec 将负担转移到了推理时间,利用预训练的通用知识。
  3. 两全其美: 它成功地添加了 LLM 缺失的“协同”层,同时没有丢失 LLM 闻名的语义理解能力。

虽然存在局限性——特别是在推理过程中多次调用 GPT-4 的成本——但随着 LLM 成本的迅速下降和更小、更高效模型 (如 Llama 3) 的兴起,像 PepRec 这样的框架可能很快就会成为个性化、可解释推荐的可行标准。

对于学生和研究人员来说,PepRec 表明我们并不总是需要“更大”的模型或更多的训练数据。有时,我们只需要一种更聪明的方式来向模型提出正确的问题。