Created during a recommendation challenge for hiring. The notebook touches on content-based filtering, collaborative filtering, and an ensemble approach by the end.
- A subclass of information filtering system; to capture the user’s preference, or “recommend” similar items.
- Nowadays, we see it in place of almost every commercial application; Daraz, Amazon, Netflix etc.
- There are many styles of recommendation systems:
- Collaborative Filtering: User-Item, User-User
- Content-based Filtering: Content, Metadata
- Hybrid Recommenders: CB+CF
- Select movie titles, genres and years from movies
- Select Tags
- Convert Genres to columns (Top 15), and turn them into a 0-1 matrix
- Titles: what do we do?
- Thought Process: Titles have a meaning, sequels should come together?
- We converted Titles into embeddings using TF.HUB USE encoder
- We filtered Tags on their weight > 1, and converted them to embeddings as well
- Apply Cosine Similarity and retrieve intermediate predictions
- Gather insight on metadata: Actors, Directors, Tags, Country
- Capture the embeddings of all the above
- Join newly constructed data with the previous data frame
- Observe the effect on results
- This is often known as meta-data based recommendations
- Reasons are many; movie buffs who spend their entire time browsing movies possess enough information to know which actors - they like and dislike, what directors captures their interest the most and so on.
- Collaborative Filtering; User – Item collaboration
- Ensemble Method
- Hybrid Recommender: Personalized Suggestions for every user!
- Flask API
- Convert intermediate recommender to a function
- Write up Ensemble Method function
- Convert Hybrid Recommender to a function
- Connect the dots – Recommend away!
For this project, there were a number of libraries used, namely:
- Pandas
- Numpy
- Tensorflow
- Surprise
- Sklearn
- Matplotlib
- NLTK
- re
- Flask