Cara Kerja Recommendation System: Dari Netflix sampai Tokopedia
Pernah nonton satu series di Netflix, tiba-tiba muncul rekomendasi series serupa yang ternyata memang kamu suka? Atau belanja di Tokopedia, lalu muncul “Orang lain juga membeli” barang yang kebetulan kamu butuhkan? Itulah keajaiban Recommendation System! 🎯
Apa Itu Recommendation System?
Recommendation System (atau recommender system) adalah algoritma AI yang memprediksi preferensi atau rating yang mungkin diberikan user terhadap suatu item — lalu merekomendasikan item yang paling relevan.
Contoh nyata:
- 🎬 Netflix: “Because you watched Stranger Things…”
- 🛒 Amazon: “Customers who bought this item also bought…”
- 🎵 Spotify: Discover Weekly playlist
- 📺 YouTube: Video recommendations di homepage
- 🛍️ Shopee: Produk serupa yang mungkin kamu suka
Kenapa Recommendation System Penting?
📈 Dampak Bisnis
| Platform | Dampak Recommendation System |
|---|---|
| Netflix | 80% konten yang ditonton dari rekomendasi |
| Amazon | 35% penjualan dari “Customers also bought” |
| Spotify | Discover Weekly dibuat oleh 40 juta user |
| YouTube | 70% watch time dari recommended videos |
🎯 Manfaat untuk User
- Discovery: Menemukan konten/produk baru yang tidak tahu ada
- Personalization: Pengalaman yang disesuaikan dengan selera
- Time-saving: Tidak perlu browsing ribuan item
- Serendipity: Surprise finding yang menyenangkan
Tipe-Tipe Recommendation System
1. Content-Based Filtering
Merekomendasikan item yang mirip dengan item yang user sukai sebelumnya.
Cara kerja:
- Analisis atribut item yang user suka
- Cari item lain dengan atribut serupa
- Rekomendasikan yang paling mirip
Contoh:
User suka film “The Dark Knight” (genre: action, superhero, crime).
→ Rekomendasi: “Iron Man” (action, superhero), “Joker” (crime, DC).
Kelebihan:
- ✅ Tidak butuh data user lain
- ✅ Bisa rekomendasikan item baru (cold start)
- ✅ Transparan: user tahu kenapa direkomendasikan
Kekurangan:
- ❌ Overspecialization (filter bubble)
- ❌ Tidak bisa discover item dari genre berbeda
- ❌ Butuh rich metadata untuk setiap item
2. Collaborative Filtering (CF)
Merekomendasikan berdasarkan kesamaan perilaku antar user.
Prinsip: “Kalau user A dan B punya selera mirip di masa lalu, mereka akan punya selera mirip di masa depan.”
User-Based Collaborative Filtering
Cari user yang mirip dengan kamu, lalu rekomendasikan apa yang mereka suka.
User A: [⭐⭐⭐⭐⭐] The Matrix
[⭐⭐⭐⭐⭐] Inception
[⭐⭐⭐⭐⭐] Interstellar
[?] Tenet ← Belum nonton
User B: [⭐⭐⭐⭐⭐] The Matrix
[⭐⭐⭐⭐⭐] Inception
[⭐⭐⭐⭐⭐] Interstellar
[⭐⭐⭐⭐⭐] Tenet ← Sudah nonton, suka!
→ Rekomendasi untuk User A: Tenet (karena User B mirip dan suka)
Item-Based Collaborative Filtering
Cari item yang mirip (berdasarkan rating dari banyak user), lalu rekomendasikan.
User yang suka "The Matrix" juga suka:
- Inception (90%)
- Blade Runner (85%)
- Ghost in the Shell (80%)
→ Kalau user suka The Matrix, rekomendasikan Inception
Kelebihan CF:
- ✅ Bisa discover item dari genre/kategori berbeda
- ✅ Tidak perlu analisis konten item
- ✅ Efektif untuk komunitas besar
Kekurangan CF:
- ❌ Cold start problem: butuh banyak data rating
- ❌ Sparse matrix: kebanyakan user hanya rate sedikit item
- ❌ Scalability: makin banyak user, makin berat komputasi
3. Hybrid Recommendation
Kombinasi Content-Based + Collaborative Filtering untuk mengatasi kekurangan masing-masing.
Contoh: Netflix menggunakan hybrid approach:
- CF untuk “Trending now” dan “Because you watched”
- Content-based untuk genre matching
- Knowledge-based untuk filter (tahun rilis, rating, dll)
Keunggulan:
- ✅ Mengatasi cold start problem
- ✅ Lebih akurat dari single approach
- ✅ Bisa kombinasi berbagai signals
Algoritma Populer dalam Recommendation System
1. Matrix Factorization (SVD, ALS)
Mengubah user-item matrix menjadi representasi low-dimensional (latent factors).
Contoh: Netflix Prize competition (2009) dimenangkan dengan algoritma matrix factorization.
Tools:
- Surprise library (Python)
- Spark MLlib ALS
2. Deep Learning untuk Recommendation
Neural networks untuk capture non-linear relationships.
Arsitektur populer:
- Neural Collaborative Filtering (NCF): Kombinasi deep learning + CF
- Wide & Deep (Google): Kombinasi memorization (wide) + generalization (deep)
- Two-Tower Models: Separate encoders untuk user dan item
Platform yang pakai deep learning:
- YouTube (Deep Neural Networks for YouTube Recommendations)
- Spotify (Convolutional Neural Networks untuk audio features)
3. Graph-Based Recommendation
Menggunakan graph structure untuk menemukan hubungan.
Contoh:
- Social network: “Temanmu suka ini…”
- Knowledge graph: Hubungan antar entitas (actor, director, genre)
Tools: Graph Neural Networks (GNN), Node2Vec
Contoh Kasus: Cara Kerja Netflix
Netflix menggunakan hybrid approach yang kompleks:
1. Data yang Dikumpulkan
- Explicit feedback: Rating yang diberikan user (⭐)
- Implicit feedback: Watch history, pause, rewind, time spent
- Context: Waktu nonton, device, location
- Item metadata: Genre, cast, director, year
2. Algoritma Layer
| Layer | Fungsi |
|---|---|
| Candidate Generation | Pilih ~1000 video dari katalog jutaan |
| Ranking | Urutkan berdasarkan relevance score |
| Re-ranking | Adjust berdasarkan diversity, freshness, etc. |
3. Personalization
Setiap user melihat homepage yang berbeda:
- Row 1: “Continue watching”
- Row 2: “Because you watched [X]”
- Row 3: “New releases”
- Row 4: “Trending in your country”
- Row 5: “Top 10 in Indonesia today”
4. A/B Testing
Netflix terkenal dengan rigorous A/B testing:
- Setiap perubahan di-tested dengan sebagian user
- Metric: engagement, retention, satisfaction
Membangun Recommendation System Sederhana
Tools untuk Pemula
No-Code:
- Amazon Personalize: Fully managed recommendation service
- Google Recommendations AI: Cloud-based solution
- Recombee: API-based recommendation engine
Open Source Libraries (Python):
# Surprise library untuk collaborative filtering
from surprise import SVD, Dataset, Reader
from surprise.model_selection import cross_validate
# Load data
data = Dataset.load_builtin('ml-100k')
# Train SVD model
algo = SVD()
cross_validate(algo, data, measures=['RMSE', 'MAE'], cv=5)
Deep Learning:
# TensorFlow Recommenders (TFRS)
import tensorflow_recommenders as tfrs
# Two-tower model
model = tfrs.models.Retrieval(
user_model=user_embeddings,
item_model=movie_embeddings,
task=tfrs.tasks.Retrieval(metrics=metrics)
)
Evaluasi Recommendation System
Metrics Offline
- RMSE/MAE: Root Mean Square Error (prediksi rating)
- Precision@K: Berapa rekomendasi yang relevan di top-K
- Recall@K: Berapa item relevan yang berhasil direkomendasikan
- NDCG: Normalized Discounted Cumulative Gain (ranking quality)
Metrics Online (A/B Testing)
- Click-Through Rate (CTR): Persen user yang klik rekomendasi
- Conversion Rate: Persen user yang beli/nonton
- Dwell Time: Berapa lama user engage dengan rekomendasi
- Diversity: Apakah rekomendasi bervariasi?
- Coverage: Berapa % katalog yang direkomendasikan?
Tantangan dalam Recommendation System
⚠️ Cold Start Problem
- New user: Belum ada data preferensi
- Solusi: Onboarding survey, content-based sementara
- New item: Belum ada rating
- Solusi: Content-based, promotional placement
⚠️ Filter Bubble
User hanya direkomendasikan item serupa, kehilangan diversity.
Solusi:
- Exploration vs Exploitation balance
- Serendipity injection (rekomendasi random kadang-kadang)
- Explicit diversity constraints
⚠️ Scalability
Makin banyak user dan item, makin berat komputasi.
Solusi:
- Approximate nearest neighbor (ANN) search
- Caching popular recommendations
- Distributed computing (Spark, Hadoop)
⚠️ Bias dan Fairness
Popularity bias: item populer makin direkomendasikan, makin populer.
Solusi:
- Re-ranking dengan fairness constraints
- Exposure fairness untuk item niche
Masa Depan Recommendation System
🔮 Context-Aware Recommendations
Menggunakan konteks real-time:
- Waktu (pagi/pagi/malam)
- Lokasi (di rumah/kantor/jalan)
- Device (mobile vs TV)
- Mood (dari wearable data)
🔮 Conversational Recommendations
Chatbot yang bisa dialog untuk mengerti preferensi:
- “Mau nonton film action atau komedi?”
- “Budget berapa untuk kado ini?”
🔮 Multi-Modal Recommendations
Menggunakan berbagai tipe data:
- Visual similarity (fashion recommendation)
- Audio features (music recommendation)
- Text analysis (review sentiment)
🔮 Explainable AI
User bisa tahu kenapa direkomendasikan:
- “Direkomendasikan karena kamu suka Inception”
- “Populer di kalangan penggemar sci-fi”
Kesimpulan
Recommendation system adalah salah satu aplikasi AI yang paling sukses dan sering kita gunakan tanpa sadar. Dari Netflix yang tahu film favoritmu sampai Shopee yang tahu barang yang kamu butuhkan — semua ini hasil dari algoritma canggih yang menganalisis perilaku jutaan user.
Key takeaways:
- Content-Based: Mirip dengan yang sudah kamu suka
- Collaborative Filtering: Orang serupa suka apa
- Hybrid: Kombinasi terbaik dari keduanya
- Evaluasi: Perhatikan accuracy, diversity, dan business metrics
Next step: Kalau tertarik belajar lebih dalam, coba implementasi simple recommendation system dengan Python dan library Surprise. Dataset MovieLens 100k adalah starting point yang perfect!
Pernah dapat rekomendasi yang super akurat atau super ngawur? Share pengalamanmu!