Learning a Personalized Homepage But this is not a complete and complete translation.

As we described in a previous blog post, at Netflix we use personalization extensively and strive to present the right content to every one of our more than 57 million users. The primary way users interact with our recommendations is through the home page, which they see when they log into Netflix on any supported device. The main function of the home page is to help each member easily find something they like. One problem we faced was that our catalog contained more videos than could be displayed on a single page, with each member having their own unique interests. Thus, an algorithmic challenge is how best to customize each member’s home page so that it covers their interests and viewing intentions, while still allowing them to explore other content.

Such problems are not unique to Netflix, but are common to other news sites, search engines and online stores. Any site that needs to select projects from a large number of available possibilities and then present them in a coherent and easy-to-navigate manner will face the same general challenges. Of course, the problem of optimizing Netflix’s home page has its own unique aspects, such as interface limitations and differences in how movies and TV are consumed compared to other media.

Why Rows Anyway?

We organized the home page into a series of lines so that users could easily navigate most of our catalog. By presenting consecutive groups of videos, providing meaningful names for each row, and rendering the rows in a useful order, users can quickly decide whether a consecutive group of videos is likely to contain content they would be interested in watching. This allows the user to dive deeper and find more videos in the topic or skip them and view another line.

A natural way to group videos is by genre or subgenre(a concept mentioned in a previous article) or other video metadata dimensions (such as release date). Of course, the relationship between continuous videos is not necessarily metadata, but can also be behavioral information (such as collaborative filtering algorithm). We believe that a user may watch a video, or even a video watched by a friend. Therefore, each row can provide a unique and personalized segment of the catalog for the user to navigate. Part of the challenge and fun of creating a personalized home page is figuring out new ways to create useful groups of videos, and we’ve been experimenting with them.

Once we’ve considered a list of possible video groups for the page, we can start assembling the home page from them. To do this, we first look for candidate groupings that might be relevant to users based on the users we know. This also involves providing evidence (or explanation) to support the presentation of a line, such as a film that the member has previously watched in a genre. Next, we filter each group to deal with maturity levels, or delete previously viewed videos. After filtering, we rank the videos in each group according to a ranking algorithm that fits rows, which produces a sorting of videos so that the most relevant videos of the members of the group come before rows. From this set of row candidates, we can apply a row selection algorithm to assemble the entire page. After the page is assembled, we perform additional filtering, such as deduplication, to remove duplicate videos and format the rows to fit the device.

Page-level algorithmic challenge

The main purpose of our personalization and recommendation approach is to help our users find new things, which we call Discovery. However, we also want to make it easy for users to watch the next episode of a show or re-watch what they’ve watched in the past, which is usually not recommended. We want our recommendations to be accurate, but they also need variety. We want to highlight the depth of our goals, as well as our breadth in other areas, to help our members explore and even find new interests. We want our suggestions to be fresh and responsive to user actions such as watching a show, adding to a list or rating; But we also wanted some stability so that people were familiar with their home page and could easily find the videos they had recently recommended. Finally, we need to place task-oriented rows, such as “My List.”

Each device has different hardware capabilities that can limit the number of videos or lines displayed at any one time and the size of the entire page. Therefore, when generating a page, you must know the constraints of the device for which it is creating the page, including the number of rows, the minimum and maximum length of rows, the size of the visible portion of the page, and whether certain rows are inappropriate for a device.

Building a page algorithmically

There are several ways we can algorithmically build our home page. The most basic is the rules-based approach that we’ve been using for a long time. There is a set of rules that define a template that indicates which line types all members can enter at certain points on the page. For example, a rule could specify that the first line is “keep watching” (if any), then Top Picks (if any), then Popular on Netflix, then five personalized genre lines, and so on. The only personalization in this approach is selecting candidate rows in a personalized way, for example including the “Because you watched <video>” row. To select specific rows in each type, we use simple heuristics and sampling algorithms. We used A/B tests to evolve this template to understand the right place to put rows for all users.

This approach served us well, but it ignored many aspects that we thought were important to page quality. The rules of the template grew over time and became too complex to handle the various lines and how they should be placed.

To solve these problems, consider personalizing the order of rows on the home page. The easiest way to do this is to treat rows as items in the ranking problem, which we call the row ranking method. For this approach, we could develop a scoring function for the rows, apply it to all candidate rows, sort by that function, and then select the most priority rows to populate the page, leveraging a number of existing recommendations. However, this can lead to a lack of diversity, and someone will end up with a slightly altered page, for example, each line on the page looks different in theme, but is actually full of different variations of comedy: Late-night, Family, Romantic, Action, etc.

A simple way to add diversity is to switch from a row ranking approach to a hierarchical approach using a scoring function that considers both the row and its relationship to previous rows and previously selected videos for the page. In this case, you can take the simple, greedy approach of selecting the line that maximizes this function as the next line to use, and then re-scoring all the rows in the next position. This greedy choice may not produce the best page. Using a phased approach with k-row foresight can produce more optimized pages than greedy selection, but it introduces increased computational costs.

However, even staged algorithms do not guarantee optimal page production, because fixed time ranges may limit the ability to populate better rows at the bottom of the page. If we can define a full-page scoring function, we can try to optimize it by populating the page with appropriately selected rows and videos. Of course, the search space for page combinations is large, so it is computationally difficult to directly optimize the functions that define the quality of the entire page.

When using any of these approaches to solve page optimization problems, you also need to consider the various constraints mentioned earlier, such as deduplication, filtering, and device-specific constraints. Each of these constraints adds complexity to the optimization problem.

When forming the home page, it is also important to consider how members view the page, that is, where on the page they are likely to notice during the session. Placing the most relevant videos where they are most likely to be seen (usually in the upper left corner) reduces the time it takes for members to find content relevant to watching. However, modeling navigation on a two-dimensional page is difficult, especially considering that different people may have different navigation patterns, people’s navigation patterns may change over time, navigation differences exist between device types based on interaction design, and navigation obviously depends on the relevance of what is displayed. With an accurate navigation model, we can better understand the location of videos and rows and the focus on the page.

Machine Learning for page generation

At the heart of building personalized pages is the scoring capability to evaluate the quality of a row or page. While we could use heuristics or intuition to build such A scoring function and tweak it with A/B testing, we prefer to learn A good function from the data so that we can easily incorporate new data sources and balance different aspects of the home page. To do this, we can use machine learning algorithms to create ratings by training users on how to create different home pages, what they’re actually seeing, their interactions, and their playback.

We can use a lot of features to represent rows. Since the row contains a set of videos, we can aggregate the features of those videos in the row representation. These features can be simple metadata or more useful Model-based features that represent how desirable it is to recommend a particular video to the user. Of course, we have many different recommendation methods that can be aggregated using the Ensemble approach. We can also look at row-related features, such as how many users are interested in a particular genre, and whether the current user has consumed the row or similar rows in the past. We can also add simple descriptive features, such as how many videos are in a row, where the row is placed on the page, and how often we have shown the row in the past. We can also factor diversity into the score by looking at how similar the row is to the rest of the row or how similar the video in the row is to the video in the rest of the row.

Machine learning models for row scoring present several challenges. One challenge is dealing with presentation bias, since users can only select videos to play on the home page we display, and undisplayed training data can be biased. To complicate matters further, the position of a line on the page can greatly affect whether the user actually sees it and chooses to play from it. To deal with these presentations and position bias, we need to select training data very carefully. There are also challenges regarding how to select video attribution rows in the model; The video might have been played in a line in the past, but does that mean that the user would have selected the same video if it had been placed in the first position on a different line? Diversity is also challenging to introduce, because the feature space of potential rows at different locations on the page is already large, but when the rest of the page allows for diversity, the possible feature space becomes larger and more difficult to search.

Page-level metrics

As with any algorithmic approach, it is important to choose a good metric to address these challenges. The most important thing in page generation is how to evaluate the quality of the pages produced by a particular algorithm during offline experiments. While we will eventually test any potential algorithm improvements online in A/B testing, we want to be able to focus our valuable A/B testing resources on algorithms that we have evidence of potentially improving page quality. We also need to be able to adjust the parameters of these algorithms prior to A/B testing.

Of course, Recall is a basic indicator, and the values of M and N need to be selected, but we can also extend indicators such as NDCG or MRR to two-dimensional cases. We can also tweak the navigation model such as Expected Reciprocal Rank to include 2d navigation in the page. By defining such page-level metrics, we can use them to evaluate changes in any algorithm method used to generate a page, not just algorithms for ordering the rows, And Selection, filtering, and Ranking Algorithms.

Other Challenges

There is no shortage of challenging questions when designing the home page. For example: when do we consider other context variables (such as time of day or device), and how do we populate the home page? How do we find the appropriate tradeoff between finding the best page and calculating the cost? How do we form the home page during the user’s critical first few sessions, when we get the least information? We need to consider and weigh the importance of each issue in order to continually improve the Netflix home page.

Conclusion

Personalized page generation is a challenging issue that involves balancing multiple factors, and we think this is just the beginning.