Recommendation System
Bir öneri sistemi, kullanıcının hangi öğeleri isteyeceğini tahmin eder ve bunları sıralar. İşbirlikçi ve içerik tabanlı filtreleme, işlem hatları, zorluklar ve kod.
Öneri sistemi ya da önerici, bir kullanıcının hangi ürünleri, videoları, şarkıları, makaleleri veya gönderileri isteyebileceğini tahmin eden ve bunları kullanıcıya göre sıralayan bir yazılımdır. Yıldız puanları gibi açık geri bildirimlerden, daha da sık olarak tıklamalar, izleme süresi ve satın almalar gibi örtük geri bildirimlerden öğrenir; bu nedenle makine öğreniminin en yaygın kullanılan uygulamalarından biridir. Alanı şekillendiren iki önemli gelişme vardır: Amazon'un 2003'te öğeler arası işbirlikçi filtrelemeyi tanımlaması ve 2006–2009 Netflix Ödülü. Bu ödülde, Netflix'in film puanı tahminlerini %10 iyileştiren ekibe 1 milyon dolar verildi.
Öneri Sistemleri Nasıl Çalışır#
İşbirlikçi filtreleme, yalnızca kimin hangi içerikle etkileşime girdiği örüntüsünü kullanır. Kullanıcı tabanlı yöntemler benzer geçmişe sahip kullanıcıları, öğe tabanlı yöntemler ise aynı kullanıcıların beğendiği öğeleri bulur. Netflix Ödülü sırasında popülerleşen matris çarpanlarına ayırma yöntemi, her kullanıcı ve öğe için etkileşimlerini öngören bir vektör öğrenir; bu vektörlerin skaler çarpımı etkileşimi tahmin eder. İçerik tabanlı filtreleme ise öğeleri tür, doğal dil işleme (NLP) ile işlenen metin veya görüntü gömme vektörleri gibi nitelikleriyle tanımlar ve kullanıcının daha önce beğendiği öğelere benzeyen öğeleri önerir. Bu yöntem, henüz kimsenin etkileşimde bulunmadığı öğelerde bile işe yarar. Karma sistemler her iki sinyali birleştirerek yeterli etkileşim birikene kadar içerik özellikleriyle yeni bir öğenin yerini belirler.
Bu örnek, küçük bir puan matrisine öğe tabanlı işbirlikçi filtreleme uygular ve bir kullanıcının henüz puanlamadığı filmler için puanları, filmlerin puan sütunları arasındaki kosinüs benzerliğine göre tahmin eder:
import numpy as np
# Ratings from 4 users (rows) for 5 movies (columns); 0 means not rated
ratings = np.array(
[
[5, 4, 0, 1, 0],
[4, 5, 1, 0, 1],
[1, 0, 5, 4, 5],
[0, 1, 4, 5, 0],
]
)
# Item-item cosine similarity between the movies' rating columns
norms = np.linalg.norm(ratings, axis=0)
item_sim = ratings.T @ ratings / np.outer(norms, norms)
# Predict user 3's rating of each movie as a similarity-weighted average of their own ratings
user = ratings[3]
rated = user > 0
scores = item_sim[:, rated] @ user[rated] / item_sim[:, rated].sum(axis=1)
for movie in np.flatnonzero(~rated):
print(f"Movie {movie}: predicted rating {scores[movie]:.2f}")Son satırdaki 3. kullanıcı, 2. ve 3. filmlere yüksek, 1. filme ise düşük puan verdi. Bu nedenle puanları 2. ve 3. filmlerle benzerlik gösteren 4. film için 4,10 puanı tahmin edilir; puanları 1. filmle benzerlik gösteren 0. film içinse 2,09 tahmin edilir. Sistem 4. filmi önerir.
Derin öğrenme kullanan önericiler bu temsilleri uçtan uca öğrenir. İki kuleli ağlar kullanıcıları ve öğeleri ayrı ayrı gömer. Böylece adayları getirmek, bir kullanıcının gömme vektörüne en yakın öğe gömme vektörleri için vektör araması yapmaya dönüşür. Transformer gibi dizi modelleri ise bir sonraki etkileşimi tahmin etmek için kullanıcının geçmişini sırayla okur.
Çok Aşamalı İş Akışı#
Büyük hizmetler her istek için milyonlarca öğeye ağır bir model uygulayamaz; bu nedenle önerileri aşamalı biçimde sunar. Aday oluşturma veya getirme aşaması, işbirlikçi filtreleme ya da gömme vektörü araması gibi düşük maliyetli sinyallerle kataloğu birkaç yüz öğeye indirger. Ardından sıralama modeli her adayı zengin özelliklerle puanlayarak tıklama, izleme veya satın alma olasılığını tahmin eder. Son bir yeniden sıralama adımı ise çeşitlilik, güncellik ve iş kuralları ekler. YouTube bu iki aşamalı tasarımı 2016'da tanımladı. Gösterilen her öneri, sonraki modeli eğitmek için kullanılan geri bildirimi de üretir; böylece sistem, daha önceki seçimlerinin şekillendirdiği verilerden öğrenir.
Yeni sistemler, sıralama ve getirme modellerini dil modellerine benzer biçimde ölçeklendiriyor. Meta'nın ICML 2024'te yayımlanan üretken önerici modelleri, her kullanıcının eylemlerini bir dizi olarak ele aldı, 1,5 trilyon parametreye ulaştı ve çevrim içi A/B testlerinde ölçütleri %12,4 iyileştirdi.
Görsel Öneriler#
Moda, mobilya ve sanat kataloglarında öneriler görünüme dayanır; bu nedenle "buna benzer" özellikleri ürün fotoğraflarının görüntü gömme vektörlerini karşılaştırır. "Bu görünümü satın al" özellikleri ise önce nesne tespiti kullanarak sahne fotoğrafındaki her öğeyi kırpar, ardından katalogda görsel olarak benzer ürünleri arar. Aynı getirme yöntemi eğitim verilerini bulmaya da yarar: Ultralytics Platform içindeki Benzer görüntüleri bul özelliği, herkese açık ve ekip veri kümelerindeki en yakın 24 görüntüye kadarını benzerlik puanlarıyla gösterir; veri kümesinde zaten bulunan görüntüleri atlar ve en kötü performans gösteren doğrulama görüntülerinden başlayabilir.
Uygulamalar#
- Perakende ve e-ticaret: Ürün sayfalarında "bu ürünü alan müşteriler şunları da aldı" listeleri ve gezinme ile satın alma geçmişine göre oluşturulan kişiselleştirilmiş ana sayfalar gösterilir.
- Yayın akışı medyası: Video ve müzik hizmetleri, izleme ve dinleme geçmişine göre içerikleri sıralar ve çalma listeleri oluşturur. Netflix ayrıca her içerik için gösterilen görseli kişiselleştirir.
- Sosyal akışlar ve haberler: Platformlar gönderileri, kısa videoları ve makaleleri tahmin edilen etkileşime göre sıralar ve kullanıcı akışı her açtığında bu sıralamayı yeniler.
- Moda: Görsel benzerlik araması, kullanıcının incelediği veya fotoğrafını çektiği bir öğeyle tarz, renk ya da desen bakımından eşleşen giysiler önerir.
Öneri Sistemleri ve İlgili Kavramlar#
- Arama: Arama motoru açık bir sorguyu yanıtlar; önerici ise kullanıcının ne istediğini sorgu olmadan öngörür. Modern sistemler getirme ve sıralama bileşenlerini paylaşır.
- Vektör araması ve vektör veritabanları: Bir sorgu gömme vektörüne en yakın saklanmış gömme vektörlerini bulur; bu, önericilerin getirme için kullandığı temel yapı taşıdır.
- Yeniden sıralayıcılar: Kısa bir aday listesini daha doğru biçimde yeniden puanlayan ikinci aşama modellerdir; önericideki sıralama aşamasının işlevini üstlenirler.
- Öngörücü modelleme: Sıralama aşaması, etkileşim olasılığını öngören bir modeldir; önerici sistemin tamamı ise getirme, sıralama ve geri bildirim döngüsünü de yönetir.
Zorluklar#
- Soğuk başlangıç: Yeni kullanıcıların ve yeni öğelerin etkileşim geçmişi yoktur; bu nedenle sistemler popülerlik verilerine, başlangıç sorularına veya içerik özelliklerine başvurur.
- Seyreklik: Her kullanıcı büyük bir kataloğun çok küçük bir bölümüyle etkileşime girer; bu yüzden kullanıcı-öğe matrisinin çoğu boştur.
- Popülerlik yanlılığı ve geri bildirim döngüleri: Kaydedilen etkileşimlerle eğitim, daha önce sık gösterilen öğeleri kayırır; bu da kullanıcıların gördüklerini daraltabilir ve filtre balonları oluşturabilir.
- Değerlendirme: Geçmiş veriler üzerinde hesaplanan precision@k ve NDCG gibi çevrim dışı ölçütler, kullanıcıların yeni önerilerle gerçekte ne yaptığını ölçen çevrim içi A/B testleriyle çoğu zaman uyuşmaz.
- Gizlilik: Ayrıntılı davranış profilleri kişisel veridir ve AB'de ve diğer yargı bölgelerinde veri koruma yasalarıyla korunur.
- Düzenleme: AB Dijital Hizmetler Yasası, çok büyük çevrim içi platformların ve arama motorlarının her öneri sistemi için profillemeye dayanmayan en az bir seçenek sunmasını zorunlu kılar.










