1. Definition
Novelty measures how unexpected or unfamiliar the recommended items are to the user.
- A system that only recommends popular items (e.g., “Avengers: Endgame”) may be accurate but not novel.
- A system that recommends less popular or less obvious items (e.g., an indie film) increases novelty.
Novelty = how much the system helps users discover things they didn’t already know.
2. Intuition
- Low Novelty: Recommending Starbucks coffee to a coffee lover (they already know it).
- High Novelty: Recommending a niche local coffee roaster they’ve never heard of.
3. How It’s Measured
One common measure:
Self-Information of Popularity
$Novelty(i) = – \log_2 \; P(i)$
- $P(i)$ = probability of item $i$ being chosen (popularity, e.g., frequency in training data).
- Rare (less popular) items → higher novelty.
For a user’s recommendation list:
$Novelty@K = \frac{1}{K} \sum_{i=1}^K -\log_2 P(i)$
4. Example
Catalog = 1000 movies
- Movie A: very popular (chosen by 50% of users) → Novelty = –log₂(0.5) = 1
- Movie B: niche (chosen by 1% of users) → Novelty = –log₂(0.01) ≈ 6.64
Movie B has higher novelty.
5. Why It Matters
- User Experience: Increases chance of “pleasant surprises.”
- Business: Helps promote long-tail items (not just blockbusters).
- Exploration vs. Exploitation: Balances recommending what users like vs. exposing them to new options.
6. Limitations
- High novelty ≠ good recommendation.
- Recommending obscure but irrelevant items frustrates users.
- Must balance novelty with accuracy and relevance.
7. Python Example
import numpy as np
def novelty_at_k(recommendations, item_popularity, k=5):
"""
recommendations: list of recommended item IDs
item_popularity: dict mapping item ID -> probability of being chosen
"""
top_k = recommendations[:k]
scores = [-np.log2(item_popularity[i]) for i in top_k]
return np.mean(scores)
# Example popularity distribution
item_popularity = {1: 0.5, 2: 0.1, 3: 0.01, 4: 0.2, 5: 0.19}
recommendations = [1, 2, 3, 4, 5]
print("Novelty@5:", novelty_at_k(recommendations, item_popularity, k=5))
Summary
- Novelty = recommending items that are less popular and more surprising to the user.
- Measured via item popularity (self-information).
- High novelty = long-tail recommendations.
- Needs balance with accuracy → novelty without relevance is not useful.
