netflix3 min read

Curated summary

Thinking Fast & Slow for a Personalized Notification System

Read original(opens in new tab)

Netflix’s personalized notification system separates long-term messaging strategy from real-time content selection. A “slow” policy sets each member’s personalized weekly pacing plan, while a “fast” policy chooses the best message when an opportunity arises. This hierarchy addresses the limits of short-term optimization by balancing immediate engagement with fatigue, opt-outs, and long-term member experience.

Limitations of the Previous System

  • The earlier system used a causal model to estimate the short-term incremental effect of sending a single notification.
  • It optimized immediate actions, but could not capture cumulative effects such as:
    • Notification fatigue
    • Declining responsiveness over time
    • Sustained viewing behavior
    • Gradual opt-out risk
  • Send frequency and message ranking were coupled:
    • A relevance threshold implicitly controlled overall send volume.
    • Changing the threshold affected both frequency and the quality or distribution of selected messages.
    • Frequency could not be explicitly personalized according to each member’s engagement patterns.

The Hierarchical Slow-Fast Architecture

  • The Slow policy makes strategic decisions over a longer horizon, such as a week.
  • It selects a personalized “Pacing Plan Action” that defines intended push and email frequencies.
  • The action space contains roughly 100 combinations of cross-channel pacing strategies.
  • The Fast policy operates in real time, selecting the most relevant message within the limits established by the slow policy.

Utility-Based Strategic Planning

The Slow policy chooses the action that maximizes a personalized utility function:

U(member, action) = Σ wₖ · Rewardₖ(member, action) — Cost(action)

  • Positive signals estimate whether a member will value and engage with notifications.
  • Negative signals estimate fatigue and the likelihood of opting out of a channel.
  • Explicit negative feedback is sparse, so predicted messaging costs alone are too small to prevent excessive sending.
  • Netflix adds a universal cost to every message, ensuring that the utility remains well-behaved and discourages “always send” strategies.
  • This cost is tuned through online experiments and offline evaluation.

Pacing Messages Over Time

  • A basic pacing strategy converts the target frequency into a per-opportunity probability.
  • At each eligible opportunity, the system uses weighted randomization to decide whether to send.
  • This produces a naturally varied schedule while maintaining the desired expected frequency.
  • The architecture can also support structured patterns, including:
    • Day-of-week preferences
    • User-activity-based pacing
    • Bursts aligned with product launches

Communication Between Policies

  • The Slow policy calculates a member’s plan and stores it in a low-latency feature store.
  • The Fast policy retrieves that plan whenever a notification opportunity occurs.
  • This asynchronous event-and-state design lets the planner focus on long-term member health while the executor focuses on immediate relevance.

The main recommendation is to decouple notification frequency and pacing from message ranking. A hierarchical system can explicitly manage long-term communication strategy while preserving the responsiveness and personalization of real-time selection.

Continue with another curated summary.