Modele resmi göstermek: embedding ile cold-start'ı kısaltmak ve beş modeli bire indirmek
MAPS: Netflix’s Multimodal Asset Personalization at Scale · Netflix Technology Blog
Netflix'te bir başlığın görseli ve otomatik oynayan önizlemesi (yazıda “asset”) başlı başına bir kişiselleştirme problemi: Squid Game için hangi görseli göstermelisin? Daha da zor soru bir başlık yayımlandığı anda, üzerinde neredeyse hiç etkileşim verisi yokken ne yapacağın.
Yıllarca modeller ilk soruyu iyi, ikincisini kötü cevapladı. Çünkü her asset'i opak bir ID olarak ele alıyorlardı: görselin içinde ne olduğunu bilmeden yalnızca hangisine tıklandığını öğreniyorlardı. Yeni yayınlanan başlığın asset'leri geçmişsiz olduğu için keşfi artırıp popülerlik sezgisellerine düşüyorlardı. Bu klasik cold-start problemi.
Çözüm: modele görseli “göstermek”. Her görseli önceden eğitilmiş bir görsel-metin embedding modeli olan CLIP ile kodlayıp, asset temsiline ekliyorlar. Böylece yeni bir görsel, oluşturulduğu anda modelin zaten anladığı bir embedding ile geliyor; benzer görsellerden gelen zevk sinyalini hemen taşıyor ve model kişiselleştirmeye başlamak için çok daha az etkileşim geçmişine ihtiyaç duyuyor.
İkinci kazanım model konsolidasyonu: bir başlığın görselleri farklı kanvaslarda (farklı kırpmalar) yer alıyor ve bu yüzden beş ayrı model çalışıyordu. CLIP embedding'leri kırpma, yeniden boyutlandırma ve en-boy oranına büyük ölçüde duyarsız olduğu için neredeyse aynı görseller neredeyse aynı vektöre düşüyor; tek bir birleşik model yeterli oluyor. Yazı üç üretim sistemini kapsıyor: görsel kişiselleştirme, sorguya duyarlı görsel sıralama ve video önizleme kişiselleştirme. Bir de pratik hile: yeni embedding'leri uçtan uca entegrasyon ve A/B testine girişmeden önce ucuz bir yolla seçmek.
Öne çıkanlar
- ID olarak temsil edilen varlık, yeni geldiğinde sıfırdan öğrenilmek zorunda; içerik embedding'i ise anında bilgi taşır.
- Önceden eğitilmiş embedding'i mevcut modele eklemek, sıfırdan bir model eğitmekten çok daha ucuz bir cold-start çözümü.
- Girdideki gereksiz varyasyona (kırpma, boyut) duyarsız temsil, birden çok modeli tek modele indirmeyi sağlıyor.
- Bir embedding'i tam entegrasyondan önce ucuz bir testle elemek, A/B testi bütçesini koruyor.
Neden önemli?
Cold-start, öneri sistemlerinin en yaygın acısıdır: yeni kullanıcı, yeni ürün, yeni belge. Çözümün ortak fikri, varlığı yalnızca geçmişte ne yaptığıyla değil kendi içeriğiyle tanımlamak.
Sende karşılığı
Mobit'teki doküman aramada bu doğrudan işine yarar. Yeni yüklenen bir belge için henüz kimse arama yapmadı, tıklama verisi yok; ama belgenin içeriğinden üretilmiş embedding ilk günden aranabilir kılıyor, tam olarak Netflix'in yaptığı gibi. Bunu pgvector ile PostgreSQL'de yapabilirsin. Ayrıca “ID yerine içerik” fikrini KlioAI'da kullan: bir alıştırmayı yalnızca kimlik numarasıyla değil, konusunun embedding'iyle tanımla; yeni eklenen alıştırmalar ilk günden benzer alıştırmaların başarı verisinden yararlanır.
Sözlük
- cold-start soğuk başlangıç
- Yeni bir kullanıcı ya da öğe için henüz etkileşim verisi olmadığından öneri yapılamama durumu.
- CLIP CLIP
- Görselleri ve metinleri aynı vektör uzayına gömen, önceden eğitilmiş çok kipli model.
- model consolidation model birleştirme
- Birbirine benzer işleri yapan birden çok modeli tek bir modele indirme.
- opaque ID opak kimlik
- İçeriği hakkında hiçbir bilgi taşımayan, yalnızca ayırt etmeye yarayan tanımlayıcı.