Conceptual diagram of the implemented RankNet.

I generated a recommendation system for the Netflix Challenge dataset that reframes a  collaborative filtering problem into a Learn2Rank problem.
The Netflix Challenge dataset is a large matrix of Netflix users, and what scores they gave to which movies. By applying Singular Value Decomposition, it is possible to generate a reduced feature vector for both users (based on which movies they have watched) as well as movies (based on which users have watched them). These reduced vectors capture the latent topological information present within the dataset.
By posing the question "What is the order in which the user prefers these two movies?", it is possible to formulate a Learn2Rank problem in which, given the context of the user, a dense neural network can act upon two different movies, deciding whether one or the other should be preferred. A RankNet was trained for this purpose, considering that a higher score should be preferable to a lower score, and that identical scores are not informative.
Once trained, the model can be easily plugged into any sorting algorithm (in this case, quicksort) to easily sort a collection of movies based on user preference.
This approach showed very promising results, as the suggestions given to users seemed relevant. In order to convert these into scores, binning could be applied to a range of results, or the model's output could be slightly modified.

You may also like

Back to Top