译| Netflix内容推荐模型的一些改进方向
翻译自两篇Netflix的文章:
Foundation Model for Personalized Recommendation
Recommending for Long-Term Member Satisfaction at Netflix
文章目录
- 1 基础推荐模型的改进
- 动机
- 数据
- 模型目标和架构的考虑
- 推荐基础模型的独特挑战
- 下游应用和挑战
- 扩展 Netflix 推荐的基础模型
- 结论
- 参考文献
- 2 Netflix 的长期会员满意度推荐系统
- 将推荐视为上下文老虎机问题
- 改进推荐:模型与目标
- 留存率作为奖励?
- 代理奖励
- 点击率 (CTR)
- 超越 CTR
- 奖励工程
- 挑战:延迟反馈
- 解决方案:预测缺失的反馈
- 两种类型的机器学习模型
- 挑战:在线-离线指标差异
- 总结与开放问题
- 参考文献
–
1 基础推荐模型的改进
动机
Netflix 的个性化推荐系统是一个复杂的系统,拥有各种专门的机器学习模型,每个模型都满足不同的需求,包括“继续观看”和“今日为您精选”。(更多详细信息请参阅我们最近的概述)。然而,随着我们扩展个性化算法集以满足日益增长的业务需求,推荐系统的维护成本变得相当高昂。此外,由于大多数模型尽管使用共同的数据源,但都是独立训练的,因此很难将创新从一个模型转移到另一个模型。这种情况凸显了对新推荐系统架构的需求,其中成员偏好学习是集中的,从而增强了跨不同模型的可访问性和实用性。
特别是,这些模型主要从成员在平台上的近期互动历史中提取特征。然而,由于服务延迟或训练成本的限制,许多模型仅限于短暂的时间窗口。这一限制促使我们开发一个用于推荐的基础模型。该模型旨在从成员的完整互动历史和我们的内容中大规模地吸收信息。它通过共享模型权重进行微调或直接通过嵌入,将这些学习成果分发给其他模型。
构建基础推荐模型的动力来自于自然语言处理 (NLP) 领域向大型语言模型 (LLM) 的范式转变。在 NLP 中,趋势正在从众多小型专业模型转向一个单一的大型语言模型,该模型可以直接或通过少量微调执行各种任务。这种转变的关键见解包括:
- 以数据为中心的方法:将重点从模型中心策略(严重依赖特征工程)转向以数据为中心的方法。这种方法优先考虑积累大规模、高质量的数据,并在可行的情况下,旨在实现端到端学习。
- 利用半监督学习:LLM 中下一token预测目标已被证明非常有效。它能够使用未标记数据进行大规模半监督学习,同时还赋予模型对世界知识的惊人深度理解。
这些见解塑造了我们基础模型的设计,实现了从维护众多小型专业模型到构建可扩展、高效系统的转变。通过扩展半监督训练数据和模型参数,我们旨在开发一个不仅能满足当前需求,还能动态适应不断变化的需求的模型,确保可持续创新和资源效率。
数据
在 Netflix,用户参与度涵盖了广泛的范围,从随意浏览到专注观看电影。截至 2024 年底,拥有超过 3 亿用户,这意味着数百亿次互动——这是一个与大型语言模型 (LLM) 的token量相当的庞大数据集。然而,与 LLM 中一样,数据质量通常比其纯粹的数量更重要。为了有效地利用这些数据,我们采用了一种互动Tokenizing 过程,确保识别有意义的事件并最大限度地减少冗余。
Tokenizing 用户互动:并非所有原始用户行为都对理解偏好做出同等贡献。Tokenizing 有助于定义序列中什么构成有意义的“token”。类比 NLP 中的字节对编码 (BPE),我们可以将Tokenizing 视为合并相邻行为以形成新的、更高级别的token。然而,与语言Tokenizing 不同,创建这些新token需要仔细考虑保留哪些信息。例如,可能需要汇总总观看时长或聚合参与类型以保留关键细节。
放大图像将显示
图 1. 通过合并同一标题上的操作,对用户互动历史进行Tokenizing ,保留重要信息。
粒度数据和序列压缩之间的这种权衡类似于 LLM 中词汇量和上下文窗口之间的平衡。在我们的案例中,目标是平衡互动历史的长度与单个token中保留的细节级别。过度有损的Tokenizing 可能会丢失有价值的信号,而过于细粒度的序列可能会超出处理时间和内存的实际限制。
即使采用这些策略,活跃用户的互动历史也可能包含数千个事件,超出具有标准自注意力层的 Transformer 模型的容量。在推荐系统中,推理期间的上下文窗口通常限制在数百个事件——这不是由于模型能力,而是因为这些服务通常需要毫秒级的延迟。这一限制比 LLM 应用程序中典型的更严格,后者可以容忍更长的推理时间(秒)。
为了在训练期间解决这个问题,我们实施了两个关键解决方案:
- 稀疏注意力机制:通过利用稀疏注意力技术(例如低秩压缩),模型可以将其上下文窗口扩展到数百个事件,同时保持计算效率。这使其能够处理更广泛的互动历史,并深入了解长期偏好。
- 滑动窗口采样:在训练期间,我们从完整序列中采样重叠的互动窗口。这确保模型在多个时期暴露于用户历史的不同片段,使其能够从整个序列中学习,而无需不切实际的大上下文窗口。
在推理时,当需要多步解码时,我们可以部署 KV 缓存以有效地重用过去的计算并保持低延迟。
这些方法共同使我们能够在详细、长期互动建模的需求与模型训练和推理的实际限制之间取得平衡,从而提高我们推荐系统的精度和可扩展性。
每个“Tokenizing”中的信息:虽然我们Tokenizing 过程的第一部分侧重于构建互动序列,但下一个关键步骤是定义每个token中包含的丰富信息。与通常依赖单个嵌入空间来表示输入token的 LLM 不同,我们的互动事件充满了异构细节。这些包括行为本身的属性(例如区域、时间、持续时间和设备类型)以及有关内容的信息(例如项目 ID 和元数据,如类型和发布国家/地区)。这些特征,尤其是分类特征,大多数都直接嵌入到模型中,采用端到端学习方法。然而,某些特征需要特别注意。例如,时间戳需要额外处理以捕获绝对和相对时间概念,其中绝对时间对于理解时间敏感行为尤为重要。
为了提高序列推荐系统中的预测准确性,我们将token特征分为两类:
- 请求时特征:这些是预测时可用的特征,例如登录时间、设备或位置。
- 行为后特征:这些是互动发生后可用的详细信息,例如具体互动的节目或互动的持续时间。
为了预测下一次互动,我们将当前步骤的请求时特征与上一步的行为后特征相结合。这种上下文和历史信息的融合确保序列中的每个token都包含全面的表示,捕获即时上下文和随时间变化的用户行为模式。
模型目标和架构的考虑
如前所述,我们的默认方法采用自回归下一token预测目标,类似于 GPT。该策略有效地利用了大规模未标记用户互动数据。在推荐系统中采用此目标已取得多项成功 [1-3]。然而,鉴于语言任务和推荐任务之间的明显差异,我们对目标进行了几项关键修改。
首先,在典型 LLM(如 GPT)的预训练阶段,每个目标token通常被同等对待。相比之下,在我们的模型中,并非所有用户互动都具有同等重要性。例如,5 分钟的预告片播放不应与 2 小时完整电影观看具有相同的权重。当试图将长期用户满意度与特定互动和推荐对齐时,会出现更大的挑战。为了解决这个问题,我们可以在训练期间采用多token预测目标,其中模型在每个步骤预测接下来的 n 个token,而不是单个token [4]。这种方法鼓励模型捕获更长期的依赖关系,并避免仅关注即时下一事件的短视预测。
其次,除了预测下一个项目 ID(仍然是主要目标)之外,我们还可以在输入数据中使用多个字段作为辅助预测目标。例如,我们可以从原始序列中的项目派生类型,并使用此类型序列作为辅助目标。这种方法有几个目的:它充当正则化器以减少对嘈杂项目 ID 预测的过拟合,提供对用户意图或长期类型偏好的额外见解,并且当分层结构时,可以提高目标项目 ID 的预测准确性。通过首先预测辅助目标(例如类型或原始语言),模型有效地缩小了候选列表,从而简化了后续的项目 ID 预测。
推荐基础模型的独特挑战
除了训练具有大量用户互动数据的更大模型所带来的基础设施挑战(这在尝试构建基础模型时很常见)之外,还有一些推荐特有的独特障碍,使其可行。其中一个独特的挑战是实体冷启动。
在 Netflix,我们的使命是娱乐世界。新标题会频繁添加到目录中。因此,推荐基础模型需要冷启动能力,这意味着模型需要在任何人与新发布的标题互动之前估计成员对它们的偏好。为了实现这一点,我们的基础模型训练框架具有以下两种能力:增量训练和能够对未见实体进行推理。
- 增量训练:基础模型在大量数据集上进行训练,包括每个成员的播放和行为历史,这使得频繁的再训练不切实际。然而,我们的目录和成员偏好不断发展。与可以通过稳定token词汇表进行增量训练的大型语言模型不同,我们的推荐模型需要新标题的新嵌入,这需要扩展嵌入层和输出组件。为了解决这个问题,我们通过重用先前模型的参数并为新标题初始化新参数来热启动新模型。例如,新标题嵌入可以通过向现有平均嵌入添加少量随机噪声,或通过使用基于元数据的相似标题嵌入的加权组合来初始化。这种方法允许新标题以相关嵌入开始,从而加快微调速度。在实践中,当使用更多成员互动数据进行微调时,初始化方法变得不那么关键。
- 处理未见实体:即使进行增量训练,也无法始终保证在新实体(例如:新发布的标题)上有效学习。即使我们频繁微调基础模型,也可能存在一些未包含/未在训练数据中出现的实体。因此,让基础模型使用实体和输入的元数据信息也很重要,而不仅仅是成员互动数据。因此,我们的基础模型结合了可学习的项目 ID 嵌入和来自元数据的可学习嵌入。下图展示了这一思想。
放大图像将显示
图 2. 标题与各种元数据相关联,例如类型、故事情节和基调。每种元数据类型都可以通过平均其各自的嵌入来表示,然后将这些嵌入连接起来以形成标题的整体元数据嵌入。
为了创建最终的标题嵌入,我们将此基于元数据的嵌入与一个完全可学习的基于 ID 的嵌入通过混合层结合。我们不只是简单地求和这些嵌入,而是使用基于实体“年龄”的注意力机制。这种方法允许互动数据有限的新标题更多地依赖元数据,而成熟的标题可以更多地依赖基于 ID 的嵌入。由于具有相似元数据的标题可能具有不同的用户参与度,因此它们的嵌入应反映这些差异。在训练期间引入一些随机性鼓励模型从元数据中学习,而不是仅仅依赖 ID 嵌入。这种方法确保新发布或预发布的标题即使没有用户互动数据也具有合理的嵌入。
下游应用和挑战
我们的推荐基础模型旨在理解成员的长期偏好,并可以通过各种方式被下游应用程序使用:
- 直接用作预测模型:该模型主要用于预测用户将与之互动的下一个实体。它包含用于不同任务的多个预测头,例如预测成员对各种类型的偏好。这些可以直接应用于满足各种业务需求。
- 利用嵌入:该模型为成员和视频、游戏、类型等实体生成有价值的嵌入。这些嵌入以批处理作业计算并存储,用于离线和在线应用程序。它们可以作为其他模型中的特征,或用于候选生成,例如为用户检索有吸引力的标题。高质量的标题嵌入还支持标题到标题的推荐。然而,一个重要的考虑是,嵌入空间具有任意的、不可解释的维度,并且在不同的模型训练运行中不兼容。这给下游消费者带来了挑战,他们必须适应每次再训练和重新部署,由于对嵌入结构的假设无效而存在出现错误的风险。为了解决这个问题,我们应用正交低秩变换来稳定用户/项目嵌入空间,确保嵌入维度的含义一致,即使基础基础模型被再训练和重新部署。
- 使用特定数据进行微调:该模型的适应性允许使用特定于应用程序的数据进行微调。用户可以将完整模型或子图集成到他们自己的模型中,并使用更少的数据和计算能力进行微调。这种方法实现了与以前模型相当的性能,尽管最初的基础模型需要大量资源。
扩展 Netflix 推荐的基础模型
在扩展我们的 Netflix 推荐基础模型时,我们从大型语言模型 (LLM) 的成功中汲取灵感。正如 LLM 已经证明了扩展在提高性能方面的强大能力一样,我们发现扩展对于增强生成式推荐任务至关重要。成功的扩展需要强大的评估、高效的训练算法和大量的计算资源。评估必须有效地区分模型性能并确定改进领域。扩展涉及数据、模型和上下文扩展,包括用户参与度、外部评论、多媒体资产和高质量嵌入。我们的实验证实,扩展定律也适用于我们的基础模型,随着数据和模型规模的增加,我们观察到持续的改进。
图 3. 模型参数大小与相对性能改进之间的关系。该图展示了推荐建模中的扩展定律,显示出随着模型规模的增大,性能提高的趋势。x 轴采用对数刻度,以突出不同量级上的增长。
结论
总而言之,我们的个性化推荐基础模型代表着朝着创建一个统一的、以数据为中心的系统迈出了重要一步,该系统利用大规模数据来提高我们成员的推荐质量。这种方法借鉴了大型语言模型 (LLM) 的见解,特别是半监督学习和端到端训练的原则,旨在利用大规模未标记用户互动数据。该模型解决了独特的挑战,例如冷启动和展示偏差,同时也承认了语言任务和推荐之间的明显差异。基础模型允许各种下游应用程序,从直接用作预测模型到为其他应用程序生成用户和实体嵌入,并且可以针对特定画布进行微调。我们看到了下游集成的可喜成果。这种从多个专业模型转向更全面的系统的转变标志着个性化推荐领域激动人心的发展。
参考文献
- C. K. Kang 和 J. McAuley,“Self-Attentive Sequential Recommendation”,2018 IEEE International Conference on Data Mining (ICDM),新加坡,2018 年,第 197-206 页,doi: 10.1109/ICDM.2018.00035。
- F. Sun 等人,“BERT4Rec: Sequential Recommendation with Bidirectional Encoder Representations from Transformer”,Proceedings of the 28th ACM International Conference on Information and Knowledge Management (CIKM ‘19),北京,中国,2019 年,第 1441-1450 页,doi: 10.1145/3357384.3357895。
- J. Zhai 等人,“Actions Speak Louder than Words: Trillion-Parameter Sequential Transducers for Generative Recommendations”,arXiv 预印本 arXiv:2402.17152,2024 年。
- F. Gloeckle, B. Youbi Idrissi, B. Rozière, D. Lopez-Paz, 和 G. Synnaeve,“Better & Faster Large Language Models via Multi-token Prediction”,arXiv 预印本 arXiv:2404.19737,2024 年 4 月。
2 Netflix 的长期会员满意度推荐系统
来自文章:
Recommending for Long-Term Member Satisfaction at Netflix
Netflix 的使命是娱乐全世界。我们的个性化推荐算法在实现这一使命中发挥着关键作用,通过在正确的时间向所有会员推荐正确的节目、电影和游戏。这一目标超越了即时互动;我们旨在创造一种能给会员带来持久享受的体验。传统的推荐系统通常优化点击或互动等短期指标,这可能无法完全捕捉长期满意度。我们致力于推荐不仅能让会员当下投入,还能提升他们长期满意度的内容,从而增加他们从 Netflix 获得的价值,使他们更有可能继续成为会员。
将推荐视为上下文老虎机问题
我们可以将推荐简单地视为一个上下文老虎机(Contextual Bandit)问题。当会员访问时,这成为我们系统的上下文,系统选择一个动作来显示哪些推荐,然后会员提供各种类型的反馈。这些反馈信号可以是即时的(跳过、播放、点赞/点踩,或将项目添加到播放列表),也可以是延迟的(完成一个节目或续订订阅)。我们可以定义奖励函数来反映这些反馈信号的推荐质量,然后根据历史数据训练一个上下文老虎机策略,以最大化预期奖励。
改进推荐:模型与目标
推荐模型可以通过多种方式进行改进。它们可能来自更具信息量的输入特征、更多数据、不同的架构、更多参数等等。在这篇文章中,我们关注一个较少被讨论的方面,即通过定义一个奖励函数来改进推荐目标,该函数试图更好地反映会员的长期满意度。
留存率作为奖励?
会员留存率似乎是优化长期满意度的显而易见的奖励,因为如果会员满意,他们就应该留下,但它有几个缺点:
- 噪音大:留存率可能受到许多外部因素的影响,例如季节性趋势、营销活动或与服务无关的个人情况。
- 敏感度低:留存率仅对那些即将取消订阅的会员敏感,未能捕捉到会员满意度的全貌。
- 难以归因:会员可能只在一系列糟糕的推荐之后才取消。
- 测量缓慢:我们每个账户每月只获得一个信号。
由于这些挑战,单独优化留存率是不切实际的。
代理奖励
相反,我们可以训练我们的老虎机策略来优化一个代理奖励函数,该函数与长期会员满意度高度一致,同时对单个推荐敏感。代理奖励 r(user,item)r(user, item)r(user,item) 是用户与推荐项目互动的一个函数。例如,如果我们推荐“海贼王”,并且会员播放然后完成并点赞,一个简单的代理奖励可能定义为 r(user,item)=f(play,complete,thumb)r(user, item) = f(play, complete, thumb)r(user,item)=f(play,complete,thumb)。
点击率 (CTR)
点击率(CTR),或者在我们的案例中是播放率,可以被视为一个简单的代理奖励,其中 r(user,item)=1r(user, item) = 1r(user,item)=1 如果用户点击了推荐,否则为 0。CTR 是一种常见的反馈信号,通常反映用户偏好预期。对于许多推荐应用来说,它是一个简单而强大的基线。在某些情况下,例如广告个性化中,点击是目标动作,CTR 甚至可能是生产模型的合理奖励。然而,在大多数情况下,过度优化 CTR 可能导致推广诱导点击的项目,这可能会损害长期满意度。
超越 CTR
为了使代理奖励函数更紧密地与长期满意度对齐,我们需要超越简单的互动,考虑所有类型的用户行为,并理解它们对用户满意度的真正影响。
我们以 Netflix 为例给出几个例子:
- 快速完成季剧 ✅:在一天内完成推荐的电视剧一季是享受和长期满意度的强烈信号。
- 完成后点踩 ❌:在几周内完成一部电视剧,然后点踩,表明尽管花费了大量时间,但满意度很低。
- 只播放电影 10 分钟 ❓:在这种情况下,用户的满意度是模糊的。短暂的参与可能表明用户决定放弃这部电影,或者仅仅意味着用户被打断了,并计划稍后(也许是第二天)完成这部电影。
- 发现新类型 ✅ ✅:在看完《鱿鱼游戏》后观看更多韩剧或游戏节目,表明用户正在发现新事物。这种发现可能更有价值,因为它导致了会员在新领域的一系列互动。
奖励工程
奖励工程是迭代优化代理奖励函数以使其与长期会员满意度对齐的过程。它类似于特征工程,不同之处在于它可以从服务时不可用的数据中导出。奖励工程涉及四个阶段:假设形成、定义新的代理奖励、训练新的老虎机策略和 A/B 测试。下面是一个简单的例子。
挑战:延迟反馈
代理奖励函数中使用的用户反馈通常是延迟或缺失的。例如,会员可能在第一天只播放推荐节目几分钟,然后花费几周时间才完全看完。因此,这种完成反馈是延迟的。此外,一些用户反馈可能永远不会发生;虽然我们可能希望如此,但并非所有会员在看完节目后都会点赞或点踩,这让我们不确定他们的享受程度。
我们可以尝试等待更长的时间来观察反馈,但是我们应该等待多久才能计算代理奖励呢?如果等待时间过长(例如几周),我们将错过使用最新数据更新老虎机策略的机会。在像 Netflix 这样高度动态的环境中,过时的老虎机策略可能会降低用户体验,并且在推荐新项目方面尤其糟糕。
解决方案:预测缺失的反馈
我们的目标是在进行推荐后不久更新老虎机策略,同时基于所有用户反馈(包括延迟反馈)定义代理奖励函数。由于在策略训练时尚未观察到延迟反馈,我们可以预测它。这种预测发生在每个带有延迟反馈的训练示例中,使用在训练时间之前已经观察到的反馈和其他相关信息作为输入特征。因此,随着时间的推移,预测也会变得更好。
然后,代理奖励针对每个训练示例使用观察到的和预测的反馈进行计算。这些训练示例用于更新老虎机策略。
但是,我们难道不仍然只依赖代理奖励函数中观察到的反馈吗?是的,因为延迟反馈是基于观察到的反馈进行预测的。然而,直接使用所有反馈来推理奖励更简单。例如,延迟点赞预测模型可能是一个复杂的神经网络,它考虑了所有观察到的反馈(例如,短期播放模式)。将代理奖励定义为点赞反馈的简单函数,而不是短期互动模式的复杂函数,更直接。它还可以用于调整反馈提供方式中潜在的偏差。
奖励工程图已更新,增加了可选的延迟反馈预测步骤。
两种类型的机器学习模型
值得注意的是,这种方法采用了两种类型的机器学习模型:
- 延迟反馈预测模型:这些模型预测 p(finalfeedback∣observedfeedbacks)p(final feedback | observed feedbacks)p(finalfeedback∣observedfeedbacks)。这些预测用于定义和计算老虎机策略训练示例的代理奖励。因此,这些模型在老虎机策略训练期间离线使用。
- 老虎机策略模型:这些模型用于老虎机策略 π(item∣user;r)\pi(item | user; r)π(item∣user;r) 中,以在线和实时生成推荐。
挑战:在线-离线指标差异
改进的输入特征或神经网络架构通常会导致更好的离线模型指标(例如,分类模型的 AUC)。然而,当这些改进的模型进行 A/B 测试时,我们经常观察到在线指标持平甚至下降,而在线指标可以量化长期会员满意度。
这种在线-离线指标差异通常发生在推荐策略中使用的代理奖励未能完全与长期会员满意度对齐时。在这种情况下,模型可能实现更高的代理奖励(离线指标),但导致更差的长期会员满意度(在线指标)。
尽管如此,模型的改进是真实的。解决这个问题的一种方法是进一步完善代理奖励定义,使其更好地与改进的模型对齐。当这种调整导致积极的在线指标时,模型改进可以有效地产品化。有关此挑战的更多讨论,请参阅 [1]。
总结与开放问题
在这篇文章中,我们概述了 Netflix 为使推荐与长期会员满意度对齐所做的奖励工程工作。虽然留存率仍然是我们的北极星指标,但直接优化它并不容易。因此,我们的工作重点是定义一个与长期满意度对齐且对单个推荐敏感的代理奖励。最后,我们讨论了 Netflix 延迟用户反馈的独特挑战,并提出了一种对我们来说行之有效的方法。有关 Netflix 奖励创新工作的早期概述,请参阅 [2]。
随着我们不断改进推荐,仍有几个开放问题:
- 我们能否通过将行为与留存率关联起来,自动学习一个好的代理奖励函数?
- 我们应该等待多久的延迟反馈,然后才在策略训练中使用其预测值?
- 我们如何利用强化学习进一步使策略与长期满意度对齐?
参考文献
[1] 深度学习在推荐系统中的应用:Netflix 案例研究。AI Magazine 2021。Harald Steck, Linas Baltrunas, Ehtsham Elahi, Dawen Liang, Yves Raimond, Justin Basilico。
[2] 为长期会员满意度而进行的奖励创新。RecSys 2023。Gary Tang, Jiangwei Pan, Henry Wang, Justin Basilico。