Collaborative Filtering (İşbirlikçi Filtreleme)

İşbirlikçi Filtreleme, benzer kullanıcıların davranışlarını analiz ederek kişiselleştirilmiş ürün, film ve içerik önerileri üreten öneri sistemi tekniğidir.

Collaborative Filtering (İşbirlikçi Filtreleme), kullanıcıların geçmiş davranışlarını ve tercihlerini analiz ederek kişiselleştirilmiş öneriler sunan temel bir makine öğrenimi tekniğidir. Bu yaklaşım, benzer tercihlere sahip kullanıcıların gelecekte de benzer şeyleri beğeneceği varsayımına dayanır. Netflix, Amazon, Spotify ve YouTube gibi büyük platformların tavsiye sistemlerinin temelini oluşturur. Collaborative Filtering iki ana kategoriye ayrılır: bellek tabanlı (memory-based) ve model tabanlı (model-based) yaklaşımlar. Bellek tabanlı yaklaşımlarda, kullanıcı-kullanıcı veya öğe-öğe benzerlik matrisleri hesaplanarak en yakın komşular belirlenir ve bu komşuların tercihlerine göre öneriler yapılır. Kullanıcı tabanlı (user-based) CF, hedef kullanıcıya en benzer kullanıcıları bulur ve onların beğendiği ancak hedef kullanıcının henüz görmediği öğeleri önerir. Öğe tabanlı (item-based) CF ise kullanıcının daha önce beğendiği öğelere en çok benzeyen yeni öğeleri bulur. Model tabanlı yaklaşımlarda matris çarpanlarına ayırma (matrix factorization) teknikleri kullanılır. Tekil Değer Ayrışımı (SVD) ve Dönüşümlü En Küçük Kareler (ALS) gibi yöntemler, kullanıcı-öğe etkileşim matrisini gizli özellik uzayına (latent feature space) yansıtarak büyük ölçekli sistemlerde verimli çalışır. 2009 Netflix Prize yarışmasında Simon Funk'ın SVD++ algoritması öneri kalitesini yüzde on beş oranında iyileştirerek bu yöntemlerin endüstriyel değerini kanıtlamıştır. Başlıca zorluklar şunlardır: yeni kullanıcı veya öğe için veri bulunmaması (soğuk başlama — cold start), kullanıcıların mevcut öğelerin yalnızca küçük bir kısmıyla etkileşime geçmesi nedeniyle seyrek matris oluşması (sparsity), ve sisteme gizlice sahte tercihler enjekte eden Shilling Attack tehditleri. Bu sorunların üstesinden gelmek için içerik tabanlı filtreleme ile hibrit sistemler oluşturulur. Derin öğrenme çağında Neural Collaborative Filtering (NCF) ve dikkat mekanizmalı modeller, geleneksel yöntemlere kıyasla önemli başarım artışları sağlamaktadır. Python ekosisteminde Surprise, LightFM ve implicit kütüphaneleri yaygın olarak kullanılmaktadır.

İşbirlikçi Filtreleme Nasıl Çalışır?

Collaborative Filtering'in temel fikri son derece sezgiseldir: eğer Kullanıcı A ile Kullanıcı B geçmişte benzer filmleri veya ürünleri beğendiyse, A'nın yeni beğendiği bir şeyi B de büyük olasılıkla beğenir. Bu prensibi matematiksel olarak hayata geçirmek için önce tüm kullanıcıların tüm öğelere verdikleri puanlar (veya tıklama, satın alma gibi örtük geri bildirimler) bir matrise doldurulur. Kullanıcı sayısı ile öğe sayısı çoğu zaman milyonlarla ifade edildiğinden bu matris son derece büyük ve büyük oranda boştur. Bellek tabanlı yaklaşımlarda benzerlik, Kosinüs Benzerliği veya Pearson Korelasyonu gibi ölçütlerle hesaplanır. Model tabanlı yaklaşımlarda ise matris, gizli faktörler (latent factors) aracılığıyla iki küçük matrisin çarpımına indirgenir; böylece hem hesaplama maliyeti düşer hem de matristeki boş hücrelere anlamlı tahminler yapılabilir. Örtük geri bildirim (implicit feedback) kullanan sistemlerde kullanıcı açıkça puan vermez; bunun yerine tıklama süresi, satın alma, tekrar oynatma gibi sinyaller eğitim verisi olarak kullanılır. Bu durum doğrulama metrikleri açısından farklı yaklaşımları gerektirir: RMSE yerine Precision@K veya NDCG gibi sıralama odaklı metrikler ön plana çıkar.

Dört Temel Yaklaşım

Kullanıcı Tabanlı CF

Hedef kullanıcıya en benzer k kullanıcıyı (komşuları) bulur, bu komşuların beğendiği ancak hedef kullanıcının görmediği öğeleri önerir. Yeni kullanıcılar eklendiğinde güncellenmesi kolaydır; ancak büyük ölçekte benzerlik hesaplaması yavaştır.

Öğe Tabanlı CF

Kullanıcının beğendiği öğelere benzer öğeleri önerir. Öğe benzerlik matrisi önceden hesaplanıp önbellekte saklanabildiğinden çevrimiçi önerilerde daha hızlıdır. Amazon'un 'Bu ürünü alanlar şunu da aldı' özelliği bu yaklaşımı kullanır.

Matris Çarpanlarına Ayırma

Kullanıcı-öğe matrisini iki alt matrise (kullanıcı faktörleri × öğe faktörleri) indirger. SVD, SVD++ ve ALS yaygın kullanılan yöntemlerdir. Netflix Prize'ı kazanan yaklaşım budur. Büyük seyrek veri kümelerinde bellek tabanlı yöntemlere göre çok daha verimlidir.

Hibrit Sistemler

Soğuk başlama problemini aşmak için içerik tabanlı filtrelemeyle birleştirilen yaklaşımdır. Yeni kullanıcılar için içerik özellikleri, mevcut kullanıcılar için CF sinyalleri kullanılır. Spotify'ın Discover Weekly özelliği bu hibrit mimariye dayanır.

Uygulama Alanları

  • check_circle Video Platformları: Netflix, YouTube ve Disney+ film ve dizi önerilerinde; izleme geçmişi ile puanlama verileri kullanılır.
  • check_circle E-Ticaret: Amazon, Trendyol ve eBay ürün önerilerinde; satın alma geçmişi ve ürün görüntüleme davranışı temel sinyal kaynaklarıdır.
  • check_circle Müzik Akış Hizmetleri: Spotify Discover Weekly ve Apple Music, dinleme geçmişi ile örtük geri bildirimlere dayanan CF modelleri kullanır.
  • check_circle Sosyal Medya: Facebook, Instagram ve LinkedIn bağlantı, içerik ve reklam önerilerinde CF tabanlı sinyalleri derin öğrenme modelleriyle birleştirir.
  • check_circle Haber ve İçerik Platformları: Google News, Reddit ve Medium makale önerilerinde okuma süresi ve tıklama verisini örtük geri bildirim olarak değerlendirir.

Sıkça Sorulan Sorular

  • check_circle Collaborative Filtering ile içerik tabanlı filtreleme arasındaki fark nedir?: İçerik tabanlı filtreleme öğenin özelliklerini (tür, yönetmen, yazar gibi) kullanırken, CF yalnızca kullanıcı etkileşim verilerini kullanır ve öğe içeriğini bilmek zorunda değildir. CF'nin avantajı, kullanıcı topluluğundan beklenmedik önerileri keşfedebilmesidir (serendipity).
  • check_circle Soğuk başlama problemi nasıl aşılır?: Yeni kullanıcılar için kayıt sırasında birkaç tercih sorusu (onboarding survey) veya demografik verilerle başlangıç profili oluşturulur. Yeni öğeler için içerik tabanlı özellikler devreye girer. Hibrit modeller bu iki yaklaşımı birleştirir.
  • check_circle Matris factorization'da kaç gizli faktör kullanılmalıdır?: Tipik sistemlerde 20–200 arasında gizli faktör yeterlidir. Çok az faktör underfitting, çok fazlası overfitting riskine yol açar. Çapraz doğrulama ile en iyi değer aranır.
  • check_circle Büyük ölçekte CF nasıl ölçeklenir?: Spark MLlib'deki ALS (Alternating Least Squares) dağıtık hesaplama ile milyarlarca öğeye ölçeklenir. Google'ın ScaNN ve Faiss kütüphaneleri, gizli faktör uzayında hızlı yaklaşık en yakın komşu araması sağlar.