Home page module ranking

DesignHard45 minNetflix style

Your task

Design the system that ranks the rows/modules of a personalized home page (e.g. 'Continue watching', 'Because you watched X', 'Trending', 'New releases', 'Top picks') per user, deciding which row goes at the top and which gets dropped, rather than ranking items within a row. There are ~40 candidate modules, you show ~10, and you want to maximize engagement while continuously learning which modules work for which users, at 100M users with a < 80ms budget. How do you score and order the modules, and how do you keep learning online?

It covers

  • Multi armed bandit
  • Thompson sampling
  • Module ranking