基于决策Transformer与图神经网络的广告自动出价策略解析

📅 2026/8/12 10:54:52
基于决策Transformer与图神经网络的广告自动出价策略解析
1. 项目缘起当自动出价遇上决策Transformer最近在复盘广告出价策略的优化路径时我重新翻看了快手在KDD 2023上发表的论文《GAVE: A Graph-based Approach for Automatic Bidding via Offline Reinforcement Learning》。这篇论文提出的GAVE框架在业内算是把自动出价这个老问题用离线强化学习和图神经网络结合的新思路又往前推了一步。自动出价Auto-bidding对于广告平台和广告主来说一直是个核心且头疼的问题。广告主希望用有限的预算在特定时间段内获取尽可能多的转化比如下载、购买、表单提交而平台则需要在满足广告主目标的同时兼顾整个生态的效率和收入。传统的基于规则的出价策略或者简单的PID控制器在复杂多变、竞争激烈的广告拍卖环境中往往显得力不从心难以动态适应流量质量、竞争强度的变化。GAVE这篇论文的亮点在于它明确地将自动出价建模为一个离线强化学习Offline RL问题并引入了决策TransformerDecision Transformer作为策略模型的核心。为什么这个组合值得关注因为在实际的广告系统中我们不可能让一个未经充分验证的策略在线上海量的真实流量中“试错”学习那成本太高、风险太大。我们能依赖的只有历史积累的海量日志数据——谁在什么时间、对什么用户、出了什么价、最终获得了怎样的曝光和转化结果。离线强化学习正是为了解决“如何仅从静态数据集中学习优秀策略”而生的。而决策Transformer作为一种将强化学习视为序列建模问题的架构在处理这类长序列决策问题时展现出了强大的表征和泛化能力。我自己在业务中尝试过一些基于价值函数的离线RL方法比如IQL但在自动出价场景下直接学习一个稳定的价值函数其实挺难的因为奖励信号稀疏只有最终转化才有奖励、延迟严重并且状态转移动态极其复杂。GAVE采用决策Transformer的思路实际上是绕开了对动态模型或精确价值函数的直接建模转而学习一个条件序列生成模型给定一个期望的回报比如剩余预算下的目标转化数模型直接生成接下来一系列的动作出价。这种“目标条件策略”的范式与广告主“在预算约束下最大化转化”的直觉非常吻合。接下来我会结合论文内容和个人理解拆解GAVE的核心设计、技术实现细节并探讨其在实际场景中可能面临的挑战与应对思路。这不是一篇简单的翻译而是夹杂了大量实操视角的解读和延伸思考。2. GAVE框架总览图神经网络如何理解广告拍卖GAVE的全称是Graph-basedApproach forValue-awareEstimation即基于图的价值感知估计方法。这个名字点出了它的两个核心图Graph和价值感知Value-aware。整个框架的目标是训练一个强大的状态表征模型为后续的决策Transformer策略提供高质量、信息丰富的输入。2.1 为什么需要图广告拍卖的本质是异构交互网络要理解GAVE的图结构设计首先要抛开将一次广告请求视为孤立事件的观念。在一次实时竞价RTB中参与方众多有发起请求的用户User、被请求曝光的广告位Ad Slot、参与竞价的多个广告主Advertisers以及他们的广告Ads。这些实体之间存在着复杂、异构的交互关系。例如用户-广告交互决定了点击率CTR、转化率CVR。广告-广告位交互决定了广告素材与上下文的匹配度影响用户体验和最终效果。广告主-广告主交互体现在拍卖的竞争关系中你的出价需要根据其他对手的出价动态调整。传统的特征工程方法通常是将这些实体的特征用户画像、广告属性、上下文信息等拼接成一个巨大的扁平化向量。这种方法有两个明显缺陷关系信息丢失无法显式地建模和利用上述复杂的交互关系。参数效率低下拼接后的向量维度极高且对于不同的交互模式缺乏针对性的特征提取。GAVE构建了一个异构信息网络Heterogeneous Information Network, HIN。在这个图中节点类型包括用户U、广告A、广告位S和广告主Advertiser。边则代表了不同类型的交互如“用户点击广告”、“广告展示于广告位”、“广告属于广告主”等。通过这样一个图结构系统能够以一种结构化的方式聚合多跳邻居的信息从而学习到更丰富、更深层次的实体表征。注意在实际构建这个图时数据的规模和实时性是巨大挑战。论文中可能使用的是经过采样和聚合的离线数据图。在线上服务时我们不可能为每次出价都实时构建全量图通常需要采用预先计算好的实体嵌入Embedding结合当前请求的实时特征进行快速检索和轻量级聚合。2.2 价值感知不仅仅要“认识”实体还要“评估”机会如果图神经网络只学习到“这个用户是年轻男性喜欢数码产品”或者“这个广告是游戏类素材很炫酷”那还远远不够。对于出价决策而言我们更关心的是价值即这次展示机会对于当前广告主而言潜在的转化价值有多大。这就是“价值感知”模块的作用。GAVE在图的节点中特意加入了价值属性。具体来说对于广告节点其价值可以关联到该广告的历史转化率CVR或转化价值比如客单价。模型的目标是学习一个能够准确预估点击价值Value-per-Click或展示价值Value-per-Impression的图编码器。这个过程可以理解为通过消息传递神经网络如GAT, GraphSAGE每个节点尤其是广告节点会聚合来自相连的用户、广告位等节点的信息。最终得到的广告节点嵌入不仅包含了广告自身的静态特征还融合了与之交互过的用户群体的偏好信息、展示环境的上下文信息从而能够对“这个广告在当下这个场景展示可能带来多少价值”做出更准确的估计。这个“价值感知”的嵌入将成为后续决策Transformer所观察的“状态State”的核心组成部分。它让策略模型在决策时不仅知道“当前是什么情况”更能感知到“当前情况蕴含了多少机会”。2.3 框架工作流从离线图训练到在线序列决策整个GAVE框架分为离线和在线两个阶段离线阶段图构建与预训练利用历史日志数据构建异构信息网络并训练图神经网络编码器。训练目标通常是一个多任务学习目标既包括节点分类/链接预测等自监督任务也包括直接的价值回归任务预测pCVR或转化价值。训练完成后冻结图编码器的参数。轨迹数据集构建对于每个广告活动Campaign将其历史出价记录按时间顺序组织成轨迹Trajectory。每条轨迹由一系列三元组状态动作回报构成。这里的状态就包含了通过预训练图编码器得到的、融合了价值感知信息的实体嵌入以及其他实时特征如剩余预算、剩余时间、历史消耗速率等。动作就是出价。回报是获得的转化价值或转化数量。决策Transformer训练使用构建好的轨迹数据集训练决策Transformer模型。其输入是目标回报通常是剩余预算下的期望转化数、历史状态序列、历史动作序列输出是下一个动作出价。在线阶段当一个新的广告请求到来时系统快速获取相关实体用户、广告、广告位的预计算图嵌入。结合当前广告活动的实时状态剩余预算、剩余时间、近期消耗等形成当前的状态表征。将目标回报由广告主设置或系统计算和最近一段历史状态-动作序列输入到已训练好的决策Transformer中。模型输出当前请求的建议出价。这个流程的关键在于决策Transformer是一种自回归Autoregressive模型。在线上它可以根据最新的反馈是否赢得拍卖、消耗多少预算实时更新其内部的历史序列上下文从而做出适应性的决策这比静态的PID控制器或规则策略要灵活得多。3. 核心组件深度拆解决策Transformer在出价中的实践理解了GAVE的整体框架我们再来深入看看它的心脏——决策Transformer是如何被具体应用于自动出价任务的。这部分是论文的精华也是工程实现中最需要琢磨的地方。3.1 状态表征设计信息如何组织决策Transformer的输入是一个序列。在GAVE中这个序列的每个时间步t的状态s_t是一个高度工程化的向量。它通常包含以下几个部分图嵌入特征这是GAVE的特色。对于当前广告请求提取广告a、用户u、广告位s的预训练图神经网络嵌入。这些嵌入是静态或低频更新的包含了价值感知信息。实时拍卖上下文特征包括本次请求的预估点击率pCTR、预估转化率pCVR、市场底价floor price、参与竞价的对手数量预估等。这些特征高度动态直接决定了本次拍卖的竞争格局和成本。广告活动状态特征这是最关键的部分决定了策略的“长期视野”和“预算约束”意识。主要包括剩余预算比例剩余预算 / 总预算。这是最重要的约束信号。剩余时间比例剩余时间 / 总时段。帮助策略感知时间压力。预算消耗速率过去一段时间如最近1小时内的平均消耗速度。目标完成进度已获得转化数 / 目标转化数。近期回报序列过去N次出价获得的转化价值或数量的滑动平均或序列。将这些特征拼接、归一化后就构成了决策Transformer所观察到的状态s_t。设计状态时的一个核心原则是既要包含足以预测即时回报赢得拍卖的概率与价值的信息也要包含足以指导长期规划预算分配的信息。3.2 动作与回报的表示出价与目标的量化动作Actiona_t即出价。在真实系统中出价是一个连续值。在训练时通常会对出价进行归一化处理例如除以一个预设的最大出价值将其映射到[0, 1]区间。这有助于模型训练的稳定性。在模型输出后再进行反归一化得到实际出价。也有工作尝试离散化出价空间但连续动作空间更符合实际。回报Return-to-goR_t这是决策Transformer的核心概念。R_t表示从当前时刻t到轨迹结束累计期望获得的回报。在自动出价场景下回报就是转化价值或转化数量。R_t的计算是目标条件策略的关键。一种常见的设定是在训练时R_t是轨迹中从t到结束的实际累计回报。在线上推理时R_t需要被指定为目标。例如可以设定为R_t 目标转化总数 - 当前已获得转化数。这样模型的行为就被条件化在“还需要获得多少转化”这个目标上。3.3 决策Transformer的输入序列构造与训练决策Transformer将强化学习轨迹视为一个序列建模问题。对于一条长度为T的轨迹(s_1, a_1, r_1, ..., s_T, a_T, r_T)模型的实际输入序列是这样构造的对于每个时间步t我们取一个长度为K的历史上下文窗口例如K20构造一个子序列。这个子序列包含三部分交错排列的token回报tokenR_t, R_{t-1}, ..., R_{t-K1}。其中R_i是到时间步i的累计回报。状态tokens_t, s_{t-1}, ..., s_{t-K1}。动作tokena_{t-1}, a_{t-2}, ..., a_{t-K}注意当前动作a_t是我们要预测的所以只输入历史动作。这些token会分别通过线形层映射到统一的嵌入维度加上位置编码Positional Encoding然后输入到一个标准的Transformer Decoder架构中因为这是一个条件生成任务。训练目标非常简单给定历史回报、状态和动作序列让模型预测下一个动作。这是一个标准的监督学习任务损失函数通常是对动作的均方误差MSE或负对数似然如果动作是离散的。# 伪代码示意训练过程非实际代码 for trajectory in dataset: states, actions, rewards trajectory # 计算每个时间步的return-to-go returns_to_go compute_return_to_go(rewards) # 逆向累计和 # 构造输入序列 for t in range(K, len(trajectory)): input_returns returns_to_go[t-K:t] input_states states[t-K:t] input_actions actions[t-K-1:t-1] # 注意索引偏移 # 模型预测 predicted_action model(input_returns, input_states, input_actions) # 计算损失 loss mse_loss(predicted_action, actions[t])这种训练方式的最大优势是稳定。它避免了传统离线RL中常见的价值函数过估计overestimation、分布偏移distributional shift等棘手问题。模型只是在学习模仿历史数据中的状态-动作对应关系只不过这种关系是以“未来还有多少回报要获取”为条件的。3.4 在线推理与目标设定策略训练好的模型在线服务时流程如下初始化对于一个新开始的广告活动初始化其历史状态、动作缓冲区为空设定初始目标回报R_0例如等于总目标转化数。循环处理每个请求 a. 构建当前状态s_t包含图嵌入、实时特征、活动状态。 b. 将当前目标回报R_t、最近K个历史状态、最近K个历史动作组成输入序列。 c. 模型输出预测动作出价a_t。 d. 执行出价a_t参与拍卖。 e. 观察结果是否赢得拍卖消耗多少成本是否获得转化价值r_t f.关键步骤更新目标回报。R_{t1} R_t - r_t。如果赢得了拍卖则活动状态中的“剩余预算”等特征也需要相应更新。 g. 将新的状态s_t、执行的动作a_t和获得的即时奖励r_t通常是0除非有转化加入历史缓冲区移除最旧的数据。 h. 进入下一个请求t t1。这里有一个非常微妙且重要的点如何设定初始的R_0以及在线调整R_t的策略。论文中可能假设R_0就是广告主设定的总目标转化数。但在实际中如果模型只在“恰好完成目标”的轨迹上训练它可能无法处理“预算非常充裕”或“预算极度紧张”的情况。因此一个实用的技巧是在训练数据中引入目标缩放Target Scaling。即对每条轨迹我们可以随机缩放其回报序列从而让模型学会在不同难度的目标如“用80%预算完成120%目标”、“用120%预算完成80%目标”下都能做出合理的出价决策。4. 工程落地挑战与应对思考论文给出了漂亮的框架和离线实验指标但任何一个有过大规模机器学习系统部署经验的人都知道从论文到生产有漫长的路要走。结合自动出价场景的特殊性GAVE或类似方案落地时会面临几个核心挑战。4.1 延迟与实时性Transformer的推理开销Transformer模型尤其是Decoder其推理时间与序列长度K的平方成正比自注意力机制。广告竞价通常在100毫秒内必须完成这包括了特征抽取、模型推理、策略计算等所有步骤。给模型推理的时间窗口可能只有10-30毫秒。应对思路模型轻量化对训练好的决策Transformer进行知识蒸馏、剪枝、量化将其转化为一个更小、更快的模型。例如可以用一个大模型做“教师”训练一个浅层网络或LSTM作为“学生”模型。序列长度优化仔细评估历史序列长度K对效果的影响。可能不需要很长的历史比如K10或20足以捕获短期模式过长的序列反而增加计算负担且可能引入噪声。缓存与预计算图嵌入、用户/广告的实时预估分数pCTR, pCVR都可以在请求到来前进行预计算或缓存。状态向量中的大部分成分应该是预先准备好的在线拼接和归一化的开销要很小。异步更新与延迟执行对于“更新历史缓冲区并计算下一个R_t”这一步如果计算复杂可以考虑异步处理。即本次出价使用上一时刻的R_t和状态在出价动作发出后再异步更新这些值用于下一次请求。这引入了微小延迟但在高并发下可能是可接受的折衷。4.2 分布偏移与探索离线数据的局限性离线强化学习的根本挑战是分布偏移。我们训练模型的数据集是由历史上的某个策略可能是旧的PID控制器或人工规则产生的。这个策略的探索性有限数据分布可能无法覆盖所有“好”的状态-动作空间。决策Transformer虽然稳定但它本质上是一个行为克隆Behavior Cloning的扩展它倾向于模仿数据中的动作对于数据分布之外的状态其生成的动作可能不可靠且缺乏主动探索的能力。应对思路数据质量与多样性尽可能收集更多样化的历史数据包括不同预算水平、不同竞争强度时段、不同效果目标的活动数据。甚至可以主动在线上用小流量运行一些随机或探索性策略如ε-greedy来丰富离线数据集。保守性与正则化在训练时可以加入一些正则化项惩罚模型输出与数据集中常见动作差异过大的动作。或者在在线推理时对模型输出的出价进行裁剪Clipping限制其在与历史数据分布相差不大的范围内波动。集成与不确定性估计训练多个决策Transformer模型使用不同的初始化或数据子集在线推理时可以观察多个模型出价的方差。如果方差过大说明当前状态可能处于数据分布之外此时可以回退到更保守的基线策略如一个简单的预算平滑控制器。在线微调Online Fine-tuning这是最理想但最复杂的方式。可以设计一个安全的在线学习框架将新产生的线上数据由当前策略产生不断加入训练集并定期或持续地微调模型。这需要极其谨慎的监控和回滚机制防止策略漂移失控。4.3 奖励函数设计转化延迟与归因自动出价的最终目标是转化但转化事件往往严重延迟于点击和曝光。一个用户点击广告后可能几天后才完成购买。此外一个转化可能由多次曝光和点击共同促成归因问题。在GAVE的训练轨迹中回报r_t通常是即时转化的价值。这显然与事实不符。应对思路延迟奖励建模在构建离线轨迹时不直接使用原始的转化日志而是使用经过延迟校正的回报。例如可以采用基于模型的校正方法训练一个转化延迟分布模型估计在时间步t获得的点击在未来不同时间点产生转化的概率然后将未来可能产生的转化价值折现后部分归因到t时刻。这是一个独立的研究课题。使用代理奖励Surrogate Reward在转化数据稀疏或延迟太长时可以使用点击作为代理奖励。因为点击是转化的必要前提且反馈即时。我们可以训练模型最大化点击价值点击率×点击价值同时通过业务逻辑或另一个模型来保证点击到转化的相关性。这简化了问题但可能引入偏差。归因窗口与滑动统计在定义状态时可以不只依赖单次转化的即时奖励而是将“近期获得的转化价值滑动平均”作为状态的一部分输入模型。这样模型能感知到近期策略的整体效果趋势而不仅仅是被稀疏的转化信号所驱动。4.4 多目标权衡与约束满足广告平台不是一个唯转化论的地方。除了帮助广告主获取转化平台还需要考虑用户体验避免低质或骚扰广告、收入保证广义第二价格拍卖机制下的平台收入、生态公平性等。GAVE论文主要聚焦于单个广告主的价值最大化这是一个简化设定。扩展思考在实际系统中出价策略可能需要是一个多目标优化问题。决策Transformer可以很自然地扩展到这个设定。我们可以在状态中融入更多平台侧的信号如广告质量分、生态健康度指标并设计一个向量化的回报例如一个三维回报[广告主转化价值 平台收入 用户体验得分]。在训练时我们可以为不同的广告活动设置不同的回报权重向量从而训练出能够平衡多方利益的策略。在线推理时这个权重向量可以作为目标条件的一部分输入模型实现策略的灵活定制。预算和时间约束是硬约束。GAVE通过将剩余预算/时间比例作为状态输入让模型“感知”到约束。但模型并不能保证100%不超预算。在实践中我们通常会在模型输出的出价基础上加一个安全控制器。例如一个简单的比例控制器最终出价 模型出价 * min(1, 剩余预算 / (预期消耗速率 * 剩余时间))。这个控制器作为最后一道保险当模型过于激进时进行压制。更高级的做法是将约束满足作为优化目标的一部分使用拉格朗日乘子法等技术进行约束强化学习。5. 从GAVE出发自动出价技术的未来可能GAVE为我们提供了一个将前沿机器学习架构图神经网络、Transformer与经典运筹控制问题预算约束下的序贯决策结合的优秀范例。它的价值不仅在于具体的模型设计更在于其问题建模的思路将自动出价清晰地定义为离线、目标条件的序列决策问题。沿着这个思路未来有几个值得探索的方向基础模型与迁移学习能否训练一个通用的“出价基础模型”这个模型在超大规模、跨行业、跨目标拉新、促活、成交的数据上预训练学习广告拍卖的通用动态和用户-广告匹配的通用模式。对于一个新的广告活动或行业只需要少量数据进行微调Prompt Tuning或Adapter就能快速适配。这可以极大降低冷启动成本。世界模型与想象规划决策Transformer是开环的它根据历史序列直接预测动作没有显式地对环境动态即状态转移函数P(s_{t1}|s_t, a_t)进行建模。引入世界模型World Model可能带来好处。我们可以用历史数据训练一个预测下一个状态ŝ_{t1}的模型。这样策略模型可以在“想象”中 rollout 多个步骤进行更长期的规划评估不同出价序列对长期目标的影响从而做出更优的决策。这结合了基于模型强化学习MBRL的思想。多智能体视角目前的框架是单智能体视角即每个广告主独立优化自己的策略将其他广告主视为环境的一部分。但实际上广告拍卖是一个典型的多智能体系统你的出价会影响他人的结果反之亦然。从博弈论或多智能体强化学习MARL的视角来建模这个问题可能会发现更均衡、更高效的出价策略。当然这带来的复杂度和不确定性也是指数级增长的。与拍卖机制设计的协同出价策略和拍卖机制如GSPVCG是共生的。平台在设计拍卖机制时如果能考虑到智能出价代理的普遍行为可能会设计出更能激励真实价值、提升整体社会福利的机制。这属于机制设计与机器学习交叉的前沿领域。回过头看GAVE这样的工作之所以重要是因为它把自动出价从一个“黑盒优化”工程问题提升到了一个可建模、可学习、可解释的机器学习问题框架内。它给了我们一套强大的工具和语言来分析和改进这个系统。在实际工作中我们可能不会完全照搬论文的每一个模块但其核心思想——利用丰富的结构化信息图来增强状态表征并利用序列模型Transformer来学习目标条件的长期策略——无疑为工业级的自动出价系统设计指明了有潜力的技术方向。