← 论文沉淀 / 🎯 生成式推荐 · ·RecSys 2026

Hypothesis-Driven Shelf Generation for Personalised Recommendation

Aleksandr V. Petrov, Tarun Chillara, Matthew D. Moellman, Lucas de Haas, Yabai Song et al. (16 人)

Spotify

把首页「货架」(shelf,横向主题行)从人工模板 + 专用召回,改成「先生成假设、再履约」:LLM 根据用户画像生成自然语言的货架假设(如「带管弦乐质感的冰川氛围后摇」),附带内容类型、熟悉度、新鲜度等约束;再由一个不看用户画像、只看假设的 SID 生成式检索模型,在按内容类型分开的 trie 上做约束解码,把假设落到具体曲库实体上。之后由 LLM 挑最终 k 个 item 并改写标题,使标题和实际内容一致,全流程离线日批预计算,在 Spotify Home 上作为排序候选上线。

Shelf Hypothesis PlanningPlanning-Fulfilment DecouplingConstrained SemID RetrievalTitle-Promise AlignmentLLM-as-a-Judge Evaluation
📝 我的备注
加载中…

核心思路

Spotify Home 由多行「货架」组成,传统做法是一个货架对应一个手写模板加一套专用召回,模板同时决定了「满足什么需求、什么内容算合格、用什么系统来填」。这种做法无法覆盖个人口味的长尾组合。

论文的核心改动是把货架生成当作生成式规划问题:先由 LLM 根据用户画像生成自然语言的货架假设(如 “glacial ambient post-rock with orchestral textures”),再由一个只看假设、不看用户的 SemID 生成式检索模型把假设落到曲库实体上。假设是规划和履约之间的「契约」,表达力要足以描述长尾口味,又要具体到能约束检索,结构上还要支持评测。

整体实现思路

四个阶段,每天离线批跑,每个阶段都有稳定的中间产物(假设、候选集、对齐后货架、服务记录):

阶段输入输出主要失败模式评测钩子
1 假设生成用户画像货架假设过于泛化、缺少依据、描述不清User-to-Hypothesis Judge
2 曲库履约假设候选 URIitem 没体现假设Hypothesis-to-Shelf Judge + 检索基线
3 选品与对齐候选 + 草稿标题最终 item + 改写标题标题夸大,整行缺乏协调性对齐前后对比
4 服务货架记录Home 候选离线质量好,线上不一定有竞争力均匀随机曝光

形式化:假设 h = (q, c, f, r, t0, d0),其中 q 为自然语言描述,c 为内容类型,f 为熟悉度,r 为路由约束(市场、新鲜度),t0/d0 为临时标题和副标题;最终货架 s = (t, d, q, I),I 为有序的曲库实体列表。用户画像只进入 Stage 1。

子模块实现(可复现细节)

Stage 1:假设生成

  • 画像信号:近期收听、长期偏好、市场上下文、熟悉内容、播客互动。
  • 每个用户生成少量假设,覆盖口味的不同侧面。每条假设包含目标内容类型、熟悉度、可选的新鲜度约束、t0、d0 和 q。
  • 早期用前沿 LLM 批量模式生成;生产版蒸馏到小型开源 LLM,部署在 GPU 批处理集群上。输入是压缩序列化后的画像,输出受 schema 约束(假设文本仍为自由文本),非法或缺失的类别值映射为安全默认值,按用户打包。
  • 论文没有给出教师模型和学生模型的名称、规模以及蒸馏数据量。

Stage 2:SemID 约束生成式检索

  • 基座是一个更小的开源 LLM,词表扩展了基于 Spotify 曲库学到的 SemID,构造方法「类似」Spotify 播客 SID 工作(D’Amico et al. 2026)和 Google PLUM;SID 的层数和码本大小未披露。
  • 输入只有假设和目标货架类型/检索约束元数据,刻意不放用户画像,因为用户相关的推理已在 Stage 1 完成。
  • 约束解码用 trie,按内容类型分开建:专辑、艺人、编辑歌单、播客节目、播客单集。
  • 按货架类型切换索引:编辑类用分市场的编辑索引;新发行类用按时间过滤的索引;熟悉类用用户熟悉实体在线临时建的 trie;探索类用更大的全曲库索引。
  • 后处理:SemID 解析为 Spotify URI,再按类型一致性、是否听过、熟悉度约束过滤。

Stage 3:候选选择与标题对齐

  • 动机:候选里单个 item 可能都相关,但整行可能不协调,或者标题描述的概念比实际内容更窄、更宽或干脆不同。
  • 做法:一个 LLM 接收原假设、t0、d0 和补全元数据(流派、来源、年份、语言等)的候选,选出最终 k 个 item(k 未披露),并改写出 t、d。目标是在 item 相关性、集合协调性、多样性和标题承诺兑现之间取得平衡。

Stage 4:服务

  • 预计算的货架作为普通候选进入 Home 排序,不固定坑位,线上没有 LLM 推理,不增加延迟。
  • 各阶段共用同一种结构化货架表示,因此可以替换各个阶段做对比(前沿模型 vs 蒸馏模型、约束解码 vs 非约束、有无对齐),下游服务不需要改动。

评审设计

  • 两个评审,均为 0–2 分(0 fail / 1 fair / 2 good)。作者认为粗粒度打分更稳定,人和 LLM 的一致性也更高。
  • User-to-Hypothesis Judge:看用户近期互动(top 艺人、top 节目、最近消费)以及假设和标题,不看检索结果。维度:Taste Alignment、Personalisation Depth、Discovery Potential、Hypothesis Specificity、Title Quality。
  • Hypothesis-to-Shelf Judge:看标题、副标题、假设和带元数据的 item 列表。维度:Style Match、Item Relevance、Shelf Coherence、Hypothesis Coverage、Completeness(是否包含经典代表作)、Diversity、Title Promise Fulfilment。

实验设置与结果

假设质量(前沿 LLM 生成器)

维度分数
Overall1.59±0.01
Taste Alignment1.59
Personalisation Depth1.45
Discovery Potential1.31
Hypothesis Specificity1.99
Title Quality1.76

按内容类型:Album 1.90、Artist 1.98、Playlist 1.86、Show 0.66、Episode 0.51,播客明显偏弱。

蒸馏一致性:在 800 个生产用户上,前沿模型 78.3%,蒸馏学生 78.2%,分维度差异很小且方向不一。

履约:生成式检索 vs 文本检索(1000 个用户、1 万条假设)

方法OverallStyleRelev.Coher.Cover.Compl.Divers.Title
BM250.560.870.840.930.920.751.060.54
Dense (MiniLM)0.390.670.650.730.780.610.940.37
Hybrid (α=0.5)0.490.780.760.820.920.741.060.46
Generative Retrieval0.710.991.041.051.151.281.390.66

24 组对比经 Bonferroni 校正后均为 p<0.001。差距最大的是 Completeness、Diversity 和 Coverage。当 item 带有与假设用词接近的人工描述时,BM25 相对更有竞争力;当概念依赖风格联想、文化背景或元数据中很少体现的属性组合时,BM25 会明显退化。

Stage 3 对齐前后(Hypothesis-to-Shelf Judge)

维度PrePostΔ
Overall0.711.27+78%
Style Match0.991.51+52%
Item Relevance1.041.58+52%
Shelf Coherence1.051.64+56%
Hypothesis Coverage1.151.37+19%
Completeness1.281.46+14%
Diversity1.391.74+25%
Title Promise0.661.31+99%

注意:对齐前为 1 万个货架,对齐后为 1.6 万多个生产货架,两组不重叠,使用 Welch 独立样本 t 检验,不是配对比较。

线上:Home 均匀随机曝光(请求级随机,指标为 30 秒播放率)

内容池假设驱动 (%)最强经典 (%)池内排名Δ
Album1.20±0.130.88±0.091/10+36%
Artist0.82±0.170.89±0.062/9-8%
Playlist0.92±0.091.07±0.075/15-14%
Show0.92±0.311.57±0.112/6-41%
Episode0.63±0.200.62±0.081/7+2%

作者说明这是池内描述性对比,不是汇总后的因果效应。Album 和 Episode 两个池中假设驱动货架最好,播客节目池差距最大。

思考与可参考价值

值得借鉴的地方

  1. 用「主题假设」作为接口来拆分规划和履约。 规划模型负责「这个用户该看什么主题」,履约模型只负责「这个主题对应哪些商品」。履约模型与用户无关,可以按主题缓存和复用,也能单独评测。电商首页的主题楼层和「为你发现」卡片可以直接套用这个结构。
  2. 用多棵 trie 承载业务约束。 分市场、新品池、用户熟悉集合(在线临时建 trie)共用一个 SID 生成模型。电商中对应类目、店铺、新品、复购集合等约束,比为每个楼层单独训练召回要省事。
  3. 集合级评审和标题对齐。 「标题承诺」这一维提升了 99%,说明在 LLM 生成标题的场景里,标题和内容不一致是主要的质量问题,应该单独度量。
  4. 离线预计算、作为普通候选进入排序的上线路径成本低,适合新范式试水。

需要警惕的地方

  • 论文没有给出模型规模、SID 结构和 k,只能参考其范式,无法复现具体数字。
  • 离线结论完全依赖 LLM 评审,没有给出本系统内与人工标注的一致性数据。如果对齐 LLM 和评审 LLM 同族,+78% 中可能有一部分来自评审对同族模型输出的偏好(推断)。
  • 履约基线只有 BM25 和 MiniLM,没有和微调过的双塔模型比较。实际落地时,「SID 生成 vs 微调双塔」才是关键对比,需要自己验证。
  • 线上只有探索流量下的描述性对比,没有正式 A/B 实验,也没有报告对整页指标的影响;内容类型之间差异很大(+36% 到 -41%)。

落地前需要确认:自有 SID 在「文本主题到商品」检索上的覆盖率和有效率;用几百条人工标注校准 LLM 评审;低频品类和冷启动用户的假设质量(对应论文中播客偏弱的情况);日批时效性能否满足大促和新品场景。