输入“/”快速插入内容

行动胜过言语: Meta落地工业界首个万亿级别参数的生成式推荐系统模型

2024年8月12日修改
蘑菇先生|阅读原文
转载请联系原作者取得授权
大家好,我是蘑菇先生。今天分享一篇Meta最新的工作:借鉴LLMs思路重塑推荐系统范式,实现推荐系统的scaling。该工作第一次在 核心产品线 替换掉了近十年工业界长期使用的 基于海量异构特征的深度推荐模型, 在模型规模、业务效果、性能加速等方面都相当亮眼。有可能成为工业级推荐系统大规模scaling的 开创性工作
Motivation
传统的大规模推荐系统基于海量用户行为数据,构造海量 高基数和异构特征 进行深度模型训练。尽管模型规模已经很庞大了,但如果想进一步进行scaling,则非常困难。
受到近期大语言模型成功的启发,Meta团队重新审视了传统的推荐系统范式,数十亿用户规模的推荐系统所面临的三类主要挑战:
特征缺乏显式结构 :海量异构特征,如高基数ids、交叉特征、计数特征、比例特征等。
需要处理数十亿级别的动态词汇表 :如ID/属性等。与语言模型中的10万量级静态词汇形成了鲜明对比。这种数十亿级别的动态词汇表不断变化,给训练带来很大挑战;且线上需要以目标感知target-aware的方式给数以万计的候选集打分,推理成本巨大。
计算成本是限制落地的最大瓶颈: GPT-3在1-2个月的时间内使用数千个GPU进行了总计300B tokens的训练。规模确实很大,但与推荐系统用户行为的规模相比就相去甚远了。最大的互联网平台每天为 数十亿用户 提供服务,用户每天与 数十亿条 内容、图片和视频进行交互。在极端情况下,用户序列的长度可能高达 10^5 。因此,推荐系统 每天 需要处理的tokens数量甚至比语言模型在1-2个月内处理的数量还要大好几个数量级。
为了解决上述挑战,实现推荐系统的scaling,Meta提出了一种新架构 HSTU (Hierarchical Sequential Transduction Unit ,层次化序列直推式单元) ,专为高基数、非平稳分布的流式数据而设计。核心贡献如下[1]:
统一的生成式推荐模型(GR) 第一次在 核心产品线 替换掉了近十年推荐工业界长期使用的分层海量特征建模范式;此处个人理解不是替换分层架构,而是将传统召排建模方法做了大升级,统一的模型复用到召排链路中,仍然是分层架构,只不过做了升级和技术方案统一;
新的encoder (HSTU) 通过新架构 + 算法稀疏性加速达到了模型质量超过Transformer + 实际训练侧效率比FlashAttention2 (目前最快的Transformer实现)快15.2倍 (8192长度序列);
通过新的推理算法M-FALCON达成了推理侧700倍加速(285倍复杂模型,2.48x推理QPS);
在传统测试集MovieLens/ Amazon Reviews上,相比经典的SASRec提升20.3%~65.8% NDCG@10;
实际中多产品界面上线,单特定ranking界面提升12.4%,如果把召排阶段提升加起来,可达到18.6%(排序12.4%,召回6.2%);
通过新架构HSTU+训练算法GR,模型拥有1.5万亿个参数,模型总计算量达到了 1000x级的提升 ,第一次达到GPT-3 175b/LLaMa-2 70b等LLM训练算力,且第一次在推荐模系统中观测到了类LLM的的 scaling law
值得重点强调的是,GR的效果经验性地以 训练计算量的幂律方式进行scaling ,跨越了三个数量级,最高可达到GPT-3/LLaMa-2规模。如下图是过去几年深度学习模型的总计算量趋势图,GR(generative recommendation)是本文已部署的模型。可以看到GR-24已经接近LLaMa-2的量级了。
Solution
Solution的关键在于作者如何重塑推荐系统问题,技术细节反而是其次,且技术点可能在很多工作中似曾相似,比如NVIDIA2021的工作 Transformers4Rec [2],但真正从推荐系统角度 抽象新的设计范式 的不多,这也是本文的“亮点”。
在推荐系统问题“ 重塑” 上,有几个核心洞察点:
将“用户行为”当做一种新模态 :传统非结构化的图片、视频、文本是模态;结构化的画像、属性也是模态;将用户行为定义为“新模态”,就能够实现海量词表所有模态间的充分交叉,无损信息输入。是这篇工作抽象出来最妙的点之一。
在给定合适的特征空间下,能够重塑推荐系统核心召回、核心排序问题 :如何将传统海量的异构特征做转换,转成生成式任务输入格式也是非常基础非常重要的步骤。本文方案也有可能成为生成式推荐系统“标配”的输入范式。
在这一新范式下,能够让我们系统性地解决传统推荐系统中的特征冗余、计算冗余、推理冗余等关键性能瓶颈问题: 节省大量的计算资源和耗时,提升整体推荐系统的效率。例如,相比传统推荐系统分层架构给多个候选打分,新范式在多个候选集打分时能复用算力,实现1次推理同时预估所有候选items。节省下来的算力给到大模型1次更复杂的推理。整体系统耗时不一定会上涨。这也是工业界落地所亟需的。本文方案回答了困扰我们很久的问题,即:大模型在推荐系统的性能问题该怎么解决:在传统工程架构下叠加大模型能力肯定无法落地,但在新架构新范式下,是有可能实现整体系统层面耗时的摊销。
上述3个核心洞察,能够实现推荐系统的scaling,解决传统推荐系统 海量异构特征 海量动态词表 计算瓶颈 这三个方面工业级难题。
海量异构特征 :通过给定适当的 新特征空间, 将核心排序和检索任务转化为生成建模问题。
海量动态词表 :通过自回归建模、Transformers架构定制、采样优化等实现海量动态词表间高阶信息交互和提取。
计算瓶颈 :通过稀疏性优化、内存优化、算子融合、候选集算力复用和计算摊销来实现高吞吐、低时延。
下面分别围绕这3个方面展开介绍Solution:"统一的特征空间"、"重塑召排问题"、"新Encoder架构HSTU"、"性能加速优化"。然后具体分析实验部分(Evaluation)并做总结(Conclusion)。
统一的特征空间
关键问题 :如何将海量异构特征进行统一适配,作为GRs的输入?Unifying heterogeneous feature spaces in DLRMs。
现代推荐系统通常在海量稀疏类别型特征(sparse)和稠密型数值特征(dense)上训练。在GRs中,作者将这些特征统一编码进 时间行为序列中 ,如下图所示。