AI知识库

53AI知识库

学习大模型的前沿技术与行业应用场景


小红书发表NoteLLM,大模型在小红书笔记推荐中的落地应用
发布日期:2024-06-15 10:03:59 浏览次数: 2170


NoteLLM: A Retrievable Large Language Model for Note Recommendation



论文地址:https://arxiv.org/pdf/2403.01744


摘要


人们喜欢在网络社区中分享“笔记”,包括他们的经历。因此,推荐符合用户兴趣的笔记已成为一项至关重要的任务。现有的方法只是将笔记输入到基于bert的模型中,生成笔记嵌入来评估相似度。然而,他们可能没有充分利用一些重要的线索,例如,代表笔记关键概念的标签或类别。事实上,学习生成标签/分类可以潜在地增强笔记嵌入,这两种方法都可以将关键笔记信息压缩到有限的内容中。


本文提出了NoteLLM,它利用LLM来解决item-to-item(I2I)笔记建议。具体来说,我们利用笔记压缩提示将笔记压缩成单个特殊标记,并通过对比学习方法进一步学习潜在相关笔记的嵌入。此外,我们使用NoteLLM来总结笔记,并通过指令调优自动生成标签/分类。对真实场景的大量验证表明,与在线基线相比,我们提出的方法是有效的,并且显示了小红书推荐系统的重大改进。



简介


小红书和Lemon8等社交媒体专注于用户生成内容(UGC),鼓励用户分享他们的产品评论、旅游博客和生活经历,以及其他内容,也被称为“笔记”。通过根据用户偏好提供更个性化的笔记,笔记推荐在提高用户参与度方面起着至关重要的作用。Item-to-item(I2I)笔记推荐是从百万级笔记池中检索用户可能感兴趣的笔记的方法。对于目标笔记,I2I方法根据内容或协同信号选择相应笔记。


现有的I2I笔记推荐在线方法通常是将整个笔记内容输入到基于bert的模型中,生成笔记的嵌入,并根据嵌入相似度推荐相关笔记。然而,这些方法仅仅将标签/类别视为笔记内容的一个组成部分,没有充分利用它们的潜力。我们发现生成标签/类别类似于生成注释嵌入。两者都将关键笔记信息压缩到有限的内容中。因此,学习生成标签/分类可以潜在地提高嵌入的质量。


我们提出了一种统一的多任务方法,称为NoteLLM。NoteLLM基于LLM学习I2I笔记推荐和标签/类别生成任务,旨在通过学习提取浓缩概念来增强I2I笔记推荐能力。我们首先为每个笔记样本构建一个统一的笔记压缩提示符,然后通过预训练的LLM进行解码,LLM利用特殊的令牌压缩笔记内容并同时生成标签/类别。为了构建相关的笔记对,我们从用户行为中计算所有笔记对的共现分数,并形成每个笔记的共现分数集。我们在集合中选择具有最高共现分数的笔记作为给定笔记的相关笔记。此外,为了推荐每个样本的相关笔记,生成对比学习(GCL)利用压缩的标记作为每个笔记的嵌入,然后训练llm从批量数据中识别相关笔记。同时,我们采用协作监督微调(CSFT)方法来训练模型,为每个笔记生成标签/类别。由于I2I笔记推荐任务学习到的压缩令牌和标签/分类生成任务都是为了提取笔记内容的关键概念,所以CSFT可以有效地增强笔记嵌入。


相关工作


I2I推荐


I2I推荐根据目标item从大型item池中推荐一个排名列表。I2I推荐要么预先构建I2I索引,要么使用近似k近邻方法在线检索相关item。传统的I2I推荐通常仅依赖于来自用户行为的协作信号。然而,由于缺乏用户与item的交互,这些方法无法管理冷启动项目。我们专注于基于文本的I2I推荐系统,该系统基于item的文本内容度量条目的相似性。最初,基于文本的I2I推荐的表示依赖于基于术语的稀疏向量匹配机制。随着深度学习的出现,神经网络已经被证明更擅长于表示文本信息。先前的研究将文本转换为同一潜在空间中的嵌入,通过嵌入相似度来衡量它们之间的关系。LLM在I2I推荐中的应用仍未被探索,一些研究将LLM仅作为生成嵌入的编码器,未能充分发挥其生成的潜力。在NoteLLM中,我们利用llm来生成标签/类别,这可以增强注释嵌入。


LLM用于推荐


将LLM与推荐相结合的主要方法有三种。第一种方法是利用LLM来扩充数据,然而,这些方法需要对测试数据进行连续预处理,以与增强的训练数据保持一致,并且高度依赖于LLM生成的质量。第二种方法是利用LLM直接推荐,这些方法设计特殊提示或使用监督微调来诱导LLM回答给定的问题。然而,由于上下文长度有限,这些方法只关注重新排序阶段。最后一种方法是采用LLM作为编码器来生成表示特定item的嵌入,虽然这些方法对提取信息是有效的,但它们都放弃了LLM的生成能力。与上述方法相比,NoteLLM在召回阶段使用LLM,并学习标签生成,以提高LLM生成嵌入的能力。


从文本生成标签/类别


标签和分类作为社交媒体上的标签机制,简化了特定主题信息的识别,并帮助用户查找主题内容。从文本生成这些标识符有助于为未标记的注释创建标识符,或者根据用户的偏好向他们建议选项。在这个领域,有三种主要的方法:提取方法、分类方法和生成方法。提取方法将文本中的关键短语识别为标签或类别,但无法获得原始文本中不存在的关键短语。分类方法将此任务视为文本分类问题,然而,由于人工生成的标签的多样性和自由形式,这些可能产生次优结果。生成式方法直接根据输入文本生成标签/类别,然而,这些方法仅限于解决标签/类别生成任务。在NoteLLM中,LLM执行多任务学习,同时执行I2I推荐和标签/类别生成。由于这两个任务的相似性,学习生成标签/类别也可以增强I2I推荐。


问题定义


假设N ={?1,?2,…,??}为笔记池,其中?为笔记数量。每个注释包含一个标题、标签、类别和内容。我们表示?th注意作为??=(??,???,??,???),在??,???,??,???意味着标题、标签、分类和内容。在I2I笔记推荐任务中,给定一个目标笔记?,基于LLM的检索器的目标是从笔记池N中对与给定笔记相似的top-?梗进行排序。在标签/类别生成任务中,利用LLM根据?和??两种情况生成hashtag??<e:1>。此外,在类别生成任务中,LLM是根据?、??、??三个层次来生成类别?<e:1>。


NoteLLM


整体框架


NoteLLM包括三个关键组件:笔记压缩提示构建、GCL和CSFT。我们使用笔记压缩提示来灵活管理I2I推荐和标签/类别生成任务。然后对这些提示进行标记并输入LLM。NoteLLM将协作信号和语义信息集成到隐藏状态中。GCL利用生成的压缩词的隐藏状态进行对比学习,从而获得协同信号。此外,CSFT利用笔记的语义和协作信息来生成标签和类别。



笔记压缩提示


我们使用统一的笔记压缩提示来促进I2I推荐和生成任务。为了在I2I推荐任务中利用自回归LLM的生成能力,我们的目标是将笔记内容浓缩为单个特殊令牌。然后使用这个浓缩的特殊令牌来通过GCL获取协作知识。随后,我们通过CSFT使用这些知识生成标签/类别。


我们提出以下提示模板用于一般注释压缩和标签/类别生成:



在此模板中,[BOS]、[EMB]和[EOS]是特殊的令牌,而<Instruction>、<Input Note>、<Output Guidance>和<Output>是被特定内容替换的占位符。类别生成的具体内容定义如下:




考虑到用户生成的标签数量的不可预测性,我们随机选择原始标签的一个子集作为标签生成的输出目标,以尽量减少对llm的潜在误导。将随机选择的hashtag的个数记为<j>,合并到<Instruction>和<Output Guidance>中。


完成提示后,将对其进行标记并输入到LLM中。然后,LLM将协作信号和关键语义信息提取到压缩的单词中,并根据笔记的中心思想生成标签/类别。


生成-对比学习


预训练的LLM通常通过指令微调或基于人类反馈的强化学习来学习新知识。然而,仅仅依靠LLM中的语义信息是不足以完成推荐任务的。协作信号在LLM中是不存在的,它在识别用户特别感兴趣的笔记方面起着至关重要的作用。我们使用GCL让LLM捕捉更强的协作信号。与从具体答案或奖励模式中学习不同,GCL采用对比学习,从整体角度学习笔记之间的关系接近性。


为了将协作信号整合到LLM中,我们采用了基于用户行为的共现机制来构建相关的笔记对。这种机制是基于这样的假设:经常一起读的笔记可能是相关的。因此,我们收集一周内的用户行为数据进行共现计数。我们统计用户查看笔记?变量并随后点击笔记?变量的次数。同时,为了区分不同用户对共现的贡献,我们为不同的点击分配了不同的权重。具体来说,我们计算共现得分如下:



这个操作的目的是防止活跃用户被误导,他们可能会不加选择地点击推荐给他们的每一个笔记。在计算了所有笔记对的共现分数之后,我们构建了从笔记?<e:1>到所有其他笔记的共现分数S?<e:1>。接下来,我们从S?表中过滤出协同得分高于?或低于阈值?的异常值。最后,我们从过滤集中选择共现分数最高的?笔记作为笔记?的相关笔记。


在构建相关笔记对后,我们训练NoteLLM基于文本语义和协作信号来确定笔记的相关性。我们利用提示压缩笔记信息来生成一个虚拟词。压缩后的虚拟词的最后一个隐藏状态包含给定笔记的语义信息和协同信号,可以表示该笔记。由于LLM的自回归性质,我们采用[EMB]的前一个令牌的最后一个隐藏状态,并使用线性层将其转换为注意嵌入空间,其维度为?。我们将嵌入的数据(?)表示为<e:1>。我们假设每个小批量包含与变量变量相关的变量对,因此每个小批量总共有2个变量变量。GCL的损失计算如下:



协同监督微调


生成标签/类别类似于生成注释嵌入。这两项任务都旨在总结笔记内容。生成标签/类别的任务从文本生成的角度提取关键的笔记信息,而生成笔记嵌入的任务从协作的角度将笔记压缩到虚拟单词中,以供I2I推荐。为此,我们的NoteLLM联合建模了GCL和CSFT任务,以潜在地提高嵌入的质量。我们将这两个任务集成到一个提示中,为这两个任务提供额外的信息,并简化训练过程。


我们采用CSFT,它利用笔记的语义内容和压缩令牌中的协作信号来生成标签/类别。为了提高训练效率和防止遗忘问题,我们从每批笔记中选择?笔记用于标签生成任务,而将剩余的笔记分配给类别生成任务。我们计算CSFT损失如下:



最后,我们定义了NoteLLM的损失函数,同时纳入GCL和CSFT,如下:



通过模型更新,NoteLLM能够同时执行I2I推荐任务和笔记推荐场景的标签/类别生成任务。


实验


数据集和实验设置


数据集。我们对小红书产品数据集进行离线实验。为了平衡模型的训练,我们根据一周的产品数据从每个类别组合中提取固定数量的注释对来生成训练集。然后,我们从即将到来的一个月中随机抽取笔记形成测试集的笔记池,排除任何已经在训练数据集中的笔记。



模型。我们利用Meta LLaMA 2作为基础llm。在相关的注释对构建中,我们将共现得分的上界?设为30,下界?设为0.01。设?为10。并将注嵌入的维数?设置为128。由于上下文长度的限制,我们截断超过20个令牌的标题,截断超过80个令牌的内容。


评估指标。为了评估I2I推荐模型的离线性能,我们选择了类别生成的提示符,它包含了所有输入的备注信息。我们从每个笔记对中选择第一个笔记作为目标笔记,另一个作为基础笔记。随后,我们根据目标笔记对测试池中的所有笔记进行排序,不包括目标笔记。然后,我们使用Recall@100、Recall@1k、Recall@10k和Recall@100k来验证I2I笔记推荐的模型有效性。对于自由形式的标签生成任务,我们使用BLEU4, ROUGE1, ROUGE2和ROUGEL来评估模型。


评估结果


我们将NoteLLM与zero-shot、PromptEOL zero-shot、SentenceBERT、PromptEOL+CSE、RepLLaMA等基于文本的I2I推荐方法进行比较。


结果显示,zero-shot仍然无法超越微调方法的性能,这表明后者在笔记推荐领域的特定知识使其具有优势。此外,我们发现基于LLaMA 2的方法与基于SentenceBERT的方法的比较显示出前者的显著优势,表明LLaMA 2具有更强的理解笔记的能力。带特定提示的PromptEOL+CSE与不带提示的RepLLaMA的性能相当,说明提示可以促进零样本检索,但经过微调后效果会减弱。最后,我们的NoteLLM优于其他基于LLM的方法,主要是由于CSFT有效地将摘要能力转移到注释嵌入压缩中,从而有效地提取关键点以改进注释嵌入。


不同曝光率笔记的影响


为了进行更全面的分析,我们根据其曝光程度将基础笔记分为两种不同的类别。第一类是低曝光率的笔记,特别是那些曝光率低于1500的笔记。第二类是高曝光率的笔记。我们分别计算这两组的召回率,以进一步了解我们的NoteLLM在不同暴露水平下的表现。



结果显示,在大多数情况下,对于低曝光和高曝光笔记,NoteLLM始终优于其他方法。其他方法在处理低曝光笔记时表现出色,但在处理高曝光笔记时却表现不佳。表现的下降可归因于忽视了人气偏差。这些属性增强了模型基于笔记内容的回忆能力,使其特别适合检索冷启动笔记。这可以激励用户发布更多的新笔记,为整个社区创造更丰富的内容。


消融分析



首先,我们观察到没有CSFT的消融在I2I推荐任务中的表现不如NoteLLM,并且完全失去了生成标签和类别的能力。这突出了CSFT模块在增强注释嵌入方面的关键作用,并表明单个模型可以同时处理推荐和生成任务。


其次,我们发现没有GCL模块的消融在I2I推荐任务中优于PromptEOL zero-shot。这表明标签/类别生成任务可以增强I2I推荐任务。


第三,无GCL消融(?=40%)在I2I推荐任务中的表现优于无GCL消融(?=0%)和无GCL消融(?=100%)。这表明任务多样性对CSFT很重要。


最后,我们观察到标签和类别生成任务存在明显的跷跷板现象。无GCL消融(?=0%)可以为80.64%的笔记生成正确的类别,但很难总结有用的标签。相反,没有GCL的版本(?=100%)生成高质量的标签,但生成的类别大多是不正确的。


CSFT模块中数据多样性的影响


对于I2I推荐任务,性能随着?的增加而提高。这是由于指令调优的数据多样性增强,其?更高,更有效地指导LLM总结和压缩各种类型的信息。



但是,随着?的不断增加,用于指令调优的数据越来越倾向于标签生成任务,性能开始下降。对于类别生成任务,随着数据越来越偏向于标签生成任务,类别生成的性能会下降。然而,随着?从20%继续增长,标签生成任务并没有太大的变化。这可能是因为类别生成任务是一个壁橱任务,需要严格匹配。相比之下,标签生成任务是一种自由形式的生成任务,它允许更大的灵活性。


CSFT模块大小的影响


结果表明,稍微增加rtp可以提高推荐和生成任务的性能。然而,随着参数的持续增加,推荐任务的性能开始下降,而生成任务的性能持续提高。这揭示了生成和I2I推荐任务之间的权衡,强调了平衡方法的必要性。



在线实验


我们对小红书进行了为期一周的在线I2I推荐实验。与之前使用SentenceBERT的在线方法相比,我们的NoteLLM提高了16.20%的点击率。此外,召回性能的提高使评论数量增加了1.10%,每周平均发布者数量(WAP)增加了0.41%。


这些结果表明,在I2I笔记推荐任务中引入LLM可以提高推荐性能和用户体验。此外,我们观察到单日新评论数量显著增加了3.58%。这表明LLM的泛化有利于冷启动笔记。现在,我们已经将NoteLLM部署到小红书的I2I笔记推荐任务中。



53AI,企业落地应用大模型首选服务商

产品:大模型应用平台+智能体定制开发+落地咨询服务

承诺:先做场景POC验证,看到效果再签署服务协议。零风险落地应用大模型,已交付160+中大型企业

联系我们

售前咨询
186 6662 7370
预约演示
185 8882 0121

微信扫码

与创始人交个朋友

回到顶部

 
扫码咨询