当前位置: 首页 > news >正文

自己做的网站网页打开速度慢郑州好的网站建设公司

自己做的网站网页打开速度慢,郑州好的网站建设公司,jsp网站开发实训报告,如何利用模板做网站作者 | gongyouliu 编辑 | gongyouliu 提示#xff1a;全文2.5万字#xff0c;预计阅读时长2小时#xff0c;可以先收藏再慢慢阅读。 我们在上一章介绍了chatGPT、大模型的基本概念、核心技术原理等基础知识#xff0c;有了这些背景知识的铺垫#xff0c;下面我们来介绍ch… 作者 | gongyouliu 编辑 | gongyouliu 提示全文2.5万字预计阅读时长2小时可以先收藏再慢慢阅读。 我们在上一章介绍了chatGPT、大模型的基本概念、核心技术原理等基础知识有了这些背景知识的铺垫下面我们来介绍chatGPT、大模型在推荐系统中的应用为了简单起见下面我们将chatGPT、大模型应用于推荐系统统称为大模型在推荐系统中的应用其实大家都知道驱动chatGPT的底层技术也是大模型——基于GPT-3.5演化而来只不过chatGPT基于对话进行了特定的优化最终采用对话的方式为用户提供服务这种方式可以革新传统的推荐系统交互逻辑22.2.3节我们会讲到。 预训练语言模型Pre-trained Language ModelsPLM当模型参数、训练数据量增大后会在下游任务中表现出一些独特的能力比如复杂推理、知识发现、通用常识理解等。在学术界当模型规模变大时一般参数至少要超过10B也就是100亿出现前面提到的这些能力叫做能力涌现emergent关于能力涌现的介绍见参考文献1具备这些能力的模型才是真正意义上的大模型Large Language ModelsLLM。 能力涌现是一个非常重大的发现和突破。大模型通过海量数据的预训练pre-training学习到了一些基础的能力预训练好的大模型具备通用的能力可以应对一些没有进行针对性训练的下游任务比如预训练后直接用于翻译那么我们自然想到能不能用大模型做个性化推荐因为对chatGPT、GPT-4等大模型来说推荐系统也是一个下游任务。 上面这个想法其实是可行的目前有很多相关论文已经在利用大模型来解决推荐系统问题了虽然目前的研究主要集中在学术界但在不久的将来我相信大模型一定能应用在企业级推荐系统中就像深度学习在刚出现时也是在学术上进行推荐系统探索最终工业界最主流的推荐算法都被深度学习推荐算法革新了。我认为大模型对推荐系统的革新会跟深度学习对推荐系统的革新如出一辙。 作者最近2个月通过研读非常多的大模型应用于推荐系统的论文对大模型应用于推荐系统非常看好。本章基于作者自己的理解并结合众多论文来讲解大模型在推荐系统中的应用让读者了解大模型怎么用于推荐系统这个趋势是势不可挡的提前让读者熟悉也可以给读者更多的警示希望读者多关注这方面的技术成果和应用场景落地。 具体来说本章我们会从大模型为什么能应用于推荐系统、大模型在推荐系统上的应用方法、大模型应用于推荐系统的问题及挑战、大模型推荐系统的发展趋势与行业应用等4个维度来展开。希望读者通过本章的学习了解大模型与推荐系统的关系。本章算是一个入门的综述希望读者后面可以多花时间学习、研究、跟进并实践大模型推荐系统。 在讲解之前这里提一下我们本章的大模型推荐系统是一个比较宽泛的概念利用BERT、T5、GPT系列、LLaMA系列等较大的预训练模型进行个性化推荐都在本章的讨论范围之内。 22.1  大模型为什么能应用于推荐系统 大模型是通过海量的互联网文本信息通过在底层构建Transformer语言架构预测下一个tokentoken可能是一个单词也可能是一个单词的一部分出现的概率来训练模型的。由于有海量互联网文本数据模型的训练过程不需要人工标注当然是需要对数据进行预处理的一旦模型完成预训练就可以用于解决语言理解和语言生成任务。简单来说大模型基于海量文本中token序列中下一个token出现的概率进行统计建模来学习在给定语言片段后出现下一个token的概率来解决下游任务比如摘要、翻译、生成文本等。 对于推荐系统用户过往的操作行为其实就是一个有序的序列每个用户的操作序列类似于一篇文本所有用户的操作行为序列类似于大模型的训练语料库。那么预测用户下一个操作行为就类似于预测词序列的下一个token这里推荐系统的物品类似语言模型中的一个token。通过这个简单的类比我们就知道推荐系统是可以嵌入到大模型的理论框架中的。因此直观地看大模型一定是可以用于解决推荐系统问题的。我们在下面22.2.3.1节介绍的BERT4Rec模型就是这么做的。 上面的这个思路算比较简单只用到了用户与物品的交互信息。实际上推荐系统的数据来源更复杂除了有上面提到的用户交互序列还有用户画像信息、物品画像信息等。部分用户画像、物品画像信息比如用户的年龄、性别、偏好等物品的标题、标签、描述文本等也可以利用自然语言来呈现行为交互序列、用户画像、物品画像等信息都可以输入到大模型中给大模型提供更多的背景知识这样获得的推荐会更加精准。 推荐系统涉及到的数据很多都是多模态的比如物品有描述文本、有图片、甚至有介绍的视频等这些异构的信息对于推荐系统的效果相当重要特定的深度学习推荐算法能够利用多种信息进行推荐系统建模。当前的大模型以处理文本数据为主还无法很好地处理多模态数据虽然GPT-4具备部分多模态能力midjourney、runway的Gen-2等能够基于文本生成图片、视频等因此利用大模型解决好推荐系统相关的问题、带来比较好的业务效果也是任重道远的。 虽然大模型暂时还无法充分利用推荐系统的所有多模态数据但是利用好文本数据就已经很强大了。大模型最强大之处是具备zero-shot、few-shot的能力简单解释一下zero-shot就是预训练后直接可以解决未知下游任务few-shot就是给出几个式例大模型可以解决类似的问题即所谓的in-context learning能力也就是举一反三的能力。这个两个强大的能力是可以用于解决推荐问题的有很多论文就是利用了大模型这两个能力进行推荐只不过需要在使用大模型过程中设计一些prompt提示和模板template来激活大模型的推荐能力这里说一下我个人对激活的理解大模型有上百亿、上千亿、甚至上万亿参数是一个非常庞大的神经网络当用一些prompt告诉大模型作为一个推荐系统角色进行推荐时就激活了深度神经网络中的某些连接这些连接是神经网络的某个子网络而这个子网络具备进行个性化推荐的能力这个过程非常类似人类大脑神经元的工作机制比如你看到美食时就会激活大脑中负责进食的区域——这个区域是大脑整个复杂神经元网络的子网络导致看到美食可能流口水、吞咽等行为这里看到美食就类似大模型的prompt。对于few-shot可能更复杂一些需要在prompt中告诉大模型一些怎么进行推荐的案例比如用户看了A、B、C三个视频后会看另外一个视频D让它临时学习怎么做推荐。 prompt学习是没有改变大模型的参数的即没有进行梯度下降的反向传播训练但为什么具备few-shot的能力呢这还是上面说的prompt作为一个整体激活了大模型神经网络的某个功能区域。大模型具备多伦对话能力的道理也是类似的我们可以将多伦对话作为一个整体这个整体激活了大模型在某个对话主题下的功能区域导致大模型能“记住”因为是将这个对话作为整体输入大模型的多伦对话之前的信息。但是这个对话中的新信息是没有被大模型学习到的因为目前的大模型不具备增量学习的能力也就是遇到一个新信息马上学习到了模型的参数中人是具备增量学习能力的增量学习肯定是大模型未来最重要的一个发展方向。 另外大模型还可以帮助缓解数据稀疏性问题特别是冷启动问题因为大模型学习的是海量的互联网的知识对于新物品、新用户都可以很好应对冷启动问题我们下面会讲解这是当前深度学习推荐模型的主要瓶颈。通过从不同模型架构中学习的预训练模型中提取和迁移知识可以在从通用性、稀疏性、效率和有效性等多个角度提高推荐系统的性能。 大模型另外一个很大的优势是可以利用对话的方式跟用户互动就如chatGPT所呈现的那样如果能将推荐系统设计成一个跟用户互动的对话式推荐引擎那么大模型可以利用自然语言响应用户的个性化需求从而提高用户整体体验和参与度。 通过上面的介绍相信读者能够大致知道为什么大模型可以应用于推荐系统了也知道了大模型应用于推荐系统的几个独特的优势那么大模型怎么应用于推荐系统呢这就是我们下一节要讲解的主题也是本章最核心的主题。 22.2 大模型在推荐系统上的应用方法 大模型由于其压缩了海量的世界知识能够以语言理解、语言生成和对话的方式解决各类问题有了上一节的铺垫我们知道大模型的这些能力可以用在推荐系统整个链路中的各个部分。下面我们就从数据处理与特征工程、召回与排序、交互控制、冷启动、推荐解释、跨领域推荐等6个维度来讲解大模型怎么赋能推荐系统。 22.2.1 大模型用于数据处理、特征工程 大模型具备文本生成的能力这是大模型最直接、最被大众感知的能力。文本生成当然也可以直接用于个性化推荐的数据生成中。我们知道在很多场景下推荐系统存在数据不足的问题比如产品刚发布没有太多用户和用户行为数据那么利用大模型生成辅助数据就是一个非常朴素的想法。 参考文献2提供了一种基于大模型微调的方法针对表格数据也就是可以利用Excel、MySQL等这样的表格形式来存储的数据这也是推荐系统中最核心的一类数据用户画像、物品画像都可以以这种形式的数据存放生成样本的方法——GReaT。先将表格数据构成文本输入大模型进行微调见下面图1微调后的模型就可以基于一定的策略来生成新样本了见下面图2。该方法可以保证生成的样本跟原始样本分布一致这对于数据量不足的推荐场景是一个比较好的补充。与其它方法相比GReaT允许在没有对模型重新训练只需要在大模型上进行微调的情况下可以对特征子集进行任意组合即可以通过对任何特征名称或特征名称和值的组合进行数据采样。除了可以用来生成新的样本数据对数据的缺失值进行补充也是可行的。 图1微调步骤的GReaT数据管道。首先文本编码步骤将表格数据转换为有意义的文本a。随后应用特征顺序置换步骤b最后获得的句子可以用于大型语言模型的微调c。图片来源于参考文献2 图2合成数据生成方法的采样过程。为了使用预训练的LLM生成新的数据需要将单个特征名称或特征值对的任意组合转换为文本a。随后输入微调后的LLM完成采样b最终可以被转换回表格格式c。图片来源于参考文献2 在传统的推荐系统中结构化数据通常被转为one-hot编码并且采用简单的嵌入层作为特征编码器来获得稠密的嵌入表示。随着语言模型的出现我们完全可以采用大模型作为辅助文本特征编码器比如可以利用BERT将各类信息物品标题、标签、描述文本等进行嵌入获得嵌入向量作为其它推荐模型可以是大模型也可以是传统的推荐模型的输入特征。 利用大模型获取新的特征可以获得两大好处1为后期的神经网络推荐模型进一步丰富具有语义信息的用户/物品表示2 以自然语言为桥梁实现跨领域推荐因为跨领域的特征可能不共享。 22.2.2 大模型用于召回、排序 推荐系统最核心的模块莫过于召回、排序了我们在本书前面的章节中讲了很多召回、排序的策略和算法。大模型也能应用于召回、排序可以说这是大模型在推荐系统中最主流、最核心的应用了下面我们就来重点介绍。 在讲解之前我们先说一下大模型应用于召回、排序的使用方式。我们知道大模型一般会分为预训练、微调两个阶段那么针对大模型应用于推荐系统就可以有3种最主要的使用方式参考下面图3分别是利用推荐系统的数据进行预训练再进行推断即下面的预训练范式、利用预训练好的大模型进行微调再进行推断即下面的预训练、微调范式、利用预训练好的大模型通过prompt进行推断即下面的预训练、提示范式。下面的讲解我们也是按照这3种方式分别展开。 图3语言模型应用于推荐系统的一般范式图片来源于参考文献4 22.2.2.1 预训练pre-training范式 所谓预训练方式就是利用推荐系统相关数据来预训练大模型然后让大模型直接进行推荐召回、排序这相当于构建一个推荐系统领域的垂直大模型。一般来说由于推荐系统数据量相对互联网海量文本来说规模较小即使是抖音这样的公司用户行为数据也无法跟互联网海量数据相提并论数据形式也比较特殊22.1节提到了所以这种预训练的方式一般基于一个中等规模的开源大模型来预训练比如基于BERT、T5、M6阿里的大模型来进行预训练。基于BERT的推荐算法读者可以阅读参考文献3文献中该方法称为U-BERT、5文献中该方法称为BERT4Rec基于T5开源模型的预训练方法读者可以阅读参考文献6文献中该方法陈为P5基于M6的预训练大模型推荐系统读者可以阅读参考文献7文献中该方法陈为M6-Rec。 BERT4Rec基于Transformer和BERT架构来学习一个双向的神经网络大模型为了避免信息泄露双向的模型导致用户行为序列中后面待预测的物品也用于了建模相当于提前泄露了信息采用完形填空Cloze目标函数进行训练也就是随机遮盖mask序列中的某个token通过模型来预测该遮盖的token的概率来建模这也是完形填空目标函数这个词组的由来。 下面简单说一下该模型的核心思想模型架构见下面的图4。在序列推荐sequential recommendation即预测下一个任务中代表用户集代表物品集列表是用户按照时间排列的交互序列这里是用户u在时间t进行交互的物品是用户u的交互序列的长度。给定交互历史顺序推荐旨在预测用户u在时间与之交互的物品。它可以被形式化为在时间步骤对用户u的所有可能的交互物品的概率进行建模。 BERT4Rec由于可以利用预测token前后的token信息能够获得更多的样本数据也跟实际上用户的行为序列之间的依赖关系保持一致也即用户行为序列中间的物品确实是跟前后都有关联的因此效果是非常不错的。参考文献8中提出的一种算法SASRec就是一个单向的自注意力网络BERT4Rec可以看成它的一种自然推广。 图4BERT4Rec通过完形填空任务Cloze task学习双向模型 P5是将预测评分、评论、推荐解释、序列推荐、直接推荐direct recommendation构建在一个统一的模板框架下见下面图5通用的统一的prompt模板然后利用T5见参考文献9开源大模型来预训练预训练好模型之后直接利用prompt模板来为用户进行各种推荐。 图5P5的个性化提示模板从原始数据构建输入-目标对只需将提示中的字段替换为原始数据中的相应信息。P5的五个任务族的原始数据来自三个独立的来源。具体而言评分/评论/解释prompt具有共享的原始数据a。序列推荐b和直接推荐c使用类似的原始数据但前者需要用户交互历史。图片来源于参考文献6 在模型架构方面P5建立在编码器-解码器框架上论文使用Transformer块来构建编码器和解码器。假设输入token序列的嵌入是如下面图6所示在将嵌入序列灌入双向文本编码器之前我们将位置编码添加到原始嵌入以捕获它们在序列中的位置信息。此外为了让P5知道输入序列中包含的个性化信息论文中还应用整词嵌入whole-word embeddings来指示连续的子词标记是否来自同一原始词例如如果我们直接将ID号为7391的物品表示为“item_7391”则单词将被句子片段分词器Sentence-Piece tokenizer拆分为4个单独的token即“item”、“_”、“73”、“91”。在共享的全词嵌入“⟨w10⟩”的帮助下P5可以更好地识别具有个性化信息的句子片段。 然后文本编码器取上述三个嵌入的和并输出它们的上下文表示。然后解码器结合之前生成的token 和编码器输出并预测未来token。在预训练阶段P5通过以端到端方式最小化以输入文本x为条件的label token y的负对数似然性来学习模型参数 P5框架下的所有推荐任务都有同样的目标函数。因此推荐任务统一为一个模型、一个损失函数和一种数据格式。P5这种大一统的思路还是非常有意思的通过一个模型可以解决各种各样推荐系统问题这避免了为每类推荐任务构建单独的模型这种耗时耗力的过程这也跟大模型的一次预训练就解决多个下游任务的思路是一脉相承的。这篇文章作者认为非常好读者可以好好阅读一下。 图6P5模型架构示意图。对于prompt输入案例“你认为user_23会给item_7391什么评分”P5采用编码器-解码器框架首先用双向文本编码器对输入进行编码然后通过文本自回归解码器生成答案。与特定任务的推荐模型相比P5依赖于在大规模个性化prompt集合上基于多任务prompt的预训练使得P5能够适应不同的推荐任务甚至可以推广到新的任务中。图片来源于参考文献6 前面的M6-Rec我们这里没有深入介绍有兴趣的读者可以自行学习。除了上面介绍的BERT4Rec、P5、M6-Rec等预训练大模型推荐系统外这方面的方法还是很多的如参考文献31中提到的Transformers4rec等读者可以自行学习。大模型预训练除了可以直接用于任务预测外也可以获得用户或者物品的嵌入向量参考22.2.1节介绍再利用向量去做召回。 22.2.2.2 预训练、微调fine-tuning范式 所谓预训练、微调范式是指基于预训练好的大模型再利用推荐系统特定的领域数据去微调预训练好的大模型待大模型微调好后再进行下游的个性化推荐。微调过程也会进行模型的梯度下降训练只不过微调是对模型进行小规模调整训练时间、成本等更小。 预训练、微调范式是非常重要的一种范式主要价值体现在3点1预训练提供了更好的模型初始化通常会对不同的下游推荐任务产生更好的泛化能力从各个角度提高推荐性能并且在微调阶段加速收敛2 在庞大的源语料库上进行预训练可以学习到通用知识有利于下游推荐3 预训练可以看作是一种正则化以避免在低资源和小数据集上过拟合。 预训练、微调范式是非常灵活的预训练可以采用各种各样的大模型一般可以采用开源的大模型如T5、LLaMA等微调过程也可以分为对整个模型进行微调、对模型的部分层进行微调、对模型的额外部分进行微调如在预训练模型上新增加一层用于下游推荐系统任务微调这个新增加的一层这3个分类方法见参考文献4下面我们分别介绍。 22.2.2.2.1 微调整个模型 在这一微调范式下模型是用不同的数据源进行预训练和微调的微调过程通过调整整个模型参数来实现。预训练和微调阶段的学习目标也可能不同。对不同领域的数据源进行预训练和微调也称为跨领域推荐。 受BERT在NLP中成功应用的启发参考文献3中提出了一种新的基于预训练和微调的方法U-BERT。与典型的BERT应用不同U-BERT是为推荐而定制的并在预训练和微调中使用不同的框架。在预训练中U-BERT专注于内容丰富的领域并引入了一个用户编码器和一个评论编码器来对用户的行为进行建模。在微调中U-BERT专注于目标内容不足的领域除了从预训练阶段继承的用户和评论编码器外U-BERT还引入了一个物品编码器来对物品表示进行建模。此外还提出了一个评论协同匹配层以捕捉用户和物品评论之间更多的语义交互。最终U-BERT将用户表示、物品表示和评论交互信息相结合以提高推荐性能。下面图7就是U-BERT利用大模型在一个场景的丰富信息来获取用户和评论的嵌入表示迁移到另外一个场景进行个性化推荐下面我们重点说一下U-BERT的核心算法原理。 图7同一用户为来自不同领域的两个物品撰写的两条评论图片来源于参考文献3 在预训练阶段U-BERT进行两项自我监督任务根据内容丰富领域的大量评论来学习用户的一般表示在微调阶段U-BERT使用监督学习从内容不足领域进一步细化用户对评论的表示。为了完成推荐任务我们需要在同一框架中对用户ID、物品ID和评论进行建模在预训练和微调阶段用户ID的保持不变而物品ID的由于场景差异不重叠。因此U-BERT分别在预训练和微调阶段引入了两种不同的架构。 在预训练阶段U-BERT引入了一个基于多层Transformer的评论编码器这里对两个场景中的评论统一建模即两个场景的评论数据都用起来了和一个用户编码器来对评论文本进行建模并构造了评论增强review-enhanced的用户表示即下面图中Review Encoder向左边的箭头\leftarrow将评论的嵌入信息整合到了用户嵌入中。此外提出了两个新的预训练任务——掩盖意见token预测Masked Opinion Token Prediction和意见评分预测Opinion Rating Prediction来训练这两个任务完整的模型架构参考下面图8这里的Opiton是用户对物品的评分的关键词比如五星好评、非常棒等这类表达用户意见的文本信息。 图8U-BERT的预训练阶段架构图片来自参考文献3 在微调阶段U-BERT进一步使用物品编码来表示物品并使用评论协同匹配层来捕捉用户和物品评论之间的语义交互信息。最后将所有获取的用户表示、物品表示和评论交互信息灌入到目标域中的下游推荐系统预测层中完整的模型架构参考下面图9从图中我们可以看到微调阶段的架构跟预训练稍微有点不一样了有一些小幅度调整但是整体还是一致的。 图9U-BERT的评分预测阶段架构图片来自参考文献3 严格来说U-BERT是先预训练一个完整的模型然后对整个模型进行微调U-BERT还是在修改了模型的架构后进行的微调。微调整个模型整体来说效果会更好但是需要的数据量、计算量等都会更大。 22.2.2.2.2 微调部分模型 由于微调整个模型通常耗时且灵活性较低许多大模型推荐系统选择微调模型的部分参数以平衡训练开销和推荐性能。 参考文献10提出了一个新的方法——UniSRec它应用线性变换层来变换来自不同领域的物品的BERT表示然后应用自适应组合策略来获得通用物品表示以处理领域bias问题。同时考虑到从多个特定领域的行为模式中学习可能会出现冲突的现象UniSRec在预训练阶段提出了用于多任务学习的序列-物品和序列-序列对比任务。这种方法只需要对模型参数的一小部分进行微调就能使模型快速适应冷启动或新物品的未知领域参见下面图10。 图10UniSRec的物品表示左、序列表示中与微调架构右图片来自参考文献10 对于物品表示基于物品文本item text来学习可迁移的物品表示该文本以自然语言的形式描述物品特征。自然语言提供了一种通用的数据形式来弥合不同任务或领域之间的语义差距。基于这一思想UniSRec首先利用预先训练的语言模型来学习文本嵌入。由于来自不同领域的文本表示可能跨越不同的语义空间即使使用相同的文本编码器UniSRec提出了基于参数白化parametric whitening和混合专家MoE的增强适配技术将文本语义转换为适合推荐任务的通用形式。 由于不同的领域通常对应于不同的用户行为模式因此简单地混合来自多个领域的交互序列进行预训练可能效果不佳。而且很可能从多个特定领域的行为模式中学习导致出现冲突现象。UniSRec的解决方案是引入序列-物品和序列-序列两种对比学习任务这可以进一步增强不同领域在学习物品表征时的融合和适应性。在预训练阶段利用多任务训练策略来联合优化序列-物品对比损失函数和序列-序列对比损失函数。 由于UniSRec模型可以学习交互序列的通用表示所以可以固定主要架构的参数只需微调MoE增强适配器的一小部分参数即图10左边Gating Router部分以增加模型的适应性。MoE增强适配器可以快速适应新的领域能够融合预先训练的模型与新的领域特征并在新领域获得较好的预测效果。 22.2.2.2.3 微调模型的额外部分 除了上述介绍的两种微调策略外另外一种微调策略利用预训练模型之上增加的特定任务层来执行推荐任务通过优化这个新增加的聚焦特定任务层的参数来实现微调的目标见参考文献11。另一种方法是在微调阶段使用预训练模型初始化具有类似架构的新模型并使用微调的新模型进行推荐见参考文献12。关于这部分我们这里就不展开了读者可以自行学习这里提到的两篇参考文献。 22.2.2.3 预训练、提示prompting范式 预训练、提示范式跟上面两个范式不同大模型完成预训练后不需要进行微调直接用于个性化推荐这里的预训练大模型一般是通用的大模型比如chatGPT、GPT-4、Bard、LLaMA、M6等而不是单独为推荐任务进行预训练过的大模型。 我们在22.1节提到了大模型是基于海量文本数据预训练的海量文本中本身就压缩了各个领域的基础知识这些知识是可以被激发出来用于进行个性化推荐的。只不过我们需要用特定的提示prompt才能激发大模型的个性化推荐能力。 推荐系统的提示需要采用特定的模板template才能更好地激发大模型的推荐能力。推荐系统跟其它下游任务最大的不同是个性化的因此提示也需要是个性化的个性化提示包括不同用户和物品的个性化字段。例如用户的偏好可以通过物品ID或用户的描述如姓名、性别、年龄等来表示。此外个性化提示的预期模型输出也应该根据输入的物品而变化这意味着用户对不同物品的偏好变化。这些的物品字段可以由物品ID或包含详细描述的物品元数据来表示。 大模型不需要进行任何微调就可以直接用于下游推荐任务只需要利用特定提示激发大模型的推荐能力我们将这种能力叫做zero-shot能力。另外我们在22章中提到大模型具备In-Context Learning的能力也就是给出几个输入-输出样本案例大模型就能够按照案例给定的信息进行推理这个过程是一个迁移学习的过程我们在22.1节也解释了大模型为什么具备这个能力这就是大模型的few-shot能力。因此利用预训练、提示范式进行个性化推荐可以分为zero-shot推荐、few-shot推荐两大类下面我们也按照这个划分来展开讲解。 22.2.2.3.1 zero-shot推荐 zero-shot就是直接利用预训练好的大模型通过设计特定的prompt和模板来让大模型完成推荐任务。这类推荐的效果主要由大模型自身的通用能力及prompt的独特设计决定一般会用chatGPT、GPT-4等超大的大模型这类模型的通用能力会更好。参考文献13就提供了一个比较好的zero-shot推荐的案例下面我们来介绍一下具体的步骤和原理读者也可以阅读参考文献14、15、16了解更多的zero-shot推荐实现方案。 参考文献13将推荐看成一个有条件的排序任务思路有点类似贝叶斯估计给定用户的历史交互序列按照交互时间升序排列作为初始条件大模型推荐系统的任务是对召回的候选集可以是其它传统的召回算法获得的候选物品来自于整个物品池另外每个物品i有一个关联的文本描述进行排序使得用户最喜欢的物品排在前面。这就是一个典型的利用大模型进行推荐系统排序的方案。 对每个用户首先构造两个自然语言模式pattern一个是用户的历史交互行为序列一个是抽取的候选物品集然后将这两个模式输入到一个自然语言模板中形成最终的指令prompt。通过这种方式期望大模型理解指令并按照指令的建议输出推荐排序结果。大模型排序方法的总体框架如下面图11所示。接下来我们描述详细的指令设计过程。 图11利用大模型进行zero-shot排序推荐的技术方案图片来源于参考文献13 用户历史序列交互为了研究LLM是否可以从用户历史行为中捕获用户偏好我们将顺序历史交互作为LLM的输入包含在指令中。为了使LLM能够意识到历史交互的顺序性有如下三种构建指令的方法 顺序提示按时间顺序排列历史交互。例如“I’ve watched the following movies in the past in order: ’0. Multiplicity’, ’1. Jurassic Park’, . . .”。关注最近的提示除了顺序的交互记录外我们还可以添加一句话来强调最近的交互。例如“I’ve watched the following movies in the past in order: ’0.Multiplicity’,’1.JurassicPark’,.... Note that my most recently watched movie is Dead Presidents. . . .”。上下文学习ICLICL是LLM解决各种任务的一种效果突出的提示方法它在提示中包括式例样本可能带有任务描述并指示LLM解决特定任务。对于个性化推荐任务简单地引入其他用户的示例可能会引入噪声因为不同的用户通常具有不同的偏好。我们通过调整ICL增补输入交互序列来引入式例样本。例如“ If I’ve watched the following movies in the past in order: ’0. Multiplicity’, ’1. Jurassic Park’, . . ., then you should recommend Dead Presidents to me and now that I’ve watched Dead Presidents, then ...”。 抽取候选物品集通常要排序的候选物品由几个候选生成模型生成即多路召回。为了用LLM对这些候选物品进行排序我们先按顺序排列候选物品|C|。例如“Now there are 20 candidate movies that I can watch next: ’0. Sister Act’, ’1. Sunset Blvd’, . . .”。按照经典的候选生成方法候选物品没有特定的顺序。我们将不同候选集生成模型的召回结果放到一个集合中并随机排序。我们考虑了一个相对较小的候选集并保留了20个候选物品即m20进行排序。实验表明LLM对提示中示例的顺序很敏感。因此我们在提示中为候选物品生成了不同的顺序这使我们能够进一步验证LLM的排序结果是否受到候选集排列顺序的影响即位置偏差以及如何通过bootstrapping来减轻位置偏差。 使用大型语言模型进行排序。为了使用LLM作为排序模型我们最终将上述模式集成到指令模板T中。一个可行的示例指令模板可以是“ [pattern that contains sequential historical interactions H] [pattern that contains retrieved candidate items C] Please rank these movies by measuring the possibilities that I would like to watch next most, according to my watching history. You MUST rank the given candidate movies. You cannot generate movies that are not in the given candidate list.”。 解析LLM的输出。通过将指令输入LLM我们可以获得LLM的排序结果以供推荐。请注意LLM的输出仍然是自然语言文本我们使用启发式文本匹配方法解析输出并将推荐结果与候选集进行匹配。具体来说当物品的文本较短且能够区分时如电影标题我们可以在LLM输出和候选物品的文本之间直接执行高效的子串匹配算法如KMP。否则我们可以为每个候选物品分配一个索引并指示LLM直接输出排序后的物品索引。尽管提示中包含了候选物品但LLM可能生成候选集合之外的物品。而对于GPT-3.5这种误差的比例非常小约为3%。在这种情况下我们可以提醒LLM这个错误让它重新输出也可以简单地将其视为不正确的输出而忽略。 参考文献13在两个公开数据集上进行实验得出了几个关键发现这些发现可以用于指导如何将LLM作为推荐系统的排序模型 LLM可以利用用户历史行为进行个性化排序但很难感知给定的交互历史的顺序。通过采用专门设计的提示如关注最近提示和上下文学习可以触发LLM感知历史互动的顺序从而提高排序效果。LLM优于以前的zero-shot推荐方法特别是在多个不同的召回排序算法生成的候选集上有较好的表现因此是一种非常有竞争力的zero-shot方法。LLM在排序时存在位置bias和热门bias这可以通过提示或bootstrapping策略来缓解。 22.2.2.3.2 few-shot推荐 所谓few-shot推荐就是在预训练好的大模型基础上提供指导大模型进行推荐的几个式例样本告诉大模型该怎么推荐然后激活大模型的个性化推荐能力让大模型进行个性化推荐。参考文献6中设计的方法就是一个非常好的案例下面我们来简单讲解一下参考文献17的核心思想。 参考文献17设计了一组提示并评估了ChatGPT在五种推荐场景包括评分预测、序列推荐、直接推荐、解释生成和评论摘要中的表现。与传统的推荐方法不同整个评估过程中不会微调ChatGPT只依靠提示本身将推荐任务转换为自然语言任务。此外还探索了使用few-shot提示来注入包含用户潜在兴趣的交互信息以帮助ChatGPT更好地了解用户的需求和兴趣。在Amazon Beauty数据集上的实验结果表明ChatGPT在某些任务中取得了较好的结果在其他任务中也能够达到基线水平。 使用ChatGPT完成推荐任务的工作流程如下面图12所示包括三个步骤。首先根据推荐任务的具体特征构建不同的prompt。其次这些prompt被用作ChatGPT的输入期望ChatGPT根据prompt中指定的要求生成推荐结果。最后优化refinement模块对ChatGPT的输出进行检查和优化优化后的结果作为最终推荐结果返回给用户。下面分别对这3个步骤加以说明。 图12利用ChatGPT执行五项推荐任务并评估其推荐性能的工作流程图片来源于参考文献17 步骤1特定任务的prompt构造 特地任务的prompt构造通过设计针对不同任务的prompt来激发ChatGPT的推荐能力。每个prompt包含三个部分任务描述task description、行为注入behavior injection和格式指示符format indicator。任务描述用于使推荐任务适应自然语言处理任务。行为注入旨在评估few-shot prompt的影响它整合了用户-物品交互以帮助ChatGPT更有效地确定用户偏好和需求。格式指示符用于约束输出格式使推荐结果更易于理解和评估。下面图13、14是prompt的式例。 图13亚马逊Beauty数据集上基于准确性任务的prompt示例。黑色文本表示任务描述红色文本表示格式要求蓝色文本表示用户历史信息或few-shot信息灰色文本表示当前输入图片来源于参考文献17 图14亚马逊Beauty数据集上面向可解释性任务的prompt示例。黑色文本表示任务描述红色文本表示格式要求蓝色文本表示用户历史信息或few-shot信息灰色文本表示当前输入图片来源于参考文献17 步骤2利用chatGPT生成推荐结果 这一步就是将上面构造好的prompt作为自然语言对话的形式注入chatGPT比如通过调用chatGPT的API等获得最终的输出即推荐结果。由于这一步完全是基于chatGPT的自然语言生成能力属于黑盒我们这里不展开说明。 步骤3推荐结果优化 为了确保生成结果的多样性ChatGPT在其响应生成过程中加入了一定程度的随机性这可能会导致对相同输入产生不同的输出。因此当使用ChatGPT进行推荐时这种随机性有时会导致评估推荐物品的困难。虽然提示结构中的格式指示符可以部分缓解这一问题但在实际使用中它仍然不能保证预期的输出格式。因此才需要输出优化模块来检查ChatGPT的输出格式。如果输出通过了格式检查它将直接用作最终输出。如果没有通过则会根据预定义的规则对其进行修改。如果格式校正成功则校正后的结果将用作最终输出。如果没有校正成功则将相应的提示输入ChatGPT以进行重新推荐直到满足格式要求为止。 需要注意的是在评估ChatGPT的输出时不同的任务有不同的输出格式要求。例如对于评分预测输出只需要特定的分数而对于序列推荐或直接推荐输出是推荐物品的列表。特别是对于序列推荐一次将数据集中的所有物品注入ChatGPT是一项挑战因为chatGPT有输入token数量限制。因此ChatGPT的输出可能与数据集中的物品集不匹配即输出的物品不在数据集中。为了解决这个问题论文中引入了一种基于相似性的文本匹配方法将ChatGPT的预测映射回原始数据集。尽管这种方法可能不能完全反映ChatGPT的能力但它仍然可以间接展示chatGPT在序列推荐中的潜力。 22.2.3 大模型用于交互控制 所谓大模型应用于交互控制就是指利用chatGPT、LaMDALaMDA是Google2022年初发布的基于对话的大模型比chatGPT还早见参考文献18这类基于对话的大模型能力来革新现有的推荐交互范式让chatGPT、LaMDA来控制整个推荐的流程这包括两个方面一是让chatGPT、LaMDA来整合所有的推荐模块比如召回、排序等控制整个推荐流程chatGPT、LaMDA来决定在什么时间节点、什么场景下调用哪个模块来与用户交互二是采用对话交互的方式给用户进行推荐而不是传统的APP上用户通过触屏互动的方式进行推荐这个场景在汽车、智能音箱、机器人等应用中进行个性化推荐非常有吸引性也可能是唯一可行的交互方式。 利用chatGPT、LaMDA的交互控制能力来进行个性化推荐目前有一些相关的研究其中参考文献19、20就是这方面的尝试。参考文献19是利用chatGPT整合传统推荐召回模块来控制整个推荐流程而参考文献20是利用LaMDA进行交互式对话推荐当然文献19中也是利用对话的形式进行推荐的这两篇文章刚好覆盖了上面提到的对话大模型应用于推荐系统流程控制的两个方面下面我们分别展开详细说明。 22.2.3.1 利用chatGPT控制推荐流程 参考文献19提出了一种新的基于chatGPT的大模型推荐系统Chat-REC。Chat-REC可以通过上下文有效地学习用户偏好并在用户和待推荐物品之间建立联系这使推荐过程更具互动性和可解释性。此外在Chat-REC框架内用户的偏好可以迁移到不同的物品中进行跨领域推荐并且基于prompt的信息注入大模型也可以处理新物品的冷启动场景。Chat-REC有效地改进了top-k推荐的效果并在zero-shot评分预测任务中表现很好。Chat-REC的流程架构见下面图15下面我们简单介绍一下相关原理。 图15Chat-REC的流程架构。左侧显示了用户和ChatGPT之间的对话。中间部分的流程图显示了Chat-REC是如何将传统推荐系统与ChatGPT等对话人工智能联系起来的。右侧描述了交互过程中的具体判断逻辑。图片来源于参考文献19 Chat-REC的输入包括4部分参见图15中间上面部分用户物品的交互历史记录user-item history interaction、用户画像user profile、用户查询user query、历史对话history of dialogue、另外一个传统的推荐系统。如果该任务被确定为推荐任务则Chat-REC使用来生成候选物品集。否则直接回应用户例如生成任务的解释或对推荐物品进行详细介绍。Chat-REC的prompt构造器模块采用上面提到的4类输入来生成捕获用户的查询和推荐信息的自然语言段落下面详细介绍一下。 用户物品历史交互信息指的是用户过去与物品的交互例如点击、购买或评分的物品此信息用于了解用户的偏好并为推荐注入个性化。用户画像其中包含有关用户的人口统计学信息和偏好信息。这可能包括年龄、性别、地点和兴趣。用户画像有助于系统了解用户的特征和偏好。用户查询这是用户对信息或推荐的特定请求。这可能包括他们感兴趣的特定物品或类型或者对特定类别物品的推荐请求。对话历史记录其中包含用户和系统之间先前对话。该信息用于理解用户的上下文信息借助这些信息可以让Chat-REC提供更个性化和相关的反馈。 如下面图16所示Chat-REC是一个具有对话界面的推荐系统使交互式和可解释的推荐成为可能。基于上述输入prompt构造函数模块生成一个自然语言段落参见下面的图17、18总结用户的查询和推荐信息并对用户的请求提供更个性化和相关的反馈。推荐系统生成的中间答案随后用于细化prompt构造函数并生成优化的prompt以进一步从推荐候选集中筛选更匹配的物品最终的推荐结果和简单的解释会一并反馈给用户。 图16交互式推荐的案例。图中展示了不同用户和LLM之间的两个对话。其中用户画像和用户历史对话被转换为个性化推荐的相应prompt但这部分prompt的输入对用户来说是不可见的。左边的对话显示当用户询问为什么推荐电影时LLM可以根据用户的偏好和推荐的电影的具体信息给出解释。右侧的对话框显示Chat-REC可以根据用户反馈进行多轮推荐。关于电影细节的问题也可以用特定的方式回答。LLM在推荐电影时也会考虑到伦理和道德问题。图片来源于参考文献19 图17top-k推荐的prompt图片来源于参考文献19 图18评分预测的prompt图片来源于参考文献19 Chat-REC可以看成是基于传统推荐召回算法的一种排序策略。传统的推荐系统通常会生成少量经过排序的候选物品每个物品都有反映推荐系统推荐结果的置信度或质量的分数。然而考虑到物品集的巨大规模大多数现有推荐系统的性能都远远不能令人满意仍有很大的改进空间。 Chat-REC通过将chatGPT跟传统推荐系统结合通过缩小候选集来提高推荐系统的性能。推荐系统生成一大堆候选物品这对用户来说可能有点多。chatGPT在缩小候选物品集的范围方面发挥着关键作用。首先我们将用户的画像、历史互动信息、商品描述和用户评分转换为prompt。其次chatGPT根据上述信息总结用户对候选集中物品的偏好chatGPT可以从上下文中学习并有效地捕捉用户的背景信息和偏好。有了这些信息就可以建立物品属性和用户偏好之间的关系最终才能够做出更好的物品推荐。通过利用上下文学习LLM可以增强其推荐推理能力从而获得更准确、更个性化的物品推荐。 一旦chatGPT了解了用户的偏好由传统推荐系统生成的候选集就被提供给chatGPT。LLM可以进一步根据用户的偏好对候选集进行筛选和排序。chatGPT确保向用户提供一组更小、更相关的物品增加了找到用户喜欢的物品的可能性。 22.2.3.2 利用LaMDA进行对话式推荐 参考文献20实现了一个基于Google的LaMDA对话大模型的对话式推荐系统Conversational Recommender SystemCRS——RecLLMRecLLM实现了端到端的对话式推荐借助大模型可以实现用户偏好理解、灵活的对话管理和可解释的推荐。为了实现个性化利用大模型理解自然语言表示的用户画像并使用它们来优化与用户的互动会话并提出了基于大模型技术的用户模拟器以生成合成会话以解决会话数据不足的问题。RecLLM的整体架构参考下面图19。 图19RecLLM的主要模块。1 对话管理模块使用大模型与用户对话、跟踪上下文并进行系统调用例如向推荐引擎提交请求所有这些都在一个统一语言模型控制下进行。2 在大模型CRS框架下实现物品库中物品的抽取。3 ranker模块使用大模型将从对话上下文中提取的偏好与物品元数据相匹配并生成给用户的推荐列表。大模型还同时生成推荐的解释这些解释可以呈现给用户。4 大模型利用自然语言描述的用户画像来调节会话上下文目的是增加个性化。5 利用大模型实现的用户模拟器可以作为插件接入CRS以生成用于训练各个系统模块的数据。图片来源于参考文献20 关于上图的5个模块我们这里简单说明一下。①是对话管理系统是RecLLM的核心我们下面会重点说明。②就是传统的推荐搜索系统在合适的时机对话系统会进行调用。③我们在前面召回、排序中也讲过类似的思路RecLLM的Ranker模块的一个特点是在生成排序的同时生成一段解释这样可以提升用户的信任度和体验。④是用户画像的存储模块RecLLM将用户的画像按照自然语言的形式来存储比如“I do not like listening to jazz while in the car”每一条信息当成一条知识存到用户画像模块的后端存储系统中在需要的时候基于用户会话的最后一句话进行嵌入然后在用户画像的所有知识中进行相似性查询用户画像的知识也是离线进行过向量化了的找出最相似的一条知识。 下面来详细说一下对话管理模块。对话管理是CRS的核心模块充当用户与系统其他部分之间的接口。它负责引导用户对推荐语料库进行多轮探索并为用户生成合理、有用的反馈信息。在这个过程中它必须隐式或显式地执行上下文跟踪以提取用户偏好和意图的有用表示。这些信息可用于通知对话策略也可以作为API调用以启动系统操作的信号例如通过向传统的推荐引擎后端发送搜索查询。从端到端的角度来看对话管理器的目标是基于给定的上下文信息对话历史、用户画像、物品摘要等执行相关的动作或者生成应对用户的自然语言应答对话管理模块的原理图参考下面图20。 图20统一的大模型对话管理模块。大模型将完整的会话上下文作为输入并在终端输出一系列消息这些消息就是CRS对用户请求的回应。图片来源于参考文献20 22.2.4 大模型用于解决冷启动 冷启动是当用户或物品与推荐系统没有交互记录时在推荐系统中无法进行很好地推荐的问题。为了解决这个问题可以对内容特征进行建模或从辅助领域迁移知识。前一种方法侧重于根据物品或用户的内容如文本、图像或元数据获得其特征如22.2.3.2节中的U-BERT方法。后一种方法涉及利用来自其他领域的信息如社交网络或产品描述来推断用户偏好如22.2.3.2节提到的U-BERT、UniSRec方法。此外还有一种方法是让推荐系统快速适应新的领域如通过EE、或者跟用户互动的方式快速探索出用户的兴趣。推荐模型在冷启动中的良好泛化能力对于确保更好的用户体验和提高参与度至关重要。 借助上面提供的思路大模型的推理能力和压缩的世界知识可以用于解决推荐系统中的冷启动问题。有了关于物品无论是新物品还是旧物品的文本描述和简介信息大模型都可以有效地将这些物品相互关联起来这为我们便捷地解决冷启动推荐问题提供了新的机会。在22.2.3.1节中介绍的Chat-REC就具备这种能力。 例如如果用户要求推荐2021年上映的新电影Chat-REC可以使用关于该电影的文本数据来生成嵌入然后计算与系统中其他电影的相似性来进行推荐。该功能允许推荐系统对新物品进行相关且准确的推荐从而改善整体用户体验。 大型语言模型可以使用它们所包含的大量知识来帮助推荐系统缓解新物品即缺乏大量用户交互的物品的冷启动问题。然而由于ChatGPT掌握的知识仅限于2021年9月当遇到未知物品时ChatGPT无法很好地应对例如用户请求推荐2023年发布的一些新电影或请求ChatGPT不知道的电影这些电影可能不在chatGPT训练语料库中。这时可以引入了关于新物品的外部信息利用大型语言模型生成相应的嵌入表示并缓存它们可以借助Milvus等向量数据库。 当遇到新的物品推荐时我们计算物品嵌入与用户偏好的嵌入之间的相似性然后根据相似性检索最相关的物品信息并构造一个prompt输入到ChatGPT进行推荐也就是当chatGPT无法推荐时可以增加判断规则利用向量数据库去检索相似物品。这种方法允许推荐系统与ChatGPT协同工作更好地推荐新物品从而增强用户体验参见下面图21。 图21上面部分展示了Chat-REC如何利用新物品的外部信息处理新物品推荐的流程。底部展示了在合并外部信息后Chat-REC可以有效地处理新物品的推荐。图片来源于参考文献19 冷启动推荐的解决方案要么学习对内容特征进行建模以便在没有交互记录的情况下进行推荐要么学习从辅助领域迁移表示。zero-shot或few-shot推荐的另一条工作线讨论了对新领域的快速适应而不是仅为冷启动情况提供推荐。解决方案通常遵循元学习meta learning或因果学习causal learning框架这些框架使模型对领域适应具有鲁棒性。 参考文献21中提出了一个PPR Personalized prompt-based recommendation框架可以很好地解决用户冷启动问题。对于每个用户首先通过prompt生成器根据用户画像即用户的静态属性如年龄、性别等构建个性化prompt这里的prompt是soft prompt即嵌入向量的形式的prompt而不是我们前面提到的自然语言形式的prompt关于soft prompt的介绍读者可以阅读参考文献22、23并将其插入用户行为序列的开头。然后将新序列输入到预先训练的序列模型中以获得用户的行为偏好。用户画像被进一步添加到另一个网络中以生成用户的属性attribute偏好。我们这里不展开讲解有兴趣的读者可以阅读论文原文。 22.2.5 大模型应用于推荐解释 基于文本的推荐解释由于其在向用户传达丰富信息方面的优势已成为推荐系统的一种重要解释形式。然而当前生成句子解释的方法要么局限于预定义的句子模板这限制了句子的表达能力要么选择自由风格的句子生成这使得句子质量控制变得困难。由于大模型有很好的语言理解和生成能力利用大模型进行文本推荐解释是很自然的想法。参考文献17就利用chatGPT的zero-shot和few-shot能力进行推荐解释具体与chatGPT进行交互的描述参考下面图22。 图22利用chatGPT进行推荐解释图片来源于参考文献17 利用机器学习的一些评估指标如BLEU-n、ROUGE-n对chatGPT生成的推荐解释进行评估chatGPT可能没有一些经过特定训练的模型如P5见参考文献6的指标好但是通过人工进行评估通过众筹的方式见参考文献17发现chatGPT的人工评估得分更高chatGPT能够更好地理解提供的信息能够生成更合理、更清晰的解释。 参考文献19中提出的Chat-REC方法也是基于chatGPT进行推荐的并且也可以生成比较合理的解释读者可以查看上面的图16中的说明。参考文献21提出了一种神经模板NETE解释生成框架该框架通过从数据中学习句子模板并生成对特定特征进行评论的、模板控制的句子这种方法提高解释文本的表达能力和质量。参考文献25提出了一个推荐解释框架PETERPErsonalized Transformer for Explainable Recommendation该框架设计了一个简单有效的学习目标利用ID用户ID、物品ID来预测解释文本中的单词赋予ID语言意义从而实现了个性化的Transformer这是传统Transformer模型不具备的能力。除了生成解释PETER还可以提供个性化推荐这使它成为一个完成推荐、解释pipeline任务的统一模型。如果读者对利用大模型做推荐解释感兴趣可以好好阅读这两篇论文我们这里就不过多展开说明了。 22.2.6 大模型用于跨领域推荐 为了解决推荐系统中的数据稀疏性和冷启动问题可以利用来自其他领域的行为信息来提高目标域的推荐效果这就是跨领域推荐。跨领域推荐是指借助一些链接信息推荐系统在一个领域学得的知识可以用于在另外一个领域进行个性化推荐机器学习中的迁移学习可以用于解决这类问题。大多数方法依赖两个领域的重叠数据如重叠的用户、物品、社交网络、属性等来进行跨领域的知识转移。有一些方法试图学习面向用户的不同下游任务的通用用户表示然而需要这两个领域有共享的数据限制了该方法的应用范围。 跨领域的推荐是一个非常大的、非常复杂的问题有兴趣的读者可以阅读参考文献26进行了解。同时参考文献26的参考文献也提供了非常多的跨领域推荐的成果大家可以进行有选择的学习。本节我们主要聚焦怎么利用大模型解决跨领域推荐问题。 由于大模型压缩了互联网世界的海量信息那么任何两个领域之间在大模型中可能存在某种链接只要找到这两个领域的链接关系是可以借助大模型来进行跨领域推荐的。比如借助物品的描述信息可以采用大模型作为物品描述特征编码器以实现迁移学习和跨领域推荐这里描述物品信息的自然语言就是连接来自不同领域的异构信息的桥梁。 参考文献19种的Chat-REC模型就是一个利用chatGPT进行跨领域推荐的很好的案例。利用互联网上的信息预先训练的chatGPT大模型实际上可以作为多视角的知识库。除了电影等一个领域的目标物品外大模型不仅对音乐和书籍等许多其他领域的产品有着广泛的了解而且还了解上述领域的物品之间的关系。 例如如下面图23所示一旦关于电影推荐的对话结束用户就向Chat-REC询问关于其他类型作品的建议。Chat-REC随后根据用户的电影偏好推荐各种选项如书籍、电视剧、播客和视频游戏。这展示了Chat-REC将用户偏好从电影转移到其他作品的能力从而产生跨域推荐。这种跨领域推荐能力有可能显著扩展推荐系统的范围和相关性。 图23Chat-REC跨领域推荐的案例图片来源于参考文献19 前面22.2.2.2节中提到的U-BERT见参考文献3大模型推荐系统也属于跨领域推荐。在预训练中U-BERT专注于内容丰富的领域并引入了一个用户编码器和一个评论编码器来对用户的行为进行建模。在微调中U-BERT借助预训练模型获得的用户表示在目标内容不足的领域进行个性化推荐。 另外前面22.2.2.2.2节中提到的UniSRec模型就可以很好地解决跨领域推荐问题。UniSRec模型通过基于文本的预训练模型以通用的方式表示物品可以实现领域自适应该方法不要求源域和目标域密切相关。UniSRec通过精心设计的通用预训练任务和MoE增强的适配器架构借助UniSRec模型中的通用SRLSequence Representation Learning方法可以在来自多个源域的数据上进行预训练并应用到没有共享数据的目标域中。 22.3 大模型应用于推荐系统的问题及挑战 我们上面讲解了大模型在推荐系统各个方面的应用推荐系统的每一个子领域或者细分方向都可以被大模型赋能看起来大模型像是无所不能实际上大模型在推荐系统的应用还处在非常初级的阶段目前大多数还是在学术研究、业务探索阶段。将大模型应用于推荐系统不是一件容易的事情会面临非常多的问题和挑战下面我们就针对这方面做简单说明让读者大致了解大模型推荐系统当前可能存在的问题。 大语言模型本身就存在一些已知的问题比如幻觉、知识过时大模型只能获取在训练的当前时间物料库中对应的知识、资源消耗训练、推理需要大量的GPU计算资源等。这些问题目前也有一些处理方式比如幻觉可以利用RLHF等技术缓解知识过时可以在大模型应用时接入搜索引擎推理时资源消耗目前也可以通过模型蒸馏等技术优化但是这些问题还是无法彻底地解决这对大模型应用于推荐系统也会产生副作用。 本节我们不深入探讨大模型本身的问题带来的困难与挑战我们主要从推荐系统的角度来讲解大模型应用于推荐系统这个下游任务时可能存在的问题及挑战下面我们分5个维度展开说明。 22.3.1 大模型进行信息交互的形式限制 目前大模型主要还是语言大模型推荐系统跟大模型交互必须将所有信息编码为文本信息注入模型而推荐系统的重要信息除了文本外还有用户ID、物品ID这些一般是数字或者字符串的形式他们跟文本不在同一个语义空间不适合直接当成文本使用。如果无法很好地整合这些信息这可能会导致部分信息的丢失导致预测准确度的降低。 针对物品ID很多大模型方法如参考文献17直接用物品的标题来代替这虽然可以部分解决冷启动问题但是用户与物品的协同交互信息等可能会缺失导致效果不佳。同时很多物品的标题很相似、甚至一样导致很难区分。 用户ID识别目前也没有很好的解决方案一般是将用户的历史行为或者与大模型交互的上下文作为信息输入大模型来给用户进行推荐。很多用户可能交互历史比较多很难全部注入大模型一是下面将要讲到的token限制二是下面讲到的大模型目前存在位置bias所以在必要的时候需要借助传统推荐系统进行召回、然后利用大模型优化召回的结果将最终的推荐结果展示给用户。 22.3.2 大模型输入的token长度限制 目前chatGPT只能输入4000 token约3000个单词GPT-4 提升到了32k token即3万2千个token约2.4万个单词。token的数量限制严重影响大模型的ICL上下文学习、CoT思维链能力因此是一个非常重要的问题。 token太少了的话对大模型应用于推荐系统至少会存在两个问题一是待推荐的物品集可能无法全部输入到大模型导致大模型可能会生成不在物品集中的物品。如果预测的物品不在候选物品集中可以通过物品的title进行语义匹配但是效果不一定好见参考文献17二是用户的交互行为记录或者用户跟大模型的历史会话可能无法全部输入到模型中这导致大模型无法获得用户最全面的兴趣偏好导致推荐精度下降。 目前虽然有论文见参考文献27提到可以将token拓展到一百万但是在超大规模的大模型中是否能很好地应用还不清楚这个方法目前也没有得到工业界的有效性验证。 22.3.3 位置bias 位置bias说的是将大模型作为ranking时当我们将候选物品集输入大模型输入的物品的顺序对最终预测结果影响比较大。如果待推荐的物品放到候选物品集的前面时预测结果比放在后面好参考文献13、17都提到了这个现象其中参考文献13是通过bootstrap也就是多次随机候选物品集的顺序输入大模型的方式来缓解这个问题的。 22.3.4 流行度bias 这个问题在一般推荐系统中也存在也就是推荐系统一般会倾向于推荐更热门的物品。大模型学习的是世界知识那么热门的物品在大模型的训练语料库中当然会更多所以导致大模型在应用于推荐时也会倾向于推荐热门的物品。参考文献13中提到当输入给用户的待推荐候选集数量更少时流行度bias会适当好些。但是候选集太少可能会错失输入用户可能感兴趣的物品即召回率可能会降低。 22.3.5 输出结果的不可控性 大模型的输出是带有随机性的一般会有一个温度参数来控制温度参数范围为0-100值越大生成的文本随机性也越大。大模型的输出随机性也是有价值的这可以让大模型可以展示出一定的组合式创造能力。 大模型输出结果的不可控性会导致多次输入相同的推荐候选集获得的输出可能都不一样这种不一致性对于推荐的追溯和排查带来一定的难度输出结果的不一致性甚至会产生输出的物品不在候选集中的情况。目前这个问题不太好解决一般会在大模型输出后增加一次优化逻辑对大模型的输出结果微调保证最终给到用户的推荐是满足要求的。 22.4 大模型推荐系统的发展趋势与行业应用 我们在上面花了非常多的篇幅讲解了大模型怎么应用于推荐系统知道了大模型基本可以应用于推荐系统的各个方面包括数据处理、特征工程、召回、排序、交互控制、冷启动、推荐解释、跨领域推荐等读者也大致知道了大模型的威力了。 目前大模型在推荐系统上的应用还处于起步阶段但是在推荐系统各个应用方面都有相关的学术探索并取得了较好的实验结果未来几年就是在企业落地了。我相信再花1-2年随着大模型技术的发展大模型训练、推理一定会加速成本也会降低目前大模型存在的一些问题见上面一节的介绍也会出现比较好的解决方案大模型的行业应用一定会遍地开花。 下面基于作者在推荐行业多年的实践经验及作者对大模型和大模型推荐系统的理解说说大模型在未来几年的发展趋势及在行业上的应用。我们从下面5个维度来展开说明大模型应用于行业的形式及可能对行业带来的影响和变革。 22.4.1 大模型和传统推荐系统互为补充 传统推荐系统发展了这么多年目前技术非常成熟也在商业上获得了非常好的效果很多方法非常有价值。在未来几年主流的推荐系统架构还会保持不变这主要是APP产品的形态不变比如淘宝还是以手机上的触屏交互为主那么大模型可能就是作为整个推荐架构中各个模块的补充比如通过大模型提取特征、进行召回、排序、利用大模型压缩的世界知识进行跨领域、多场景的推荐等。这方面的应用上面的22.2节也介绍了非常多无非是在未来几年怎么更好地落地到工业界真正产生业务价值。 目前的推荐系统是场景特定的机器学习应用这是指在任何一个新的场景需要基于新场景的数据重新训练推荐模型每个场景的模型大小、参数等可能不一样当前的推荐系统还无法做兼容非常多的行业、场景。有了大模型的加持后面可以基于大模型进行预训练然后再在不同场景进行微调或者进行zero-shot、few-shot推荐这样就可以极大降低推荐系统应用到新行业、新场景的难度这对于云计算厂商、或者toB创业公司将推荐系统应用到各行各业是一个非常大的优势。同理有多个业务的生态公司也会受益于大模型推荐系统的这种强泛化能力可以将大模型推荐系统应用于公司的各个子业务。 22.4.2 融合多模态信息是大模型推荐的方向 大模型对于用户ID、物品ID这类数据还较难处理目前没有很好的方法将这些信息注入到大模型中也即将用户本身的识别问题及用户与物品ID的交互信息压缩到大模型的参数中这个方向也是整个推荐行业需要克服的困难。 目前GPT-4已经具备了一定的多模态能力了midjourney、runway等公司的模型能很好地生成图片、视频。待大模型的多模态能力更加完善就可以更好地应用于推荐系统。 推荐系统的数据本身就是多源的、异构的数据参见第4章的介绍包含用户ID、物品ID、表格数据、文本、图片、视频、音频等。如果大模型具备一致地处理多模态数据的能力那么这些数据中蕴含的物品物品之间、物品与用户之间、用户与用户之间的联系可以更好地被大模型学习到进而可以做出更加精准的、一致的推荐。 22.4.3 基于增量学习的大模型推荐系统一定会出现 当前的大模型学习范式主要有三个预训练直接使用、先预训练再微调、先预训练再zero-shot或few-shot这很难将动态的信息压缩到模型中而人类的学习就是增量学习的。怎么让大模型具备增量学习的能力目前是一个比较大的挑战也是非常有业务价值的一个方向。 解决大模型增量学习的方法可能有两个一个是通过快速微调的方式注入新信息到模型中这个方法难度会更低属于打补丁的做法效果上可能也会打折扣第二个方法是直接让整个大模型也就是预训练过程具备增量学习的能力也就是新样本输入模型后在神经网络中“走一遍”就可以动态地微调大模型的参数。 一旦大模型具备了增量学习能力了那么现在的实时推荐系统就可以做成一个自动进化的系统无需太多的人工和工程干预就可以自动学习用户随时间的兴趣变化做到越来越智能越来越懂用户最终让用户体验、商业价值得到极大的提升。 22.4.4 对话式推荐系统会成为重要的产品形态 我们在22.2.3节中介绍了2个利用大模型进行交互控制的算法案例相信大家也有所了解了。大模型最大的价值是可以利用自然语言进行流畅的交互就像人与人对话一样自然。这种对话式推荐最大的价值在于互动性能够增加用户的信任感和接受度同时在对话过程中可以逐步挖掘用户当前真实的兴趣偏好。 对话式推荐系统的应用场景未来会非常多包括对话机器人、车载智能设备、智能音箱、智能电视等未来这些适合对话式互动的场景一定会被基于大模型的对话式推荐系统所取代。 传统的推荐场景比如抖音首页推荐、淘宝推荐等如果借助对话推荐的思路在用户滑动屏幕过程中通过提示等方式配合滑动也可以部分起到对话互动的作用但是具体怎么实现可能需要产品经理和设计师进行相关的探索和实践。 22.4.5 借助大模型推荐和搜索有可能合二为一 chatGPT发布不久微软就宣布将chatGPT整合到bing搜索中目前百度、Google的搜索系统中都有大模型相关的能力加持。基于上面提到的大模型的互动对话能力搜索和推荐很有可能被融合到一个统一的业务框架中目前虽然手机百度中包含推荐但是搜索和推荐还是比较割裂的没有真正融为一体。 其实搜索是用户基于明确的目标的信息获取过程用户通过输入关键词或者一句话来获取所需的内容。而推荐是基于用户过往的历史通过模型学习用户的兴趣再基于兴趣给用户进行推荐我们可以将推荐系统理解为基于用户所有历史或者挖掘出的用户的兴趣点的搜索过程在这个思考框架下它们就是统一的。另外搜索和推荐的技术体系是一致的在工业界都是分为召回、排序的过程利用的算法也基本都是通用的一套这更有利于搜索与推荐的统一。 大模型通过互动式对话就可以非常自然的在同一个对话框中融合推荐、搜索能力也即可以通过自然语言跟用户的互动将推荐、搜索融入到了服务用户的能力当中。 总结 本章我们基于chatGPT、大模型的核心能力讲解了chatGPT、大模型为什么能应用于推荐系统。我们详细讲解了在推荐系统的各个维度大模型是怎么应用的包括数据处理、特征工程、召回、排序、互动对话、冷启动、推荐解释、跨领域推荐等推荐系统的重要维度都可以应用大模型。大模型在召回、排序的应用是本章的重点读者需要了解大模型3种最重要的应用范式预训练范式预训练、微调范式预训练、提示范式。 当前大模型应用于推荐系统会存在一些问题和挑战比如受信息交互形式、输入token长度的限制同时大模型也会出现位置bias、流行度bias及推荐结果的随机性。虽然有这么多问题大模型未来几年一定会在行业上遍地开花。大模型会跟传统推荐系统很好地融合、取长补短多模态信息和增量学习这些大模型目前比较难解决的问题待解决后一定会应用到推荐系统中。另外由于大模型天然的自然语言处理能力对话式推荐肯定会在非常多的场景中起主要作用搜索与推荐由于解决的问题可以在自然语言下统一到一个框架之下这一趋势在未来几年一定会出现。 目前chatGPT、大模型在推荐系统的应用还处于学术研究阶段读者可以阅读参考文献28、29进一步了解大模型应用于推荐系统的各种可能只有非常少的行业探索案例。本章我们也主要是结合学术文章基于作者自己的行业经验和对推荐系统的理解进行了详细的介绍。作者对大模型在推荐系统的应用非常有信心相信不出几年以大模型为基础能力的推荐系统一定会革新现有的推荐体系所以希望读者多关注这方面的研究和行业动向多思考、多实践一定要跟上技术的发展大势。 参考文献 Jason Wei, Yi Tay, Rishi Bommasani, Colin Raffel, Barret Zoph, Sebastian Borgeaud, Dani Yogatama, Maarten Bosma, Denny Zhou, Donald Metzler, et al. Emergent abilities of large language models. arXiv preprint arXiv:2206.07682, 2022.[Borisov et al., 2023] Vadim Borisov, Kathrin Sessler, Tobias Leemann, Martin Pawelczyk, and Gjergji Kasneci. Language models are realistic tabular data generators. In The Eleventh International Conference on Learning Representations, 2023.[Qiu et al., 2021] Zhaopeng Qiu, Xian Wu, Jingyue Gao, and Wei Fan. U-bert: Pre-training user representations for improved recommendation. In Proceedings of the AAAI Conference on Artificial Intelligence, volume 35, pages 4320–4327, 2021.[Liu et al., 2023b] Peng Liu, Lemei Zhang, and Jon Atle Gulla. Pre-train, prompt and recommendation: A comprehensive survey of language modelling paradigm adaptations in recommender systems. arXiv preprint arXiv:2302.03735, 2023. 2019 BERT4Rec: Sequential Recommendation with Bidirectional Encoder Representations from Transformer2022 Recommendation as Language Processing (RLP): A Unified Pretrain, Personalized Prompt Predict Paradigm (P5)2022 M6-Rec- Generative Pretrained Language Models are Open-Ended Recommender SystemsWang-Cheng Kang and Julian McAuley. 2018. Self-attentive sequential recommendation. In 2018 IEEE international conference on data mining (ICDM). IEEE, 197–206.Colin Raffel, Noam Shazeer, Adam Roberts, Katherine Lee, Sharan Narang, Michael Matena, Yanqi Zhou, Wei Li, and Peter J. Liu. 2020. Exploring the Limits of Transfer Learning with a Unified Text-to-Text Transformer. Journal of Machine Learning Research 21, 140 (2020), 1–67. http://jmlr.org/papers/v21/20- 074.html[Hou et al., 2022] Yupeng Hou, Shanlei Mu, Wayne Xin Zhao, Yaliang Li, Bolin Ding, and Ji-Rong Wen. Towards universal sequence representation learning for recommender systems. In SIGKDD, pages 585–593, 2022.[Shang et al., 2019] Junyuan Shang, Tengfei Ma, Cao Xiao, and Jimeng Sun. Pre-training of graph augmented transformers for medication recommendation. In IJCAI-19, pages 5953–5959, 7 2019.[Zhou et al., 2020] Kun Zhou, Hui Wang, Wayne Xin Zhao, Yutao Zhu, Sirui Wang, Fuzheng Zhang, Zhongyuan Wang, and Ji-Rong Wen. S3-rec: Self-supervised learning for sequential recommendation with mutual information maximization. In ACM CIKM, pages 1893–1902, 2020.[Hou et al., 2023] Yupeng Hou, Junjie Zhang, Zihan Lin, Hongyu Lu, Ruobing Xie, Julian J. McAuley, and Wayne Xin Zhao. Large language models are zero-shot rankers for recommender systems. CoRR, abs/2305.08845, 2023.Zero-Shot Next-Item Recommendation using Large Pretrained Language Models[Sileo et al., 2022] Damien Sileo, Wout Vossen, and Robbe Raymaekers. Zero-shot recommendation as language modeling. In ECIR, pages 223–230, 2022.[Ding et al., 2021] Hao Ding, Yifei Ma, Anoop Deoras, Yuyang Wang, and Hao Wang. Zero-shot recommender systems. arXiv preprint arXiv:2105.08318, 2021.Is ChatGPT a Good Recommender? A Preliminary Study2022.02.10 LaMDA- Language Models for Dialog Applications2023 Chat-REC: Towards Interactive and Explainable LLMs-Augmented Recommender System[Friedman et al., 2023] Luke Friedman, Sameer Ahuja, David Allen, Terry Tan, Hakim Sidahmed, Changbo Long, Jun Xie, Gabriel Schubiner, Ajay Patel, Harsh Lara, et al. Leveraging large language models in conversational recommender systems. arXiv preprint arXiv:2305.07961, 2023.[Wu et al., 2022b] Yiqing Wu, Ruobing Xie, Yongchun Zhu, Fuzhen Zhuang, Xu Zhang, Leyu Lin, and Qing He. Personalized prompts for sequential recommendation. arXiv preprint arXiv:2205.09666, 2022.Xiang Lisa Li and Percy Liang. 2021. Prefix-tuning: Optimizing continuous prompts for generation. ACL-IJNLP (2021).Guanghui Qin and Jason Eisner. 2021. Learning How to Ask: Querying LMs with Mixtures of Soft Prompts. In Proceedings of NAACL.Li, L., Zhang, Y., Chen, L.: Personalized transformer for explainable recommendation. arXiv preprint arXiv:2105.11601 (2021) Li, L., Zhang, Y., Chen, L.: Generate neural template explanations for recommendation. In: Proceedings of the 29th ACM International Conference on Information Knowledge Management. pp. 755–764 (2020)  Zhu, F., Wang, Y., Chen, C., Zhou, J., Li, L., Liu, G.: Cross-domain recommendation: challenges, progress, and prospects. arXiv preprint arXiv:2103.01696 (2021)Scaling Transformer to 1M tokens and beyond with RMT2023.06.01 A Survey on Large Language Models for Recommendation2023.06.28 How Can Recommender Systems Benefit from Large Language Models- A Survey
http://www.huolong8.cn/news/239769/

相关文章:

  • 门户地方网站 策略昆明网站建设方案托管
  • 做一个网站大概需要多少钱wordpress 商务主题
  • 建开发网站百度竞价排名广告定价鲜花
  • 哪个网站做海南二手房网站导航栏分析
  • 网站建设前台后台设计深圳需要做网站的公司有哪些
  • 学网站开发需要学什么优质企业网站建设
  • 网站空间太小银川市网站建设
  • 网站带支付源码怎么创建网站平台
  • 网站建设效益分析海珠区建网站公司
  • 国外做ui的网站j深圳平台网站建设
  • 企业查询经营异常是怎么回事南昌做网站优化的公司
  • 网站开发员岗位职责天猫网站设计特点
  • 推荐几个看黄的网站静态网站制作视频
  • 智能手机网站开发godaddy如何创建网站
  • 沈阳网站建设包括服务器系统搭建网站源码
  • 自适应网站 seo怎么做郑州seo代理外包
  • 微网站建设哪家优惠编辑wordpress的代码
  • 罗湖附近公司做网站建设哪家好石家庄网站建设优化
  • 网站建设 应酷创意设计椅子
  • 保洁公司网站怎么做鞋店网站建设方案
  • 做网站预算表wordpress内核源码
  • 为什么建设的网站有时候访问慢6石家庄住建局网站
  • sem竞价教程咸阳seo
  • 公司网站维护与更新wordpress语法高亮
  • 常见的网站推广方法有哪些物联网水表
  • 网站管理助手创建数据库福田瑞沃汽车官网
  • 福建专业网站建设公司市场调研公司的最主要职能是
  • 网站营销案例好的优化网站推广公司
  • 永州做网站公司云上城之歌
  • 烟台网站开发网站免费高清素材软件有哪些