content-based filtering
**Content-based filtering** recommends **items similar to what a user previously liked** — analyzing item features (genre, keywords, attributes) to suggest similar items, enabling personalized recommendations even for new items without user interaction history.
**What Is Content-Based Filtering?**
- **Definition**: Recommend items similar to user's past preferences.
- **Method**: Match item features to user profile.
- **Data**: Item attributes, user interaction history.
- **Principle**: If you liked X, you'll like similar items.
**How It Works**
**1. Item Representation**: Extract features (genre, keywords, actors, ingredients, specifications).
**2. User Profile**: Build profile from items user liked (aggregate features).
**3. Similarity Matching**: Find items similar to user profile.
**4. Ranking**: Score and rank candidate items.
**Feature Types**
**Structured**: Genre, price, size, color, brand, category.
**Text**: Descriptions, reviews, tags, keywords.
**Audio/Visual**: Image features, audio features, video content.
**Metadata**: Author, director, artist, publisher, release date.
**Similarity Measures**
**Cosine Similarity**: Angle between feature vectors.
**Euclidean Distance**: Geometric distance in feature space.
**Jaccard Similarity**: Overlap of categorical features.
**TF-IDF**: Text similarity based on term importance.
**Advantages**
- **No Cold Start for Items**: New items can be recommended immediately.
- **Transparency**: Explainable ("Recommended because you liked X").
- **User Independence**: Doesn't need other users' data.
- **Niche Items**: Can recommend unpopular items if features match.
**Limitations**
**Limited Diversity**: Only recommends similar items (filter bubble).
**Feature Engineering**: Requires good item features.
**New User Cold Start**: Still need user history.
**Overspecialization**: Can't discover different types of items.
**No Quality Signal**: Doesn't know if similar items are actually good.
**Applications**
- **News**: Recommend articles similar to what you read.
- **Movies**: "If you liked this movie, try these similar films."
- **Music**: Recommend songs with similar audio features.
- **E-Commerce**: Products with similar specifications.
- **Jobs**: Positions matching your skills and experience.
**Tools**: scikit-learn (TF-IDF, cosine similarity), Gensim (doc2vec), sentence-transformers (embeddings).