首页 > 教程攻略 > ai资讯 >小红书生成式推荐排序GenRank

小红书生成式推荐排序GenRank

来源:互联网 时间:2026-06-29 13:54:05

先抛几个核心判断。小红书的推荐系统,一直是个技术含量非常高的领域。过去我们聊推荐,大多讨论的是召回、粗排、精排这一套标准流程。但最近,他们的团队放出了一篇有意思的论文,把生成式AI的思路直接用到排序环节了,搞了个叫GenRank的新框架。这事儿看似是在讲模型结构,实际上涉及的是整个推荐范式的底层逻辑变迁。

先简单过一下背景。为了保证效率,工业级推荐系统通常走的是一个多阶段管道:先召回,从几十亿个item里捞几万个候选;然后粗排,过滤到几百个;精排模型再打一次分;最后策略层再做一轮调整——微调顺序、加一些商业规则,最终推到用户面前。整个过程像一个漏斗,越往后对精度的要求越高。

问题设置

这篇论文重点研究的,正是最后那个排序环节。目标是做两件事:预估用户会不会点击,或者会不会停留足够长时间。训练数据来自小红书信息流,采集了15天内的数百亿条曝光日志。

特征的处理方法也清楚。有三类输入:

  • 分类特征

    :用户ID、物品ID、用户历史行为、各种标签等。

  • 数值特征

    :年龄、物品发布时间、创作者粉丝数等。

  • Frozen Embedding

    :预训练好的多模态物品嵌入、基于图的用户嵌入等。

按照行业惯例,数值特征会先按预定义好的区间离散化成分类特征,分类特征通过嵌入表转成稠密向量。那些预训练产出的frozen embedding,相当于提供的先验知识辅助信息。有一个数据值得留意:在小红书的千亿级feed场景下,离线AUC提升0.0010就已经算显著了——这通常在线上意味着数亿用户的整体指标能涨0.5%。这个精度要求,足以说明工程的难度。

生成式推荐中的有效性来源

(1) 生成式范式中的关键机制

常规推荐系统,核心是从用户历史行为中学会提取特征交互模式。生成式推荐不一样的地方在于,它把排序问题重新定义为序列转换任务。这就带来两个显著差异:一个是序列怎么交互(自回归),一个是训练样本怎么组织。

先说自回归的问题。HSTU(一种已有的生成式排序模型)只在对候选物品的位置计算损失,用户历史行为的位置是没有损失的。这种做法本质上就是监督式微调:用户信息和候选物品直接当prompt输入。

有个问题就来了。团队分析说,现代LLM在监督微调时采用自回归方式,是为了保留预训练期间获得的能力。但生成式排序压根没有预训练阶段。那自回归方式在这个场景下是不是真的必要?

为了验证,他们做了两组实验。第一组实验是把历史行为的位置也加入损失计算。结果AUC直接下跌超过0.0100。团队把这归因于"one epoch"问题:模型从稀疏特征中学到了错误的模式。第二组实验把历史位置的因果掩码换成完全可见掩码——效果类似T5模型,最大化了prompt内部的特征交互。但这个操作让AUC下降了超过0.0015,而且模型越大,跌得越狠。

结论很明确:自回归方式对生成式排序的关键性是实锤的。

再来看样本组织方式。常规做法是pointwise的每个训练样本对应一条曝光日志。生成式排序不同,它会把用户在时间上相邻的多个行为组合成一个训练样本。这么做的理论收益有两个:

  • 同一请求里的多条曝光日志,特征高度重合,放同一batch处理能稳定梯度估计;
  • 大规模在线分布式训练中,样本的处理顺序不一定严格符合时间线,容易产生信息泄露。组合成样本后,这种风险被显著降低。

不过实证结果挺有意思。如果换成逐点顺序训练生成式推荐器,只是模拟常规的分组训练,结果AUC只有轻微下降。也就是说,生成式推荐的有效性主要还是来自模型架构本身,不是样本组织方式。这才是真正值得关注的重心。

(2) 两种范式下模块效应的比较

进一步,团队对比了不同模块在两种范式下的表现。像SIM、PPNet、PLE这些模块,在两个范式里效果改善幅度基本持平——说明这些模块与生成式范式是兼容的。比较意外的是,内容embedding在生成式范式下的AUC提升,是传统范式的两倍以上。核心原因在于,内容embedding的训练方式和下游任务之间的架构一脉相承,能力被完整释放了。

特征工程方面也有发现。HSTU曾主张删除大部分人工特征,因为生成式推荐可以自己学出统计模式。但实验表明,绝大多数普通特征确实边际收益极低,可有一些实时统计特征——特别是基于时间窗口的——效果依然非常突出。推测这些特征给模型提供了直接信号,让生成式架构学起复杂模式来更顺手。

工业场景中的高效生成式排序 GenRank

(1) Item-Action 组织

传统的序列推荐模型,大多以单个物品作为基本单位,业内叫item导向架构。HSTU在这条路上走得更远,把action标记也作为序列的一个额外模态,在同一序列里交错学物品和action。这样做的好处是检索和排序可以在统一框架里完成,但代价也大:序列长度直接翻倍,推理开销急剧增加。

GenRank给出的解法很巧妙:把物品的位置属性凸现出来,然后专注预测和每个物品相关的action——这就是action导向组织。action序列成了生成的基本单位,item只作为上下文信号参与指导生成过程。工程量不在一个量级:注意力机制的输入序列长度节省了一半,注意力计算成本削减75%,线性投影成本削减50%。

具体实现也不复杂。对用户历史序列的每个位置,token embedding等于物品emb和action emb的向量和。预测目标是用户对下一个候选物品的动作。候选物品的token emb由一个掩码action embedding加上物品emb得到,这样不同候选物品之间就不会卷到一起——图3右侧那个候选mask起的就是这个作用。

(2) 位置与时间偏差

HSTU用了可学习的相对注意力bias来编码位置和时间信息。效果当然好,但代价是计算瓶颈严重:注意力bias的I/O操作随序列长度呈二次方飙升。上下文窗口一旦拉大,开销就开始失控了。

GenRank为此搞了一套新方案,只要求线性的I/O操作。具体三部分组成:

  • 位置嵌入

    :可学习的位置嵌入,记录用户序列中item的索引。为了保证训练和推理一致,同一请求中的候选物品共享同一位置标记。
  • 请求索引嵌入

    :实际场景里,用户可以在单次请求里和多个物品交互。属于同一请求的所有物品被视作一个组,并定义对应的请求索引嵌入。
  • 请求前时间嵌入

    :捕获每个item和前一个请求时间之间的分桶时间差,本质反映的是用户的活跃程度。

这套设计的核心优点是引入最小的训练开销,却能保留位置和时间信息。最终输入到后续网络的内容,是以上几部分的加和。

这套嵌入有一个天然短板:位置和时间之间的交互有限。解决之道是引入ALiBi作为注意力机制中的相对位置与时间偏差。ALiBi的优势有两个:

  • 它会对距离较远的query-key对做注意力惩罚,距离越远,惩罚越大。这正好符合用户兴趣建模的规律——靠得近的行为相互影响大,相隔遥远的行为关联度低。
  • ALiBi是无参数的,不需要额外内存访问或者梯度反向传播。把它嵌入flash attention,算力成本几乎可以忽略。

这两项改进,让GenRank在训练期间比HSTU实现了94.8%的总加速。最妙的是,加速的同时测试集AUC还有小幅提升。

6. 在线实验

在线A/B测试是在小红书feed流里进行的,分配了10%的流量,持续15天。结果显示,GenRank在冷启动物品上的改进尤其显著——这其实很好理解,生成式范式对新物品的接纳能力确实更强。相比线上baseline模型,GenRank的训练成本虽然略高,但推理和存储成本反而更低。还有一个对实时系统极具价值的数据:P99响应时间比线上模型优化了超过25%。

相关下载