Skip to content

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
k-NN Collaborative Filtering: User-User vs Item-Item — Hangisi Ne Zaman?
🧬 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-User CF Matematiği#

Adım 1: User-User Similarity Matrix#

Tüm user çiftleri için benzerlik hesapla:
S_uv = sim(user_u, user_v)
S
matrisi (N × N) — burada N user sayısı.

Adım 2: Tahmin#

User u'nun item i için tahmini:
  • \bar{r}_u
    : user u'nun ortalama rating'i (bias düzeltmesi).
  • N_k(u)
    : u'ya en yakın k user.
  • r_{vi}
    : user v'nin item i için verdiği rating.
Adım adım:
  1. User u'ya en benzer k user'ı bul (
    N_k(u)
    ).
  2. Her birinin item i için rating'ini al.
  3. Rating'lerden ortalamalarını çıkar (centered).
  4. Similarity ağırlıklı ortalama hesapla.
  5. 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-Item CF Matematiği#

Adım 1: Item-Item Similarity Matrix#

S_ij = sim(item_i, item_j)
S
matrisi (M × M) — burada M item sayısı.

Adım 2: Tahmin#

User u'nun item i için tahmini:
  • \bar{r}_i
    : item i'nin ortalama rating'i.
  • N_k(i)
    : i'ye en benzer k item.
  • R_u
    : user u'nun rating verdiği item set'i.
Adım adım:
  1. Item i'ye en benzer k item bul (
    N_k(i)
    ).
  2. User u'nun bu item'lara verdiği rating'leri al.
  3. Item ortalamalarından çıkar.
  4. Similarity ağırlıklı ortalama.
  5. Item i'nin ortalamasıyla topla.

User-User vs Item-Item — Kim Hangi Durumda Kazanır?#

KriterUser-UserItem-ItemAçıklama
LatencyYavaş (her user için yeni hesap)Hızlı (item sim matrix önceden hesaplanır)Item ✅
MemoryO(N²)O(M²)Genelde M << N → Item ✅
StabilityUser profilleri değişkenItem profilleri stabilItem ✅
PersonalizationDaha kişiselDaha "trend"User ✅
Cold-Start UserİmkansızBirkaç click yeterItem ✅
Explainability"Sana benzer X kullanıcılar şunu beğendi""Bu izlediğin filme benzer"İkisi de iyi
DiversityDaha yüksekDaha düşük (echo chamber)User ✅

Niçin Endüstri Item-Item'a Kaydı?#

Amazon 2003'te
User-Item-to-Item Collaborative Filtering
paper'ı item-item CF'in production avantajlarını ispat etti:
  1. Hızlı serving: Item similarity matrix offline'da hesaplanır, Redis'e konur. Online'da O(K) lookup.
  2. Stable cache: Item benzerliği günde 1-2 değişir. User benzerliği saatte değişir.
  3. Ö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.
İki yaklaşımın matrix-level karşılaştırması: aynı veri, farklı geometri.
User-user (N×N similarity) vs Item-Item (M×M similarity) — endüstride genelde M << N.

"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ÖrnekEğitimBellekEsneklik
Memory-Basedk-NN CFHızlı (similarity hesabı)Yüksek (matrix saklar)Sınırlı
Model-BasedMatrix FactorizationYavaş (gradient descent)Düşük (sadece factor'lar)Yüksek

Memory-Based'in Avantajı#

  1. Hızlı debug: "Niye bu öneri?" → similarity matrix'e bak.
  2. Hızlı bootstrap: 1-2 saatte production'a alabilirsin.
  3. Açıklanabilir: "Sana en yakın 10 kullanıcı şunlar."

Dezavantajı#

  1. Bellek tavanı: 100M item × 100M item similarity matrix imkansız.
  2. Sparsity: Az rating olan user/item için zayıf.
  3. 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