In multi-category retail settings, demand interactions across product categories make it difficult for isolated single-category pricing strategies to achieve system-level optimization. Existing dynamic pricing methods based on contextual bandit often model cross-category dependence primarily through statistical associations while overlooking potential causal transmission structures, making the resulting decisions susceptible to confounding effects. This paper proposes C2ST-Bandit, a collaborative dynamic-pricing framework that integrates classifier two-sample testing (C2ST), causal contrastive learning, and contextual bandit decision-making. C2ST is used to detect and quantify changes in demand distributions associated with observed cross-category price variation. The resulting causal contrastive representation is incorporated as an augmented context feature into a Linear Upper Confidence Bound (LinUCB)-based pricing policy to support collaborative multi-category optimization. The framework contains three main components: a C2ST-based cross-category distribution-testing mechanism, a causal contrastive encoder that maps high-dimensional heterogeneous demand signals into a low-dimensional causal embedding, and a causal-aware contextual bandit decision layer for which a cumulative-regret upper bound is derived under a sparse causal-graph assumption. Experiments on two real retail datasets show that C2ST-Bandit reduces cumulative regret by 18.6% and 21.4%, respectively, relative to Independent LinUCB, improves convergence speed, and achieves an F1 score of 0.91 ± 0.017 for causal-edge identification. Ablation experiments demonstrate the complementary contributions of the main modules, while sensitivity analysis confirms the robustness of the framework to key hyperparameter settings. Clinical trial number Not applicable.
No takes yet. Share an insight, caveat, or question.
Jun Liu (2026) studied this question.
Synapse has enriched 5 closely related papers on similar clinical questions. Consider them for comparative context: