Adaptive Homepage Personalisation at Scale Using Contextual Bandits
Abstract
Homepage personalisation is a core challenge for large-scale media platforms. A homepage is not only a recommendation surface; it is a continuously changing product interface where multiple editorial, programmatic, and algorithmic modules compete for user attention. Static layouts and offline-trained ranking systems provide useful baselines, but they struggle when user interests shift, content inventories change, and the number of possible layout configurations becomes too large for conventional A/B testing. This article presents a production case study of applying multi-armed bandit methods to personalise the mobile homepage of JioSaavn, a large-scale music streaming platform. As of early 2020, the homepage contained more than fifteen modules, so the space of possible orderings was enormous—on the order of 15! ≈ 1.3 1012 (over a trillion). We model homepage module ranking as an online exploration–exploitation problem in which per-user, per-module scores combine an empirical reward mean with an exploration bonus that is larger for modules with fewer impressions. We use Upper Confidence Bound (UCB) scoring to make the idea concrete, and the first production variant deployed for experimentation was epsilon-greedy, chosen for implementation simplicity. The production system captured impressions and interactions through backend event logs, streamed them through Kafka and a Storm topology, stored per-user module scores in Redis, and used those scores to reorder modules on each homepage reload. In a randomised experiment with roughly 2.5 million users per arm, average listening time per user increased by approximately 7%. The system was then rolled out to the full user base. We discuss the problem formulation, the bandit scoring and reward design, the production architecture, evaluation, and operational lessons from deploying adaptive personalisation at consumer scale.