01Seni tanımıyor; seni benzer insanlarla karşılaştırıyor#
Bir platform sana bir dizi önerdiğinde, çoğu zaman o diziyi anlamış olmaz. Daha basit bir şey bilir: senin daha önce izlediklerin, puanladıkların ya da atladıkların, başka insanların davranışlarına benziyor mu? Bu yaklaşıma işbirlikçi filtreleme denir: öneri, ürünün içeriğinden değil, kullanıcılar ile ürünler arasındaki ilişkiden çıkar.
Elde edilen veri bir tablodur: satırlar kullanıcılar, sütunlar ürünler, hücrelerde puan ya da etkileşim. Tablonun büyük kısmı boştur: kimse her şeyi izlememiştir. Öneri sistemi, boş hücreleri doldurmaya çalışan bir tahmin makinesidir.
02Benzerlik: kim sana yakın?#
En yalın yöntem, önce senin zevkine yakın kullanıcıları bulmak, sonra onların henüz görmediğin ürünlere verdiği puanlardan tahmin yapmaktır. Zevk benzerliği, kosinüs benzerliğiyle ölçülebilir: iki kullanıcının puan vektörleri aynı yöne gidiyorsa benzerler. Bir ayrıntı önemlidir: bazı insanlar hep yüksek puan verir. Bu yüzden puanlar, kişinin kendi ortalamasından sapma olarak okunur.
Seni kimlere benzetiyor?
Bir kullanıcı seç: kimlerle benzer puan verdiğini ve henüz görmediği ürünler için sistemin hangi puanı tahmin ettiğini izle. “Faruk”un hiç puanı yok.
| Ürün | Ayşe | Burak | Cem | Deniz | Ela | Faruk |
|---|---|---|---|---|---|---|
| Gece Treni | 5 | 5 | 1 | 2 | 4 | · |
| Mavi Ada | 4 | 5 | · | 1 | 3 | · |
| Son Kale | 5 | 4 | 2 | · | · | · |
| Küçük Robot | · | 1 | 4 | 5 | 3 | · |
| Eski Defter | 2 | · | 5 | 4 | 3 | · |
| Rüzgâr Çeşmesi | · | 2 | 5 | · | 4 | · |
| Kuzey Işığı | 1 | · | 4 | 5 | 3 | · |
| Taş Köprü | 5 | 4 | · | 2 | 3 | · |
Burak 0,73 · Ela 0,51Rüzgâr Çeşmesi 3,1 · Küçük Robot 2,1Hesabı gör
benzerlik(a, b) = Σ (rₐᵢ − r̄ₐ)(r_bᵢ − r̄_b) / √(Σ (rₐᵢ − r̄ₐ)² · Σ (r_bᵢ − r̄_b)²), yalnızca ikisinin de puanladığı ürünlerde. Tahmin = r̄ₐ + Σ benzerlik · (r_uᵢ − r̄_u) / Σ benzerlik; yalnızca benzerliği pozitif ve ürünü puanlamış kullanıcılar sayılır. Negatif benzerlik, zıt zevki gösterir ve burada sayılmaz.
Bir kullanıcı seç ve görmediği ürünler için tahmini izle. “Ayşe” ile “Burak” benzer şeyleri sevip benzer şeylerden sıkılıyor; ortalaması çıkarılmış puanlarının kosinüsü yaklaşık 0,73. “Ayşe” ile “Cem” ise zıt zevkte: benzerlik yaklaşık −0,75. Negatif benzerlik de bir bilgi taşır (“bu kişinin sevdiğinden kaçın”); ama bu basit yöntem onu kullanmaz, yalnızca pozitif benzerlikleri hesaba katar.
03Gizli faktörler: tabloyu küçük bir özete sıkıştır#
Binlerce ürün ve milyonlarca kullanıcıda, kullanıcıları tek tek karşılaştırmak yavaştır. Matris ayrışımı, bu devasa tabloyu iki küçük tabloya böler: her kullanıcı için kısa bir vektör ve her ürün için kısa bir vektör. Bir kullanıcının bir ürüne vereceği puan, bu iki vektörün nokta çarpımıdır; yani embedding mantığının bir uygulaması. Vektörün her bileşeni bir “faktör”dür; ama bu faktörlere önceden bir ad verilmez, veriden öğrenilirler: örneğin bir faktör “aksiyon ↔ dram” eksenine karşılık gelebilir, ama bunu sistem söylemez, biz sonradan yorumlarız.
Netflix Ödülü yarışmasında bu tür gizli faktör modelleri, klasik en yakın komşu yaklaşımlarının önüne geçti; üstelik örtük geri bildirim (izledi/izlemedi), zaman etkileri ve güven düzeyleri gibi ek sinyalleri de kolayca içine alabildi. Koren, Bell ve Volinsky, 2009 ↗
04Yeni kullanıcı problemi#
Bütün bu yöntemler geçmiş davranışa dayanır. Hiç puanı olmayan biri (yukarıdaki “Faruk”) için benzer kullanıcı bulunamaz ve vektörü öğrenilemez. Buna soğuk başlangıç sorunu denir. Yaygın çözümler:
- Popülerlik: Herkesin en çok sevdiği ürünleri göstermek (demoda yedek plan buydu).
- İlk sorular: Kayıt sırasında birkaç tür ya da ürün seçtirmek.
- İçerik bilgisi: Ürünün türü, süresi, oyuncuları gibi özelliklerini kullanarak ürün vektörlerini önceden tahmin etmek. Yeni bir ürün için de aynı sorun vardır: kimse onu henüz puanlamamıştır.
05Gerçek sistemler tek bir tablodan ibaret değil#
Büyük platformlar tek bir modelle çalışmaz. YouTube’un tanınmış tasarımı iki aşamadır: önce çok sayıda videodan birkaç yüz aday seçen bir aday üretme modeli, sonra bu adayları kullanıcıya özel bir sırayla dizen bir sıralama modeli; ikisi de derin sinir ağıdır ve çok sayıda sinyal kullanır. Covington, Adams ve Sargin, 2016 ↗
Bunun önemli bir sonucu var: önerinin kalitesi, hangi hedefi optimize ettiğine bağlıdır. İzleme süresi mi, tıklama mı, memnuniyet mi? Bir hedef seçildiğinde sistem, tam olarak onu artıracak içeriğe yönelir; seçilen hedef ile gerçekte istediğimiz şey arasındaki fark, bir tasarım sorunudur. Bir öneri sistemi, kullanıcıların davranışını değiştirir; değişen davranış da bir sonraki eğitim verisini oluşturur. Bu geri besleme döngüsü, veriden öğrenen her sistem için dikkat edilmesi gereken bir noktadır (veri yazısına bak).
Veriden öğrenmenin bir başka biçimi, doğrudan bir eylem sonucunu ödüllendirerek öğrenmektir: Bir robot, deneme yanılmayla nasıl öğrenir?
Bu yazıyı bitirdiğinde:
- İşbirlikçi filtrelemenin kullanıcılar arasındaki benzerlikten nasıl öneri çıkardığını anlatabilirsin.
- Soğuk başlangıç sorununu ve yaygın çözümlerini söyleyebilirsin.
- Önerinin kalitesinin hangi hedefe göre optimize edildiğine bağlı olduğunu açıklayabilirsin.
Cümlelerden birini kendi sözlerinle anlatamıyorsan, ilgili bölüme dön ve demoyu yeniden dene.
Bir robot, deneme yanılmayla nasıl öğrenir?
Orta · 9 dk okuma