Skip to content

Content-Based Filtering Philosophy: 'What They Watched' vs 'What It's Like'

Collaborative filtering searches for 'similar users', content-based searches for 'similar items'. This philosophical difference dictates technical decisions — cold-start advantage, filter bubble disadvantage, hybrid strategies. Concept + math + industry positioning.

Şükrü Yusuf KAYA
22 min read
Intermediate
Content-Based Filtering Felsefesi: 'Ne İzledi' Yerine 'Neye Benziyor'
🎯 Bu dersin amacı
Algoritma yazmadan önce algoritmanın felsefesini anlamak zorundayız. Content-based filtering basit görünür (cosine similarity, TF-IDF) ama doğru kullanıldığında modern sistemlerin kemik dokusunu oluşturur. Bu derste: collaborative filtering ile farkı, hangi senaryolarda content-based daha güçlü, hangilerinde zayıf, ve hybrid recommender'ın neden son 10 yılın en başarılı paradigması olduğu.

İki Felsefe — İki Soru#

Recommender systems iki büyük felsefi okuldan beslenir:

Felsefe 1: Collaborative Filtering (CF)#

"Sen kimsin, bana söyle, sana ne önereceğimi söyleyeyim."
CF kullanıcının diğer kullanıcılara benzerliğine bakar. Item'ın içeriği önemli değil — sadece etkileşim pattern'ı.
Sen → izlediğin filmler → senin gibi kullanıcılar → onların izlediği başka filmler

Felsefe 2: Content-Based Filtering (CB)#

"Neyi izledin, bana söyle, ona benzer ne önereceğimi söyleyeyim."
CB item'ların kendi içeriğine bakar. Diğer kullanıcılar önemli değil — item'ın özellikleri matter.
Sen → izlediğin filmler → o filmlerin özellikleri → benzer özellikteki başka filmler

İki Felsefenin Test Senaryosu#

Bir kullanıcı Inception (Christopher Nolan, sci-fi, mind-bending) izledi. İki sistem ne önerir?
CF cevabı: "Inception'ı izleyen diğer kullanıcılar The Matrix, Interstellar, Pulp Fiction izledi → öneri."
CB cevabı: "Inception → Nolan, sci-fi, mind-bending → Memento (Nolan), The Prestige (Nolan), Tenet (Nolan, sci-fi)."
İkisi farklı sonuçlar verir. Hangisi doğru? İkisi de. Sadece farklı amaca hizmet ederler.
İki felsefenin görsel karşılaştırması: CF user-similarity tabanlı, CB item-similarity tabanlı.
Aynı kullanıcıya farklı öneriler — felsefeden geliyor.

Detaylı Karşılaştırma — Hangisi Hangi Durumda Daha İyi?#

KriterCollaborative FilteringContent-Based Filtering
Cold-Start (User)❌ Yapamaz (geçmiş yok)⚠️ Az ile yapabilir (1-2 click)
Cold-Start (Item)❌ Yapamaz (etkileşim yok)✅ Anında yapar (sadece içerik gerek)
Serendipity (Şaşırtma)✅ Yüksek (beklenmedik bağlantılar)❌ Düşük (her zaman benzer item)
Filter BubbleOrta❌ Yüksek (echo chamber)
Veri GereksinimiÇok kullanıcı + interactionAz kullanıcı, zengin metadata
Domain ExpertiseAz gerekÇok gerek (feature engineering)
AçıklanabilirlikZor ("Bu öneri çünkü...")Kolay ("Çünkü 'sci-fi' kategorisinde")
Computational CostYüksek (NxN similarity)Orta (item embeddings cacheable)
BiasPopularity biasContent bias (yetersiz feature)
Niş İlgi Alanları❌ Zayıf (azlık)✅ Güçlü (özellikten öğrenir)
Genre Crossing✅ Çok iyi❌ Tek genre takılır

Bir Cümlede Özet#

CF: "Topluluğun bilgeliği." Çok güçlü ama yeni başlayanlar ve yeni item'lar için işsiz. CB: "Her item kendini anlatır." Cold-start'ta güçlü ama tekrara düşer.

Content-Based Filtering Hangi Domainlerde Açık Kazanır?#

1. Haber Recommender (News)#

Haberler hızla eskir — bir haber 6 saat sonra alakasız. CF için her haber soğuk — kimsenin görmediği yeni içerik. CB için zenginleştirilmiş feature (başlık, body, kategori, lokasyon, entity'ler) anında öneri yapabilir.
Örnek: Google News'in 2007-2010 mimarisi tamamen CB ağırlıklı. Sonra LMNN, GBM gibi gradient boosted CB modelleri.

2. İş İlanı Eşleşmesi (LinkedIn, kariyer.net)#

Bir iş ilanı 2-4 hafta açık. CF için 'çok az interaction' problemi. CB ise: ilan başlığı + açıklama + required skills → kullanıcının CV'siyle eşleşme.
LinkedIn'in 2-tower retrieval'ında "skills tower" hala büyük ölçüde content-based.

3. Bilimsel Makale Önerisi#

ArXiv, Semantic Scholar, ResearchGate. Yeni paper çıkar — CF için sıfır citation. CB için abstract embedding + author + venue → ilgili paper öneri.
Modern yaklaşım: Specter (AllenAI 2020) — BERT tabanlı bilimsel doküman embedding'i.

4. Niş Kategoride E-Ticaret#

Antika, vintage, rare hobiler, koleksiyon item'ları. Az kullanıcı, az interaction. CF zayıf. CB güçlü.

5. B2B / Kurumsal Yazılım Önerisi#

Salesforce AppExchange tarzı: az alıcı, çok feature. Content-based + manual curation hybrid.

Content-Based Filtering Nerede Kaybeder?#

1. Genre/Kategori Crossing#

Sevdiğin dramik filmler arasından belki ben aksiyon da seveceğim çıkarımı. CB tek kategoriye saplanır. CF "drama izleyenler bazen aksiyon da seviyor" bağlantısını yakalar.

2. Yeni Trend Yakalama#

Bir trend (örn. K-pop, dystopian young adult) viral olur. CB için trend bir feature değildir (henüz). CF "şu anda popüler olan" sinyalini doğal yakalar.

3. Çeşitlilik#

Aynı sanatçının 10 albümü, aynı yazarın 5 kitabı — CB hep aynı şeyleri önerir. CF varyasyon getirir.

4. Karmaşık Multi-Domain İlgi Alanı#

"Bu kullanıcı te machine learning kitabı, akşamları roman, hafta sonu çocuk kitabı arıyor." CB her domain için ayrı profil kursa çözer, ama default tek profil → karışıklık. CF "context-aware" multi-domain profili daha iyi yakalar.

Hybrid — Kral Çözüm#

Tek başına ne CF ne CB yeter. Hybrid recommender son 10 yılın en başarılı endüstri pattern'i:

Hybrid Tipoloji (Burke 2002 sınıflandırması)#

TipAçıklamaÖrnek
Weightedİki skorun ağırlıklı toplamı
score = 0.6·CF + 0.4·CB
SwitchingBağlama göre birini seçCold-start CB, warm CF
CascadeCB filter, CF rankCB top-1000 candidate, CF rank
Mixedİki listeyi karıştırYarısı CF, yarısı CB
Feature Combinationİki yöntemin feature'ları ortak modelLightFM, Wide&Deep
Meta-LevelCB output → CF inputCB embedding → CF model'in feature'ı

Pratik Endüstri Tercihleri#

Netflix: Hybrid Weighted + Cascade
  • Retrieval: CF (two-tower) ile candidate generation
  • Re-ranking: CB feature (genre overlap, tagged keywords) ile diversification
Spotify: Cascade + Feature Combination
  • Audio CNN (CB) embedding + CF embedding → ortak ranking model
Amazon: Switching + Cascade
  • Yeni ürün: CB (frequently bought together)
  • Olgun ürün: CF (item-item collaborative)

CB Matematiği — Önizleme#

Bir sonraki derste detaya iniyoruz ama burada ana adımları görelim:

Adım 1: Item Profilleme#

Her item için özellik vektörü kur:
Item i = [feature_1, feature_2, ..., feature_d]
Feature kaynakları:
  • Metin: TF-IDF, BM25 (Modül 4.2)
  • Kategori: One-hot, target encoding
  • Etiket: Multi-hot
  • Numerik: Normalize edilmiş

Adım 2: User Profile#

Kullanıcının pozitif etkileşim ettiği item'ların ağırlıklı ortalaması:
user_u = (1/|H_u|) Σ_{i ∈ H_u} item_i
Veya rating-weighted:
user_u = Σ r_ui · item_i / Σ r_ui

Adım 3: Scoring#

Cosine similarity ile her aday item:
Yüksek cosine = user profile ile item profile aynı yönde → öneri.

Adım 4: Top-N#

Tüm aday item'ları skorla, en yüksek N tanesini al.
Bu basit formül doğru feature engineering ile çok güçlü. Tehlike sadelikte değil, feature kalitesinde.

Bu Modülün Geri Kalanı#

  • Ders 4.2: Item profilleme — TF-IDF matematik + sklearn vs sıfırdan NumPy.
  • Ders 4.3: Sıfırdan NumPy ile content-based recommender (MovieLens-100K, ~150 satır).
  • Ders 4.4: Production gotcha'lar — feature drift, multi-modal, Türkçe NLP zorlukları.
Hadi başlayalım. ☕

Frequently Asked Questions

Pure CB nadiren — niş use case'ler (haber recommendation'da Google News'in eski versiyonu, çok küçük katalog). Endüstri standardı hybrid. AMA — CB componentleri her hybrid'in içinde — feature engineering ve cold-start handling'i CB ilkelerinden çıkar.

Yorumlar & Soru-Cevap

(0)
Yorum yazmak için giriş yap.
Yorumlar yükleniyor...

Related Content