Netflix 推出 GenRec:基于大语言模型的推荐系统新范式

Netflix 推出 GenRec:基于大语言模型的推荐系统新范式 图片 1
Netflix 推出 GenRec:基于大语言模型的推荐系统新范式 图片 2
Netflix 推出 GenRec:基于大语言模型的推荐系统新范式 图片 3
Netflix 推出 GenRec:基于大语言模型的推荐系统新范式 图片 4

作者:英莉,阿尔君·拉奥,施拉达·塞加尔

简介

推荐是Netflix体验的核心。我们当前的生产模型依赖于数千个手工打造的功能,覆盖用户、物品和交互,以及专门的序列建模、特征交互和多任务目标架构。

该技术栈经过多年发展,支持多样化的内容类型(电影、剧集、游戏、直播、播客)和产品表面,但其复杂性使得引入新用例成本高昂:添加内容类型或表面可能需要大量特征工程、架构变更、基础设施工作和实验。

与此同时,大型语言模型(LLM)正在改变我们对推荐的看法,正如近期研究所示PLUM,滑翔, 和一思一信.他们广泛的世界知识和强大的语言理解,使得用户历史和项目元数据能够直接以文本形式呈现,在共享语义空间中捕捉丰富的关系,并通过自然语言提示引导推荐。

然而,现成的大型语言模型仍远未达到生产级推荐:它们常常过度推荐全球热门内容,误导目录外的商品,忽视业务限制,且仅提供有限的个性化服务。

为此,我们建立了GenRec,一个基于LLM支持的推荐排名器,用于针对Netflix特定数据和目标进行内部基础LLM的后期训练。GenRec 表明,基于 LLM 的排名器可以在依赖更少标记样本和输入信号的情况下,匹配甚至超越成熟的生产系统。

图1:GenRec 流水线。用户历史、商品元数据和上下文的原始日志通过上下文工程转化为自然语言提示,并输入GenRec,GenRec以仅预填充模式运行于vLLM上,为每个目录项目输出评分,从而生成推荐排名。

从高层次来看,GenRec:

  • 以文本形式口述用户历史、物品元数据和上下文。
  • 她为排名训练了一个Netflix改编的基础大型语言模型。
  • 在Netflix片中增加了一个目录感知的配乐头。
  • 利用奖励信号与长期会员价值和业务目标保持一致。
  • 在Netflix的LLM服务栈上以预填充模式运行,以降低成本。

在与调优良好生产排名器的大规模A/B测试中,GenRec在短期和长期在线指标上均取得了统计学上的显著提升,同时仅使用了Phase-2标记数据和输入信号的极小部分。

它减少了我们对手工设计功能的依赖,并将关注点从那里转移开特征工程到上下文工程.在这篇博客文章中,我们将介绍GenRec的工作原理、性能,以及我们为何认为它指向Netflix更注重LLM的推荐未来。

问题设置

我们专注于完整目录排名 任务(或者说顶端——K当提供候选集时的排名)。

给定用户u、其交互历史H和当前上下文τ(设备、表面、地点、时间等),GenRec对每个项目进行评分并生成个性化排名,这些排名可以直接推动推荐或作为下游个性化系统的输入。

形式上,我们映射一个请求(u,t,t,H)——用户、上下文、时间和历史——对目录进行排名πC, 其中π(i)是分配给项目的位置i.我们优化p对于预期长期会员效用(作为满意度和留任的代理指标),而不仅仅是短期的合作。

从基础大型语言模型到推荐排名者

GenRec 遵循两阶段培训框架(图2):

图2:两阶段框架。第一阶段训练基于Netflix数据的基础大型语言模型,用于用户和内容理解,第二阶段则后期训练针对排名特定数据和目标。

第一阶段——Netflix改编 基础法学语言模型.

我们从一个开源的大型语言模型出发,并在专有的Netflix语料库上进行改编,使其学习基础能力,比如

  • Netflix内容理解
  • 成员行为与偏好模式
  • 一般的语言理解和生成。

第一阶段更新相对较少,作为许多应用共享的、符合Netflix需求的骨干网。

第二阶段—GenRec.

随后,我们通过对排名特定数据和目标进行后期训练,将该基础模型转化为高质量的排名模型。第二阶段:

  • 重点关注排名质量和指导
  • 通过加权损失引入多重奖励信号
  • 更新频率更高,以跟踪新内容和不断变化的口味
  • 在服务成本约束下明确优化。

训练数据作为对话

Netflix会员生成数千亿涉及跨多个表面的交互事件(视角、播放、持续时间、点赞/点赞/点赞、添加列表、放弃等)。我们将这些对数数据转换为单回合或多回合“对话”用户和推荐者之间。

每回合包含:

  • 用户信息:口头上下文、个人资料、历史、项目元数据和任务(例如,推荐用户接下来要看什么或浏览什么)。
  • 助理信息:会员的实际参与度(例如,播放了哪些游戏,播放了多长时间,他们提供了哪些反馈)。

在第二阶段培训中,LLM学习助理消息如何依赖用户消息。这使得我们能够以文本形式表达丰富的推荐信号,同时支持语言建模(LM)和排名目标。

在推断时,我们在口头语境中输入数据,并应用目录感知的评分头对项目进行排序;我们不解码助理消息。会话形式主要用于培训中,以支持LM的目标,并保持对口头文本的语言理解。

口语化与语境工程

传统推荐器基于密集特征和嵌入进行操作。GenRec 采取了不同的方法:它口头表达丰富的用户历史和上下文作为自然语言,直接编码在LLM的语义空间中原始的交互信号。

在此过程中,它依赖模型发现更高级的模式——如物品关系和不断变化的用户兴趣——而非手工设计特征工程。

天真地口头化用户历史中的每一次互动,可能会很快超出代币预算,且在Netflix规模下成本过高。上下文窗口成为我们的新“功能预算”,所以我们应用背景 工程:

  • 全额保留:高信号互动(如长音、点赞)以及更丰富的细节
  • 省略:信号较低的事件(例如,非常短暂的出局或快速悬空)
  • 总结或压缩:重复行为(例如,狂看剧)
  • 请有选择地详细说明:重要或冷启动项目(例如新发布)

在固定的代币预算内,我们优先考虑近期、信号较大的历史,压缩或剔除旧历史。我们还设计提示以最大化共享前缀,以实现更好的前缀缓存。

目标是紧凑、高信息提示这样既保持了排名质量,又不会产生高昂成本。

目标:排名、语言与奖励

整体GenRec模型通过以下方式进行训练多目标损失该项目结合了推荐排名目标、语言建模目标以及通过奖励加权培训实现的对齐。

1. 目录感知排名目标

主要任务是排名目标这教会模型通过参与度质量来评分项目。我们用阈值和去噪逻辑标记高价值参与度(例如,足够长的出牌次数、强烈的显式反馈),并通过对目录或候选集的交叉熵损失来训练模型,在有口头语境的情况下为这些正值分配更高分数。

2. 语言建模目标

我们还保留了语言建模(LM)客观地对待口头输入和输出。这有助于保持模型的一般语言理解,提升其对丰富自然语言历史和项目元数据的解读能力,并为文本生成用例如推荐解释保持开放空间。

3. 对齐的奖励加权损失

除了排名的准确性之外,GenRec还必须(1)尊重业务需求——对于......

添加评论
点赞收藏
点踩分享查看原文
评论
?
参与讨论