Hi, I'm Marcus, I'm currently a student finishing my final year of the BSc (Hons) Creative Computing course in IADT. After leaving education at a young age, I decided to reenter in my early twenties, I attained FETAC level 5 and 6 certificates in computer/design related areas and went back to complete the leaving certificate in maths to gain entry to IADTs Creative Computing course. I enjoy working on computers, problem solving and with technologies at the forefront of innovation, such as AI.
My project is a movie recommendation system that uses an AI algorithm to generate personalised recommendations for uses based on movies they've rated.
The project explores various AI algorithms and techniques for generateing recommendations to determine the most suitable method for this system. The most suitable method was determined to be a K-Nearest Neighbour algorithm (KNN), which takes a target user's rated movies, finds a specified number of users with similar ratings in the system, and generates movie recommendations for the target user that they haven't rated yet based on the determined similar user's ratings.
The aim of the project was to create a system where users looking for a movie to watch could go to receive up to date personalised movie recommendations in real time. Essentially, a user needs to be able to receive a list of accurate movie recommendations, be able to go and rate another movie(s), and be able to instantly receive an updated list of accurate recommendations that is taking their new rating(s) into consideration.
For the AI model to be able to generate movie recommendations, it must go through an entire customised dataset of all the movies and users in the system. This dataset has a datapoint for every user and their rating for every movie, even if they haven't rated a movie (the rating is 0 in such cases). This results in exponentially larger files the more users or movies are involved, which can cause the recommendation process to take unacceptably long times to complete.
The size of the dataset is the primary limiting factor for the system to generate accurate recommendations in real time. My system used a dataset containing 300 unique movies and 30,000 unique users and generated recommendations in 0.9 seconds, but I created datasets of various sizes that contained up to 130,000 unique movies and 115,000 unique users, so that a more powerful computer/server could offer more accurate recommendations in real time with a larger dataset.
This thesis explores the areas of machine learning, recommender systems, and their various applications in pursuit of the development of a movie recommendation application.
The history, present and future of recommender systems were researched and are covered, along with various algorithms, methodologies, and their applications. Interviews were conducted and similar applications studied to determine priorities in developing a movie recommendation system.
The development of the application has been documented and explained in great detail, and tests were carried out to determine system capabilities of generating recommendations with a variety of different datasets.