Eishaan/rcdp-dueling-bandits-repro
Reproduction bundle — RCDP-UCB (ICML 2026 #3478) Independent reproduction of "Robust Linear Dueling Bandits with Post-serving Context under Unknown Delays and Adversarial Corruptions" (Youngmin Oh, ICML 2026 Poster). Paper: arXiv:2605.01752 · OpenReview RaJnDY8aAS Official code: https://github.com/youngmin0oh/rcdp-public (cloned at commit 3ed73c6) Trackio logbook (full writeup): see the linked Space in the collection. What's here code/ the official… See the full description on the dataset page: https://huggingface.co/datasets/Eishaan/rcdp-dueling-bandits-repro.
Reproduction bundle — RCDP-UCB (ICML 2026 #3478)
Independent reproduction of "Robust Linear Dueling Bandits with Post-serving Context under Unknown Delays and Adversarial Corruptions" (Youngmin Oh, ICML 2026 Poster).
- Paper: arXiv:2605.01752 · OpenReview
RaJnDY8aAS - Official code: https://github.com/youngmin0oh/rcdp-public (cloned at commit
3ed73c6) - Trackio logbook (full writeup): see the linked Space in the collection.
What's here
code/ the official reference implementation + our reproduction harness
contextual_dueling_bandit.py env, RCDP-UCB (DuelingGLMLearner), baselines [official]
experiments.py experiment registry + driver [official]
repro_scaling.py our harness: figure configs + T/C/delay scaling
verify_lower_bound.py our Theorem 5.3 (lower bound) verifier
PROVENANCE.txt upstream commit
outputs/shards/<tag>/ HF-Job outputs (one folder per CPU job shard)
curves/*.csv per-round mean/std regret curves per config
summary_*.json finals, growth exponents, scaling fits
lower_bound_verification.json Theorem 5.3 numeric checksHow it was run
All experiments run on CPU (the workload is numpy Sherman–Morrison updates + a tiny 2-layer MLP; the paper's own repo says "no GPU needed"). Local smoke tests + Hugging Face Jobs (cpu-upgrade flavor) for the paper-scale sweep (T=2000, n_runs=10).
Reproduce a single config locally:
pip install numpy pandas matplotlib torch
python code/repro_scaling.py --mode fast --T 2000 --n_runs 10 # linear + scaling
python code/repro_scaling.py --mode custom --exps post-serving --T 2000 --n_runs 10
python code/verify_lower_bound.pyHeadline outcome
RCDP-UCB attains the lowest cumulative regret vs 4 baselines (RCDB, ColSTIM, MaxInP, MaxPairUCB) across linear and post-serving settings, with sub-√T empirical growth, and is robust to both stochastic and strategic (adversarial) delay under one fixed provisioning — reproducing the paper's core claims. The adaptive weight ω=min(1,α/‖Δz‖), α=√d/(C+D), the replay-buffer + weighted-MLE algorithm, and the Ω(√(dΛ)) lower-bound mechanism were all verified.
