The Business Challenge
Our client had an existing recommendation engine that provided movie suggestions to customers based on their preferences. Our client wanted to enhance the performance of its recommendation engine and more accurately predict a customer's rating for every movie.
Fractal Analytics' scientists developed an algorithm based on the "singular value decomposition" technique and implemented it in the C++ computer programming language. This iterative algorithm calculates each customer's preferences based on his or her ratings. Similarly, it also calculates each movie's characteristics based on the ratings that it has received from other customers. These preferences and characteristics are then used to predict a customer's rating for a movie that he or she has not yet watched without needing to use any external data such as movie genre or its cast.
Using the available ratings, the algorithm identifies the values of about 150 features (attributes) for each customer and each movie, such as action, comedy, drama, musical, and so on. The value of a feature for a movie indicates the amount of content of that particular characteristic in the movie.
Similarly, the value of a feature for a customer represents his or her preferences towards a particular characteristic. While these characteristics were not created by Fractal, they are automatically determined by the algorithm. Our analysts also explored other techniques such as linear regression, clustering, collaborative filtering, and the slope one method. Once we have all these features for a customer and a movie, we add the sum of the features' values to determine the customer's (predicted) rating for that movie.
Fractal Analytics' enhanced recommendation engine was better able to classify similar customers and movies, which improved movie ratings by 4%. The engine was implemented in a multi-paradigm programming language, which allows for adaptability, easier handling and faster processing of about 100 million movie ratings.