Recommender Systems in Netflix

Netflix is a company that demonstrates how to successfully commercialise recommender systems.  Netflix manages a large collections of movies and television programmes, making the content available to users at any time by streaming them directly to their computer/television.  It’s a very profitable company that makes its money through monthly user subscriptions.  Users can cancel their subscriptions at any time meaning that the Netflix product needs to be continually appealing or they lose revenue.  In this post, we’ll be looking at how Netflix makes use of recommenders in their online site designed for use on large screen devices (e.g. macs, PCs).

First off, as an already subscribed user to Netflix the first thing that I see when I log in is a message asking me to identify myself (Figure 1).  In my home, both me and my other half have our own profiles and there’s always the option of going to the kids section when we’re looking for something for our kids.  As you’d expect for personalised systems such as recommenders, it’s useful if the users identify themselves.  Otherwise, it would be very difficult to know what to recommend as different users can have wildly different preferences.

multiple-accounts
Figure 1: Profile selection when logging in.

When I choose my profile, I’m then taken to the main page.  This is where almost all of the recommendation action goes on and where most of the recommenders live.  It’s basically a long list of carousels filled with movies (Figure 2).  I’m going to focus on these recommendation carousels before mentioning some of other notable features.

carousels
Figure 2: A selection of Netflix carousels.

The first two carousels are not strictly recommenders.  The first is filled with movies that I have recently watched (Figure 3).  Arguably, this isn’t a recommender, it’s a history of what I last watched.  I’d argue, however, that it plays an important part in building a relationship with the users, so is a good example of a recommender system’s interface, even though the content itself has not been generated using a recommender algorithm.  Building a relationship with the user is important in starting to establish trust with them, a subject that we’ll cover in more detail in future posts.

continue-watching
Figure 3: Carousel that offers the last movies that you watched.

Again, the second carousel’s content is not provided by a recommender algorithm (Figure 4) but it’s a personal list of movies that I have manually curated.  Basically a list of movies that I think I’d like to watch some time in the future but haven’t got round to yet.  If you think about it, then this is a kind of recommendation.  It’s movies that I have noted I’d like to watch in the future, that is, movies that I have recommended to my future self to watch in the future.  As such, I would argue that this carousel is a list of recommendations but not one with content that’s automatically generated.

my-list
Figure 4: Carousel with movies that you have previously added to your personal list.

The third carousel recommends movies that are popular in the Netflix viewing community (Figure 5).  Popularity is a good, solid algorithm for generating recommendations, as we’ll discussing in the third part of the series of posts on algorithms.  Netflix also personalises the content here so not all users will see the same list of popular movies but a personalised one.

popular
Figure 5: Carousel with movies popular in the Netflix community.

The next carousel taps into a theme that we see quite often in modern Web2.0 applications.  It recommends movies that are currently trending (Figure 6).  Again, they are personalised so won’t be the same for every user but what’s in here is probably more recently popular than what’s in the previous carousel.  The line between popular and trending isn’t so clear but the names suggest that popular may be based on a longer time frame than trending.

trending
Figure 6: Carousel with movies that are currently trending in the Netflix community.

The next carousel recommends movies that have been recently added that it thinks will appeal to me (Figure 7).  This is also a good basic algorithm to use when you have a collection of items that change regularly enough to be able to shine a spotlight on recently added ones.

recently-added
Figure 7: Carousel with movies recently added to Netflix.

Similar to the ‘Continue Watching’ carousel, that we first described, Netflix also provides a carousel with movies that you have already watched (Figure 8).  What makes it different, however, is that these movies aren’t ordered by when you watched them like the ‘Continue Watching’ list is.  Again, this is a carousel with content that hasn’t necessarily been generated using a recommender algorithm but with your history.  I suspect that the order in which they appear, however, is determined by a sorting function (i.e. a recommendation post-processing component) that attempts to bias it towards my most recent interests.  Again, these recommendations tap into a similar idea as the ‘My List’ as they are recommendations from you to you.

watch-it-again
Figure 8: Carousel with a mixture of movies that you have watched some time in the past.  They are not in order of when they were watched.

Netflix also provides recommendations based on newly released content (Figure 9).  This is different from ‘Recently Added’ movies as it’s probably both recently added and recently released.  Again, these are personalised to your interests.

new-releases
Figure 9: Carousel with movies that have recently been released and added to Netflix.

As you can probably see by now, Netflix provides a large number of movie recommendations for every user.  I think it’s fair to say that the team have found that the combination of different algorithms exposed through many carousels in the interface is a good approach for their users.  Users will want to watch movies depending upon their mood and since the system doesn’t know their mood, it provides them with a diverse range of movies based on different reasons that should cover a range of moods.  In effect, use of multiple algorithms exposed through multiple carousels allows them to hedge their bets, hoping that users will find at least one movie that they want to watch.

The next carousel in my page has a list of recommendations that are based on a single movie that I watched in the past (Figure 10).  This kind of recommender is very common.  It’s the case where given a single item, we want to see other items that are related to it.  Item-based collaborative filtering oftens gives good results here, given enough input.

because-you-watched-1
Figure 10: Carousel with recommendations based on a single movie that I previously watched.

The next three carousels are similar but instead of providing recommendations based on a single movie that I watched in the past, they are based on two movies (Figures 11-13).  It’s hard to know whether Netflix takes two movies that you have watched in the past and then generates recommendations based on them or whether the recommendations are generated by another approach and then the two previously watched related movies are then chosen as an accessible explanation.  Using items as an explanation for why recommendations are generated is good strategy for recommender systems as users should already know these items and so have a strong feeling for what kind of items are in the list.

based-on-your-interest-in-2
Figure 11: Carousel with recommendations based on two previously watched movies.

It’s really interesting to see the title given to the carousel in Figure 12, ‘Visually-striking Films’.  This description is likely to be hand-written but since the lists of movies are personalised, there will certainly be some automation in linking the descriptions with movies.

visually-striking-films
Figure 12: Carousel with recommendations based on two previously watched movies.

Finally, for the carousels, the last description is again strongly suggestive of it being hand-written (Figure 13) – ‘Films Featuring a Strong Female Lead’.  Also notice that the language is appropriate for British English rather than US English, as it should be for me.

films-featureing-a-strong-female-lead
Figure 13: Carousel with recommendations based on two previously watched movies.

Before concluding this post, I think it’s important to also say a few words about some of the decorations and non-recommender features in Netflix.  First, Netflix chooses to place a showcase banner at the top, allowing them to promote particular content to users (Figure 14).  I imagine that this is somewhat personalised but it’s my bet that what goes in there is often hand picked.

showcase-banner
Figure 14: Showcase banner advertising specific content.

Netflix also allows users to browse through the contents (Figure 15).  There is a traditional grouping of movies by genre, that you can browse through (Figure 16) and, if you want, even go to the level of sub-genre (Figure 17).  This is interesting.  You might think that if the recommender system is so good, why do you need to allow users to manually browse through content categorised into sometimes quite subjective genres?  I’m guessing that Netflix finds that this ability to browse is complementary to what the recommenders provide and that it’s useful to retain the functionality.  Also, once browsing the contents of a genre or sub-genre, you can also sort them based on how much the recommender estimates that you will appreciate them (Figure 18), showing that the recommender is still at play even in the browsing setting.

browse
Figure 15: Netflix allows you to browse through their content using classic genres.
browse-sci-fi-and-fantasy
Figure 16: Movies in the genre Sci-Fi & Fantasy.
sub-genres-sci-fi-and-fantasy
Figure 17: Netflix allows you to select a sub-genre.

sort-by

Figure 18: Netflix allows you to sort movies based on the recommender’s understanding of your interests and traditional values (e.g. ratings, date, name).

Netflix also has a notifications feature that it uses to make further recommendations (Figure 19).  So far, I think that it has told me when new seasons are out but I’m not sure the scope of types of messages that appear here in general.

notifications
Figure 19: Some recommendations are pushed to users as notifications.

Finally, we can’t end this look at Netflix, the shining example of recommenders, without noting that it still provides a search engine to search through its collection of movies (Figure 20).  When you have such advanced recommenders it may be a surprise to still see a search engine here.  Recommenders and search engines, however, are very much complementary to one another.  We’ll write a post on this subject to discuss it in detail in the future.

search
Figure 20: Netflix has a search engine that allows you to search through the collection of movies.

Netflix’s use of recommender systems is impressive and their product is advanced.  They have successfully combined all of the components of a recommender system together to produce a commercially successful product.  When you’re building a recommender system, it’s worth looking at what the Netflix team is doing to get some inspiration.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s