Netflix GenPage 试验:用一套生成式模型端到端构建用户个性化首页
FrankXYZ| 探显家Attention| 2026-07-07
【流媒体网】摘要:Netflix 采用单一生成 Transformer,替代多阶段推荐链路,端到端生成结构化个性化流媒体首页。

  最近 Netflix TechBlog 分享了一篇挺有意思的文章,介绍了他们的一项新工作,GenPage:一套用生成式模型端到端构建首页的方法。

  要理解它的新意,得先聊下传统推荐系统是怎么拼首页的。业界的主流做法是一条多阶段流水线,我们同样以 Netflix 举例,可以粗略拆成两步:

  候选生成:Netflix 的内容库有成千上万个条目,实时给每个用户逐一打分既不现实也太贵。所以第一步是“海选”,用一些相对轻量、召回率优先的模型,从全库里快速筛出几百到几千个“这个用户大概率会感兴趣”的候选,把范围从“全库”缩到“一小撮”。

  多轮排序:拿到候选池后,再用更重、更精细的模型对这几百个候选逐层打分排序,通常还会分粗排、精排等多轮,先快速砍掉一批,再对剩下的用更复杂的模型精细排列,最后决定谁排在前、谁排在后。

  而且这套流程在 Netflix 平台内部还要跑两层:一套负责“选哪些板块(行)、怎么排”,另一套负责“每个板块里放哪些内容、怎么排”,行级别和条目级别各有各的候选生成与排序模型。

  而 GenPage 把这一整套彻底推翻,训练了一个单一的生成式模型(single generative model),像大语言模型根据提示词“写”文章一样,把整张个性化首页,包括有哪些板块、每个板块放哪些内容、板块之间怎么排布,一次性“生成”出来。加权二元分类(WBC)版本已经真上线做了 A/B 实验,在核心参与度指标上取得 0.24% 的统计显著提升(p<0.001),同时把端到端服务延迟降低了 20%。数字虽算不上惊人,但在 Netflix 这个体量上,能同时拿到“指标涨、延迟降”这个组合,已经非常难得。

  我读完的第一感受是,这可能不只是一次推荐算法的迭代,而是推荐系统和大模型这两条技术路线开始真正融合的一个信号。下面结合原文,聊聊这套东西的思路、几个值得同行关注的工程决策,以及我自己的一些看法。

  首页,才是流媒体真正的战场

  对任何一家做内容分发的公司来说,首页都是最贵的一块地。用户打开 App 的头几秒,看到的那几屏内容行,基本决定了他今晚会不会留下、会点开哪一部影视剧、会不会一路刷到底。Netflix 把这件事做到了极致:首页上出现哪些板块、每个板块里排版哪些内容、板块之间又如何从上到下编排,几乎每一处都是针对单个用户实时计算出来的。

  问题在于,这远不是“排一个榜单”那么简单。首页本质上是一个二维的结构化版面,横向是一个个内容行,纵向是行与行的堆叠,每一行里又装着若干可推荐的条目(entity,可以是剧集、电影、游戏、直播活动等)。更麻烦的是,这些选择彼此牵动:你把某个板块往上提一格,可能就挤掉了另一个板块的曝光;某一部片的点击率,也会受到它上下文里其他内容的影响。

  正因如此,前面那套多阶段、行/条目分开处理的流水线才显得格外笨重,链路长、要维护的模型多,各阶段的优化目标还常常互相矛盾。每个环节都在最大化自己那一小步的指标,却未必对“整页最优”有利,背后还堆积着大量手工特征工程。我想任何在推荐系统里干过活的人,都熟悉这种“缝合怪”式的复杂性。

  换一种思路:把首页当成一段“生成”出来的内容

  那么如何解决以上提到的这些痛点?有没有更简洁的方案?

  Netflix 研发团队的灵感直接来自大语言模型:既然一个模型可以根据一段“提示词”直接生成一整段回答,那推荐系统能不能也这样干。于是他们训练了一个单一的生成式模型,让它直接回答一个问题:综合我们掌握的关于这位用户、这次请求的全部信息,应该生成一个什么样的首页,才能最大化用户满意度?

  他们把这套方法称为 GenPage。它的运作方式是:把用户的行为历史、画像属性、当前请求上下文打包成“提示词”,然后像写文章一样自回归地把整张首页“生成”出来,先生成第一个板块、第一个条目,再基于“页面上已经放了什么”去决定下一个放什么,一路推进到整页完成。

  这里有个关键的差异化。市面上已有的生成式推荐系统(如 TIGER、HSTU、OneRec)大多只生成一个扁平的排序列表。GenPage 把内容行、条目和整体版面一起生成,交付的是一整张成型的首页,而不只是一串排好序的片单。

  这套设计想达成四个目标,每一个都直指传统推荐栈的痛点:

  端到端建模。一个 Transformer 从原始信号直接产出整页,替掉一整套多阶段系统。要维护的模型更少,各阶段目标不再打架,大量特征工程也随之消失。

  用强化学习做整页优化。因为页面是一步步生成的,就可以针对“整页的价值”来优化,从而捕捉行与行、条目与条目之间的相互作用。文中一个例子很能说明问题:把“继续观看”放在首页顶部,能强烈满足用户的即时意图,但也可能让他点一下就走、不再往下浏览。这种“停留力”(stopping power)的权衡,只有在整页层面建模才能抓得住。需要说明的是,这套强化学习后训练目前还停留在离线实验阶段,Netflix 自己也说尚未上线,他们把它视为通往完整愿景的关键路径,而不是已经交付的结果。

  更好的规模化表现。想提升质量,加数据、加算力、加模型容量即可,不必反复重构系统,这正是大模型范式最诱人的地方。

  灵活与可扩展。提示回应这套范式天生灵活。未来要接入直播、游戏、播客等新内容类型,要支持二维之外的版面,要做个性化 UI 组件甚至每个条目的个性化封面图,改动都更小。

  它是怎么落地的:几个值得行业关注的工程决策

  把这套想法真正塞进 Netflix 的生产环境,绕不开工业级推荐系统的老难题。这里几个技术选择,对同行尤其有参考价值。

  用“自己的语言”给数据分词。GenPage 没有套用现成的文本分词器,而是为首页数据专门设计了一套 token 体系,每个内容行、每个条目都对应一个 token。好处有两层:

  效率上,比如“用户 30 天前看了某剧 50 分钟”这条记录,用通用文本分词器要占 16 个 token,他们的方案压缩到 4 个(条目 ID、动作类型、时间分桶、时长分桶),序列更短、推理更快、成本更低。

  可控性上,token 和产品概念一一对应,想控制模型能生成什么就容易得多,这为后面执行业务规则埋下了伏笔。

  训练方案照搬大模型套路。GenPage 完全复刻了训练大语言模型(如 ChatGPT)的两步走战略:

  1、预训练(博览):喂给它海量历史真实数据,让它先弄明白“一个正常的、高点击的 Netflix 首页长什么样”,掌握首页的“语法”。

  2、后训练(调教):教它如何迎合用户口味。这里他们兵分两路:

  -- 已上线的“简单版”:做局部的“单选题”(加权二元分类),只盯着单个视频预测用户点不点。简单直接,先跑通上线。

  -- 还在实验室的“进阶版”:做全局的“统筹题”(强化学习),站在整张首页的高度,考虑视频之间的搭配、排版和相互影响。这更难,但才是终极形态。

  冷启动靠“内容语义”补位。推荐系统最怕“新剧”,因为没人点过,系统不知道推给谁(缺乏交互数据)。 传统做法靠“认脸熟”(ID嵌入),新剧没数据就抓瞎。GenPage 的解法是让新剧带上“详细简历”(内容嵌入):把剧情简介、演员阵容、类型甚至视频画面等特征打包。这样一来,哪怕新剧零点击,系统也能通过比对“简历”,把它合理地和相似的老剧放在同一个推荐池里。这对上新内容频繁的平台是刚需。

  用“受约束解码”硬性保证业务规则。生成模型天马行空,但产品有业务规则(比如第一行必须是“继续观看”,喜剧行绝不能混入恐怖片)。怎么防止模型“乱点鸳鸯谱”? 他们用了“受约束解码”:在模型每次准备吐出一个内容(Token)前,系统会递给它一张“屏蔽单”(掩码),把不符合规矩的选项直接涂黑,模型只能从剩下的“白名单”里挑。这种“给足生成自由度 + 硬性规则兜底”的机制,是把大模型推向生产环境的关键。

  混合解码压延迟。让模型像人说话一样“一个字一个字往外蹦”(自回归生成)太慢了,用户等不及。 怎么提速?他们发现每一行里,最前面的一两个视频最吸睛,决定了这一行的调性。于是,他们对前几个视频“精雕细琢”(逐个生成,考虑上下文),而对后面用来填充的视频,直接一次性批量并行算完。既保住了核心位置的推荐质量,又大幅砍掉了系统的计算延迟。

  几个结论,对做推荐的人很有分量

  第一,真上线了,而且又好又快,但幅度需要理性看待。在针对一套成熟、已被高度优化的多阶段生产系统的线上 A/B 实验中,GenPage(WBC 版本)在核心参与度指标上取得了 0.24% 的统计显著提升,同时把端到端服务延迟降低了 20%。这一点值得注意,业界普遍以为生成式模型会更慢,用一个直接在 token 化输入上运行的 Transformer 替掉多个排序阶段和繁重的特征计算后,整体反而更精简了。而且这 20% 还没榨干优化空间,余量可以回投到更大的容量或更丰富的上下文里。

  为期 14 天的在线 A/B 测试中每日核心用户参与度指标。图中显示了几个 GenPage 变体(训练数据配置不同)相对于生产环境基线的平均处理效应。阴影区域为 95% 置信区间。所有变体都相对于生产环境带来了具有统计显著性的改进。

  第二,“喂信息”比“堆参数”更划算。这是全文对行业最有启发的一条,官方原文的定性结论是:在他们当前的阶段,丰富输入给模型的上下文信息,比单纯扩大模型容量带来的提升更大(原文没有给出可独立核实的具体百分比,这里不做数字复述)。对预算有限、纠结要不要上更大模型的团队,这是个实在的提醒,先把数据和特征表示喂饱,再谈扩容量。

  第三,强化学习训练下,模型在离线实验中自发学会了多样性。他们从没把“多样性”写进强化学习的优化目标里,但训练过程中,首页的多样性(用条目之间的语义距离衡量)却一路上升。这个发现目前还停留在离线阶段,没有经过线上验证,但它说明经强化学习训练后的模型,是在为“整页最优”着想,不只是逐个最大化单条推荐的短视优化。这正是整页优化相对于条目级优化的价值所在。

  值得一提的是,上线后他们也观察到一些未曾主动优化、却出现的分布变化:被曝光内容的类别结构变了(新片与老片、剧集与电影的比例发生偏移)。这未必是坏事,研发团队推测是 GenPage 个性化得更精准,用户用更少的曝光就找到了想看的内容,即“曝光效率”提升了。但这也暴露出一些从旧系统继承下来的组件(比如奖励系统)还没和新的生成式范式对齐,需要后续持续调校。这种新范式跑通后反过来照出老组件不适配的现象,做过大型系统迁移的人应该都不陌生。

  还没走完的路,以及它意味着什么

  作者也坦白,完整愿景还有不少缺口:超长的用户历史目前还得靠手工摘要来压缩,语言、多模态、推理这些大模型式的能力也尚未真正融合进来,强化学习后训练也仍未上线。他们看好的一个方向是“混合分词”,也就是把领域里专用的 token 和通用文本 token 结合起来,既保留结构化的可控性,又继承通用大模型的能力,相当于给大模型引入了一种新的“推荐模态”。

  往大了说,GenPage 给我们的启示是,大模型生态里的进展正在一点点渗透进推荐系统,两者之间的边界会越来越模糊。过去我们把“推荐”和“语言模型”当成两套东西,现在 Netflix 用一个 Transformer、一套预训练加后训练的配方,就把整张个性化首页端到端地生成了出来,已上线部分在核心指标和延迟上小幅但显著地跑赢了成熟的老系统,更激进的整页强化学习优化则还在路上。

  对流媒体和更广义的内容分发行业,这至少提出了一个值得认真对待的问题:那套层层叠叠、缝了很多年的推荐流水线,有没有可能被一个“会生成整页”的模型整体替代。

  Netflix 给出的答案是,至少在方向上,可行,但目前取得的成果还比较克制,离“全面碾压”还有一定的距离。

  本文来源:【探显家Attention】公众号

  版权归原作者所有,仅用于分享交流。

责任编辑:赵莹

分享到:
版权声明:凡注明来源“流媒体网”的文章,版权均属流媒体网所有,转载需注明出处。非本站出处的文章为转载,观点供业内参考,不代表本站观点。文中图片均来源于网络收集整理,仅供学习交流,版权归原作者所有。如涉及侵权,请及时联系我们删除!