Content-Based Recommendation
Content-based recommendation scores items from their attributes: text, tags, categories, prices, image embeddings, or metadata. It is useful when collaborative filtering is sparse, especially for cold-start items that have content but no interactions.
Profiles from item features
If is an item feature vector and are items the user liked, a simple user profile is
with score
The feature vector might be TF-IDF, a learned embedding, or structured metadata.
Worked example
If a user liked items with feature vectors and , the profile is their average:
| Item | Feature vector | Already liked? | Cosine to profile | Interpretation |
|---|---|---|---|---|
| 0 | yes | filtered | Used to build the profile. | |
| 1 | yes | filtered | Used to build the profile. | |
| 2 | no | 0.289 | Shares one profile feature. | |
| 3 | no | 0.289 | Shares a different profile feature. |
Items 2 and 3 tie because each overlaps with half of the learned profile. Hybrid recommenders combine this with behavioral signals when both are available.
Caveats
Content recommenders can overspecialize because they look for more of what the profile already contains. Feature quality matters: weak tags or biased embeddings produce weak recommendations. Content similarity also does not prove user intent; final systems still need ranking, diversity, and online validation.
References
- scikit-learn documentation: cosine_similarity
- Adomavicius and Tuzhilin, 2005, Toward the Next Generation of Recommender Systems
Nav