Towards Reliable Social A/B Testing: Spillover-Contained Clustering with Robust Post-Experiment Analysis
Abstract
A/B testing is the foundation of decision-making in online platforms, yet social products often suffer from network interference: user interactions cause treatment effects to spill over into the control group. Such spillovers bias causal estimates and undermine experimental conclusions. Existing approaches face key limitations: user-level randomization ignores network structure, while cluster-based methods often rely on general-purpose clustering that is not tailored for spillover containment and has difficulty balancing unbiasedness and statistical power at scale. We propose a spillover-contained experimentation framework with two stages. In the pre-experiment stage, we build social interaction graphs and introduce a Balanced Louvain algorithm that produces stable, size-balanced clusters while minimizing cross-cluster edges, enabling reliable cluster-based randomization. In the post-experiment stage, we develop a tailored CUPAC estimator that leverages pre-experiment behavioral covariates to reduce the variance induced by cluster-level assignment, thereby improving statistical power. Together, these components provide both structural spillover containment and robust statistical inference. We validate our approach through large-scale social sharing experiments on Kuaishou, a platform serving hundreds of millions of users. Results show that our method substantially reduces spillover and yields more accurate assessments of social strategies than traditional user-level designs, establishing a reliable and scalable framework for networked A/B testing.
Cite
@article{arxiv.2602.08569,
title = {Towards Reliable Social A/B Testing: Spillover-Contained Clustering with Robust Post-Experiment Analysis},
author = {Xu Min and Zhaoxu Yang and Kaixuan Tan and Juan Yan and Xunbin Xiong and Zihao Zhu and Kaiyu Zhu and Fenglin Cui and Yang Yang and Sihua Yang and Jianhui Bu},
journal= {arXiv preprint arXiv:2602.08569},
year = {2026}
}