Issue#3

Issue#3
Photo by Tech Daily / Unsplash

Hey all,

finishing off my group project, building and testing a real-world recommender system, I took a deep dive into various recommendation algorithms.

Here are some insights :

Recommendation systems rely on a great variety of different technologies. On a superficial level, you differentiate two superficial groups.

  1. Content-based systems use the item’s properties to make recommendations. If you happen to watch many western movies, a movie recommendation service will recommend movies that belong to the “western” genre.
  2. Collaborative filtering systems recommend based on the similarity between users/items. These systems will recommend items that are preferred by users with similar behaviour. For example, if user A has watched star-wars and western movies and another user B has watched western, star-wars is likely to be suggested to user B.

Content-based systems suggest items to users based on the similarity between items and the user's preferences. It creates a profile for each item by analyzing its content (e.g. features, keywords, genre, etc.) and for each user by storing their preferences (e.g. liked items, ratings, etc.). The system then recommends items to users based on the similarity between the items' profiles and the user's profile. One possible way to measure similarity between items/profile vectors is cosine similarity.

The content-based filtering approach is useful when there is rich information available about the items and their attributes.
Few data are needed on other users to make recommendations, which is an important advantage of these systems. Thus they are able to recommend to the user as soon as there are some ratings for that user. Cold start or missing ratings are less of a problem here.

Collaborative Filtering Systems are based on the idea that similar users have similar preferences and that these preferences can be used to make recommendations to other users.

The utility matrix is a central component of collaborative filtering as represents the preferences of users for items. Each row in the matrix represents a user, and each column represents an item. The values in the matrix represent the ratings or preferences of users for the items.

For example, if a user gives a 5-star rating to a movie, the corresponding entry in the matrix would be 5. If a user has not rated an item, the entry in the matrix would be a missing value or a zero.

The process of collaborative filtering typically involves the following steps:

  1. Data collection: Collect data on the preferences of users for items.
  2. Similarity calculation: Calculate the similarity between users or items based on the values in the utility matrix. This can be done using various similarity measures such as cosine similarity or Pearson correlation.
  3. Prediction: Use the similarity scores to make predictions for items that have not been rated by the user. This can be done using methods such as k-nearest neighbours, matrix factorization, or singular value decomposition.
  4. Recommendation: Recommend the items that have the highest predicted ratings to the user.

The collaborative filtering approach is useful when there is a large amount of data available on the preferences of users for items, as it leverages this information to make recommendations to other users. However, it can be limited in situations where there is little data available on the preferences of users.


Random stuff of the week:

🤹🏻 Juggling: How do you manage to prepare for approaching exams, working as a working student while taking quality time with your loved ones and not neglecting physical activity?
You learn to juggle these things! This is easier said than done… anyways last week I had been learning how to juggle the 441-Skill aka the half box. I’m hoping this might benefit me in some way navigating the busy weeks to come 😄

Have an awesome week everyone!
Florian