Collaborative Filtering (finding similar users/items based on past behavior), Content-Based Filtering (recommending items with similar features to what a user liked), and Hybrid Systems (combining both for better results). Other advanced types include Knowledge-Based, Deep Learning, and Demographic systems, which leverage different data points like item attributes, complex patterns, or user demographics to provide personalized suggestions.
Collaborative Filtering (CF):- Concept: "People who liked X also liked Y." It finds patterns in user-item interactions (ratings, purchases).
- Sub-types: User-based (If User A buys Item A, and a neighboring User B (who is found to be highly similar to User A based on their shared past interactions like rating or purchases) also buy Item B but User A has not yet bought it, then the system should recommend Item B to User A.) and Item-based (If a user likes item A, and many users who liked item A also liked item B, then the system should recommend item B to that user.).
- Techniques: Matrix Factorization (like SVD), Nearest Neighbors.
- Concept: Recommends items similar to those a user has liked before, based on item features (e.g., movie genre, director, actors). If a user liked item A, they will also like item B if item B shares many of the same features as item A.
- How it works: Builds a user profile from features of liked items, then matches it to other items based on similarity. The features can also include those of the user like age and gender.
- Concept: Merges CF and Content-Based methods, or other techniques, to overcome individual limitations (like the cold-start problem).
LightFM is a Python implementation of a number of popular recommendation algorithms for both implicit and explicit feedback.
LightFM can solve cold-start problem: For a new user (cold-start user), LightFM uses their provided features (e.g., "age: 25, gender: female") to do content-based filtering to recommend items that share similar features with the user's profile. As the cold-start user interacts with items, the model gradually updates their information, shifting from pure content-based to a more personalized collaborative prediction.