跳到正文

生成式推荐的序列原理

生成式推荐自身的 item tokenization 和自回归原理

原题:请解释生成式推荐(Generative Recommendation)的基本概念、工作原理,以及它与传统判别式推荐模型的主要区别。

RAG基础 · 小红书真题

回答与解析

基本概念

生成式推荐将推荐任务重新建模为序列生成问题:把用户历史行为、上下文信息编码为Prompt,让模型自回归生成下一个物品的ID或属性,而非传统打分排序。

工作原理

核心流程:

  • 统一Token空间:将用户ID、物品ID、行为类型、时间等离散化为统一词汇表
  • 序列化输入[BOS] 用户u [SEP] 点击i1 [SEP] 收藏i2 [SEP] 时间t [SEP] → 生成i3
  • 自回归生成:模型学习行为序列的联合分布 P(i₃|u, i₁, i₂, t...)

典型方案:

  • GPT4Rec/TIGER:直接生成Item ID
  • P5/UniRec:统一多种推荐任务(序列预测、解释生成、对话推荐)为文本生成

与判别式推荐的核心区别

维度 判别式(传统) 生成式
建模目标 点估计:P(y=1|x) 或 打分分数 分布建模:P(y|x) 完整序列分布
优化方式 独立样本的BCE/MSE损失 序列级别的交叉熵(MLE)
物品关系 隐式通过Embedding学习 显式通过自注意力捕获长程依赖
输出形式 Top-K排序列表 可直接生成ID、解释文本、甚至推荐理由
灵活性 任务特定模型 统一架构处理多种推荐任务

关键优势与挑战

优势:

  • 天然融合内容信息(标题、图文),缓解ID冷启动
  • 统一框架支持多任务(推荐+解释+对话)
  • 利用预训练LLM的泛化能力

挑战:

  • 推理延迟:自回归生成 vs 向量内积检索
  • ID词汇表爆炸:百万级物品需高效Token化(如Semantic ID、分层编码)
  • 位置偏差:生成顺序影响多样性

小红书场景的思考

笔记推荐适合生成式范式——内容属性丰富(标题、标签、图文),可生成"为什么推荐"的解释增强信任。但需解决:① 十亿级笔记的ID压缩 ② 在线P99延迟<100ms的推理优化(推测解码、缓存)。

学习建议

建议系统学习该知识点

口语版讲法(约4分钟)

  • 本质是序列生成而非打分排序
  • 核心流程:统一Token空间、序列化、自回归
  • 与判别式的本质区别:分布建模 vs 点估计
  • 落地风险:延迟、ID压缩、位置偏差
  • 小红书场景的取舍:内容丰富但需优化

这道题其实在问推荐系统的范式转变,从传统的打分排序变成序列生成。我理解生成式推荐的核心是把推荐当成一个语言模型任务,用户历史行为拼成一个 prompt,然后自回归生成下一个物品的 ID,而不是算一个分数再排序。

具体说一下它的工作流程。第一步是统一 Token 空间,把用户 ID、物品 ID、行为类型、时间戳这些都离散化成同一个词汇表里的 token。第二步是序列化输入,比如 [BOS] 用户u [SEP] 点击i1 [SEP] 收藏i2 [SEP] 时间t,让模型去预测下一个 token 是 i3。第三步就是自回归生成,模型学到的是整个行为序列的联合概率分布,P(i₃ u, i₁, i₂, t...)。

那它和传统的判别式推荐区别在哪?最根本的是建模目标不同。判别式模型做的是点估计,比如算 P(点击=1 x),或者直接打个分,然后按分数排序。生成式模型做的是分布建模,它要生成整个序列,所以物品之间的关系是通过自注意力机制显式捕获的,不是靠隐式的 embedding 相似度。输出形式也不一样,判别式只能给一个排序列表,生成式可以直接输出物品 ID、推荐理由、甚至对话回复,灵活性更高。

但落地的时候有几个坑。先看推理延迟,这是最直接的,自回归生成是逐个 token 出的,比向量内积检索慢很多,线上 P99 延迟很容易超 100ms。接着说 ID 词汇表爆炸,百万级甚至十亿级物品,直接当 token 来生成不现实,得用 Semantic ID 或者分层编码来压缩。再补充位置偏差,生成顺序会影响多样性,如果模型总先生成热门物品,推荐就容易单调。

举个例子,在小红书笔记推荐里,生成式其实挺合适的,因为笔记内容属性丰富,有标题、标签、图文,可以生成一句“为什么推荐”的解释,增强用户信任。但前提是必须解决那三个风险:十亿级笔记的 ID 压缩、在线延迟优化、还有位置偏差。如果延迟搞不定,生成式再灵活也上不了线,所以实际落地我倾向混合方案,用生成式做粗排或者解释生成,但召回和精排还是走传统判别式。

其实还有一个有意思的点,就是生成式推荐天然能利用预训练语言模型的泛化能力,缓解冷启动物品的问题。但这个能力依赖模型对物品内容的深层理解,如果物品只有 ID 没有文本描述,效果就大打折扣。

关键一句:生成式推荐依赖物品的文本描述来利用预训练 LLM 的泛化能力,纯 ID 场景效果差。

面试官还可能这样问

  1. 问法 1 · 场景切入

    假设你在做电商首页推荐,用户点击了几个商品然后走了,明天回来你希望直接生成一个他可能喜欢的商品ID,而不是先算一堆分数再排序。你觉得怎么建模能实现这种‘直接生成’?

  2. 问法 2 · 层层追问

    传统推荐你是怎么做的?……就是先算用户和物品的匹配分,然后排序对吧。那如果我想让模型直接输出下一个要推荐的物品,甚至还能输出推荐理由,这个思路你怎么看?……它和打分排序的本质区别在哪里?

  3. 问法 3 · 直球架构

    解释一下生成式推荐的基本概念和工作原理,重点说清楚它和传统判别式推荐模型在建模目标、优化方式和输出形式上有什么本质区别?

同模块相关题目