Netflix'te bir filmi tavsiye etmek için hangi istatistiksel yöntemler var?


14

Bir kullanıcıya film önermek için dinamik bir model uygulamak istiyorum. Kullanıcı her film izlediğinde veya derecelendirdiğinde öneri güncellenmelidir. Basit tutmak için iki faktörü hesaba katmayı düşünüyorum:

  • kullanıcı tarafından diğer filmlerin geçmiş derecelendirmeleri
  • kullanıcının geçmiş filmleri izlediği zaman

Böyle bir model nasıl kurulur ve akademik literatür ne önerir?

Bu alanda yeniyim ve doğrusal bir regresyon modelinin, parametre tahminlerinde gereksiz belirsizlik empoze etmekten kaçınmak için karmaşık yöntemlerle süslememek değil, iyi bir sonuç sağlayabileceğini tahmin ediyorum. Ama belki de pratikte yaygın olarak kullanılan önceden belirlenmiş yöntemler var mı?


3
Bunun cevap verilemeyecek kadar geniş olduğunu düşünmüyorum. Örneğin, 2 oy verilmiş cevabı var.
gung - Monica'yı eski

2
Coursera'nın Mining Massive Veri Kümelerini ve ücretsiz kitabını deneyin!
Felipe Gerard

2
Muhtemelen matris ve / veya tensör çarpanlarına bakmak istiyorsunuz.
Marc Claesen

1
@ usεr11852 Cevabım sorudan daha geniştir.
shadowtalker

1
@ usεr11852'de soru başlığı, "Hangi istatistiksel yöntemler var ...?" Son cümle, regresyondan başka yöntemler olup olmadığını sorar. Aşağıdaki yanıtların bu tür bilgileri sağladığını düşünüyorum.
gung - Monica'yı eski

Yanıtlar:


14

Bu aslında makine öğrenimi alanında nispeten ünlü bir sorundur. ~ 2006'da Netflix, tavsiye sistemlerine en iyi iyileştirmeyi sağlayan algoritmaya 1 milyon dolar teklif etti. Kazanan çözüm teorisi , tanıtıcı makine öğrenimi hakkındaki bu Caltech ders kitabında kısaca tartışılmıştır .

Temel olarak bir topluluk öğrenme yöntemi kullanılmıştır. Özellikle, bir tür karıştırma veya istifleme kullanılmıştır. Bu önemsiz değil, bir tür sezgisel. Farklı istatistiksel yaklaşımları uyum içinde kullanma sezgisini anlamak için farklı insanların aynı filmler gibi farklı nedenlerini göz önünde bulundurun: örneğin Joe Topgun'u sevebilir, çünkü 80'lerin aksiyon filmlerini sever, Jane Topgun'u sever çünkü Kenny Loggins filmleriyle filmleri sever. Dolayısıyla, her iki izleyicinin de filmi izlemesi (ve filme yüksek puan vermesi) yüksek olasılıkla diğer filmleri sevecekleri anlamına gelmez. Tahmin algoritması, ideal olarak, en azından bir kapasitede bu farklılıkları barındırabilecektir.

Bu, çözümün sesini oldukça basit hale getirebilir, ancak rakip algoritmaları dengelemek ve her durum için en iyi tahminin önceliklendirilmesi kesinlikle basit değildir. Netflix'in böylesine büyük bir ödül teklif etmesi, mücadelenin büyüklüğünü oldukça açık hale getirmelidir.

Makine öğrenmeye yeni başlıyorsanız, ilgi seviyenize ve matematik geçmişinize bağlı olarak yukarıdaki kaynakları kontrol etmek yardımcı olabilir. Dolayısıyla, regresyon muhtemelen iyi-iyi çalışır, ancak önemli ölçüde daha iyi performans mümkündür.


2
Netflix ödülü için +1. Belirttiğiniz gibi, bu ödül bu zorluğun ne kadar büyük olduğuna dair iyi bir göstergedir.
Cort Ammon

11

Bu sorunlardaki zorluğun yarısı ne arayacağınızı bilmektir.

Etiketi farkında olmadan eklemiş olabilirsiniz, ancak aslında tavsiye sistemleri hakkında bilgi arıyorsunuz . Ortak çalışmaya dayalı filtreleme ile veya daha iyisi, bu sayfada belirtilen Ricci, Rokach ve Shapira'nın Tavsiye Sistemlerine Giriş El Kitabına başlamak isteyebilirsiniz .


Etikete daha derinden baktım ve çoğunlukla ortak filtreleme örnekleri gördüm. Bu yöntemle ilgili sorun, kavramı anladıysam, diğer kullanıcıların girdisine bağlı olmasıdır. Ben daha bir kullanıcı, başka veri veya isteğe bağlı olarak başka bir veri durumunda yöntemler arıyorum. Diğer referanslarınıza bir göz atacaksınız.
JohnAndrews

1
@JohnAndrews: Sanırım ssdecontrol size en uygun tavsiyeyi veriyor. Tavsiye sistemleri literatürüne bakmanız gerekir. İlgili birçok teknik vardır, örn. NNMF , Funk SVD , en yakın komşu sınıflandırıcılarının birçok farklı varyantı , vb. Sonunda işbirlikçi filtreleme kullanmak istiyorsunuz, ancak herhangi bir arka plan olmadan "dalış yapamazsınız".
usεr11852

@JohnAndrews CrossValidated , özellikle sadece etikete göre arama yaparsanız, bir konu hakkında öğrenmeye başlamak için genellikle kötü bir yerdir . Bunun yerine bağladığım referanslara bakmaya ne dersiniz? Wikipedia istatistik makaleleri her zaman güvenilir değildir, ancak bunlar oldukça iyi ve çok sayıda referans vermiştir.
shadowtalker

6

Andrew Ng'nin Coursera'daki kursuna göz atmalısınız: https://www.coursera.org/learn/machine-learning Aradığın şey gibi görünen tavsiye sistemleri oluşturma dersi var. Esasen, filmleri derecelendiren kişilerden filmler için sentetik nitelikleri öğrenen ve filmleri derecelendirmeyen / izlemeyen insanlar için önerileri tahmin etmek için kullanan bir doğrusal regresyon şeklidir.


3
Sitemize hoşgeldiniz! Yalnızca "çıplak" bir bağlantı sağlamak yerine bağlantının içeriğini özetleyen bazı bilgileri eklediğiniz için teşekkür ederiz.
Silverfish

4

In Netflix Mücadelesi (2006 Ekim - 2009 Eylül) çok büyük bir topluluk (107 ayrı alt modelleri) sonunda $ 1M büyük ödülü kazandı ama ilk basit (non ensembled) algoritmaları Netflix Cinematch yenmek için bu nota öğreticidir karşılaştırmalı değerlendirme genelleştirilmiş (seyrek matris) SVD'ye dayanmaktadır. Cinematch'i yenen bu ilk kilometre taşı, WXYZConsulting adlı bir ekip tarafından başladıktan yarışmadan sadece 6 gün sonra elde edildi.

SVD (Tekil Değer Ayrıştırma) , [user, movie]her [u, m]pozisyonda (*) bir derecelendirmeye (1 ila 5 yıldız) sahip bir 2d matrisle başladığınız ve orta matrisin kare matrisi olduğu 3 matrise bölündüğünüz bir matris çarpanlara ayırma algoritmasıdır kullanıcılar ve filmler arasındaki gizli etkileşimler.

Kare matris sırasını, daha fazla veya daha az bu gibi gizli faktör etkileşimlerini içerecek şekilde daha küçük veya daha büyük yapabilirsiniz.

Hızlı / verimli seyrek SVD'nin birkaç ücretsiz yazılım uygulaması vardır. Örneğin, redsvd veya vowpal-wabbit'i kendiniz yazmadan önce denemek isteyebilirsiniz.

(*) Çoğu kullanıcı çoğu filme oy vermediğinden bu girişlerin çoğu sıfırdır. yani matris çok seyrek.

Referanslar:


Netflix daha önce ne kullandı?
jona

2
Herkese açık olmayan ancak "yıllar içinde rafine edilmiş çeşitli faktörlerin doğrusal kombinasyonu" olarak tanımlanan "Cinematch" adlı algoritma, örneğin, ortalama küresel derecelendirme (G) + ağırlıklı ortalama kullanıcı [u] derecelendirme + ağırlıklı ortalama film [m] derecelendirme, ... vb.
arielf

Ayrıntılı cevap için teşekkürler. İçine kazmak olacak. Doğrusal kombinasyonlara gelince, bu aşırı parametreleştirmenin büyük bir sorunu değil mi? Bu benim tercih ettiğim yaklaşım. Ama SVD kulağa umut verici geliyor.
JohnAndrews

Yalnızca genelleme hatasını geliştiren faktörler eklerseniz sorun olmaz . Açıkçası, gerekli güveni elde etmek için bu tür eklemeleri görünmeyen veriler üzerinde test etmeniz gerekir.
arielf
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.