Recommendation as Language Processing (RLP): A Unified Pretrain, Personalized Prompt & Predict Parad
摘要 本文提出了一种创新的统一推荐范式P5(预训练、个性化提示和预测范式),将各类推荐任务统一为文本到文本的生成框架。P5通过自然语言序列表示用户-项目交互、元数据等信息,利用语言建模目标进行多任务预训练,实现了不同推荐任务间的知识共享。该方法支持基于提示的零样本预测,减少了微调需求,并展现出对新颖提示和未知项目的泛化能力。实验验证了P5在五个推荐任务上的有效性,包括顺序推荐和评论生成等。P5标志
题目
推荐语言处理(RLP):一种统一的预训练、个性化提示和预测参数

论文地址:https://arxiv.org/abs/2203.13366
项目地址:https://github.com/jeykigung/P5
摘要
长期以来,不同的推荐任务通常需要设计特定于任务的架构和训练目标。结果,很难将学习到的知识和表示从一个任务转移到另一个任务,从而限制了现有推荐方法的泛化能力,例如,顺序推荐模型很难应用或转移到评论生成方法。为了解决这些问题,考虑到语言可以描述几乎任何事物,语言基础是表示各种问题或任务的强大媒介,我们提出了一种灵活统一的文本到文本的推荐范式,称为“预训练、个性化提示和预测范式”(P5),它将各种推荐任务统一在一个共享的框架中。在P5中,所有数据,如用户-项目交互、用户描述、项目元数据和用户评论,都被转换成一种通用格式——自然语言序列。来自自然语言的丰富信息帮助P5捕捉更深层次的语义,用于个性化和推荐。具体来说,P5在预训练中学习具有相同语言建模目标的不同任务。因此,它充当各种下游推荐任务的基础模型,允许与其他模态轻松集成,并支持基于提示的基于指令的推荐。P5将推荐系统从浅层模型推进到深层模型,再推进到大型模型,将使推荐系统的技术形态向着通用推荐引擎方向发生革命性的变化。通过针对不同用户的自适应个性化提示,P5能够以零触发或少触发的方式进行预测,并大大减少了大量微调的必要性。
在几个推荐基准上,我们进行了实验来展示P5的有效性。为了帮助推进未来对语言处理推荐(RLP)、个性化基础模型(PFM)和通用推荐引擎(ure)的研究,我们在https://github.com/jeykigung/P5.发布了源代码、数据集、提示和预训练的P5模型。同时,P5也托管在https://huggingface.co/makitanikaze/P5.的拥抱脸
关键词推荐系统;自然语言处理;多任务学习;个性化提示;语言建模;统一模型
简介
在过去的几十年里,推荐系统取得了显著的进步,并在人们的日常生活中发挥了重要作用,帮助他们做出微观决策,并以出色的准确性满足他们的需求。回顾过去,我们可以总结出现代推荐系统的发展趋势——朝着一个更全面的系统发展,该系统可以容纳不同的功能和广泛的应用场景。
一方面,推荐系统中的特征工程和学习已经从简单到复杂发生了巨大的变化。在早期,推荐系统通常采用逻辑回归或协同过滤[25,35,50,52],利用用户-项目交互记录来模拟用户的行为模式。随后,通过更复杂的模型,如因式分解机[48]和GBDT [20],将用户简档和项目元数据等上下文特征进一步集成到系统中。最近,深度神经网络模型[3,5,19,74]促进了更加多样和复杂的特征之间的交叉和组合。因此,与传统的基于特征工程的方法相比,这些模型获得了更好的表示能力。
另一方面,更多的推荐任务出现了。除了经典的评分预测和直接基于用户项目匹配的推荐任务之外,最近的工作正在将范围扩大到新的任务和场景,例如顺序推荐[21,60,63,80],对话推荐[8,61,76],可解释的推荐[17,31,62,70,75,77]等等。虽然上述推荐任务的方法通常是单独提出的,但有一种明显的趋势是利用多个推荐任务来共同学习可转移表示[31,56,57,72]。尽管现有的推荐系统取得了巨大的成功,但是在当前的解决方案和上述趋势的可预见的交叉之间仍然存在相当大的差距——一个可以适应不同特征和不同类型任务的综合推荐系统。由于推荐任务通常共享一个公共的用户项目池,并具有重叠的上下文特征,我们认为将更多的推荐任务合并到一个统一的框架中是有希望的,这样它们可以隐式地传递知识以使彼此受益,并能够推广到其他看不见的任务。
受基于多任务提示的训练的最新进展的启发[1,51,67],在这项工作中,我们提出了一个统一的“预训练,个性化提示和预测范式”(表示为P5)。我们表明,P5可以通过将这些问题公式化为基于提示的自然语言任务,通过统一的序列到序列框架一起学习多个与推荐相关的任务,其中用户项目信息和相应的特征与个性化提示模板相集成,作为模型输入。P5发光一条有前途的基于统一指导的推荐技术路线。它有三个主要优点:
- P5将推荐模型深深地浸入到一个全语言环境中,在个性化提示的帮助下,所有的推荐任务都被重新表述为NLP任务。因为语言基础足够灵活和强大,可以在文本模板中表达各种类型的特征,所以不需要设计特定于特征的编码器。因此,P5可以利用训练语料中丰富的语义和知识;
- P5将多个推荐任务集成到一个共享的text-to-text编码器-解码器架构中,并用相同的语言建模损失训练它们,而不是设计特定于任务的架构和目标函数。换句话说,P5把所有的个性化任务都当作一个条件文本生成问题;
- 通过基于指令的提示训练,P5在推广到新颖的个性化提示或其他领域中看不见的项目时,达到足够的零射击性能。
在我们的实验中,我们研究了P5在所有五个任务族上与特定任务方法相比的表现,并评估了P5的零命中率概括能力。我们还进行了几项消融研究,以验证P5框架的设计细节。总的来说,我们的主要贡献可以概括如下:据我们所知,这是第一个提出统一的“预训练、个性化提示和预测范式”的工作,该范式将各种与推荐相关的任务集成到共享的条件语言生成框架中。
我们创建了一系列个性化提示,涵盖五个不同的推荐任务系列。根据实验结果,当以seen提示模板作为模型输入时,P5在五个任务族上取得了令人满意的性能。P5对新颖的个性化提示和未知领域的新项目表现出足够的零触发概括能力。

图1: P5对编码器-解码器转换器模型进行预训练,该模型接受文本输入并产生目标响应。我们在个性化提示的多任务集合上训练P5。在对推荐数据集进行基于提示的多任务预训练后,P5实现了对未知个性化提示和新项目的零镜头概括能力。
相关工作
统一框架。许多先前的工作追求在统一的模型中解决各种任务。作为早期的先驱,T5 [47]和GPT3 [2]分别通过文本到文本编码器-解码器框架和自回归语言建模统一了NLP下游任务。它们都允许基于通用的预训练语言模型在不同的任务之间进行有效的知识共享。随着这一趋势,最近的进展开始集中在通过共享的序列到序列框架统一大规模语言任务[1,51,67]或跨模态应用[6,66,71],其中不同类型的任务和模态都以自然语言的格式表达。然而,前面提到的方法从未在它们的序列到序列模型中考虑个性化。最近,一系列工作[56,57,72]试图学习通用的用户表示,这些用户表示很容易转移到下游任务。这些方法的一个局限性是,它们仍然需要对下游数据集进行额外的微调。相比之下,我们的P5首先将个性化纳入编码器-解码器转换器模型,该模型可以推广到广泛的推荐相关应用场景——自然需要个性化的任务。此外,在基于提示的预训练的帮助下,P5在转换到看不见的提示和项目时获得了零投射概括能力。

图2:根据我们设计的个性化提示模板,从原始数据中构建输入-目标对-只需用原始数据中的相应信息替换提示中的字段。P5的五个任务族的原始数据来自三个不同的来源。具体来说,评级/审查/解释提示(a)共享了原始数据。顺序推荐(b)和直接推荐©使用相似的原始数据,但是前者特别需要用户交互历史。附录中提供了P5个性化提示的完整集合。
迅速学习。GPT系列尤其是GPT-3的成功标志着prompt在NLP任务上的普及。经过来自网络的大量语言数据的训练,当提供大量输入输出示例作为范例提示时,GPT-3展示了解决NLP任务的能力。除了范例提示之外,许多提示设计方法也随着“预训练、提示和预测”范式而激增[37]。一种方法[16,23,36,40,58]探索了对适当的离散提示的提示搜索。同时,另一项工作[18,28,33,38,45,81]利用连续向量嵌入作为提示。与前面提到的提示类型相比,基于指令的提示包含详细的任务描述,并且更符合自然语言格式。由于基于指令的提示是灵活的,并且接近人类如何相互交流,几个先驱作品[11,68]声称从众包NLP数据集学习是通用NLP系统的一个有前途的途径。
最近的工作,如FLAN [67]和T0 [51]通过人类可读的提示对大规模NLP数据集上的预训练语言模型进行了微调。因此,这种基于多任务提示的调优带来了强大的模型,在看不见的任务上表现出强大的零触发能力。受这些方法成功的启发,我们创建了一个个性化提示的集合,然后根据所构建的个性化提示,在各种与推荐相关的任务上训练序列对序列模型。
NLP求推荐。推荐已经与NLP技术交互了很长时间。主要工作主要针对四条研究路线:
- 可解释的推荐[4,10,30–32,75,77],其中NLP模型帮助为给定的推荐生成文本解释;
- 作为语言建模的顺序推荐[9,60,80],其将用户交互历史视为单词令牌序列;
- 文本特征提取[69,74,79],其目的是提取可以提高推荐性能的信息文本编码;以及
- 对话推荐[8,12–14,22,61,76],其推理用户的意图并以交互式对话格式给出推荐。
在我们的工作中,我们明确地涵盖了顺序推荐和解释生成的任务,并另外提供了关于如何为其他推荐问题制定统一的NLP框架的见解,包括评级预测、top-k推荐和评论摘要。此外,我们的P5通过预处理与会话推荐相似的基于指令的提示,受益于自然语言环境,提高了一系列推荐任务的性能。
零炮冷启动推荐。推荐系统的性能很大程度上依赖于可用的训练数据,但是在历史记录有限的情况下,总是存在零命中率的情况。在这样的创业案例上表现良好的证据表明推荐模型具有良好的泛化能力。
在这种设置下,一个广泛研究的问题是冷启动推荐,其中用户[26]或项目[53]对于系统是新的,没有先前的交互记录。这个问题的解决方案要么学习对内容特征建模[15,29,44,55],以便可以在没有交互记录的情况下做出推断,要么学习从辅助域转移表示[42,56,59,72,82]。零炮或少炮推荐的另一项工作是讨论对新领域的快速适应,而不是仅为冷启动情况提供推荐。解决方案通常遵循元学习[27,64]或因果学习[34]框架,使模型对领域适应变得健壮。在我们的工作中,我们要求P5模型在一个辅助域上预先训练,以解决目标域上的任务,其中用户是P5已知的,但项目以前从未被模型看到。

图3:P5架构的图示。对于示例提示输入“你认为用户_23会给项目_7391什么星级?”,P5采用一种编码器-解码器框架:先用双向文本编码器对输入进行编码,然后通过文本解码器自回归生成答案。与特定任务的推荐模型相比,我们的P5依赖于基于多任务提示的大规模个性化提示集合的预训练,这使得P5能够适应不同的任务族,甚至可以推广到新颖的个性化提示。
个性化提示集合
为了便于基于多任务提示的推荐预训练,我们创建了一个个性化提示模板集合。该集合涵盖了五个不同的任务系列——评级、顺序推荐、解释、审核和直接推荐。这些任务系列中的每一个都包含多个个性化提示,以帮助P5发现关于用户和项目的各个方面。
如[51]中所述,提示被认为是由输入模板和目标模板以及相关元数据的集合组成的。在这项工作中,我们进一步将个性化提示定义为包含不同用户和项目的个性化字段的提示。例如,用户的偏好可以通过ID号或用户的描述(如姓名、性别、年龄等)来指示。此外,给定个性化提示的预期模型输出也应该根据其项目字段而变化。这意味着用户对不同项目偏好的改变。这种项目字段可以由项目ID号或包含详细描述的项目元数据来表示。
我们为每个任务族设计了基本的P5个性化提示集合。对于评分预测任务族,我们将提示分为三类:1)给定关于一个用户和一个条目的信息,直接预测评分分数,范围从1到5;2)预测用户是否会给一个项目打分。预期输出是或否;3)预测用户是否喜欢或不喜欢某个项目。
这里,我们认为等于或大于4的星级是用户喜欢的偏好,而较低的分数表示不喜欢的偏好。对于顺序推荐任务族,我们创建了三种类型的提示:1)基于用户交互历史直接预测下一个项目;2)给定用户交互历史,从候选列表中选择可能的下一个项目,其中只有一个项目是肯定的;3)基于用户交互历史,预测给定项目是否将被用户接下来交互。对于解释任务族,我们要求P5模型生成文本解释,以证明用户对给定项目的偏好。该任务族中有两种提示类别:1)直接生成带有用户/物品信息的解释句;2)基于作为提示的特征词生成解释[31]。对于每个类别,可以包括其他辅助信息,如评论标题和星级。对于评审相关任务族,我们创建两种类型的提示:1)将评审评论总结为较短的评审标题;2)根据给定的评审意见预测相应的评级分数。对于直接推荐,我们还创建了两种类型的提示:1)预测是否向某个用户推荐某个商品,答案应该是yes或no;2)从候选项目列表中选择最合适的项目推荐给用户。我们在图2中提供了一些示例提示,在附录中提供了完整的个性化提示集合。
根据提示,我们可以从原始数据中直接构建输入-目标对。如图2所示,我们可以简单地用原始数据中的相应信息替换括号中的字段,从而创建训练输入-目标对或零炮测试个性化提示。训练数据和预训练任务将从不同的模态中提取丰富的语义到用户和项目令牌中,用于偏好理解和个性化。请注意,我们将原始数据分为三个部分——评分/评论/解释共享相同的原始数据,而顺序推荐和直接推荐在是否使用交互历史作为输入信息方面有所不同。在预训练过程中,我们将来自不同任务族的输入-目标对混合在一起作为训练数据。为了增强P5的健壮性和零触发泛化能力,对于每个原始数据,我们只对每个任务族中的一部分而不是全部个性化提示进行采样。在顺序和直接推荐任务家族中,我们也随机选择一组负面项目用于那些需要候选列表的提示。
P5范例和模型
P5架构
上一节中介绍的个性化提示集合使得创建大量可用的预训练数据变得方便,这些数据覆盖了与推荐相关的广泛任务。由于有了提示模板,所有的预训练数据共享一个统一的输入格式——目标令牌序列,这打破了不同任务之间的界限。我们声称,在条件生成的统一框架下预训练多个推荐任务可以促进所有涉及的任务在一起。通过在整个预训练阶段将P5沉浸在全语言环境中,我们还希望它能够理解带有详细项目描述的看不见的个性化提示。这就是P5被称为统一的“预训练、个性化提示和预测范例”的原因。
就模型架构而言,我们的P5建立在基本的编码器-解码器框架之上。我们使用Transformer [65]模块来构建编码器和解码器。假设一个输入令牌序列的嵌入是x = [𝑥1,𝑥𝑛].如图3所示,在将嵌入序列输入双向文本编码器E()之前,我们将位置编码P添加到原始嵌入中,以捕获它们在序列中的位置信息。
此外,为了使P5意识到包含在输入序列中的个性化信息,我们还应用全词嵌入W来指示连续的子词标记是否来自同一原始词。例如,如果我们直接将ID号为7391的项目表示为“item_7391”,那么该单词将被句子片断标记器[54]分成4个单独的标记(即,“item”、“_”、“73”、“91”)。在共享的全词嵌入“⟨w10⟩”的帮助下(例如,在图3中),P5可以更好地识别具有个性化信息的重要字段。另一种选择是用独立的额外标记(例如,“⟨item_7391⟩").”)来表示每个用户/项目但是,当有大量用户和项目时,这可能会导致大量的额外令牌。因此,在本文中,我们采用多个子词单元来表示一个用户或项目。
之后,文本编码器取上述三个嵌入的总和e = [𝑒1,,𝑒𝑛]并输出它们的上下文化表示t = [𝑡1,,𝑡𝑛] = E (e)。解码器d()然后关注先前生成的记号y<𝑗和编码器输出t,并预测未来记号的概率分布:𝑃𝜃 J y𝑗 | y<𝑗,x K = D (y<𝑗,t)。在预训练阶段,P5通过以端到端的方式最小化以输入文本x为条件的标签标记y的负对数似然来学习模型参数𝜃: 这个相同的目标函数由P5下的所有推荐任务共享。因此,我们用一种模型、一种损失和一种数据格式来统一推荐任务。
带预训练P5的推荐
经过预训练后,P5可以直接执行不同的任务,带有可见或不可见的个性化提示。对于评分、解释和复习任务,我们简单地使用贪婪解码来生成答案。相反,顺序和直接推荐任务通常需要一个项目列表作为目标输出。鉴于此,对于顺序推荐,我们应用波束搜索来生成潜在下一个项目的列表,并在所有项目设置下对其进行评估。对于直接推荐,我们从候选集S = {𝑆1,𝑆𝑚}预测推荐的项目,其中只有一个𝑚候选是肯定的。这里,我们还使用波束搜索来解码具有最高分数的潜在目标项目的列表,然后进行评估。以上两个解码过程都可以写成:C = [𝐶1,,𝐶𝐵] = Beam_Search(D,t,𝐵) (2)其中𝐵表示波束大小,c是输出项列表。
实验
在本节中,我们评估了所提出的P5方法在真实世界数据上的性能,并将其与针对不同任务族的各种代表性方法进行了比较。通过性能比较和消融研究,我们旨在回答以下关于我们的统一“预训练、个性化提示和预测Pargadigm”(P5)的研究问题:RQ1:我们的统一P5框架在所有五个任务系列上与特定于任务的方法相比表现如何?RQ2:P5在转换到针对现有或新项目的看不见的个性化提示时,是否具有足够的零触发概括能力?RQ3:模型大小、任务族数量和提示数量等比例因子如何影响P5的性能?RQ4:在P5中实现个性化的更好方法是:为每个用户或物品采用独立的额外令牌(如“⟨user_23⟩”)还是默认设置,即把每个用户或物品令牌化为多个子词单元(如“用户”、“23”)?RQ5:P5进行预训练需要多长时间?用预训练的P5模型进行推理是否有效?我们在附录中提供了训练和推理时间的统计数据。

表1:实验数据集的基本统计数据。
实验设置数据集。
我们在四个真实世界数据集上进行了大量实验。Amazon1数据集是从Amazon.com平台收集的,包含29类产品的用户评级和评论。在本文中,我们采用其中的三个来评估我们的方法,即体育&户外,美容,以及玩具&游戏。此外,Yelp2数据集包含大量用户评级和评论,用于商业推荐。我们遵循[80],使用2019年1月1日至2019年12月31日之间的交易记录。由于篇幅限制,Yelp上的结果显示了与其他数据集相似的趋势,我们将Yelp数据集上的实验结果放在附录中。这些数据集的详细统计数据如表1所示。
任务拆分。对于评级、解释和审查任务系列,我们将每个数据集随机分为训练(80%)、验证(10%)和测试(10%)集,并确保每个用户和项目的训练集中至少包含一个实例。为了获得基本事实的解释,遵循自然语言解释著作[30,31],我们首先借助Sentires toolkit3 [77,78]从评论中提取项目特征词,然后从评论中提取评论一个或多个项目特征词的句子作为用户关于其偏好的解释。在顺序推荐任务族方面,对于每个用户交互序列,最后一项作为测试数据,最后一项之前的项作为验证数据,剩余的数据用于训练。为了避免预训练过程中的数据泄漏,我们遵循顺序推荐的训练分裂来构建直接推荐任务族的训练集。
实施细节。我们的P5模型利用预训练的T5检查点[47]作为主干。根据T5主干的大小,我们创建了两个版本的P5,即P5-small (P5-S)和P5-base (P5-B)。对于P5-small,编码器和解码器都有6层,模型维数为512,有8个头部关注,参数数量为6075万。对于P5基,编码器和解码器都有12个变压器块。模型嵌入维度768,12头关注,参数数量22328万。对于标记化,我们使用词汇量为32,128的SentencePiece [54]标记化器来解析子单词单元。我们在四个英伟达RTX a 5000 GPU上使用AdamW优化[39]对P5进行了10个时期的预训练。
基于P5的批量大小设置为16,基于P5的批量大小设置为32。我们选择1×103作为峰值学习速率,并将输入令牌的最大长度设置为512。热身策略用于调整训练期间的学习率,热身阶段被设置为所有迭代的前5%。当训练需要负采样时,我们对P5和基线都使用1:1正对负采样。
我们的默认预训练-预测组合采用每个任务族中的最后一个提示进行零射击评估,而所有剩余的提示用于多任务提示预训练。对于评级预测,我们使用高斯抽样将原始整数分数转换为四舍五入到小数点后1位的浮点数。这样,我们可以避免过度拟合有限的分数类型。在这一改变之后,我们将分数等级的数量从5增加到41。对于顺序推荐,我们将波束大小𝐵设置为20。对于直接推荐,波束大小也是20,候选池包含100个项目,包括一个真实项目和99个用户没有与之交互的采样负面项目。
度量标准。对于评级预测,我们采用均方根误差(RMSE)和平均绝对误差(MAE)。对于顺序推荐和直接推荐任务,我们采用top-𝑘命中率(HR@𝑘)和标准化折扣累积收益(NDCG@𝑘)来评估性能,并报告HR@1,5,10和NGCG@5,10。对于解释生成和综述总结,我们使用BLEU-4以及ROUGE-1、ROUGE-2和ROUGE-L评估不同的方法。RMSE和梅是“越低越好”,而所有其他指标是“越高越好”。对于下面的所有表格,粗体数字表示最佳性能,带下划线的数字表示第二好的性能。

表2:评级预测的性能比较。
多项任务的基线
为了展示P5在广泛的建议相关任务上的能力,我们收集了一组针对不同任务族的代表性方法。评分预测和直接推荐。这些任务获取用户-项目评级/交互数据,但不提供内容或辅助信息。我们旨在证明这些模型是否能够提供准确的评级预测或符合用户偏好的推荐列表。我们使用均方根损失下的MF [25]和MLP [5]作为评级预测基线。对于直接推荐,我们使用BPR-MF [49],BPR-MLP [5]和一个基于对比学习的最先进的协作过滤模型SimpleX [43]作为基线。
顺序推荐。我们采用几种有代表性的顺序推荐方法作为我们的基线。Caser [63]将顺序推荐视为马尔可夫链,并采用卷积神经网络来模拟用户兴趣。HGN [41]采用了一种分层的门控网络,从长期和短期的角度来学习用户行为。GRU4Rec [21]最初是为基于会话的推荐而提出的。它利用GRU [7]来模拟用户点击历史序列。BERT4Rec [60]模仿了BERT风格的屏蔽语言建模,并学习了用于顺序推荐的双向表示。FDSA [73]通过用自我注意模块对特征序列建模来关注特征转换模式。SASRec [24]在顺序推荐模型中采用了自我关注机制,该机制协调了马尔可夫链和基于RNN的方法的特性。S 3 -Rec [80]利用自我监督目标来帮助顺序推荐模型更好地发现不同项目及其属性之间的相关性。我们使用S3 -Rec的实现及其基线进行比较4。
解释生成。为了进行性能比较,我们考虑了与解释生成任务相关的几个基线。Attn2Seq [10]学习将属性编码成向量,然后调用注意机制生成以属性向量为条件的评论。NRT [32]利用GRU [7]生成基于用户和项目id的解释。PETER [31]是一个简单而有效的框架,它试图利用用户和项目id来生成解释。它是建立在一个修改的变压器架构的注意面具。还有一个变种PETER+,取一个提示特征词辅助解释生成。
审查相关。对于综述总结,我们采用由Hugging Face5托管的预训练T0 [51]和GPT-2 [46]检查点作为基线。对于评论偏好预测,我们仅使用T0进行比较,因为GPT-2不能执行此任务。

表3:顺序推荐的性能比较。

表4:解释生成的性能比较(%)。

表5:评论偏好预测的性能。
不同任务族(RQ1)上的性能比较
在本节中,我们用所有五个任务族的提示对P5进行预训练,以验证其多任务学习能力。根据默认的pretrain-predict任务组合,我们将提示1-10、提示2-13、提示3-12、提示4-4和提示5-8留给zeroshot评估,并将pretrain P5留给其余的个性化提示。P5和相关基线在五个任务族上的表现如表2至表7所示。对于每个任务族,我们选择一个或多个可见提示作为上述零触发未见提示的补充来执行评估。
评级预测。提示1-6和提示1-10用于评估P5在评级预测方面的表现。性能比较如表2所示。我们可以看到,当使用seen Prompt 1-6进行测试时,与MF相比,P5-B在所有三个数据集上都获得了更好的MAE和略高的RMSE。当使用看不见的提示1-10进行测试时,P5-B可以获得与提示1-6相似的性能。此外,P5-S通常具有更好的MAE,但具有更高的RMSE。似乎P5过度拟合这些数据,因为评级预测的任务复杂度相对低于其他推荐任务。总之,这些结果表明在条件文本生成框架上执行评级预测是可行的。
顺序推荐。
如表3所示,使用提示2-3和提示2-13来评估所有项目设置下的顺序推荐,即,使用所有项目作为候选,而不是对100或1,000个项目进行采样排名。从表中我们可以看出,P5-B在可见(提示2-3)和不可见(提示2-13)提示方面都超过了所有竞争基准,差距相对较大。在玩具上,P5-S甚至可以获得比P5-B更好的性能。而在美容和体育上,P5-B比P5-S取得了优势。结果表明,P5架构在建模用户交互历史和借助波束搜索进行下一个项目预测方面是有效的。

表6:评论摘要的性能比较(%)。

表7:直接推荐的性能比较。

表8:域名迁移评估集统计。
解释生成
在表4中,提示3-9和提示3-12用于评估P5在基于特征的设置下的解释生成的性能,而提示3-3用于在不提供提示词的情况下直接生成解释。我们可以看到,对于Prompt 3-3,P5在所有基线上都获得了最佳性能。对于基于特征的提示(提示3-9和3-12),P5在大多数情况下都可以胜过PETER+,尤其是对于美妆和玩具。
评审相关
我们采用提示4-2和4-4来比较P5和T0在评论偏好预测方面的表现,如表5所示。我们可以看到,P5-S在美妆和玩具上取得了更好的RMSE和美妆,而P5-B表现更好关于体育。此外,我们采用提示4-1来评估P5的复习总结能力,如表6所示。对于这项任务,P5-S在美容和玩具数据集上明显优于T0和GPT-2。值得注意的是,GPT-2和T0分别具有1.5B和11B参数。这表明P5可以用小得多的模型尺寸实现比这些竞争基线更好的性能。
直接推荐
最后,应用提示5-1、5-4、5-5和5-8来评估100分之一评估设置下的直接推荐任务。对于二元问题提示(5-1和5-4),这是区别性提示,我们使用softmax生成概率“是”来对候选项进行排序。对于开放式问题提示(5-5和5-8),这是生成式提示,我们使用波束搜索(等式。(2))生成top-𝑘列表。结果如表7所示。从表中,我们可以看到P5-B和P5-S在所有三个数据集上都比BPR-MF和BPR-MLP有很大的优势。与单纯形相比,我们可以看到P5在top-1项目排名上表现得特别好,在HR@1上比单纯形好两倍多。此外,P5在大多数其他指标上也取得了最好的结果。P5在直接推荐上的成功显示了序列到序列生成框架在推荐领域的能力。
对新领域(RQ2)中看不见的提示和项目的零镜头概括
转移到看不见的个性化提示
在本节中,我们在预训练期间将预训练的P5模型转换为先前保持的提示。这些看不见的提示来自相同的任务系列,并且测试项目在预训练期间已经被P5看见至少一次。实验结果也记录在表2至表7中。正如前面5.3节所讨论的,当受到看不见的提示的挑战时,P5在各种任务族上取得了令人惊讶的好成绩。在一些特定的数据集上,P5在看不见的提示上的表现甚至超越看到的提示,例如,P5-B在关于运动的提示2-13下获得最佳性能。这些结果表明,多任务提示预训练使P5有足够的鲁棒性去理解看不见的有措辞变化的提示。
转移到新领域的项目
接下来,我们增加零杆转移的难度。我们收集了存在于所有三个域中的一组741个用户,以及他们在其他域中的交互和回顾历史。这些域转移评估集的详细统计数据如表8所示。然后,我们用来自任务族Z的看不见的提示来挑战在一个域上预先训练的P5-B,任务族Z的项目字段填充了来自新产品域的信息。例如,我们询问在玩具领域中预先训练的P5模型关于现有用户对美容领域中的项目的偏好。表9报告了所有六个方向的全部结果。从表中,我们注意到P5仍然保持了足够的评级预测(提示Z-2和Z-3)、喜欢/不喜欢预测(提示Z-1和Z4)以及用特征词生成解释(提示Z-6)的性能。相比之下,没有特征词的直接解释生成(提示Z-5和Z-7)对于P5来说是非常困难的,因为它缺乏对新领域相关知识的了解。在图4中,我们提供了一些由P5-B在零触发域转移(提示Z-6)设置下生成的示例解释。我们可以看到,P5能够捕捉不同用户的评分偏好和提示特征词,然后将它们与以前领域中学习到的知识相结合,以生成合理的解释。

图4:Z-6任务中零炮域转移的实例。我们展示了三个转移方向:玩具到美容,美容到体育,体育到玩具。

图5:P5-S、P5-SN、P5-PS在美颜上的表现对比。
消融对模型大小(RQ3)
在本节中,我们将讨论模型大小对P5在不同推荐任务上的表现的影响。这里,我们训练P5的两种大小变体,即P5-小和P5-基。这两款P5型号的参数号分别为60.75M和223.28M。从表2到表7我们可以看到,虽然P5-S的规模只有P5-B的1/4,但是在一系列的任务和数据集上,P5-S可以击败P5-B。例如,P5-S在玩具上比P5-B实现了更好的顺序推荐、评论偏好预测和直接推荐(提示5-5和5-8)性能。相比之下,P5-B在体育运动的顺序推荐和评论偏好预测任务中表现出优势。由于体育包含更多的用户、条目和评论,并且稀疏性较低,因此需要一个容量更大的模型来发现不同个性化因素之间的潜在相关性。研究结果表明,当数据集较大时,可能需要较大的P5模型,而对于较小的数据集,较小的P5模型可能就足够了。因此,我们应该决定一个与训练数据规模相匹配的合适的模型大小。
任务分级消融(RQ3)
此外,我们还探索了多任务提示预训练是否优于单独对每个任务族进行预训练。我们在美容数据集上对P5-small进行了预训练,每个任务系列都有提示,结果产生了五个模型——P5-S1、P5-S2、P5-S3、P5-S4和P5-S5。然后,我们将P5-S在各种推荐任务上与相应的单任务P5模型进行比较。P5-S和P5-SN (𝑁 ∈ [1,2,3,4,5])之间的性能比较如图5所示。如图所示,P5-S在评分预测、顺序推荐和直接推荐任务上取得了与P5-SN相当或更好的性能,而在解释生成(提示3-9和3-12)和评论摘要(提示4-1)等文本生成任务上,P5-SN优于P5-S。这表明多任务建模(P5-S)通过利用语言理解的能力来寻求任务之间的良好平衡并提高推荐性能。此外,如表2至表7所示,P5-S和P5-SN在所有任务上的表现都优于或相当于最先进的基线,这证明了P5的推荐能力。

图6:P5-S和P5-I在美颜上的表现显示了如何实现个性化的影响。

表9:零触发域转移的性能。
即时缩放消融(RQ3)
如实施细节中所述,我们的默认预训练-预测任务组合遵循留一策略。但是,我们在预训练时需要这么多提示来启用P5的零炮泛化能力吗?在本节中,我们将探索如何减少预训练提示的数量,然后与默认设置下预训练的P5模型进行比较。为此,我们选择一组预训练提示,这些提示的数量最少,可以覆盖所有重要的个性化字段。具体来说,这个组合包含以下18种个性化提示:{1-5,1-6,1-8,1-9,2-1,2-3,2-8,2-11,3-2,3-3,3-6,3-9,4-1,4-2,4-3,5-2,5-5,5-7}。类似于默认的pretrain–predict组合,每个任务系列中的最后一个提示是零触发评估。我们将P5-small的这种快速缩放变体命名为P5-PS,然后在Beauty数据集上对P5-PS进行预训练。P5-S和P5-PS之间的性能比较如图5所示。从图中我们可以观察到,除了一些生成任务(即提示3-3,3-9 & 4-1),P5-S在大多数任务上都击败了P5-PS。有趣的是,P5-S在提示3-12上的表现优于P5-PS——这是一项零命中率的解释生成任务。事实上,P5-S在提示1-10、2-13、5-8等其他零射任务上也显示了其优越性。总的来说,我们可以发现大量高质量的个性化提示通常可以帮助P5在各种推荐任务中取得更好的表现,尤其是在没有提示的零镜头任务中。
如何实现个性化(RQ4)
在本节中,我们讨论在P5中实现个性化的不同策略。默认的做法是使用SentencePiece tokenizer将个性化字段分割成多个子词单元,同时使用全词嵌入来保存字段信息(图3)。一个简单的替代方法是为每个用户和项目创建一个独立的额外令牌。在这里,我们将这个P5-small变体命名为P5-I,并在Beauty数据集上对其进行预训练。
前者利用协作学习来隐式优化不同子词标记之间的潜在相关性,而后者为每个额外的标记学习唯一的个性化表示。P5-S和P5-I之间的性能比较如图6所示。我们可以看到,P5-I在回归任务(评分预测提示1-6和1-10,基于评论的评分回归提示4-2和4-4)和评论总结任务(提示4-1)上取得了与P5-S相似的表现。此外,P5-I在解释生成任务上略好于P5-S(提示3-3、3-9和3-12)。
然而,P5-1在顺序推荐和直接推荐任务(图6 ©和(d)中的所有提示)中的表现远远落后于P5-5。P5-I较低性能背后的原因在于,与从T5开始初始化的原始子词单元相比,新引入的大量额外标记和嵌入不能被很好地训练。这表明,我们的默认设置可以在协作学习的帮助下实现更好的推荐和整体性能,同时保持少量且恒定的可学习令牌。
结论和未来工作
在本文中,我们提出了P5,它将不同的推荐任务统一到一个共享的语言建模和自然语言生成框架中。通过设计涵盖五个推荐任务系列的个性化提示集合,我们将所有原始数据(如用户-项目交互、用户描述、项目元数据和用户评论)转换为相同格式的输入-目标文本对。然后,我们在全语言环境中预训练P5,以帮助它发现各种推荐任务的更深层语义。根据我们的实验,P5可以在所有五个任务族上击败或获得类似的性能。
此外,P5还表现出对新项目、新领域和新的个性化提示进行零距离迁移的概括能力。在未来,我们将继续探索进一步扩大P5的模型规模,并采用更强大的基础模型,如GPT-3、OPT和BLOOM。此外,P5是一个非常灵活的范例,通过将用户查询整合到P5中,有望将P5进一步扩展到不同的模态和更多的任务,如对话推荐、比较推荐、跨平台推荐,甚至各种搜索任务。最后,在这项工作中,我们设计了显式提示,因为它们直观、灵活,并且接近人类相互交流的自然方式,这使得基于指令的推荐成为可能,而在未来,我们还将研究提示搜索和/或潜在提示技术,以实现指令提示或利用检索增强的生成来进一步提高P5在下游任务中的性能。
附录
在本附录中,我们首先在a部分提供Yelp数据集上的额外实验结果。然后,我们在b部分收集并报告P5变体的训练和推理时间的统计数据。由于个性化提示构成了我们工作的一个非常重要的部分,因此,我们分别在D部分和E部分提供了Amazon数据集和Yelp数据集的个性化提示的完整列表。
Yelp数据集上的实验结果对于YELP数据集,我们也遵循默认的预训练-预测任务组合设置。根据E节中提供的个性化提示,我们将提示1-10、提示2-13、提示3-10、提示4-3和提示5-8留给零触发评估,并使用其余提示对P5-S模型进行预训练。我们采用5.2节中描述的相同基线进行性能比较。
同样,对于每个任务族,我们选择一个或多个可见提示作为前面提到的零触发不可见提示的补充来执行评估。P5-S和相关基线模型的性能如表10至表14所示。正如这些实验结果所表明的,P5在Yelp上也表现出很强的能力,特别是对于顺序推荐和解释生成任务。
b .关于训练和推理时间(RQ5)的统计在这一部分中,我们提供关于P5模型的训练和推理时间的统计,我们收集关于美容数据集的运行时间。如5.1节所述,我们在4×a 5000 GPU上训练了我们的P5模型。从我们的记录来看,P5-S花了6.7个小时完成训练,而P5-B由于参数数量较多,花了24.3个小时。
在推断方面,我们使用单个A5000 GPU进行评估。P5-S和P5-B在不同任务上的平均推理时间如表15所示。在所有任务中,顺序和直接推荐任务比其他任务需要长得多的推理时间。这可以归因于等式1中描述的波束搜索步骤。(2).由于我们需要生成推荐项目的列表,波束大小𝐵越大,解码将花费越长的时间。
此外,我们还可以观察到,直接推荐通常比顺序推荐需要更长的时间。原因是直接推荐提示的输入中包含100个候选人,通常比顺序推荐提示的令牌多。总的来说,尽管P5的预训练需要几个小时才能完成,但推理速度非常快。借助于有效的转换器技术,进一步减少训练和推理时间也是有希望的。
表10:评级预测的性能比较。
表11:顺序推荐的性能。
表12:解释生成的性能(%)。
表13:评论偏好预测的性能。
表14:直接推荐的绩效。
表15:在美容数据集上不同任务上P5变量的平均推理时间(毫秒)。
c .样本大小的影响当在生成式提示(提示5-5至5-8)下创建用于直接推荐的训练句子时,对于训练集中的每个用户项目交互,我们随机地对用户没有与之交互的99个负面项目进行采样。与肯定条目一起,100个条目的候选条目列表被创建。然后我们从提示5-5到提示5-8中随机选择一个提示来创建一个训练句子。对于每个用户-项目交互,我们对𝑁时报重复上述过程,并获得𝑁训练句子。在默认设置中,我们将样本大小𝑁设置为10。我们发现,在生成式提示下,增加训练样本的大小可以提高直接推荐的性能。我们将样本大小从缺省值10增加到200,并在表16的提示5-5和5-8中报告性能。从表中我们可以看出,较大的数据样本大小可以大大提高直接推荐的性能。

表16:在较大样本量下进行直接建议的性能比较。
d .亚马逊数据集个性化提示完整列表
D.1任务家族1:评分预测
提示ID: 1-1
输入模板:user_{{user_id}}会给item_{{item_id}}哪个星的评分?(1为最低,5为最高)
目标模板:{{star_rating}}
提示ID: 1-2
输入模板:user_{{user_id}}将如何评价此产品:{{item_title}}?(1为最低,5为最高)
目标模板:{{star_rating}}
提示ID: 1-3
输入模板:user_{{user_id}}会给item_{{item_id}}一个{ { star _ rating } }-星级吗?(1为最低,5为最高)
目标模板:{{answer_choices[label]}}(是/否)
提示ID: 1-4
输入模板:user_{{user_id}}是喜欢还是不喜欢item_{{item_id}}?
目标模板:{{answer_choices[label]}}(喜欢/不喜欢)-喜欢(4,5) /不喜欢(1,2,3)
提示ID: 1-5
输入模板:预测用户_ {{user_id}}对项目_ {{{item_id}}}}({{item_title}})-1 \ n -2 \ n -2 \ n -4 \ n -4 \ n -4 \ n -5
目标模板:{ {{user_desc}}
提示ID:1-7
将给出项目_ {{item_id}}? (1最低,最高5)
目标模板:{{star_rating}}
提示ID:1-7
输入模板:{{user_desc}}如何对此产品进行评分:{{item_title}}? (1是最低,最高为5)
目标模板:{{star_rating}}
提示ID:1-8
输入模板:将{{user_desc}}给出一个{{star_rating}} - {inter_title}}的星级{ (1是最低,最高为5)
目标模板:{{atnews_choices [label]}}(是/否)
提示ID:1-9
输入模板:{{user_desc}}是否喜欢或不喜欢{{item_title}}?
目标模板:{{atnews_choices [label]}}}}(喜欢 /不喜欢) - 喜欢(4,5) /不喜欢(1,2,3)提示ID:1-10
输入模板:predict {{user_desc}}的偏爱对{{item_title}} {item_title}}}(1个为低和5为plate} targe {
2:顺序推荐提示:
2-1输入模板:
给定以下用户的购买历史_ {{user_id}}:{{{publice_history}}预测用户购买的下一个可能的项目?
目标模板:{{next_item}}
提示ID:2-2
输入模板:我找到了用户_ {{user_id}}的“购买历史记录列表”:{{{publice_history}}我想知道哪个是向用户推荐的下一个项目。你能帮我决定吗?
目标模板:{{{next_item}}
提示ID:2-3
输入模板:这是用户的购买历史记录列表_ {{user_id}}:{{publice_history}}尝试将下一个项目推荐给用户
目标模板:{{next_item}}
提示:2-4
输入模板:2-4输入模板:给定以下{user_desc} forem for auser_desc} firsey for forem for ause forefert after forem forexs { {{next_Item}}
提示ID:2-5
输入模板:基于{{user_desc}}的购买历史记录:{{public_history}}}您可以决定用户可能购买的下一个项目吗?
目标模板:{{next_item}}
提示ID:2-6
输入模板:这是{{user_desc}}}的购买历史记录:{{{publice_history}}}用户下一步推荐什么?目标模板:{{{next_item}}
提示ID:2-7
输入模板:以下是用户的购买历史记录_ {{user_id}}:{{{pupperion_history}}选择下一个可能的项目可能由用户从以下候选人中购买的用户购买,以下候选人:
模板:给定以下购买历史记录{{user_desc}}}:{{public_history}}用户下一步推荐什么?从以下项目中选择一个:{{candix_items}}
目标模板:{{{next_item}}
提示ID:2-9
输入模板:基于用户的购买历史记录:{{user_id}}}:{{user_id}}:{{publice_history}}从下一个可能的购买项目中,从以下可能的购买cantem} cantem}
cantem:{cantem} {{next_item}}
提示ID:2-10输入模板:我找到{{user_desc}}的购买历史记录列表:{{publice_history}}我想知道哪个是向用户推荐的下一项。尝试从以下候选人中选择一个:{{cantix_items}}目标模板:{{{next_item}}提示ID:2-11输入模板:user _ {{user_id}}具有以下购买历史记录:{paskin_history}} {publice_history}}} subly可能会购买cantixatiety_item}目标模板:{{atnews_choices [label]}}}(是/否)提示ID:2-12输入模板:根据{{user_desc}}的购买历史记录列表:{{publice_history}}}
火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。
更多推荐
所有评论(0)