SEGB: Self-Evolving Generative Bidding with Local Autoregressive Diffusion
📝 Introduction
We propose a flexible and practical Generative Auto-bidding scheme
using post-training Search, termed SEGB, to refine a base policy
model’s output and adapt to various advertisers’ preferences. Our online A/B test on the Jingdong advertising platform demonstrate the effectiveness of SEGB, achieving
significant improvements, e.g., 11.60% increment of target cost.🎉🎉🎉
SEGB: Self-Evolving Generative Bidding with Local Autoregressive Diffusion
📝 Introduction
We propose a flexible and practical Generative Auto-bidding scheme using post-training Search, termed SEGB, to refine a base policy model’s output and adapt to various advertisers’ preferences. Our online A/B test on the Jingdong advertising platform demonstrate the effectiveness of SEGB, achieving significant improvements, e.g., 11.60% increment of target cost.🎉🎉🎉
💾 Installation
Python Environment
Prepare the Datasets
1) AuctionNet Dataset
2) AuctionNet-sparse Dataset
After download, you should concat them to a full dataset local file.
🚀 Get Started
Step 1 Train trajectory planning model
We implement a local diffusion model as our trajectory planning strategy. You could simply run by
python run/train_local_diffusion.pyStep 2 Train multiple QTs (Transformer-based Q-value critics)
We could train multiple Q-value critics by randomly run multiple times and save different models. You could run simply run by
python run/train_dt_critics.py --baseline_method 'dt_reweight_search_Q' --reweight_w 0.2 --data_path path/to/local/datasetwhere reweight could simulate different preference (value_reward + reweight_w * cpa_reward, a higher reweight_w means more preference on the cpa.)
Step 3 Train action decision model w/o grpo by your choice
We choose the decision tranformer as our action decision model. You could simply run by
python run/train_dt_grpo_out_version.pyStep 4 Evaluation
The evaluation procedure is based on the AuctionNet simulator.
For evaluating the SEGB method, please run
python run/run_evaluate_segb.py```