profile picture

Ben Hackett-Delaney

Movie Recommender System

The focus of the project was to create a movie recommendation application which would give users recommended movies based on their preferences and interaction on the app. The backend was made using Flask which integrates a TensorFlow recommender model and serves it. The front end was developed using React.js providing an interface that users could interact with and obtain recommendations. Developing this application involved processing data, model training, API development and implementing those components to display on the front end.

This is a simulated version of how the recommender system was supposed to work in the application due to issues with the recommender systems model. In the application it shows the user registering an account, the user is then navigated to the home page. On the home page, the recommendations appear when the user rates a movie. 

register
This is the registration page. new users can use this to add their own accounts to the application. if an account already exists the user can login using their email and password.
empty home
This is the home page, this is the page the user is navigated to once they have registered an account or logged in. As the new user has not rated a movie they have no recommended movies and will need to go to the movies page to browse.

Once the user navigates to the movies page, they can select one or more movies to rate. After the user selects a movie, they are taken to that movie's details page where they can submit a rating.

Movie page displaying movies
In the movie all page the user can select a movie they would be interested in viewing. They can select the movie and be brought to the specific movie details.
Movie single page
Once the user is viewing a movie they can add it to their watchlist, rate the movie, view actors, and leave a review. The admin users can edit and delete movies.

When a user rates a movie, it is added to the home page and displayed. The system then updates to show the top five recommended movies for the user.

Movie single page
Once the user has rated a movie, the users recommended movies will appear in the home page along with the newly added rating.
This is a video of the website and how it operates, it goes over the how the user and admin would use the application.
Personalized Movie Recommendations using Machine Learning

The main objective of the application was to create a recommender system that would suggest movies to the users based on their interactions and preferences. the aim was to give users a faster method of finding movies they would like to watch. This sparked other features to be implemented such as having actors, watchlists, ratings, and reviews for more interactions. With the requirements implemented the application would be able to serve people's needs when trying to save time and find movies they are interested in.

Recommendation Issue

All of the features were working as expected in the application except for the recommendation models, this is where issues began to arise when working with TensorFlow. After a struggle to export the model from Google Colab, the retrieval and ranking models were both exported and inserted into the Flask backend. However, the retrieval model could not work because of a NumPy conflict, the Ranking model was mostly functional but it could not take in new data from my application, this means that the recommendations were already predicted for the user IDs in the training data and the recommendations my user were receiving were inaccurate. A workaround I implemented was to extract the data to then be displayed as a top-five ranking to simulate the user's recommendations. Although this was a big setback, all the other functions of the application worked as intended.

Thesis: Movie Recommendation Application

The project's development goes over the whole process of building the application. It goes over the details of developing the recommender application and how it was integrated into the backend and served to the front end. The thesis goes over the challenges that were encountered when working with the Ranking model from TensorFlow and the implementation of other features. The thesis outlines the phases where the full development scheme was discussed. These phases included the research, requirements, design, implementation, testing, and project management phases.

profile picture
Ben Hackett-Delaney
BSc (Hons) Creative Computing

I am a student at IADT College studying Create Computing. I have experience in full-stack development, UX/UI design, and Machine Learning. I enjoy solving problems and using my creativity to design and develop applications. The projects include a movie recommendation system, data visualization, and React apps. I am always open to learning new ways to improve my work.

BSc (Hons) Creative Computing