# 2203.13366_RLP_P5: A Unified Pretrain, Personalized Prompt & Predict Paradigm (P5) * * PDF: * 引用: 660(2025-08-19) * 组织: * Department of Computer Science, Rutgers University, NJ, US * GitHub: * Huggingface: ## 总结 **重点说明** * 里面的几个图需要重点看 * 最后的附录中有用到的 prompt 集合(不过相对简单,但大体了解推荐相关的 prompt) * 证明了在 A分类(如:Sport)中训练的模型可以 B分类(如:Beauty)数据集中有比较好的泛化能力(参见 **figure 4**) **标签** * tag: Recommendation * tag: 推荐 **简介** * RLP: Recommendation as Language Processing * Personalized Foundation Models (PFM), * Universal Recommendation Engine (URE) **背景** * 推荐任务通常需要设计特定于任务的架构和训练目标。 * 因此,从一个任务学到的知识和表征难以迁移到另一个任务 * 推荐系统与自然语言处理的结合的四类研究方向: 1. **可解释推荐** * explainable recommendation * 使用 NLP 模型生成推荐解释。 2. **序列推荐作为语言建模**: * sequential recommendation as language modeling * 将用户交互历史视为词序列进行建模。 3. **文本特征提取**: * text feature extraction * 提取文本编码以提升推荐性能。 4. **对话推荐**: * conversational recommendation * 在交互式对话中理解用户意图并给出推荐。 * 多任务推荐预训练涵盖五个不同的任务系列 * 评分 * 顺序推荐 * 解释 * 评论 * 直接推荐 **贡献** * 本文提出了一个灵活且统一的文本到文本推荐框架P5,它通过自然语言建模将多种推荐任务(如序列推荐、评论生成等)统一在一个共享框架下 * 关键创新 - 所有推荐相关数据(如交互记录、用户画像、商品信息)均转换为自然语言序列,以语言建模目标(如生成式任务)预训练单一模型。 - 支持多种下游任务(如评分预测、推荐理由生成),无需任务特定架构。 **P5框架** * 一种统一的预训练、个性化提示和预测范式,其核心在于通过个性化提示(personalized prompts)生成大量可用于预训练的推荐任务数据 * 所有数据都被转化为统一的自然语言序列格式 * 数据包括: * user-item interactions, * user descriptions, * item metadata, * user reviews * 自然语言中的丰富信息有助于P5捕捉更深层次的语义,从而实现更好的个性化和推荐效果 * 训练、验证、测试数据集准备方案 * leave-one-out 评估策略 * 它模拟了“给定用户的历史行为,预测下一个可能交互的物品”的真实应用场景。 * 在 **序列推荐任务(sequential recommendation)** 中,用户的行为数据是按时间顺序排列的交互序列(例如一个用户先后点过、买过、看过的一系列物品)。 * **最后一个交互的物品**(比如用户最后点击/购买的那个)被用作 **测试集**,即模型需要预测这个物品; * **倒数第二个交互的物品** 被用作 **验证集**,用于调参或模型选择; * **之前的所有交互记录**(除了最后两个)作为 **训练集**,让模型学习用户的行为模式。 **数据集** * Amazon * 包含 29 类产品的用户评分和评论 * 本文采用其中三个数据集 * Sports & Outdoors * Beauty * Toys & Games * Yelp * 包含大量用户评分和评论,可用于商业推荐 **评价指标** - 评分预测任务使用RMSE和MAE。 - 推荐任务使用HR@K(Hit Ratio)和NDCG@K(Normalized Discounted Cumulative Gain)。 - 解释生成和评论摘要任务使用BLEU-4和ROUGE(ROUGE-1、ROUGE-2、ROUGE-L)。 - 性能指标中RMSE和MAE越低越好,其余越高越好。 ## Abstract 长期以来,不同的推荐任务通常需要设计特定于任务的架构和训练目标。因此,从一个任务学到的知识和表征难以迁移到另一个任务,限制了现有推荐系统方法的泛化能力。例如,一个序列推荐模型很难被应用或迁移到评论生成任务中。 为了解决这一问题,论文认为语言可以描述几乎所有内容,并且语言建模是一种强大的媒介,能够统一表示各种问题或任务。基于此,作者提出了一个**灵活且统一的文本到文本范式**,名为“预训练、个性化提示、预测范式”(P5),用于推荐系统。 在P5框架中,所有数据(如用户-物品交互、用户描述、物品元数据、用户评论等)都被转化为统一的自然语言序列格式。**自然语言中的丰富信息有助于P5捕捉更深层次的语义,从而实现更好的个性化和推荐效果。** 具体而言,P5在预训练阶段通过相同的语言建模目标学习不同的任务,因此它能够作为多种下游推荐任务的基础模型。P5还支持与其他模态的轻松集成,并能够通过提示(prompt)实现基于指令的推荐。**P5推动推荐系统从浅层模型、深度模型向大模型演进,朝着通用推荐引擎的方向发展。** 通过为不同用户设计**自适应个性化提示**,P5能够在**零样本或少样本**设置下进行预测,显著减少了对大量微调的依赖。论文在多个推荐基准数据集上进行了实验,验证了P5的有效性。 ### 关键词(Keywords) - 推荐系统(Recommender Systems) - 自然语言处理(Natural Language Processing) - 多任务学习(Multitask Learning) - 个性化提示(Personalized Prompt) - 语言建模(Language Modeling) - 统一模型(Unified Model) ### 论文信息(Meta Information) - 会议:第十六届ACM推荐系统会议(RecSys '22),2022年9月18日–23日,美国西雅图 - 期刊年份:2022 - 版权:ACM - DOI:10.1145/3523227.3546767 - ISBN:978-1-4503-9278-5 - 论文集名称:Sixteenth ACM Conference on Recommender Systems (RecSys ’22) ### 总体总结(重点强调) 本文最重要的贡献是提出了一个统一的文本到文本推荐框架P5,它通过自然语言建模将多种推荐任务(如序列推荐、评论生成等)统一在一个共享框架下。P5利用语言的表达能力,实现了跨任务的知识迁移、零样本/少样本推荐、与多模态的集成等能力,是迈向“通用推荐引擎”的重要一步。 ## 1. Introduction 本节回顾了推荐系统的发展趋势,并提出了一个统一的“预训练、个性化提示与预测范式”(P5)以应对未来推荐系统面临的多特征、多任务挑战。 --- ### 推荐系统的特征建模与学习演进 推荐系统的特征工程和学习方法在过去几十年中从简单走向复杂。早期的系统主要依赖逻辑回归和协同过滤方法(Resnick et al., 1994; Sarwar et al., 2001 等),仅使用用户-物品交互数据建模用户行为。 随着发展,系统逐步引入了更多上下文特征(如用户画像、物品元数据),并使用了更复杂的模型,如因子分解机(Rendle, 2010)、GBDT(He et al., 2014)等。近年来,深度神经网络模型(如 Cheng et al., 2016; Guo et al., 2017; Zhang et al., 2017 等)进一步提升了模型对复杂、多样化特征的表达能力,从而在推荐准确率上超越了传统特征工程方法。 --- ### 推荐任务的扩展 除了传统的评分预测和用户-物品匹配任务,近年来推荐系统扩展到了更多任务和场景,例如: - **序列推荐**(Sun et al., 2019; Hidasi et al., 2016) - **对话式推荐**(Zhang et al., 2018) - **可解释推荐**(Zhang et al., 2014a, 2020; Li et al., 2021) 虽然这些任务通常被分别处理,但已有研究趋势表明,通过多任务联合学习可以提取可迁移的表示(Shin et al., 2021b; Yuan et al., 2021 等)。然而,当前的推荐系统仍难以统一处理多样化的任务和特征,因此作者提出一个统一的框架来解决这一问题。 --- ### P5 方法概述(重点) ![](https://img.zhaoweiguo.com/uPic/2025/08/iOyRWF.jpg) Figure 1: P5 pretrains on an encoder–decoder Transformer model that takes in textual inputs and produces target responses. We trained P5 on a multitask collection of personalized prompts. After multitask prompt-based pretraining on recommendation datasets, P5 achieves the capability of zero-shot generalization to unseen personalized prompts and new items. 受多任务提示式训练的启发(Aribandi et al., 2022; Sanh et al., 2022 等),本文提出了 P5(Pretrain, Personalized Prompt & Predict)范式,其核心思想是: - 将推荐任务建模为基于自然语言的提示任务; - 利用统一的序列到序列(seq2seq)框架处理多种推荐任务; - 使用个性化提示模板将用户-物品信息和特征整合成模型输入。 P5 的主要优势包括: 1. **语言环境融合**:将所有推荐任务转化为自然语言处理任务,借助个性化提示模板,无需为不同特征设计专用编码器,从而充分利用语言模型的语义和知识; 2. **多任务统一架构**:采用共享的编码器-解码器结构,使用统一的语言建模损失,将所有任务视为条件文本生成问题,简化了模型设计; 3. **零样本泛化能力**:通过指令式提示训练,P5 能够在未见过的个性化提示或新领域物品上实现良好的性能。 --- **总结**:本节系统回顾了推荐系统的演进,指出现有系统在多任务和多特征处理上的不足,并提出 P5 范式作为未来推荐系统发展的一个统一、灵活的技术路线。 ## 2. Related Work ### Unified Frameworks(统一框架) 早期的研究如 T5 和 GPT-3 提出了通过统一的文本到文本的编码器-解码器框架或自回归语言建模来处理多种自然语言处理(NLP)下游任务的方法。这些方法基于一个预训练语言模型,能够在不同任务中实现有效的知识共享。 近年来,研究进一步聚焦于统一大规模语言任务或跨模态应用,将不同类型的任务和模态统一为自然语言格式,以实现更广泛的任务覆盖。然而,这些方法尚未考虑个性化因素。 相较之下,本文提出的 **P5** 模型首次将个性化引入到编码器-解码器 Transformer 架构中,使其能够泛化到广泛的推荐相关应用场景。此外,P5 通过基于提示的预训练,具备在未见过的提示和项目上的零样本泛化能力。 --- ### Prompt Learning(提示学习) 提示学习的兴起始于 GPT-3 的成功,它展示了通过输入输出示例(exemplar prompt)解决 NLP 任务的能力。随后,研究者提出了“预训练、提示和预测”的范式,并发展出离散提示搜索和连续向量嵌入提示两种方法。 此外,基于指令的提示(instruction-based prompts)因其任务描述清晰且贴近自然语言格式而受到关注。FLAN 和 T0 等工作通过使用自然语言提示对预训练模型进行微调,使模型在未见过的任务上也表现出色。受这些方法的启发,本文构建了一组个性化提示,并基于这些提示训练了一个序列到序列模型,以应对推荐相关任务。 --- ### NLP for Recommendation(推荐中的自然语言处理) 推荐系统与自然语言处理的结合已有较长时间,主要可分为以下四类研究方向: 1. **可解释推荐**:使用 NLP 模型生成推荐解释。 2. **序列推荐作为语言建模**:将用户交互历史视为词序列进行建模。 3. **文本特征提取**:提取文本编码以提升推荐性能。 4. **对话推荐**:在交互式对话中理解用户意图并给出推荐。 在本文中,P5 明确涵盖了序列推荐与解释生成的任务,并提出了一个统一的 NLP 框架,可扩展至其他推荐领域,如评分预测、Top-k 推荐和评论摘要。此外,P5 通过与对话式推荐相似的指令式提示预训练,提升了其在各类推荐任务中的表现。 --- ### Zero-shot and Cold Start Recommendation(零样本与冷启动推荐) 推荐系统的表现高度依赖训练数据,但在训练数据有限的情况下,如冷启动问题(新用户或新物品),模型的泛化能力尤为重要。常见的解决方法包括: - 利用内容特征建模(如文本信息),以在无交互记录下进行推理。 - 从辅助领域迁移表征(如使用跨域学习方法)。 - 通过元学习或因果学习方法,提升模型对新领域的适应能力。 本文中,P5 模型在辅助域上预训练后,被用于目标域任务,在目标域中用户是已知的,但物品是模型从未见过的,体现了其在零样本推荐任务中的强大适应能力。 ## 3. Personalized Prompt Collection ![](https://img.zhaoweiguo.com/uPic/2025/08/XsiT6y.jpg) Figure 2.Building input–target pairs from raw data according to our designed personalized prompt templates 本节介绍为实现推荐系统中的多任务提示式预训练(P5)而创建的**个性化提示模板集合**。该集合覆盖了五大任务类别:**评分预测、序列推荐、解释生成、评论任务和直接推荐**。每个任务家族下包含多个个性化提示,用于帮助模型从用户和商品的不同角度挖掘信息。提示由**输入模板、目标模板**和**相关元数据**组成,而个性化提示进一步引入了针对**不同用户和商品的个性化字段**,这些字段可以是用户ID、性别、年龄,或商品ID、描述信息等。 --- ### 评分预测任务家族(Rating Prediction) 该任务家族设计了三类提示: 1. **直接预测评分**:基于用户和商品信息,预测1到5之间的评分; 2. **预测用户是否会给商品某个评分**:输出“是”或“否”; 3. **预测用户是否喜欢某个商品**:将4分及以上视为“喜欢”,低于4分为“不喜欢”。 --- ### 序列推荐任务家族(Sequential Recommendation) 该任务家族包含以下三类提示: 1. **基于用户历史行为直接预测下一个项目**; 2. **从候选列表中选择下一个可能的项目**(只有一个正样本); 3. **预测用户是否会在下一步与该项目互动**。 --- ### 解释生成任务家族(Explanation) 该任务要求模型生成文本解释,用于说明用户对某一商品的偏好。包含两类提示: 1. **直接生成解释句**,包括用户/商品信息; 2. **基于特征词生成解释**(如参考Li等人2021年工作),可能结合评论标题和评分信息。 --- ### 评论相关任务家族(Review) 该任务家族设计了两类提示: 1. **将评论摘要成更短的评论标题**; 2. **基于评论内容预测评分**。 --- ### 直接推荐任务家族(Direct Recommendation) 该任务家族包含两类提示: 1. **预测是否推荐该商品给用户**(输出“是”或“否”); 2. **从候选列表中选择最合适的商品进行推荐**。 --- ### 提示构建与训练数据准备 利用这些提示,我们可直接从原始数据中构建**输入-目标对**。如图2所示,只需将模板中的字段替换为原始数据中对应的信息,即可生成训练对或零样本测试提示。 - 用户和商品的多模态语义将通过训练数据和预训练任务被浓缩到模型中; - **评分/评论/解释**任务共享相同的数据; - **序列推荐和直接推荐**则取决于是否将交互历史作为输入; - 在预训练过程中,会**混合不同任务家族的输入-目标对**; - 为了增强P5模型的鲁棒性和零样本泛化能力,**每个原始数据仅采样部分个性化提示**; - 在需要候选列表的任务中,**还会随机选择一组负样本**。 --- ### 重点总结 1. **个性化提示模板是本节核心**,用于构建多任务推荐系统的输入; 2. **五个任务家族**覆盖了推荐系统的多个关键任务,每个任务家族下都设计了多样化的提示; 3. **模型通过输入-目标对进行训练**,结合用户和商品的多模态信息; 4. **训练策略强调鲁棒性和泛化能力**,通过采样和负样本增强效果; 5. **图2**提供了部分示例提示,完整提示集合可在附录中找到。 ## 4. The P5 Paradigm and Model ![](https://img.zhaoweiguo.com/uPic/2025/08/AQehMM.jpg) Figure 3.An illustration of the P5 architecture. ### 4.1. P5架构 P5(Pretrain, Personalized Prompt, and Predict Paradigm)是一种**统一的预训练、个性化提示和预测范式**,其核心在于通过个性化提示(personalized prompts)生成大量可用于预训练的推荐任务数据。这些数据覆盖了多种推荐任务,并通过**统一的输入-目标令牌序列格式**(input–target token sequences)共享,从而打破了传统任务之间的界限。P5通过在一个统一的条件生成框架下同时预训练多个推荐任务,**提升模型对所有相关任务的理解和表现能力**。此外,P5在预训练阶段沉浸于完整的语言环境中,期望其具备**零样本泛化能力**,即在没有见过的个性化提示和详细物品描述下,也能进行有效推理和预测。 在模型架构方面,P5基于**编码器-解码器结构**(Encoder-Decoder Framework),使用Transformer模块作为编码器和解码器。输入的令牌序列首先通过嵌入(Embeddings)、位置编码(Positional Encodings)和全词嵌入(Whole-word Embeddings)进行处理,以捕捉**位置信息**和**个性化信息**。例如,为避免分词导致的上下文断裂,P5引入全词嵌入来帮助模型识别关键字段。此外,P5避免使用大量额外的独立用户/物品标识符,而是采用多个子词(sub-word units)来表示用户或物品,从而减少额外词汇的数量。 编码器接收三种嵌入的加和作为输入,输出上下文相关的表示。解码器则基于**已生成的令牌**和**编码器的输出**,预测下一个令牌的概率分布。P5的训练目标是**最小化负对数似然**(negative log-likelihood),其目标函数如下: $$ \mathcal{L}_{\theta}^{\text{P5}} = -\sum_{j=1}^{|\mathbf{y}|} \log P_{\theta}(\mathbf{y}_j \mid \mathbf{y}_{