Skip to content

Repository containing basic algorithms used in Recommendation Systems: Content-Based and Collaborative Filtering Based.

Notifications You must be signed in to change notification settings

yashjhaveri05/Recommendation-System

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Recommendation Systems

The rapid growth of data collection has led to a new era of information. Data is being used to create more efficient systems and this is where Recommendation Systems come into play. Recommendation Systems are a type of information filtering systems as they improve the quality of search results and provides items that are more relevant to the search item or are related to the search history of the user.

They are used to predict the rating or preference that a user would give to an item. Almost every major tech company has applied them in some form or the other: Amazon uses it to suggest products to customers, YouTube uses it to decide which video to play next on autoplay, and Facebook uses it to recommend pages to like and people to follow. Moreover, companies like Netflix and Spotify depend highly on the effectiveness of their recommendation engines for their business and success.

All the major companies that use Recommendation Systems generally have their own algorithm to predict the best recommendations.These algorithms may or may not be very complicated.

In this repository,we shall take a look at the very basic algorithms used by Recommendation Systems.

They suggest similar items based on a particular item. This system uses item metadata, such as genre, director, description, actors, etc. for movies, to make these recommendations. The general idea behind these recommender systems is that if a person liked a particular item, he or she will also like an item that is similar to it.

Advantages

  • The model doesn't need any data about other users, since the recommendations are specific to this user. This makes it easier to scale to a large number of users.
  • The model can capture the specific interests of a user, and can recommend niche items that very few other users are interested in.

Disadvantages

  • Since the feature representation of the items are hand-engineered to some extent, this technique requires a lot of domain knowledge. Therefore, the model can only be as good as the hand-engineered features.
  • The model can only make recommendations based on existing interests of the user. In other words, the model has limited ability to expand on the users' existing interests.

This system matches persons with similar interests and provides recommendations based on this matching. Collaborative filters do not require item metadata like its content-based counterparts.

Advantages

  • No domain knowledge necessary: We don't need domain knowledge because the embeddings are automatically learned.
  • Serendipity: The model can help users discover new interests. In isolation, the ML system may not know the user is interested in a given item, but the model might still recommend it because similar users are interested in that item.
  • Great starting point: To some extent, the system needs only the feedback matrix to train a matrix factorization model. In particular, the system doesn't need contextual features. In practice, this can be used as one of multiple candidate generators.

Disadvantages

  • Cannot handle fresh items
  • Hard to include side features for query/item

Tech Stack

Python
Pandas
Numpy
Matplotlib and Seaborn
Scipy
Sklearn

Resources

Recommendation System Blog by Google
Krish Naik Recommendation System Playlist
Introduction to Recommender System Blog
Content-Based Filtering in Machine Learning Blog

App Info

About

Repository containing basic algorithms used in Recommendation Systems: Content-Based and Collaborative Filtering Based.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published