Effective-Exploration Bias Correction
Implementation & benchmark of arXiv:2608.01069 — Characterizing Bias in Post-Bandit Inference under Index Algorithms
Source paper: Characterizing Bias in Post-Bandit Inference under Index Algorithms arXiv:2608.01069 ⓘ · analyzed Aug 31, 2026
AI-generated research hypothesis, automatically tested. Not peer-reviewed.
Idea description
Correct arm-conditioned targets in a neural contextual-bandit model using the exploration coefficient of the data-collection index. For a generalized UCB policy with index I_t(x,n)=x+f_t/sqrt(n), add approximately sigma_hat_a/f_T to the observed mean for arms that are plausibly non-unique-optimal, counteracting the negative post-bandit bias.
Formulas
Mathematical statement
The paper's leading-order result is Gamma_{a,T} E[Z_{a,T}] -> -(1 - (1/|O|) 1{a in O}) sigma_a, where Z_{a,T} is the arm-a standardized post-bandit statistic, O is the set of optimal arms, sigma_a is the reward standard deviation, and Gamma_{a,T} is the effective exploration rate determined by the index algorithm. Thus, for a non-optimal or non-uniquely-optimal arm, E[Z_{a,T}] is approximately -sigma_a/Gamma_{a,T}. In the generalized UCB family I_t(x,n)=x+f_t/sqrt(n), the extracted result states E[Z_{a,T}] is asymptotically proportional to -1/f_T. Define N_a(T) as the number of pulls of arm a, bar_r_a=(1/N_a(T)) sum_{i:A_i=a} r_i, sigma_hat_a as its empirical reward standard deviation, and Z_a=sqrt(N_a(T))(bar_r_a-mu_a)/sigma_hat_a. The adapted debiased target is mu_tilde_a=bar_r_a+sigma_hat_a/(sqrt(N_a(T)) f_T) for arms classified as non-unique-optimal; equivalently, its standardized correction is Z_tilde_a=Z_a+1/f_T.
Implementation notes
Integrate this at the target-construction stage of a contextual-bandit reward model, not inside the neural encoder. Let a network q_theta(x,a) predict reward for context x and arm a, while the online policy selects arms with I_t=q_theta(x_t,a)+f_t/sqrt(N_a). Maintain per-arm or per-cluster count N_a, mean bar_r_a, and variance sigma_hat_a squared. At the end of each training window, compute c_a=sigma_hat_a/(sqrt(N_a) f_T). Estimate whether arm a is uniquely optimal by comparing its upper confidence estimate with the best competitor: u_a=bar_r_a+sigma_hat_a/sqrt(N_a), and u_minus_a=max_{b != a}(bar_r_b+sigma_hat_b/sqrt(N_b)). Set a soft gate g_a=sigmoid((u_minus_a-u_a)/tau), where tau is a temperature; g_a near one means likely non-unique-optimal and g_a near zero means likely uniquely optimal. Train with corrected regression targets y_i_corr=r_i+g_{A_i} c_{A_i}, or add this correction only to the arm-specific residual head while leaving the shared context representation unchanged. Pseudocode: collect (x_t,a_t,r_t); update N_a, bar_r_a, and sigma_hat_a; compute f_T, g_a, and c_a; replay minibatches with y_i_corr; periodically refresh statistics. The theorem supplies the sign and 1/f_T scaling, while sigma_hat_a, the optimality gates, and the effective f_T for nonstationary schedules are estimated empirically. First test on a synthetic contextual bandit with 10 arms, Gaussian rewards, a two-layer MLP, and UCB1 with f_t=sqrt(2 log t). Compare ordinary MSE with the correction using held-out uniformly randomized arm data. Success means lower held-out reward MSE and reduced signed calibration error for rarely selected arms at equal interaction budget, without degrading predictions for the uniquely best arm.
Verification
Stage 1 · Toy mechanism gate: Failed ✗
Stage 2 · Mechanism transferred to benchmark: Not tested
Stage 2 · Practical benchmark result: Not run
Methodology: Toy-system gate first; the benchmark stage runs only after a pass. How verification works
Stage 1 — Mechanism check agent confidence 8/10
Built a reproducible UCB Gaussian-bandit simulation and a small contextual neural reward-model comparison in experiment.py. The suboptimal-arm bias was negative and adding 1/f_T moved the standardized statistic from -0.416 to -0.044, supporting the correction sign and local effect. However, f_T times the measured bias ranged from -0.38 to -2.50 in the exploration sweep, and the neural correction worsened held-out MSE (0.527 to 0.581) and rare-arm signed bias (0.365 to 0.406); therefore the idea did not produce a validated overall win.
- Agent confidence
- 8/10
- Baseline
- Neural held-out MSE 0.5268; rare-arm signed bias 0.3651. Mechanism horizon sweep f_T*Z: -0.886, -0.973, -1.105, -1.276 for T=400,800,1400,2400.
- Idea
- Neural held-out MSE 0.5806; rare-arm signed bias 0.4056. Direct known-gate correction changed Z from -0.4155 to -0.0440 at T=1400, but exploration sweep scaled bias ranged from -0.379 to -2.501 and was not consistently near predicted -1.
Limitations: Reduced Monte Carlo repetitions were used after the initial run exceeded the runtime budget. Only stationary synthetic Gaussian rewards were tested; the contextual policy used an oracle nonlinear mean for arm selection rather than a fully learned online neural UCB policy. The soft optimality gate was not separately calibrated, and no repeated neural seeds or FLOP-normalized study was performed.
How to run: python3 experiment.py
Verdict computed by deterministic test code from paired-seed statistics — not by the language model.
Artifacts
- REPORT.json 2.1 KB View Raw
- experiment.py 6.2 KB View Raw
- report.md 1.6 KB View
- results.json 2.7 KB View Raw