1. 项目概述:Bid2X——广告竞价环境建模的新范式
在数字广告生态系统中,自动出价技术正经历着从规则驱动到智能驱动的深刻变革。作为阿里妈妈决策智能平台团队的最新研究成果,Bid2X首次将基础模型(Foundation Model)理念引入广告竞价环境建模领域,突破了传统方法场景受限的瓶颈。这项发表在KDD'25 ADS Track的工作,不仅为计算广告领域带来了方法论创新,更在淘宝广告平台实现了GMV提升4.65%、ROI提高2.44%的显著业务价值。
传统自动出价系统面临的核心矛盾在于:广告主期望出价策略能适应不同预算规模、商品品类和投放时段的多样化场景,而现有建模方法往往只能在特定场景下表现良好。当我们将一个在女装类目表现优异的出价模型直接应用于3C数码品类时,效果通常会大幅下降。这种"场景墙"现象制约着广告平台的智能化进程。
Bid2X的创新本质在于发现了竞价环境中的"物理规律"——无论商品类目如何变化,某些底层原则是共通的:
- 边际效益递减律:出价与效果之间并非线性关系
- 时间邻近性:相近时段的竞价表现具有连续性
- 成本效益原则:高转化率的曝光值得更高出价
2. 核心技术解析:统一建模框架
2.1 数据异构性挑战的解决方案
广告平台积累的竞价数据具有典型的"三不"特征:
- 不统一:有点数据(如单次出价记录)和序列数据(如连续时段的出价轨迹)
- 不完整:由于竞价失败会产生大量零值记录
- 不均衡:热门广告位的竞价数据远多于长尾位置
Bid2X通过三级嵌入架构实现数据统一:
- 原子嵌入层:将每个变量(出价、成本等)映射到128维向量空间
- 序列编码层:使用双向LSTM捕捉时间维度模式
- 场景适配层:通过领域适配技术消除不同广告场景的分布差异
实际应用中发现,对零值数据单独建模能显著提升效果。我们将零值占比超过80%的变量启用Zero-Inflated模块,其结构类似于门控机制,先判断是否会产生有效值,再预测具体数值。
2.2 双流注意力机制设计
模型的核心创新在于变量注意力(Variable Attention)和时间注意力(Temporal Attention)的协同设计:
变量注意力工作流:
- 将出价、成本、转化率等变量视为不同的"语言"
- 计算变量间的相关系数矩阵(如图1所示)
- 通过多头注意力(8个头)建立跨变量关联
时间注意力工作流:
- 采用因果卷积确保时间维度不可见未来信息
- 分层处理时间模式:局部(相邻5分钟)、周期(同昨天相同时段)、趋势(周环比)
- 引入可学习的位置编码,自动发现重要时间点

图1:Bid2X的双流注意力架构(变量注意力展示出价与成本的强相关性)
2.3 零膨胀分布的特殊处理
广告竞价数据中零值占比通常高达60-90%,传统MSE损失会导致模型偏向保守预测。我们设计了三阶段处理方案:
-
零值检测门:二分类器预测是否为零
- 使用Focal Loss解决类别不平衡
- 阈值设为0.3(经网格搜索确定)
-
非零值预测:
- 采用Huber Loss减少异常值影响
- 输出分位数估计(10%,50%,90%)
-
联合训练:
python复制def hybrid_loss(y_true, y_pred): zero_prob = sigmoid(y_pred[:,0]) # 零值概率 quantiles = y_pred[:,1:] # 分位数预测 # 零值分类损失 cls_loss = binary_crossentropy(y_true==0, zero_prob) # 非零值回归损失 reg_loss = quantile_loss(y_true[y_true!=0], quantiles[y_true!=0]) return 0.7*cls_loss + 0.3*reg_loss # 加权系数通过验证集确定
3. 工程实现关键点
3.1 大规模训练优化
在淘宝广告场景下,模型需要处理日均10亿+的竞价事件。我们采用以下优化策略:
特征工程:
- 周期性特征:采用傅里叶级数编码(保留前5阶)
- 统计特征:滑动窗口统计量(均值、标准差、偏度)
- 交互特征:出价与预算的比值、当前消耗占比等
训练加速:
bash复制# 分布式训练配置示例
python -m torch.distributed.launch \
--nproc_per_node=8 \
--nnodes=4 \
train.py \
--batch_size 4096 \
--gradient_accumulation_steps 2
关键参数:
- 学习率:3e-5(余弦退火调度)
- 批大小:32k(跨4节点)
- 梯度裁剪:norm=1.0
3.2 在线服务架构
生产环境部署面临99.9%的延迟要求(<50ms),我们设计了三层缓存体系:
-
模型预热:
- 每日0点预生成各广告位的基础预测
- 使用TensorRT优化计算图
-
实时推理:
- 对高频广告主(>100次/秒)启用专属模型副本
- 动态批处理(max_delay=10ms)
-
结果缓存:
- 近期出价结果存入Redis(TTL=5s)
- 相似请求复用计算结果(余弦相似度>0.95)
4. 效果验证与业务洞察
4.1 离线评估对比
在8个数据集上的测试结果显示(表1),Bid2X在跨场景泛化性上显著优于基线方法:
| 数据集 | MAE(成本) ↓ | RMSE(GMV) ↓ | 零值准确率 ↑ |
|---|---|---|---|
| 女装 | 12.3 | 45.7 | 92.1% |
| 3C数码 | 8.7 | 32.4 | 89.5% |
| 美妆 | 9.1 | 38.2 | 93.4% |
表1:主要品类上的预测性能对比(数值越小越好,除准确率)
4.2 在线AB测试发现
在淘宝主搜广告的测试中,我们观察到一些反直觉现象:
-
出价弹性效应:
- 低预算广告主(<500元/天)的出价提升空间有限
- 中预算广告主(5k-1w元/天)的GMV弹性最高达1:1.8
-
时段敏感度:
- 晚间(20-23点)出价效果比预期低15-20%
- 清晨(6-8点)的转化率被普遍低估
-
品类特异性:
- 服装类目对价格敏感(出价提升5%带来12%GMV增长)
- 家电类目更看重位置(首屏效应显著)
5. 实践建议与避坑指南
基于半年多的生产实践,总结出以下经验:
数据准备阶段:
- 必须进行数据一致性检查(如出价不应大于预算的200%)
- 建议保留至少180天的历史数据以捕捉季节模式
- 对异常值采用Winsorize处理(p1=0.01,p99=0.99)
模型训练阶段:
python复制# 学习率预热示例
optimizer = AdamW(model.parameters(), lr=3e-5)
scheduler = get_cosine_schedule_with_warmup(
optimizer,
num_warmup_steps=5000, # 约1个epoch
num_training_steps=50000
)
线上部署阶段:
- 灰度发布策略:先1%流量验证稳定性
- 监控指标:除了常规AUC外,需特别关注长尾分布下的KS值
- 回滚机制:当预测偏差连续3小时>15%时自动切换旧模型
6. 未来演进方向
当前架构在以下方面仍有提升空间:
-
多模态融合:
- 引入商品图像特征(通过ResNet提取)
- 结合广告文案的语义分析(BERT编码)
-
实时适应:
- 设计轻量级增量学习管道(<5分钟更新周期)
- 开发概念漂移检测模块(基于KL散度)
-
因果推理:
- 构建反事实出价模拟器
- 分离混淆因素(如节假日效应)
这项工作的代码框架已开源在GitHub(需公司内部权限),包含:
- 基础模型实现(PyTorch)
- 数据预处理管道
- 典型场景的配置模板
对于希望深入研究的同行,建议从"女装-春装上新"场景入手,该数据集具有明显的季节性和价格弹性特征,能快速验证模型效果。