Netflix developed GenPage, a generative AI system that replaces their traditional multi-stage recommendation pipeline with a single model. This system directly generates personalized homepages, unifying item selection, row construction, and layout generation. Key benefits include improved user engagement, a 20% reduction in serving latency, and greater flexibility for new content types and product experiences.
Read original on InfoQ ArchitectureNetflix's GenPage represents a significant architectural shift in building personalized user experiences. Traditionally, recommendation systems rely on complex multi-stage pipelines involving separate components for candidate generation, ranking, and layout. GenPage consolidates these into a single, unified generative AI model, drawing inspiration from large language models' ability to perform diverse tasks through a prompt-response paradigm.
The previous Netflix system involved an iterative process: candidate generation and ranking for each row and entity, followed by a final layout stage. This approach could lead to localized optimizations without considering the whole-page context. GenPage, in contrast, takes user history and request context as a prompt and directly generates the entire homepage, optimizing for overall user satisfaction.
Whole-Page Optimization
GenPage's single-step approach enables whole-page optimization, a crucial advantage over multi-stage pipelines. By considering interactions across rows and at the item level through post-training reinforcement learning (RL), it can make more holistic decisions, such as balancing immediate user intent (e.g., 'Continue Watching' row) with broader page exploration.
A key finding from production use was the significant impact of prompt enrichment over simply scaling model capacity. While both improved performance, adding more context to the prompt yielded substantially larger gains, suggesting a crucial design consideration for other industry-scale personalization systems. Model capacity scaling showed diminishing returns once input context was saturated.