İçeriğe geç

Offline-Online Boşluğu: Dacrema Krizi ve Doğru Protokol Seçimi

2019'da Dacrema, Cremonesi, Jannach paper'ı recommender literatürünü silkeledi: 'Neural recommender'lar gerçekten iyi mi? Çoğunu klasik k-NN bile geçiyor.' Bu derste reproducibility krizi, offline-online korelasyon problemi ve nasıl doğru protokol seçileceği.

Şükrü Yusuf KAYA
20 dakikalık okuma
İleri
Offline-Online Boşluğu: Dacrema Krizi ve Doğru Protokol Seçimi
🌊 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öntemOriginal Paper'daReproducedTuned k-NNSonuç
NCF (He 2017)NDCG=0.45NDCG=0.41NDCG=0.43k-NN kazandı
Mult-VAE (Liang 2018)NDCG=0.40NDCG=0.39NDCG=0.38Mult-VAE biraz iyi
CDAE (Wu 2016)Recall=0.38Recall=0.31Recall=0.36k-NN kazandı
CMN (Ebesu 2018)NDCG=0.42NDCG=0.32NDCG=0.41k-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ı:
  1. Popularity baseline (1 saat)
  2. k-NN CF, well-tuned (1 gün)
  3. BiasedMF / Implicit ALS, well-tuned (2-3 gün)
  4. BPR-MF, well-tuned (1 gün)
  5. 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:
DatasetDomainDensityChar
MovieLens-1MFilm%4.5Explicit
Amazon BeautyE-ticaret%0.05Sparse, implicit
Pinterestİçerik%0.1Sparse
YelpLokasyon%0.07Geo-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. ☕

Sık Sorulan Sorular

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...

İlgili İçerikler