导读 本次分享重点拆解 1688 在生成式推荐场景中面临的用户痛点与技术难点,并结合实际案例介绍对应的解决方案。面对传统推荐模型存在的交互层次浅、多样性不足、过度依赖历史行为等问题,本次分享系统介绍了基于 Transformer 架构的生成式推荐整体方案,通过创新性地构建语义 ID 体系、设计长码本优化策略、实现多兴趣表征建模,有效解决了推荐系统中准确性不足与发现性有限的行业难题。实践表明,该方案在保持推荐精准度的同时显著提升了内容多样性,为业界提供了生成式推荐技术在真实工业场景落地的成功范例。
今天的分享会围绕下面五个部分展开:
1. 推荐系统背景介绍
2. 生成式召回的定义
3. 长码本优化
4. 生成式多兴趣表征
5. Q&A
分享嘉宾|徐传宇 阿里巴巴 淘天集团 算法专家
编辑整理|孟立诗
内容校对|郭慧敏
出品社区|DataFun
01
推荐系统背景介绍
首先,我们将回顾推荐系统的演变历程,从早期的协同过滤发展到当前的大模型时代,分析现阶段用户需求的核心痛点,并对比大模型相较于传统模型的优势与不足。
1. 推荐系统演变历史
在深度学习时代,推荐系统严重依赖历史贡献和日志拟合目标,也就是说,仅仅优化用户过去的行为交互。这种日志拟合方法容易过度拟合狭窄的历史偏好,难以捕捉用户不断演变和潜在的兴趣,导致了信息茧房和长尾现象加剧,最终损害了用户体验。

最近,随着大模型的兴起,推荐领域也产生了许多新的形式,主要分为生成式推荐和推理型推荐。
(1)生成式推荐
生成式推荐实际上是把用户的行为当成 Token,采用一段式的直推任务,实现了推荐系统的 ScalingLaw。代表作有 onerec 以及 Meta。
优点:更强的序列建模能力,一段式直推减少了程序损失。缺点:模型仍然黑盒,并且缺乏推理能力。(2)推理性推荐
推理型推荐或者说叫认知推荐,实际上是将用户的意图置于整个推荐流程的核心,通过用户信息挖掘、物品召回和解释生成等关键阶段引入大语言模型,代表作有 RecGPT。RecGPT 将传统的日志拟合式推荐转变为以意图为中心的推荐过程,具有推荐逻辑清晰、可解释性强的优点,但是仍然存在生成幻象方面的问题,所以一般充当推荐系统中的发现性链路,作为效率链路的补充。
2. 推荐用户需求
下面我们来介绍一下淘天 1688 中推荐用户的需求。

我们之前发放了用户调研问卷,发现推荐用户的核心需求是:
找新品、新商约占 40%找相似款、换供约占 30%找灵感、随意逛约占 30%那么这些核心需求具体到用户需求痛点有三个:
发现吸引力不足:例如推荐的都是老商品,新品较少;商品风格款式单一;或者都是近期看过、收藏过的重复推荐。精确性不足:例如风格和款式不匹配、品类不相关、价格不匹配等问题。个性化配置缺乏:在调研问卷中用户反馈原创性商品少、潜力品趋势品少、独特差异化商品少。但是,我们实际上有单独的针对趋势品或新品的召回链路,并且后链路有一些保量扩量的策略。这说明在部分用户上配置不够准确,导致新品趋势品的透出比较少。3. 大模型时代的推荐系统

针对上面的那些问题以及推荐系统的发展趋势,我们设计了新一年的推荐系统规划,主要分为下面三部分:
(1)生成式推荐
生成式推荐主要满足推荐系统的准确性,重点是探索大空间求解下的一段式直推任务,以缓解节点损失,提升推荐系统的精确性。
(2)AI架构建设
AI 架构建设希望能够提升个性化配置的匹配能力,通过快慢思考结构化用户需求,并抽象整个推荐的代码配置,利用大模型实现用户需求到算法配置的自动化与智能化路由。
(3)推理型推荐
推荐型推荐主要满足用户的发现性需求,结合 B 买生意需求及下游商机,探索 B 买的整个发现性需求,提升采购清晰感,让我们的推荐成为 B 买商机发现的第一重要场景。
02
生成式召回
接下来,我们将介绍在生成式召回技术中,当前阶段所面临的主要问题、大模型所能提供的解决方案,以及我们在应用大模型过程中遇到的关键挑战。
1. 生成式召回的背景
我们来看一下生成式召回的问题定义:召回任务是在有限资源的情况下,从全库商品中检索与当前请求相关的商品,以保证召回率与准确度的平衡。

目前,我们的召回采用多路召回,例如双塔模型(Deepmatch)或 TDM 等,这将主要存在四个问题:
检索查询:在向量库中使用用户向量与商品向量进行检索(基于欧式距离或余弦向量),交互较浅。求解空间:检索通过相关性排序,整个求解空间较小。级联系统:离线模型先产生用户表征再进行检索,这将导致误差逐级放大。噪声问题:ANN 检索容易出现 badcase,用户和商品表征中存在的噪音会影响效果。大模型相比于现有召回链路有什么优势?
深交互:生成式检索在 Decode 过程中,通过 Transformer 架构可以实现查询和候选文档的深度交互。ScalingLaw:生成式模型通过建模下一个可能的 Token,其求解空间非常大。同时,基于原生的 Transformer 结构,模型可以更深,参数量可以更大。端到端检索:生成式检索直接从意图到商品,构建生成式一段式直推任务,减少了中间的信息磨损。融合稀疏与稠密检索:在生成式推荐中,我们新增了语义 ID,可以将稀疏 ID 作为条件输入,指导稠密向量的生成,构建推荐系统的推理链条,有利于提升推荐系统的准确性。2. 模型架构

我们在淘天 1688 中搭建的整个模型架构如下:
稀疏语义 ID 生成:通过 RQ-VAE 等结构生成稀疏语义 ID。稠密向量生成:基于大语言模型生成稠密的 Item Embedding。基于协同增强的融合建模:将稀疏表示与稠密表示组成序列,使用 Transformer 解码器进行交替训练;基于 Fusion Net 融合语义稠密向量与协同稠密向量;在原有 Loss函数基础上,引入基于用户行为引入难的负样本对比损失,以增强转化协同能力。稀疏与稠密融合召回:在线上调用时,使用 Beam Score 和内积 ANN Product 等融合召回方式,保证精度与多样性。3. 关键问题

在上面的整体架构中,我们来看一下涉及到的两个关键问题:
(1)长码本的优化问题
通过实验我们发现,使用的语义 ID 越长,模型效果越好。但是,在效率上存在明显瓶颈,随着语义 ID 序列长度的增加,模型效率很难进一步提升。因此,我们的第一个方向是发现长码本的问题并提供解决方案。
很多同学可能担心长码本会导致线上推理的 RT(响应时间)较高。但是,因为我们目前的召回做的是近线链路(即在用户点击到 Detail 页时触发),我们会把生成式召回的结果写到一个实时表中,然后在用户访问推荐时从表中实时取出。所以不用担心长码本的召回 RT 问题。然而,在排序阶段是实时排序,会有 RT 问题。
因此,我们端到端的生成式推荐(排序)目前使用的是长度为 4 的码本。由于模块不同导致工程链路不同,召回可探索的空间更大,为了更好的效果,我们召回使用长码本。
(2)生成式的多兴趣表征问题
推荐与搜索场景不同,搜索用户需求明确(可能是某个叶子类目),而推荐场景中用户的“逛”的兴趣是多元的。如何在生成式框架下满足用户的多元兴趣需求成为很关键的一个问题。传统的模型中,通过层次序列或 Dynamic Routing 的方式生成多兴趣。但在生成式框架下,这种方式是失效的。
03
长码本优化
接下来我们来介绍一下长码本使用过程中的优化。
1. 长码本关键问题

我们将长码本问题定义为三个问题:
(1)层次与 ID 混淆问题
如上面图中所示,这两个商品在尾部的码本相同,应该都代表卡通这个细粒度语义。但是,第一个商品在服饰类目下,第二个在玩具类目下。不同类目下的卡通语义应该是不一样的,尽管尾部码本相同。这就产生了混淆,即商品在细粒度上的语义相似性导致尾部码本相同,但在不同类目下的语义应有区别。因此,尾部语义 ID 的表征需要充分考虑前缀的语义 ID。
(2)推理连贯性问题
语义 ID 是通过 RQ-VAE 生成的层级类目序列,其结构是从粗到细逐步细化,具有天然的层级依赖关系。然而,主流的生成式推荐模型通常采用 Next Token Prediction 的自回归训练,这会导致模型训练时目光仅局限于下一位 Token 的推理。这种局限性可能导致下面两个问题:
一方面,在模型预测时,如果前面的层次预测出现偏差,错误将逐层累积,导致整个语义ID预测不准,甚至生成无效编码;
另一方面,Next Token Prediction 的局部最优贪心预测可能会破坏码本全局结构的一致性,降低推理质量。
(3)语义 ID 信息分布问题
每个商品的语义 ID 由多个从粗到细的 Token 排列组成。在此结构中,浅层 Token 的正确性对于 ID 的表达起着决定性作用。
例如,如果第一层类目的 Token 预测错误,那么即使后续更细粒度的 Token 全部预测正确,生成的语义 ID 仍然偏离真实语义。就像如果用户实际喜欢男装,但最上层预测成了玩具,那么后面颜色等属性预测再准,错误也很大。
因此,浅层 Token 的语义重要性高于深层 Token,模型训练应针对这种非平衡结构进行相应调整。
2. 长码本的问题解决方案
(1)层次与 ID 混淆问题:引入 TPA(Token-Personalized-Attention)

针对层次与 ID 混淆问题,我们的解决办法是引入 TPA,解决 Token 之间的语义混淆问题。
因为码本的语义强依赖于其前缀编码,在 Token 序列进入主干模型之前,我们首先通过 TPA 进行 Token 微调。具体来说,我们通过一个 Causal Attention 提取每个 Token 的前缀编码信息,通过前缀编码信息对自身进行微调。
对于每一层的 Decoder Block,我们输入一组 Item 的语义 ID 表征(包括离散 ID 表征和稠密表征,即其类目前置的最大类目表征)。我们首先将类目信息(cdx)进行融合,并通过 Causal Attention 提取 Token 的前缀相关信息,得到微调后的 Token 表征。微调后的 Token 表征通过门控机制融合原始输入。
TPA 模块通过引入类目感知的前缀条件,有效缓解了语义 Token 的歧义问题,增强了其对语义细粒度的表达能力。同时,由于 TPA Block 的感受也限制在单个 Item 内部,其计算复杂度远低于标准结构的全序列 Attention。

我们对 TPA 的有效性进行了验证。
验证方法:为了评估 TPA 架构中前缀感知建模的效果,我们对模型微调前后的 Token 表征进行了对比分析。具体关注在不同商品之间,同一位置的 Token Embedding 的相似度变化,以及这种变化与前缀差异度之间的关系。验证结果:在未使用 TPA 的传统语义 ID 模型中,某一位置的 Token Embedding 是静态的,不依赖于前面的上下文信息。相比之下,引入 TPA 后,Token Embedding 变得前缀敏感,即使同一个 Token 出现在相同位置,其向量也会因前缀不同而变化。我们测量了在第 4、8、16 个位置处,不同前缀差异度下的 Token Embedding 余弦相似度。结果如上面图中所示,随着前缀差异度的增加,Token Embedding 的相似度单调下降。这说明 TPA 模块确实对 Token 表征进行了基于前缀的微调,前缀差异越大,Token 表示变化越明显,修正幅度也越大。这验证了 TPA 的核心设计假设,即前缀信息在建模层次化 Token 序列的语义表述中至关重要。通过引入前缀驱动的动态变化机制,TPA 能够生成更加精细且具有辨识度的 Token 表征。(2)推理连贯性问题:引入 MTP(Multi-Token Prediction)

为了显式建模 Token 之间的层次依赖关系,我们设计了一种多标记预测机制,以提升生成过程中各层级 Token 的语义连贯性。MTP 不再采用传统的主 Token 预测方式,而是通过多个解码器模块并行预测后续多个语义层级的 Token。考虑到推理时采用 Beam Search 只会推出一个 Item 的完整 Token 序列,我们提出了一个节流门控单元,以限制预测信息仅在同一个 Item 内部传播,从而满足在线推理的一次性需求。
具体实现方案在训练阶段,在主干模型使用 t+1 时刻的数据作为 Label 的前提下,将主干模型的 Hidden 输出作为第一层 MTP 的输入,用于预测 t+2 时刻的 Label。同时,将第一层 MTP 的 Hidden 输出作为第二层 MTP 的输入,预测 t+3 时刻的 Label,以此类推,进行 t+4, t+5, ..., t+n 时刻的推理。通过多 Token 预测训练,对于每个预测深度,我们计算一个损失,最后计算所有深度上损失的平均值或加权值作为模型的附加训练目标。因此,训练时模型每一层推理出的 Token 需要对后续 t+n 时刻的推理负责,使主干模型的 Token 预测变得更加具有前瞻性。在推理阶段,可以直接丢弃后续的 MTP 模块,主模型可独立正常运行,不增加线上推理时延。
有效性验证为了评估层次化多标记预测对模型性能的影响,我们将预测步数从 1 扩展到 15,分别在 R@1000 和 MMR@1000 上进行评估。结果如下图左边所示,可以观察到明显的扩展性趋势:随着 MTP 层数的增加,模型性能先显著提升,并在第 4 个位置处达到峰值,之后略有下降。我们认为主要有两个原因:
一是语义相关性衰减,当预测步数过大(如 15 步)时,模型学到的长远 Token 之间的语义联系变弱,对整体性能帮助有限;
二是模型容量限制,我们的主干模型仅为两层,其信息存储与传播能力有限,难以充分利用过长的 MTP 预测。
为了进一步验证,我们在不同的语义 ID 长度以及主干网络层数的组合上进行了扩展实验。如上面图中右边两幅图所示,较长的编码长度在浅层 MTP 下提升有限,而深层的 MTP 能充分利用更长的语义结构信息;同时,主干模型层数的增加可以有效缓解 MTP 层数瓶颈的影响。
(3)语义 ID 信息分布问题:引入前缀感知损失(Prefix-Aware Loss)

为了体现语义结构中不同层级的重要性,我们提出了前缀感知 Loss 函数。该方法动态识别当前预测序列最长的正确前缀,仅对首个错误位置及其后的 Token 计算损失,从而引导模型优先学习语义 ID 的粗粒度预测,再逐步扩展至细粒度。
具体实现方法:假设语义 ID 的真实 Token 序列为:[t1, t2, t3, ..., tL],模型预测序列为:[t̂1, t̂2, t̂3, ..., t̂L]。我们定义当前序列最长正确前缀长度为 `L`(即 `t1= t̂1, y2= t̂ 2, ..., yL= t̂ L`, 但`y{L+1} != t̂ {L+1}`)。那么前缀感知损失定义为前 `L+1` 个位置的累积交叉熵损失。
这个损失函数在每次训练迭代中,根据模型当前预测动态调整优化目标,从而避免在浅层预测错误时继续无效地优化深层目标。这有效减少了由语义错误路径带来的训练噪声,加速模型收敛,确保其首先掌握基础的语义层级,再进行更细粒度的预测。
04
生成式的多兴趣表征
接下来,我们将深入介绍在深层框架下,如何进行用户的多元兴趣建模。
1. 基于规则的多兴趣表征

多兴趣建模有很多方案,但核心是在保证正确性的前提下进行多兴趣拆分。
一方面,传统深度模型通过 poly encoding 或 dynamic routing 产生多个兴趣,这些方法在生成式框架下无法使用。因为生成式框架下通过 Beam Search 生成多个稀疏 ID,虽然可以通过温度系数等参数控制生成多样性,但它并非有序生成,无法保证正确性。因此,多兴趣生成需要兼顾多样性与准确性,而不仅仅是多样性。
另一方面,通过拆分输入序列,我们可以将长序列拆分成多个单兴趣的短序列,这可以保证 Transformer Decoder 产生的多兴趣兼具准确性。
我们首先上线了规则版本:统计用户短期行为序列(50 个 Item)中的类目分布,并按规则拆分子序列(例如,按类目拆分,最多 5 个子序列)。但我们发现,推理资源消耗成倍增加,因为原来只需要一次 Transformer Decoder 推理,现在需要分成五个序列进行五次推理。那么,有没有方法可以在不额外增加推理资源的情况下,一次性生成多个兴趣呢?我们提出了 KL Search 方法。
2. 生成式多兴趣

传统 Beam Search 生成的多个语义 ID 很相似,原因是 Beam Search 在搜索过程中更倾向于沿着前期概率较高的路径不断扩展,这会将召回多样性压缩到同类物品。我们提出的 KL Search 与 Beam Search 推理不同,它通过多个头进行推理,当多个头之间遇到多样性瓶颈时,混合路径才会扩展,从而放大推理出的语义 ID 的差异性,提升召回结果的多样性。
模型验证与效果我们来看一下模型验证结果。

我们发现生成式多兴趣提升了类目宽度。同时,模型的准确性也有一定幅度的提升。这说明在保证准确性的前提下,增加用户的多兴趣表征,同时减少了规则方案的计算资源消耗。

从上面图中整体离线效果表明,我们的模型相比于其他模型,在各项指标上均有提升。同时,消融实验也验证了 TPA、MTP 和前序感知损失的有效性。在上线 A/B 测试中,我们的核心北极星指标也有较大幅度的提升。
05
Q&A
Q1:刚才提到的长码本和多 Token 预测这些方法,在实际推荐里会不会增加延迟?线上体验是如何保证的?
A1:我们目前在做生成式召回和端到端的生成式排序。其中生成式召回采用的是一个近线链路,也就是说当用户点击到 Detail 页时,我们的工程链路就会启动。当用户回退到首页推荐时,整个链路已经跑完,结果已经写入一个实时表,我们从实时表中读取结果。所以,线上推理时间虽然相比于短码本较长,但在我们可接受范围内。同时,因为是近线链路,它不会对用户体验造成影响。而长码本相比于短码本带来的效果提升幅度还是比较大的。
Q2:长码本有多长?码本空间有多大?
A2:长码本是 16 维的长度。大部分是 4 维的长度。所以我们的生成式排序也用的是 4 维的。
Q3:多兴趣建模上线后,用户在发现新品或者趋势商品上的体验有没有明显提升?
A3:多兴趣建模不直接涉及新品。从我们的结果来看,平均召回的类目数有比较大的提升,所以它的发现性相比于原来肯定是打开的。关于新品我们有单独的召回链路。因为我们是 B2B 平台,有些买家是做新品生意的。另外,在诸如春夏上新、秋冬上新或者季节性节点,我们会对新品的加权幅度比较大。所以,新品主要通过这两个链路(单独新品链路和季节性加权)来提升曝光。
以上就是本次分享的内容,谢谢大家。