Meta广告排序新范式:多阶段序列模型与LLM扩展定律的工程实践

你有没有想过,每天在社交媒体上滑过的成千上万条信息流里,为什么某一条广告会恰好出现在你眼前,而且时机、内容都感觉“刚刚好”?这背后远不止是简单的用户画像匹配。当工程师们试图用传统的点击率(CTR)预估模型去优化广告排序时,常常会陷入一个困境:模型能精准预测单次点击的概率,却难以理解用户在一个连续会话中的行为序列——你刚刚搜索了“露营装备”,紧接着看到帐篷广告会点击,但如果你已经浏览了十分钟的帐篷评测,再看到同样的广告,可能只会快速划过。

这个问题的核心在于,广告系统的目标不是最大化单次交互的即时收益,而是要在用户整个注意力停留的“序列”中,找到全局最优的展示策略。最近,Meta(原Facebook)在其庞大的广告系统中,探索并应用了一种被称为“多阶段序列模型”的架构,其设计思想甚至借鉴了大型语言模型(LLM)领域著名的“扩展定律”(Scaling Laws)。这不仅仅是两个热门技术名词的简单叠加,它代表了一种根本性的范式转变:从孤立地预测“下一个点击是什么”,转向建模“在给定的用户行为序列下,什么样的广告序列能最大化长期价值”。

今天,我们就来深入拆解这个听起来有些学术,但实际影响每个人数字体验的技术方案。我们将抛开晦涩的论文公式,从工程实践和系统设计的角度,看看Meta是如何将用户行为序列“喂”给模型,并借鉴LLM的成功经验来构建更强大的广告排序系统的。更重要的是,我们会探讨这种思路对普通开发者和算法工程师的启示:当你的任务从“单点预测”变为“序列决策”时,你的技术栈和思考方式需要发生哪些改变。

1. 从“点”到“线”:为什么广告排序必须理解用户序列?

在经典的广告排序系统中,核心模型通常是一个点击率预估模型。给定一个用户(User)、一个广告(Ad)和一个上下文(Context,如时间、位置、设备),模型输出一个介于0到1之间的分数,代表用户点击这个广告的概率。系统根据这个分数对所有候选广告进行排序,展示分数最高的那几个。

这个模式运行了多年,也取得了巨大成功。但它存在一个根本性的“视野”局限: 它只看了“当下”这一个瞬间 。模型把每一次展示都当作一个独立同分布(I.i.d.)的事件来处理。它知道用户是25-30岁的男性,喜欢科技,也知道广告是关于新款耳机的。但它不知道的是,在过去的十分钟里,这个用户已经:

  1. 在搜索引擎查询了“蓝牙耳机降噪对比”。
  2. 在电商平台浏览了三款不同品牌耳机的详情页。
  3. 在视频网站看了一个耳机的开箱评测。
  4. 刚刚划走了一条其他品牌的耳机广告。

对于这个用户而言,此时再展示一条功能雷同的耳机广告,其价值可能远低于模型基于静态特征预估的分数。用户可能处于“信息饱和”或“决策疲劳”状态。相反,如果展示一条关于“耳机收纳包”或“音乐平台会员”的广告,或许能带来更好的转化。

这就是“序列”的价值。用户的行为不是孤立的点,而是一条有上下文、有状态、有演进路径的“线”。多阶段序列模型要做的,就是尝试去建模这条线。

1.1 传统模型的“失明”与序列模型的“视野”

我们可以用一个简单的表格来对比两种思路的核心差异:

维度 传统CTR预估模型 多阶段序列模型
输入视角 单次曝光(Impression)的瞬时快照 用户近期(如过去N次)的行为序列
核心假设 每次曝光事件相互独立 曝光事件相互关联,当前行为受历史影响
建模目标 预估 单次 点击/转化概率(Point-wise) 预估在 序列上下文 下的点击/转化概率,或直接优化 序列级 目标(如总转化数)
特征工程 重度依赖用户、广告、上下文的三维交叉特征 引入序列特征(如行为类型序列、时间间隔序列、品类序列的Embedding)
系统复杂度 相对较低,易于在线服务 显著更高,需处理序列的实时更新、存储与高效推理

传统模型就像一个高度近视的狙击手,每次只瞄准一个静止的靶子,打得非常准。但当靶子开始移动(用户状态变化),或者靶场环境改变(上下文演进)时,它的表现就会下降。序列模型则试图给这个狙击手配上一个观察员和一套轨迹预测系统,让他能根据目标过去的移动轨迹,预判其下一步的位置。

1.2 序列信息的核心价值:状态、意图与疲劳度

那么,具体是哪些序列信息在起作用呢?在广告场景中,主要有三类:

  1. 用户状态(User State) :这是最直接的。用户是刚打开App(探索期),还是即将关闭(退出期)?是工作日午休时间(碎片化),还是周末晚上(沉浸式)?历史行为序列可以很好地刻画这种状态。例如,连续快速的滑动可能表示“无聊浏览”,而对特定商品页面的长时间停留则表示“深度兴趣”。

  2. 用户意图(User Intent) :意图比状态更细化。通过分析用户搜索词序列、浏览商品品类序列、点击内容主题序列,模型可以推断用户当前的购物意图是“信息收集”、“比价”还是“立即购买”。对于“信息收集”阶段的用户,知识型或评测型广告可能更有效;对于“立即购买”阶段的用户,促销和库存信息则是关键。

  3. 广告疲劳(Ad Fatigue) :这是序列模型能直接缓解的问题。系统需要记录并向模型反馈:同一个广告或相似广告,在过去一段时间内已经向该用户展示过多少次。过多的重复曝光会导致用户厌烦,点击率和转化率急剧下降。序列模型能自然地将“曝光历史”作为输入,学习到疲劳效应的模式,从而主动控制广告的展示频率和多样性。

注意 :引入序列特征并非没有代价。它极大地增加了特征工程的复杂度、线上服务的延迟和存储开销。因此,在工程实践中,如何高效地生成、存储和检索用户行为序列的Embedding,是整个系统能否落地的关键。

理解了“为什么需要序列”之后,下一个问题就是“如何建模序列”。这直接引向了Meta方案的核心——多阶段架构。

2. 拆解“多阶段”架构:将复杂问题分层击破

直接用一个庞大的端到端模型,吞下所有的用户历史行为、广告信息和上下文,然后输出一个完美的排序,这在理论上很美,但在工程上是灾难。推理延迟会高到无法接受,模型训练也极其困难。因此,Meta采用了经典的“分而治之”策略,设计了一个多阶段的模型架构。这个架构的精髓不在于某个阶段用了多fancy的模型,而在于 清晰的职责划分和高效的数据流转

我们可以将整个过程抽象为三个核心阶段,它们像工厂的流水线一样协同工作:

  1. 候选生成(Candidate Generation)阶段 :海选。
  2. 粗排(Pre-ranking)阶段 :初筛。
  3. 精排(Ranking)与序列优化(Sequence Optimization)阶段 :决赛与排兵布阵。

2.1 阶段一:候选生成——从亿级到千级

这是整个流水线的起点。面对数亿甚至数十亿的广告库存,目标是在极短的时间内(通常要求毫秒级)筛选出与当前用户可能相关的数千个广告候选集。

  • 核心任务 :近似召回,保证相关性。
  • 输入 :用户ID、基础画像、粗略上下文(如城市、设备)。
  • 常用技术 :传统的倒排索引、向量检索(如基于用户和广告Embedding的近似最近邻搜索)是主力。在这个阶段, 序列信息开始以聚合形式介入 。例如,不是把用户过去100次点击的item id序列都扔进去,而是计算其近期兴趣的主题分布(如“科技: 0.6, 体育: 0.3, 美食: 0.1”),用这个向量去检索。
  • 输出 :一个规模在几千左右的广告候选列表。

这个阶段的关键是“快”和“全”(覆盖尽可能多的潜在相关项),对精确度的要求可以适当放宽。

2.2 阶段二:粗排——从千级到百级

拿到了几千个候选,接下来要用一个轻量级但比第一阶段更精确的模型,进一步筛选出几百个最有希望的广告。

  • 核心任务 :快速精准预估,进行初步排序。
  • 输入 :用户特征(包含更丰富的画像)、广告特征(更细粒度的属性)、上下文特征,以及 初步加工后的序列特征 。例如,用户过去24小时点击广告的品类ID序列,经过一个简单的RNN或Transformer编码器得到一个固定长度的向量。
  • 模型 :通常是一个结构相对简单的深度学习模型(如Wide & Deep, DeepFM的轻量版),或者经过大量蒸馏、量化的模型,以保证推理速度。
  • 输出 :一个几百规模的、带有初步得分(如预估点击率pCTR)的广告列表。

粗排模型是精度和效率的平衡点。它需要比候选生成更懂用户,但又要比下一阶段的精排模型跑得快得多。

2.3 阶段三:精排与序列优化——从百级到最终展示

这是最具挑战性,也是Meta序列模型创新最集中的环节。它又可以分为两个子步骤:

3a. 精排(Point-wise Ranking) 对粗排输出的几百个广告,使用一个最复杂、最精确的模型,为每一个广告计算一个精细的分数。这个分数不再是简单的pCTR,而可能是融合了点击率、转化率、长期价值、平台收益等多目标的统一分数。

  • 输入 :此时, 完整的、细粒度的用户行为序列 被引入。模型可以访问用户最近数十次甚至上百次的点击、浏览、搜索、停留时长等原始行为序列。广告特征也用到最全。模型架构通常是复杂的深度网络,如深度兴趣网络(DIN)、深度兴趣进化网络(DIEN)或基于Transformer的序列模型。
  • 输出 :一个按精细分数从高到低排列的广告列表。

3b. 序列优化(List-wise/Sequence-wise Optimization) 这是从“点”思维迈向“线”思维的关键一跃。精排模型虽然强大,但它仍然是为每个广告独立打分(Point-wise)。然而,最终展示给用户的是一个广告 序列 (例如,信息流中的第1、3、5、7条是广告)。这些广告之间的相互影响不容忽视:

  • 多样性 :连续出现三个同品类的广告体验很差。
  • 疲劳控制 :同一个广告不能出现太频繁。
  • 全局价值 :有些广告单次点击价值不高,但能教育用户,为后续高价值广告铺垫。

序列优化层的作用就是, 以精排分数为基础,综合考虑上述序列层面的约束和目标,重新调整广告的排序和分布 。这可以建模为一个序列决策问题,有时会使用强化学习(RL)或专门的序列打分模型来处理。

关键理解 :多阶段架构的本质是“计算资源的阶梯式分配”。在最宽的漏斗口用最快、最省资源的方法过滤;在漏斗颈部,用中等复杂度模型做重要筛选;在最终出口,则集中火力,用最强大的模型和策略做最优决策。序列信息随着阶段深入,从聚合形式逐步变为原始、完整的形式。

3. 借鉴LLM“扩展定律”:数据、模型与算力的新平衡

“扩展定律”(Scaling Laws)是LLM领域的一个核心观察,由OpenAI等机构的研究总结而来。其核心结论是:大型语言模型的性能(如损失函数值)可以预测为与训练数据量、模型参数量、计算量三者之间的幂律关系。简单说, 在架构合理的前提下,堆数据、堆模型规模、堆算力,性能就会稳定地、可预测地提升

Meta将这一思想引入广告排序系统的探索,是一个极具启发性的跨界应用。这并不意味着他们造了一个千亿参数的“广告大模型”,而是借鉴了其背后的 系统化扩展哲学

3.1 传统排序模型的“天花板”

在深度学习应用于推荐/广告排序的早期,大家关注的是模型架构的创新:从LR到FM,再到Wide&Deep、DeepFM、DIN、DIEN……每一次架构革新都能带来显著的性能提升。但当架构逐渐成熟(例如Transformer成为序列建模的主流选择后),性能的提升曲线开始放缓。工程师们发现,单纯地增加模型层数或隐层维度,带来的收益越来越小,甚至可能因为过拟合和训练不稳定而下降。

此时,瓶颈可能不在“脑容量”(模型架构),而在“学习资料”(数据)和“学习能力”(有效训练)。

3.2 LLM扩展定律的启示:规模化的系统性收益

LLM的成功证明了,当模型架构(Transformer)被证明是足够强大的“通用计算单元”后,规模化本身就成了最强的引擎。Meta的实践试图在广告排序领域验证类似的规律:

  1. 数据规模的扩展 :不仅仅是增加更多的(用户,广告,点击)三元组样本,更重要的是 扩展序列的长度和丰富度 。传统模型可能只使用用户过去几十次行为,而新的范式尝试使用过去数百次、甚至跨平台、跨产品的全域行为序列。更长的序列提供了更丰富的上下文,让模型更能理解用户的长期兴趣和意图演变。
  2. 模型规模的扩展 :在精排阶段,使用参数量更大的序列模型。这里的“大”是相对于以往精排模型而言的,可能是从千万级参数到亿级参数。更大的模型容量使其能够记忆和理解更复杂、更微妙的序列模式。
  3. 算力投入的扩展 :为了训练和部署这些更大的模型、处理更长的序列数据,必然需要投入更多的计算资源。扩展定律的意义在于,它提供了一种 预测 :投入X倍的算力,大概能带来Y%的性能提升。这使得技术决策从“感觉上应该有用”变为“根据曲线,投入产出比可预期”。

3.3 在广告系统中的具体体现

这种扩展思想,具体落地时体现在以下几个方向:

  • 训练基础设施升级 :构建能高效处理超长序列、超大稀疏特征(用户ID、广告ID)的分布式训练框架。
  • 特征工程的演进 :从手工设计序列聚合特征(如“过去7天点击次数”),转向让模型直接从原始行为ID序列、时间戳序列中端到端地学习表征。这减少了对领域知识的依赖,更依赖数据本身和模型容量。
  • 模型架构的统一化 :尝试用更统一、更具扩展性的模型架构(如纯Transformer或MoE架构)来替代之前为不同任务精心设计的多种模型,降低维护成本,更利于规模化扩展。
  • 评估指标的转变 :不仅仅关注离线AUC、LogLoss的微小提升,更要关注在线上A/B测试中, 用户长期价值 留存率 等更能体现序列优化效果的宏观指标是否有显著改善。

思考 :这给我们的启示是,当你的机器学习系统进入平台期时,与其执着于魔改模型结构,不如系统地审视一下:我的数据质量(尤其是序列数据)是否还有数量级提升的空间?我的模型是否已经大到足以吸收这些信息?我的算力是否支撑得起这种规模的探索?

4. 从理论到实践:工程师视角的挑战与应对

理解了“为什么”(序列价值)和“是什么”(多阶段与扩展思想)之后,最关键的莫过于“怎么做”。将一个理论上的多阶段序列模型系统投入生产,尤其是面对Meta级别的流量和数据规模,会遇到一系列严峻的工程挑战。这些挑战,也正是普通团队在尝试类似思路时需要提前规划和评估的。

4.1 挑战一:序列特征的实时存储与查询

这是最基础的“拦路虎”。用户每发生一次行为(点击、浏览、搜索),都需要近乎实时地更新其行为序列。在精排阶段,模型需要毫秒内获取到该用户最新的、完整的序列数据。

  • 解决方案
    • 高速KV存储 :使用如Redis、Aerospike或自研的高速存储引擎,以 user_id 为key,存储其最近N条行为的压缩表示(如ID列表+时间戳)。
    • 分层存储 :将最热的近期数据(如过去1小时)放在内存,较冷的历史数据放在SSD或更廉价的存储中。查询时进行合并。
    • 向量化服务 :将序列的实时计算提前。可以部署一个轻量的“序列特征服务”,它监听用户行为流,实时维护和计算每个用户的序列Embedding(例如,用一个轻量级RNN实时更新用户状态向量)。精排模型直接请求这个向量,而非原始序列,极大减少传输和计算开销。

4.2 挑战二:线上推理的延迟与吞吐

精排模型引入复杂序列模型后,计算量激增。如何保证在几十毫秒内完成对数百个候选广告的评分?

  • 解决方案
    • 模型蒸馏与量化 :使用更复杂的“教师模型”离线训练一个结构更简单、参数更少的“学生模型”用于线上。同时,将模型参数从FP32量化到INT8甚至更低精度,以加速推理。
    • 高性能推理引擎 :深度优化模型推理框架,如使用TensorRT、OpenVINO或自研内核,充分利用CPU/GPU的硬件特性,进行算子融合、内存优化等。
    • 级联与提前终止 :在模型内部设计级联结构。先使用快速但粗糙的子网络对候选进行初步筛选,只对高分候选进行后续复杂计算。或者,对于明显低质量的候选,可以提前终止计算。

4.3 挑战三:离线训练的效率与稳定性

训练数据包含超长序列,样本量巨大,模型参数也多。训练这样一个模型可能耗时数天甚至数周,如何提升效率并保证训练稳定?

  • 解决方案
    • 分布式训练框架 :采用数据并行、模型并行或流水线并行,将训练任务分布到成千上万的GPU上。
    • 负采样与难例挖掘 :广告场景中正样本(点击)极少。需要高效的负采样策略,并针对难以区分的样本(难例)进行重点学习。
    • 课程学习与热身 :先使用短序列、小批量数据训练模型至初步收敛,再逐步增加序列长度和批量大小,这有助于训练稳定。
    • 特征频次过滤与哈希 :对于海量的ID类特征,进行低频过滤,并使用特征哈希(Hashing Trick)控制Embedding表的大小。

4.4 挑战四:评估与迭代的复杂性

多阶段序列模型优化的是长期、序列化的目标,传统的离线AUC指标可能无法准确反映其真实效果。

  • 解决方案
    • 强化学习模拟器 :构建一个离线的用户行为模拟器,用于评估不同排序策略在长期序列下的表现。
    • 更长期的线上A/B测试 :设置实验组和对照组,观察核心指标(如用户留存、长期ARPDAU)在数周甚至数月内的差异。短期指标(如次日CTR)可能波动或不变,但长期价值可能显现。
    • 因果推断与反事实评估 :尝试使用因果推断的方法,从观测数据中估计如果采用不同策略会带来什么结果,作为线上实验的补充。

对于大多数团队而言,可能无法像Meta一样全面铺开。一个务实的落地路径是: 从单点突破,逐步演进 。例如,可以先在精排模型中引入一个简单的用户近期点击ID序列的Embedding,观察效果。再逐步升级模型架构,处理更长的序列,最后再考虑复杂的序列优化层。

5. 总结与展望:序列思维如何重塑我们的技术决策

Meta广告排序系统向多阶段序列模型的演进,并借鉴LLM的扩展定律,不仅仅是一次技术升级,更是一次认知范式的转换。它告诉我们,在信息过载的时代,理解用户的“时间线”比理解用户的“标签”更重要。对于广大开发者和算法工程师而言,这套思路的价值远超广告领域本身。

首先,它确立了一种处理复杂决策问题的工程方法论——分层处理与规模化扩展。 面对一个庞大问题,不要幻想用一个“终极模型”一口吃下。设计清晰的多阶段流水线,让每个阶段各司其职,在效率与精度之间做优雅的权衡。同时,当模型架构趋于稳定时,要有勇气和资源去追求数据、模型、算力的系统性扩展,相信规模本身带来的红利。

其次,它强调了“状态”在交互系统中的核心地位。 无论是推荐系统、广告系统、对话机器人还是游戏AI,用户都不是一张白纸。他们带着由历史交互构成的状态进入每一次新的会话。我们的系统能否记住、理解并利用这个状态,决定了交互是智能的还是愚蠢的。这意味着我们的特征工程、模型设计和数据管道,都需要围绕“状态维护与更新”来重新思考。

最后,它提醒我们,评估标准需要与目标对齐。 如果你的目标是优化用户的长期体验和平台的长远价值,那么就不能只盯着点击率、转化率这些瞬时指标。需要设计能够衡量长期满意度、留存和生态健康的评估体系,并愿意为这些长期目标,承担短期指标可能波动的风险。

回到我们最初的问题:为什么那条广告“刚刚好”出现在你眼前?答案可能不再是“因为你的画像匹配”,而是“因为系统理解了你过去一段时间的行为序列,并预测在这个序列的当下,这条信息对你最有价值”。这种从静态匹配到动态理解的跨越,正是多阶段序列模型与扩展定律思想,为我们描绘的未来图景。对于技术人来说,拥抱序列思维,掌握处理序列数据、构建状态化系统的能力,或许将成为下一个时代的核心竞争力之一。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值