Recommendation systems are becoming increasingly important in today’s extremely busy world. People are always short on time with the myriad tasks they need to accomplish in the limited 24 hours. Therefore, the recommendation systems are important as they help them make the right choices, without having to expend their cognitive resources.
The purpose of a recommendation system basically is to search for content that would be interesting to an individual. Moreover, it involves a number of factors to create personalised lists of useful and interesting content specific to each user/individual. Recommendation systems are Artificial Intelligence based algorithms that skim through all possible options and create a customized list of items that are interesting and relevant to an individual. These results are based on their profile, search/browsing history, what other people with similar traits/demographics are watching, and how likely are you to watch those movies. This is achieved through predictive modeling and heuristics with the data available.
- Content based
- Collabrative Filtering Based
- Hybrid based
Recommend based on similiarty of content. Example Iron Man and Iron Man 2 are similar.
lets say customer 1 and customer 2 have similar kind of interest becuase for most of the movies they have given simmilar ratings. So for any movie/ movie criteria on which customer 1 has given good rating then its high chance that customer 2 also will give good rating for the same movie.
Both content and collabrative filtering used in hybrid based recommendation
This is a web application that recommends similar kinds movies to user based on its search input. It is using streamlit to provide UI and precalculated distnaces between vectors for recommendations. To calculate distance between two vectors we have used cosine similarity.
Note - Number of similar movies to be displayed is configurable due to parameters of "configs/config.yaml" file.
Also, have a look at deployed project,
git clone https://github.com/atulgaikwad12/Movie-Recommender-System-ML-ContentBased.git
conda create -n envmovie python=3.7.10 -y
conda activate envmovie
pip install -r requirements.txt
jupyter-notebook
https://www.kaggle.com/datasets/tmdb/tmdb-movie-metadata/download
STEP 05- Run below jupyter notebook to do data preprocessing, generate artifacts of distances, movies that can be used further to get end result.
Note - Find generated pickel files in artifcats folder
Movie Recommender System Data Analysis.ipynb
streamlit run app.py
git init
git add .
git commit -m "first commit"
git branch -M main
git remote add <origin your_new_github_repo_url>
git push -u origin main
git lfs install
git lfs track "*.pkl"
git lfs track "*.png"
git lfs track "*.jpeg"
git add .gitattributes
git add .
git commit -m "Add design file"
git push origin main
tmdb_key = "API_KEY_STRING"