3 Ingredients for building a killer Movie Recommendation Engine
The need to develop a video recommendation engine
80% of all content consumed on Netflix is discovered on the platform. This means that 80% of the time that someone spends on the Netflix platform is because of Netflix’s recommendation algorithm.
Recommendation engines have become a very common aspect of all Video on Demand Platforms. Each new user might sign up on your platform in search of some specific title but to ensure that they become returning users you do need a personalisation engine in place.
For instance, I joined Netflix just because i wanted to watch the TV show called Stranger Things. But Netflix has done a great job in ensuring that i keep coming back. At first, I was astonished at how well Netflix could predict my tastes in movies and recommend something to watch. They knew that i would prefer mind bending movies and the occasional comedy. I could not help but log on to Netflix especially when i was just browsing and did not have any specific movie in mind. This stickiness to any VOD platform is only possible with a recommendation algorithm.
In this blog post I want to outline the fundamentals of developing such a recommendation engine for your video platform. Let us begin with what is the primary use of such a system.
‘Showing the right title to the right person at the right time’
The first thing that comes to mind, is a five star based rating system. Although such a system would be extremely appealing to the engineering sensibilities but in reality it doesn’t help much in establishing a personalisation engine of the scale of millions of users. Each viewer has different tastes that vary by location and time. Accounting for each of them is extremely difficult. A 3.2 rating would have a different significance for different people. As a matter of fact, it would have a different significance for the same person at different times of the day.
The tech team at Netflix had published a blog about how they were moving beyond the 5 star rating system. You must do the same with your platform.
Everything is a recommendation:
Many people ask us, to what extent should they incorporate recommendations and personalisations into their platform. Simply put ‘Everything is a Recommendation. ’
From the moment the viewer opens your website, your platform should be able to deliver a personalized experience to the consumer.
The titles that are shown on your homepage must be divided in the form of rows. Each of these ‘genre’ rows, à la Netflix and Amazon Prime, must be personalized for accuracy and diversity. The titles in these rows should obviously be relevant to your user, but you must remember that for VOD platforms, there are multiple users for each account. Personalizing for diversity becomes important if different family members access your platform through the same account.
Some examples of rows would be:
- Popular Now
- Trending Now
- Because you watched House of Cards
- Thriller, etc
In each row on your platform, personalisation must be done at three levels:
- The genre itself
- The list of titles that will be shown in the genre
- The rankings of each of those titles in that row.
These rankings must be computed by using the recommendation algorithm as well as by using explicit feedback from the viewer. Some questions at the time of Sign Up, such as what genres do you generally like, help in getting the personalisation started.
Building the Recommendation Engine:
There are three important aspects to building any state of the art recommendation engine:
- Data Collected from Users: the users and their demographic and usage data
- Tagging all your Content: in-house and freelance staff who go through all the videos and tag each minute of them.
- Ranking: the algorithm that ranks titles based on how likely your user would watch them.
Data collected from Users
A 40 year old mother of two would probably have different tastes in movies than a 19 year old boy in college. It is imperative for you to segregate your users on the basis of their tastes. The most basic method of grouping your users is their demographic. These are details that you would be collecting from them at the time of sign up.
In each demographic, different types of people will have different tastes. Someone likes romantic comedies, whereas someone prefers Western films starring Clint Eastwood. User behavior helps in understanding what a viewer prefers. This can be explicit such as liking a title that they have seen, and implicit such as watching three back to back horror films.
Hence, as a video on demand platform owner, you must first define characteristics of different taste groups.
This can be done using two types of data:
- Demographic data such as age, gender, location, family status etc.
- Usage data about how the viewer interacts with your platform.
Only in the United States, Netlifx has at least a couple of thousand different taste groups. You must get as granular as possible when developing these groups. Even the smallest differentiating factor can help you better in predicting what your users will watch next.
Tagging all your content
From Mind Bending Crime Movies of the 1960s to Dark Gay and Lesbian Dramas, Netflix has over 3788 genres and micro-genres. They have about 76,897 ways to categorize movies. To put it mildly, Netflix has deconstructed Hollywood.
As a rule of thumb, ‘Tag everything’. Even romantic movies must be tagged on how mind bending their ending was. Or whether a neo noir thriller passed the Bechdel Test.
Each movie must be rated on different characteristics such as romance, comedy, drama etc to more complex ideas such as did the ending provide closure, what was the lead actor’s profession, were most of the scenes shot in the day or at night.
You would also need to mark each of your movies with the entire cast, crew, time period, country, awards won, awards nominated, etc. Here is a spreadsheet that outlines different tags used by Netflix to rate its movies. .
Once you have tagged all of your content, and mapped users into different taste groups, the next step would be the ranking. How do you rank different titles to choose what must be shown to the user as a recommendation. This ranking algorithm needs to give equal weightage to two different factors:
- Popularity: Overall popularity of a particular title
- Personalisation: How much does the title match with user’s tastes.
Keeping in mind that popularity is the opposite of personalisation, using anyone alone will not achieve the desired results. Only accounting for overall popularity will lead to titles that are not relevant to the user. Only using the user’s tastes for rankings might lead to obscure titles and exclude popular ones that she may want to watch because everyone is watching them.
Being able to strike the right balance between the two, and arriving on what works for your platform, is an iterative process and requires a long term commitment from your end. After developing the first version of your system, you would need to keep tweaking and optimizing it as you grow.
Developing and managing such an algorithm would require machine learning skills and managing all the rating and user preferences would fall in the realm of big data.
Either you could hire an in house team, use SaaS based tools or develop a custom solution. Each has its own merits and demerits depending on your scale.
To make it easier for you, here is a comprehensive list of paid as well as open sourced recommender systems.
If you are in need for ecure video streaming for your platform do check out our offerings. Or sign up for a free trial. Find more details about VdoCipher’s DRM infrastructure and our integration of Widevine DRM for Hollywood-grade security.