The Offline-Online Gap: The Dacrema Crisis and Correct Protocol Selection
In 2019, Dacrema, Cremonesi, Jannach paper shook the recommender literature: 'Are neural recommenders really better? Most are beaten by even classic k-NN.' This lesson covers the reproducibility crisis, the offline-online correlation problem, and how to select the correct protocol.
Şükrü Yusuf KAYA
20 min read
Advanced🌊 Bu ders bir 'silkeleme' anlatıyor
2019 RecSys konferansında Maurizio Dacrema, Paolo Cremonesi ve Dietmar Jannach'ın 'Are We Really Making Much Progress? A Worrying Analysis of Recent Neural Recommendation Approaches' paper'ı tüm sahaya soğuk su döktü. Bu ders o tartışmayı tanıtıyor — ve sonuçlarını günümüze nasıl uygulayacağını gösteriyor.
Dacrema, Cremonesi, Jannach 2019 — "Are We Really Making Much Progress?"#
Bulguları#
Dacrema ve ekibi 2015-2018 arasında yayınlanan 18 neural recommender paper'ını seçti — top venue'lerden (KDD, SIGIR, RecSys, WSDM). Hepsini aynı kod tabanında, aynı dataset'lerde, aynı protokolde yeniden çalıştırdı.
Sonuçlar şok ediciydi:
- 18'in 11'i basit baseline'ları (well-tuned k-NN, BiasedMF) geçemedi.
- 3 paper'da reported sonuçlar reproduce edilemedi bile.
- Çoğu paper'da baseline yetersiz tune edilmişti — kasten mi yoksa dikkatsizlikten mi?
En Çarpıcı Bulgular#
| Neural Yöntem | Original Paper'da | Reproduced | Tuned k-NN | Sonuç |
|---|---|---|---|---|
| NCF (He 2017) | NDCG=0.45 | NDCG=0.41 | NDCG=0.43 | k-NN kazandı |
| Mult-VAE (Liang 2018) | NDCG=0.40 | NDCG=0.39 | NDCG=0.38 | Mult-VAE biraz iyi |
| CDAE (Wu 2016) | Recall=0.38 | Recall=0.31 | Recall=0.36 | k-NN kazandı |
| CMN (Ebesu 2018) | NDCG=0.42 | NDCG=0.32 | NDCG=0.41 | k-NN açık ara |
Tartışmanın Etkisi#
- 2019 sonrası tüm RecSys/KDD paper'ları baseline'larını sıkı tune etme zorunluluğu getirildi.
- RecBole, Cornac, Elliot gibi reproducibility framework'leri popülerleşti.
- "Strong Baseline" trendi — yeni neural model önermek için artık önce eski baseline'ları yıkman gerek.
Niçin Bu Kriz Yaşandı?#
Sebep 1: Yanlış Protokol — Cherry-Picked Splits#
Birçok paper random split + LOO with weak negatives kullanıyordu. Bu protokol şişirici — uzayı kapsamıyor.
Sebep 2: Zayıf Baseline'lar#
k-NN gibi "eski" yöntemler genelde default hyperparameter'larla çalıştırılıyordu. Halbuki:
- Doğru similarity metric seçimi (Pearson vs cosine)
- Neighborhood size tuning
- Shrinkage parametre
- Implicit vs explicit handling
Bu tuning'le k-NN +%20-40 NDCG iyileşebiliyor.
Sebep 3: Optimization Asimetri#
Yeni paper'lar kendi modelini çok tune ediyor, baseline'ları az. Bu asimetrik effort yanlış kıyaslama yaratır.
Sebep 4: Dataset Cherry-Picking#
Bir paper "Movielens'te baseline geçemedik ama Pinterest'te iyiyiz" — sadece kazandığı dataset'i raporlayabiliyor (publication bias).
Offline-Online Correlation Problemi#
Daha derin sorun: offline metric ile online metric arasında düşük korelasyon.
Spotify'ın 2020 Internal Study'si#
Spotify mühendisleri 50+ deney verisini analiz etti:
- Offline NDCG@10 değişimi vs Online CTR değişimi: Pearson r = 0.31 (zayıf).
- Offline HR@10 vs Online retention: r = 0.18 (çok zayıf).
- Offline session-level RMSE vs Online satisfaction survey: r = 0.42 (orta).
Bu bulgu dünya çapında geçerli. Bir başka çalışma (Beel et al. 2018) 60+ paper'ı analiz etti, ortalama offline-online correlation r=0.35.
Sebepler#
1. Offline'da Eksik: Position Bias Düzeltmesi
Offline metric'lerin çoğu position bias düzeltmiyor. Online'da pozisyon kritik.
2. Offline'da Eksik: Exposure Bias
Modeli aynı log üzerinde eğittin — log'un kendisi mevcut sistemin yanlısı.
3. Offline'da Eksik: User Reaction
Online'da kullanıcı şaşırabilir, sıkılabilir, abandonable. Offline metric'leri bunu yakalamaz.
4. Offline'da Eksik: Long-Term Effect
Offline metric short-term (next click). Online retention long-term (D7, D30, LTV). Aralarında causal yol var ama korelasyon zayıf.
Pratik Sonuçlar — Bu Krizden Ne Öğrendik?#
1. Strong Baseline Önce, Sonra Neural#
Yeni bir öneri sistemi kurarken sırası:
- Popularity baseline (1 saat)
- k-NN CF, well-tuned (1 gün)
- BiasedMF / Implicit ALS, well-tuned (2-3 gün)
- BPR-MF, well-tuned (1 gün)
- Sonra neural denemeler
Eğer 1-4 hepsi tutulmuyorsa, neural model garantili kazanmaz. Çoğu pratisyen bu sırayı atlar — kendi başına vurur.
2. Birden Çok Dataset'te Test Et#
Eğer modelin sadece MovieLens'te iyi çalışıyorsa — şüphe et. Movielens özel: explicit rating, dense, US-merkezli. Reality:
| Dataset | Domain | Density | Char |
|---|---|---|---|
| MovieLens-1M | Film | %4.5 | Explicit |
| Amazon Beauty | E-ticaret | %0.05 | Sparse, implicit |
| İçerik | %0.1 | Sparse | |
| Yelp | Lokasyon | %0.07 | Geo-aware |
Bir model bu çeşit dataset'lerde tutarlı iyi ise — gerçekten "iyi". Sadece birinde çalışıyor — overfitting var.
3. Doğru Protokol Belirle#
Production realism için:
- Time split (stratified)
- Sampled negatives ile evaluation (99 negatif + 1 pozitif)
- Bidirectional negatives (popular + random karışık)
- Cold-start ayrı raporlanır
4. Online Test Her Zaman Final Hakim#
Offline iyileşme → A/B test → conclude. Offline iyileşmeyi production'a almadan önce mutlaka online test.
5. Reproducibility Framework Kullan#
- RecBole (recbole.io) — 70+ algorithm, 28 dataset, standard protocol.
- Cornac (cornac.preferred.ai) — multimodal odaklı.
- Elliot (recsys-elliot.com) — extensive protocol options.
Bu framework'leri kullanırsan baseline asimetrisi probleminden kurtulursun.
🎯 Bir mühendis olarak ne yapmalısın
Bir paper'ı okurken şüpheli ol. 'NDCG +%5 SOTA' gördüğünde sor: (1) Hangi protocol? (2) Hangi baseline'lar tune edilmiş? (3) Kaç random seed ile çalışılmış? (4) Open code var mı? (5) Birden çok dataset'te aynı sonuç mu? Bu 5 soruya 'evet' diyemiyorsan, o paper'ın iddiasını production'a almak için yetersiz. Hala iyi bir fikir olabilir — sadece kanıt yetersiz. Sen kendi A/B test'inle doğrula.
🎉 Modül 3 Tamamlandı#
5 ders bitti:
- 3.1: 8 doğruluk metriği matematiği + NumPy
- 3.2: Beyond-accuracy (coverage, diversity, novelty, serendipity)
- 3.3: 5 split stratejisi
- 3.4: A/B test, interleaving, CUPED
- 3.5: Dacrema krizi ve correlation problemi
Artık bir mühendis olarak sayılara doğru bakan, paper'ları sorgulayan, protokol seçen biri oldun.
Bir sonraki modülde Part II — Klasik Yöntemler'e geçiyoruz: Content-based filtering, k-NN CF, Matrix Factorization, BPR. Sıfırdan NumPy ile inşa edeceğimiz, sonra benchmark'layacağımız 7 algorithm seni bekliyor. ☕
Frequently Asked Questions
Hayır — sadece 'kasıtlı' tune edilmesi gerekiyor. 2020 sonrası neural recommender (LightGCN, SASRec, BERT4Rec) sıkı protokol altında klasiklerden öne geçti. Ama 'magic black box olma' süresi bitti.
Yorumlar & Soru-Cevap
(0)Yorum yazmak için giriş yap.
Yorumlar yükleniyor...
Related Content
Module 0: Course Framework & Workshop Setup
Why Do Recommender Systems Matter? Birth, Present, and Future of a Discipline
Start LearningModule 0: Course Framework & Workshop Setup
Who Is a Recommender Engineer? Skill Atlas and Junior → Staff Career Map
Start LearningModule 0: Course Framework & Workshop Setup