Firemedic15's picture
|
download
raw
3.51 kB

Repro: Large-Scale Notification Dispatch with Bundle Treatments and Multi-Outcome Uplift Optimization

Independent reproduction attempt for ICML 2026 paper "Large-Scale Notification Dispatch with Bundle Treatments and Multi-Outcome Uplift Optimization" (OpenReview 8GH752ZJ5j, ICML poster #2573, Xu et al. / Kuaishou). Method name in the abstract: BUOPLR (Bundle Uplift Optimization with Pruned Lagrangian-based Relaxation).

No arXiv preprint, public code, or public dataset exists for this paper — confirmed by direct search of OpenReview, arXiv, Hugging Face papers, and GitHub. This reproduction is therefore a synthetic-proxy (toy) mechanism test, not a replication of the paper's real data or exact architecture. Full write-up, figures, and scope/cost accounting are in the Trackio logbook.

Claims

  1. Online A/B DAU lift (+0.5%, >100M-user platform) — not independently reproducible; requires Kuaishou's proprietary production infrastructure. Documented as such rather than fabricated. See logbook page "Claim 1".
  2. BUOPLR outperforms SOTA offline — tested mechanistically via a self-contained simulator of the paper's setting (combinatorial bundle treatments, multi-outcome effects with cross-slot interactions, global budget/quota/fatigue constraints) plus an implementation of BUOPLR's two-stage idea (shared multi-task uplift net + restricted-space Lagrangian relaxation) against baseline uplift estimators and assignment algorithms. See logbook page "Claim 2".

Files

  • experiment.py — the full simulator + BUOPLR + baselines + evaluation. PEP 723 uv script; runs locally or via hf jobs uv run.
  • make_plots.py — builds the Plotly (logbook) and Matplotlib (poster) figures from experiment.py's output CSVs.
  • poster.html / poster_embed.html — the posterly reproduction poster.
  • outputs/smoketest_final/ — local smoke test (n_train=60k, n_eval=15k).
  • outputs/scaled/ — scaled HF Job run (n_train=500k, n_eval=500k, scaling swept to 2,000,000 users). Job: https://huggingface.co/jobs/Firemedic15/6a5a386ed216bd6f3a1fb6c1
  • outputs/figs_scaled/, outputs/figs_smoketest/ — rendered figures.

Reproducing

# local smoke test
uv run experiment.py --n-train 60000 --n-eval 15000 --seed 0 \
  --out-dir outputs/local --run-lp --lp-max-n 4000 \
  --scaling-ns "500,2000,8000,30000"

# scaled run on HF Jobs (CPU-only: stage-1 is a small tabular MLP, stage-2 is
# NumPy/SciPy — neither benefits from a GPU at this problem size)
hf jobs uv run --flavor cpu-upgrade --timeout 1h --secrets HF_TOKEN \
  experiment.py -- \
  --n-train 500000 --n-eval 500000 --seed 0 \
  --out-dir outputs/scaled --run-lp --lp-max-n 5000 \
  --scaling-ns "10000,50000,200000,500000,1000000,2000000" \
  --push-repo <your-username>/buoplr-repro-artifacts

Result headline

At n=500,000 held-out users, BUOPLR (shared multi-task uplift net + restricted Lagrangian relaxation) is the best non-oracle pipeline (98.3% of the oracle's realized value), beating the classical linear-additive-uplift baseline by +19.6% (matched assignment) and +41.8% against the weakest common baseline (linear-additive uplift + greedy dispatch). The Lagrangian relaxation stays within ~1% of exact-LP quality at ~50x the speed, and scales near-linearly to 2,000,000 simulated users while exact LP is already intractable at 5,000. Full numbers, caveats, and scope in the logbook.

Xet Storage Details

Size:
3.51 kB
·
Xet hash:
03912810d4d029c1d69d602bc70d70364cefe9ffb08fb1202876168de6adfd8c

Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.