k-NN Collaborative Filtering: User-User vs Item-Item — When to Use Which?
Recommender's birth paper, GroupLens 1994. After 30 years, still the baseline of every recommender system. This lesson covers philosophical differences between user-user and item-item CF, mathematical formulation of each, and when each wins.
Şükrü Yusuf KAYA
22 min read
Intermediate🧬 Bu dersin amacı
Recommender sistemlerin disiplinini başlatan iki paper var: GroupLens (1994) — user-user CF; Amazon (2003) — item-item CF. Bu iki paper 30 yıl sonra hala şirketlerin baseline'ını oluşturuyor. Bu derste felsefi farkları, matematiksel tanımları ve hangi senaryoda kimin kazandığını öğreniyoruz.
İki Yaklaşım — Tek Felsefe#
Collaborative filtering'in temel fikri: "Sen ve benim aynı kararı verdiğimizi gördüm, sıradakinde de aynı kararı vereceğiz."
Bu fikri iki yönde uygulayabilirsin:
User-User CF#
"Bana benzer kullanıcılar bul. Onların beğendiklerini bana öner."
Sen → senin benzerlerin → onların beğendiği item'lar
Item-Item CF#
"Beğendiğim item'lara benzer item'lar bul."
Sen beğendiğin item → item'a benzer diğer item'lar
İki yaklaşım matematiksel olarak ikiz — aynı dataset'i farklı yönden okur. Ama production'da çok farklı davranırlar.
- : user u'nun ortalama rating'i (bias düzeltmesi).
\bar{r}_u - : u'ya en yakın k user.
N_k(u) - : user v'nin item i için verdiği rating.
r_{vi}
Adım adım:
- User u'ya en benzer k user'ı bul ().
N_k(u) - Her birinin item i için rating'ini al.
- Rating'lerden ortalamalarını çıkar (centered).
- Similarity ağırlıklı ortalama hesapla.
- User u'nun ortalamasıyla topla.
Niçin "Centered"?#
Bazı user'lar her zaman yüksek rating verir (cömert), bazıları düşük. Eğer ham rating ortalarsak bias'lı çıkar. Centered version "user kendi ortalamasından ne kadar saptı?" sorusuna bakar.
- : item i'nin ortalama rating'i.
\bar{r}_i - : i'ye en benzer k item.
N_k(i) - : user u'nun rating verdiği item set'i.
R_u
Adım adım:
- Item i'ye en benzer k item bul ().
N_k(i) - User u'nun bu item'lara verdiği rating'leri al.
- Item ortalamalarından çıkar.
- Similarity ağırlıklı ortalama.
- Item i'nin ortalamasıyla topla.
User-User vs Item-Item — Kim Hangi Durumda Kazanır?#
| Kriter | User-User | Item-Item | Açıklama |
|---|---|---|---|
| Latency | Yavaş (her user için yeni hesap) | Hızlı (item sim matrix önceden hesaplanır) | Item ✅ |
| Memory | O(N²) | O(M²) | Genelde M << N → Item ✅ |
| Stability | User profilleri değişken | Item profilleri stabil | Item ✅ |
| Personalization | Daha kişisel | Daha "trend" | User ✅ |
| Cold-Start User | İmkansız | Birkaç click yeter | Item ✅ |
| Explainability | "Sana benzer X kullanıcılar şunu beğendi" | "Bu izlediğin filme benzer" | İkisi de iyi |
| Diversity | Daha yüksek | Daha düşük (echo chamber) | User ✅ |
Niçin Endüstri Item-Item'a Kaydı?#
Amazon 2003'te paper'ı item-item CF'in production avantajlarını ispat etti:
User-Item-to-Item Collaborative Filtering- Hızlı serving: Item similarity matrix offline'da hesaplanır, Redis'e konur. Online'da O(K) lookup.
- Stable cache: Item benzerliği günde 1-2 değişir. User benzerliği saatte değişir.
- Ölçek: Amazon'da N (user) ≫ M (item). User-user impossible olur.
Sonuç: Modern endüstri standardı item-item CF'tir. User-user akademik veya küçük dataset'lerde kalır.
"Memory-Based" Ne Demek?#
k-NN CF "memory-based" çünkü tüm rating matrix'i bellekte tutar. Modele "parametre" yok — sadece veri ve similarity matrix.
Memory-Based vs Model-Based#
| Yaklaşım | Örnek | Eğitim | Bellek | Esneklik |
|---|---|---|---|---|
| Memory-Based | k-NN CF | Hızlı (similarity hesabı) | Yüksek (matrix saklar) | Sınırlı |
| Model-Based | Matrix Factorization | Yavaş (gradient descent) | Düşük (sadece factor'lar) | Yüksek |
Memory-Based'in Avantajı#
- Hızlı debug: "Niye bu öneri?" → similarity matrix'e bak.
- Hızlı bootstrap: 1-2 saatte production'a alabilirsin.
- Açıklanabilir: "Sana en yakın 10 kullanıcı şunlar."
Dezavantajı#
- Bellek tavanı: 100M item × 100M item similarity matrix imkansız.
- Sparsity: Az rating olan user/item için zayıf.
- Cold-start: Hiç rating yoksa benzerlik hesaplanamaz.
Bu yüzden modern endüstri "memory-based" baseline + "model-based" main system + "neural" enhancement → 3-katmanlı pipeline kullanır.
Tarihsel Önem#
1994 — GroupLens#
Resnick, Iacovou, Suchak, Bergstrom, Riedl. "GroupLens: An Open Architecture for Collaborative Filtering of Netnews", ACM CSCW.
İlk modern collaborative filtering sistemi. Usenet news için. User-user yaklaşımı. Pearson correlation.
1998 — Amazon Patenti#
Amazon "item-to-item" CF'i patentleyip "Customers who bought…" feature'ı ile bilinen hale getirdi. Bu endüstri devrimi — recommender'lar mainstream oldu.
2003 — Amazon IEEE Paper#
Linden, Smith, York. "Amazon.com Recommendations: Item-to-Item Collaborative Filtering", IEEE Internet Computing.
İlk public mühendislik paper'ı: Amazon ölçeğinde nasıl çalıştığı. Offline batch precomputation. Sparse matrix optimizasyon. Bu paper hala recommender mühendisleri için zorunlu okuma.
2009 — Netflix Prize sonu#
Netflix Prize'da BellKor's ekibi item-item CF'i model-based ile blend ederek kazandı. Ama bu bir geçiş döneminin sonuydu.
2010-2020 — Deep Learning ile Yavaş Yerini Bıraktı#
Item-item CF artık baseline. Production'da hala kullanılır ama "primary recommender" değil.
💭 Bir alıntı
"Item-item CF, recommender sistemlerinin Newton mekaniğidir. Yeni kuantum mekanik gibi modeller geldi (matrix factorization, deep learning), ama orijinal teori bir baseline olarak hala dayanıyor — çünkü doğal." — Yehuda Koren (Netflix Prize kazananı), 2019 RecSys keynote.
Sıradakİ Ders#
Bir sonraki derste (5.2) — similarity metric'leri. Pearson, cosine, adjusted cosine, Jaccard. Her birinin matematiksel formülü, ne zaman hangisi kazanır, ve NumPy ile sıfırdan hesaplama. Bu metric'ler tüm CF algoritmalarının temelidir — sonraki tüm modüllerde görünür.
Frequently Asked Questions
Hayır — niş use case'lerde hala kullanılır. (1) Küçük platformlarda (<10K user) çok güçlü. (2) Social network'lerde (LinkedIn 'people you may know') doğal — sosyal grafın kendisi. (3) Group recommendation'da (Netflix family profile) yararlı. Ama 'main recommender' rolünden çekildi.
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