【新智元导读】如今越来越多的歪果朋友入驻小红书,而这泼天流量也带来了「欲戴王冠,必承其重」的形势。而让大家纷纷赞扬的小红书内容推荐算法则是它能够接的下来这波流量的核心原因之一。本文通过对两篇小红书官方团队发布的推荐算法论文解读,带你揭开小红书内容推荐机制的神秘面纱。
最近歪果朋友疯狂涌入「Xiaohongshu」,网友直呼,一夜之间与国际接轨。
这场史称「美洲大迁徙」的互联网奇象,也离不开小红书本身过硬的内容推荐算法技术。而歪果网友也毫不吝啬对于「Xiaohongshu」推荐算法的赞美。
接下来让我们看看,小红书的推荐算法是怎么不断地成功「投你所好」。
一般来讲,为了构建出用户所喜欢的推荐内容列表,经典的推荐系统构成为:
推荐系统的典型结构
目前能够检索到的小红书官方发表的推荐算法相关的技术论文共有两篇,接下来就让我们一起揭开小红书内容推荐机制的「神秘面纱」。
推荐契合用户兴趣的笔记是一项关键任务。NoteLLM是一种用于解决内容到内容(I2I)笔记推荐问题的创新统一框架,旨在为用户提供更精准的笔记推荐服务。
研究者在小红书开展了为期一周的在线I2I推荐实验。
与先前使用SentenceBERT的方法相比,NoteLLM的点击率提升了16.20%,召回性能的增强使评论数增加1.10%,平均每周发布者数量增加0.41%。
这些结果显示,将LLM用于I2I笔记推荐任务能显著提升推荐性能和用户体验。同时,新笔记一天内评论数显著增加3.58%,表明LLM的泛化能力对冷启动笔记有积极作用。
目前,NoteLLM已部署在小红书的I2I笔记推荐任务中。
具体来说,通过「笔记压缩提示词」将笔记浓缩成特殊的单一token,再借助对比学习方法,进一步学习潜在相关笔记的嵌入关系。同时,NoteLLM还能对笔记进行总结,通过指令调优自动生成标签或类别。
经大量实际场景验证,NoteLLM在小红书推荐系统里效果显著。
论文链接:https://arxiv.org/pdf/2403.01744
基于BERT模型的在线I2I笔记推荐方法存在局限性,它们仅把标签/类别当作笔记内容的普通部分,未深挖其潜在价值。标签/类别蕴含着笔记的核心要点,对判断笔记间内容相关性至关重要。
生成标签/类别与生成笔记嵌入具有相似性,二者都能将笔记关键信息凝练为有限内容。学习生成标签/类别,有助于提升嵌入质量。
NoteLLM框架由三个关键部分组成:笔记压缩提示构建、生成对比学习(GCL)和协作监督微调(CSFT)。
研究者采用统一的笔记压缩提示,旨在将笔记内容压缩成一个特殊的单一token,来助力I2I推荐和生成任务。
利用这个压缩后的特殊token,通过生成对比学习(GCL)挖掘其中的协作知识。之后,借助协作监督微调(CSFT),运用这些知识生成标签和类别。
构建笔记压缩提示
研究者用以下提示模板,实现了对笔记的通用压缩以及标签和类别的生成:
在这个模板里,[BOS]、[EMB] 和 [EOS] 是特殊的 token 。而(指令)、(输入笔记)、
类别生成的具体内容定义如下:
标签生成的模板如下:
完成提示构建后,对其进行标记化处理并输入LLM,LLM会将协作信号与关键语义信息提炼到压缩词中,依据笔记核心思想生成标签或类别。
生成对比学习(GCL)
研究者提出生成式对比学习(GCL),目的是增强LLM捕获更强协作信号的能力。GCL不同于从特定答案或奖励模型中学习,它采用对比学习,从整体视角考量笔记之间关系的紧密程度。
为了将协作信号融入LLM,采用基于用户行为的共现机制来构建相关笔记对。这一机制基于这样的假设:若两篇笔记常被用户一起阅读,那么它们很可能存在关联。
在构建相关笔记对之后,训练NoteLLM基于文本语义和协作信号判断笔记的相关性。
GCL的损失函数计算如下:
其中,𝐿𝑐𝑙表示GCL的损失,𝜏为可学习的温度参数,𝑠𝑖𝑚(𝑎,𝑏)=𝑎⊤𝑏/(∥𝑎∥*∥𝑏∥) 表示向量𝑎和𝑏的相似度。
协作监督微调(CSFT)
生成标签/类别和生成笔记嵌入类似,都是对笔记内容的总结:前者从文本生成角度提取关键信息,后者从协作视角将笔记压缩为虚拟词用于I2I推荐。
NoteLLM把GCL和CSFT任务结合起来建模,旨在潜在地提高嵌入的质量。研究者将这两个任务整合到一个提示中,给它们提供额外信息,同时简化训练流程。
具体而言,研究者用协作监督微调(CSFT),通过笔记的语义内容和压缩标记中的协作信号生成标签/类别。
CSFT损失的计算方式如下:
其中,𝐿𝑔𝑒𝑛为CSFT损失,𝑇是输出序列的长度,𝑜𝑖表示输出序列𝑜中的第𝑖个标记,𝑖是输入序列。
最后,把GCL和CSFT结合,得到NoteLLM的总损失函数:
通过模型更新,NoteLLM可在笔记推荐场景中同时开展I2I推荐任务和标签/类别生成任务。
论文链接:https://arxiv.org/pdf/2107.05204
该论文主要是提出了滑动频谱分解(SSD)方法,以解决小红书中「多样化信息流推荐」的问题。并且文中也提出了计算嵌入向量的策略CB2CF,以应对实际推荐场景中的长尾效应。
滑动频谱分解
推荐系统通常提供很长的内容序列,而用户当前的浏览窗口只能占据整个序列的一部分。因此用户需要不断滑动当前浏览窗口才能获取推荐内容序列中其余内容。
如下图所示,用户阅览窗口的处理步骤为:首先,一个固定大小为ω的窗口在整个原始内容序列中滑动。然后将内容的多个窗口以内容矩阵的形式堆叠在一起。最后将每个内容映射到其d维内容嵌入,得到轨迹张量𝒳。
在推荐场景中,作者将轨迹矩阵推广到三阶情况,将d维内容嵌入视为多元观测,并借助单变量时间序列奇异谱分析(SSA),对𝒳进行奇异值分解。
其中,𝒳的体积代表了基于整个序列以及滑动窗口的多样性,奇异矩阵可以看作是推荐内容呈现的正交方向,而奇异值则指的是这些方向在用户对多样性感知中的权重。