| # RTB Bidding Algorithm Comparison |
|
|
| This repository contains the results of comparing different bidding algorithms for Real-Time Bidding (RTB) in online advertising, optimizing for clicks under budget constraints. |
|
|
| **📚 NEW: Complete research resources are now available:** |
| - **[RESEARCH_RESOURCES.md](RESEARCH_RESOURCES.md)** — Full literature survey covering 32 papers across bidding algorithms, CTR prediction, and clearing price models |
| - **[AUDIT_TRAIL.md](AUDIT_TRAIL.md)** — Every paper, dataset, codebase, and external resource consulted (44 total) |
|
|
| ## Problem Setup |
|
|
| - **Objective**: Maximize number of clicks |
| - **Constraint**: Total spend ≤ Budget, with ~100% budget utilization target |
| - **Auction Type**: First-price auctions |
| - **Models Used**: |
| - CTR Prediction: Logistic Regression (simplified from FinalMLP) |
| - Clearing Price: Gradient Boosting Regressor (simplified from Deep Cox PH) |
|
|
| ## Algorithms Compared |
|
|
| | Algorithm | Type | Description | |
| |-----------|------|-------------| |
| | **Linear** | Static | `bid = base_bid × (pCTR / avg_pCTR)` | |
| | **ORTB** | Static | `bid = √(c·pCTR/λ + c²) − c` | |
| | **DualOGD** | Adaptive | Online gradient descent on Lagrangian multiplier | |
| | **Threshold** | Static | Fixed bid if pCTR > threshold, else 0 | |
| | **MPC** | Adaptive | Model Predictive Control maximizing expected value | |
|
|
| ## Results on Synthetic Data |
|
|
| | Algorithm | Clicks | CTR | Budget Used | CPC | Efficiency | |
| |-----------|--------|-----|-------------|-----|------------| |
| | **DualOGD** | **1331** | 0.5133 | 99.99% | **7.51** | **1331.12** | |
| | **MPC** | 440 | 0.4878 | 100.00% | 22.73 | 440.00 | |
| | **Linear** | 167 | 0.5076 | 99.90% | 59.82 | 167.16 | |
| | **Threshold** | 110 | 0.5500 | 100.00% | 90.91 | 110.00 | |
| | **ORTB** | 85 | 0.5152 | 99.87% | 117.50 | 85.11 | |
|
|
| ## Results on Real Criteo Data (100K rows, CTR=25.7%) |
|
|
| | Algorithm | Clicks | CTR | Budget Used | CPC | |
| |-----------|--------|-----|-------------|-----| |
| | **DualOGD** | **584** | 0.2421 | 100.00% | **8.56** | |
| | **Linear** | 63 | 0.2593 | 100.00% | 79.36 | |
| | **ORTB** | 47 | 0.2597 | 99.94% | 106.32 | |
| | **Threshold** | 41 | 0.2470 | 99.60% | 121.46 | |
|
|
| ## Key Findings |
|
|
| 1. **DualOGD dominates on both datasets** — 9× better than Linear on real Criteo data |
| 2. **Adaptive algorithms significantly outperform static approaches** in first-price auctions |
| 3. **ORTB performs poorly** in first-price auctions (designed for second-price) |
| 4. **All algorithms achieve ~100% budget utilization** as required |
| 5. **DualOGD has the lowest CPC** — most cost-efficient |
|
|
| ## Files |
|
|
| - `train.py` — Full training and comparison script |
| - `results.json` — Synthetic data results |
| - `results_real.json` — Real Criteo data results |
| - `RESEARCH_RESOURCES.md` — Complete literature survey (32 papers) |
| - `AUDIT_TRAIL.md` — Every resource consulted (44 items) |
|
|
| ## Recommended Next Steps (from research) |
|
|
| 1. **Upgrade CTR model**: Replace LogisticRegression with FinalMLP (AAAI 2023, Criteo AUC 0.8149) |
| 2. **Add clearing price model**: Use TorchSurv for censored regression |
| 3. **Add Balseiro dual mirror descent**: Second-price baseline for comparison |
| 4. **Two-sided budget constraint**: Add spend floor (k% minimum) with second dual variable |
| 5. **Hyperparameter sweep**: Step size ε, budget fraction k%, value per click |
|
|
| ## References |
|
|
| ### Bidding Algorithms |
| - Wang et al. (2023): "Learning to Bid in Repeated First-Price Auctions with Budgets" [arXiv:2304.13477](https://arxiv.org/abs/2304.13477) |
| - Balseiro et al. (2020): "Dual Mirror Descent for Online Allocation" [arXiv:2011.10124](https://arxiv.org/abs/2011.10124) |
| - Feng et al. (2022): "Online Bidding for RoS Constrained Advertisers" [arXiv:2208.13713](https://arxiv.org/abs/2208.13713) |
| - Cai et al. (2017): "Real-Time Bidding by Reinforcement Learning" [arXiv:1701.02490](https://arxiv.org/abs/1701.02490) |
| - Zhang et al. (2014): "Optimal Real-Time Bidding for Display Advertising" (KDD) |
|
|
| ### CTR Prediction |
| - Mao et al. (2023): "FinalMLP: Two-Stream MLP for CTR" [arXiv:2304.00902](https://arxiv.org/abs/2304.00902) |
| - Wang et al. (2023): "GDCN: Gated Deep Cross Network" [arXiv:2311.04635](https://arxiv.org/abs/2311.04635) |
| - Wang et al. (2021): "DCN V2" [arXiv:2008.13535](https://arxiv.org/abs/2008.13535) |
| - Zhu et al. (2021): "BARS-CTR Benchmark" [arXiv:2009.05794](https://arxiv.org/abs/2009.05794) |
|
|
| ### Clearing Price Prediction |
| - Wu et al. (2015): "Predicting Winning Price with Censored Data" (KDD) |
| - TorchSurv: Deep Survival Analysis [arXiv:2404.10761](https://arxiv.org/abs/2404.10761) |
|
|