Recommendation system for streaming platform completed
In recent days I finalized one of my first large exciting projects since I founded my own company, which was the development of a recommendation system for a podcast and music streaming company. Recommendation systems are a common machine learning application, which allow content providers to curate and suggest content to users based on their preferences.
The project consist of two parts: first, the development, training and testing of a machine learning model with the goal to generate recommendations based on the user's past behavior and other parameters. The second part was about implementing the recommendation system into the company's Django
backend and frontend.
One important requirement was that the recommendation system can be trained in real-time based on new user signals. The model inputs were based on a combination of parameters such as the genre, the publishing date and user signals such as views, viewing hours, ratings or favourites.
The integration of the model into the website played an important role because the recommendation system in the backend needed to be connected with the frontend as well as with user signals, which is why I built an integrated data pipeline that constantly retrains the algorithm as new content and user signals come in.
For the recommendation system I developed, tested and implemented different existing algorithms, but finally decided to design my own algorithm. The core idea behind my algorithm was to combine a ranking algorithm with a neural network. Whereas the ranking algorithm consists of a ranking score that represents the weighted sum of different normalized parameters, the neural network generates the weights for each individual parameter in the ranking score.