Matrisi çarpanlara ayırma, basit bir yerleştirme modelidir. Raporda A geri bildirim matrisi , kullanıcı (veya sorgu) sayısı ile öğe sayısı, model şunları öğrenir:
- Kullanıcı yerleştirme matrisi , Burada i satırı, i kullanıcısının yerleştirilmiş halidir.
- Öğe yerleştirme matrisi , burada j satırı, j öğesi için yerleştirilmiş öğedir.
Yerleştirmeler, ürünün bir geri bildirim matrisi A’nın iyi bir tahminini verir. Lütfen girişi , basit bir şekilde nokta çarpımıdır kullanıcı yerleştirmelerinin yakınında olmasını istediğiniz öğe 'yi seçin.
Hedef fonksiyonunu seçme
Sezgisel bir hedef fonksiyon, mesafenin karesidir. Bunu yapmak için tüm gözlemlenen giriş çiftlerinin kareleri toplamını en aza indirin:
Bu hedef fonksiyonda, yalnızca gözlemlenen çiftleri (i, j), diğer bir deyişle, geri bildirim matrisinde sıfır olmayan değerlerden daha yüksek olması gerekir. Ancak, yalnızca yüksek bir değer olması iyi bir fikir değildir; tüm değerleri içeren bir matris, mümkün olduğunca az kayba ve etkili önerilerde bulunamayacak bir model üretmesine yardımcı olur. ve bu kötü bir genelleme yapıyor.
Gözlemlenmeyen değerleri sıfır olarak kabul edebilir ve tüm değerlerin toplamını alabilirsiniz. dahil edilir. Bu, toplamda kare Frobenius ve yaklaşık arasındaki mesafe:
Bu ikinci dereceden problemi önceki Matrisin Tekil Değer Ayrıştırılması (SVD). Ancak, SVD de mükemmel bir çözüm değil çünkü gerçek uygulamalarda, matris çok seyrek olabilir. Mesela Sauce and Spoon'un tablete geçiş süreciyle ilgili belirli bir kullanıcının görüntülediği tüm videolara kıyasla YouTube'daki Çözüm (modelin yaklaşık değerine karşılık gelir) büyük olasılıkla sıfıra yakın olur ve bu da kötü performansa neden olur. genelleme performansı.
Öte yandan, Ağırlıklı Matris Çarpanlarına Göre Çarpma işlevi, hedefi ayrıştırarak şu iki toplama böleriz:
- Gözlemlenen girişlerin toplamı.
- Gözlemlenmeyen girişlerin üzerindeki toplam (sıfır olarak değerlendirilir).
Burada ,iki terimi ağırlıklandıran bir hiperparametredir iki tarafın da bir hedefe hükmetmemesini sağlamaktır. Bu hiperparametreyi ayarlamak çok önemlidir.
burada , i ve j sorgusu sıklığının bir fonksiyonudur.
Hedef fonksiyonu en aza indirme
Hedef işlevini en aza indirmek için yaygın olarak kullanılan algoritmalardan bazıları şunlardır:
Stokastik gradyan iniş (SGD) kayıp fonksiyonlarını en aza indirmek için kullanılan genel bir yöntemdir.
Ağırlıklı Alternatif En Küçük Kareler (WALS), bu konuda uzmanlaşmıştır olduğunu varsayalım.
Hedef, U ve V matrislerinin her birinde ikinci derecedendir. (Not: ancak, sorunun ortak bir dışbükey olmadığı anlamına gelir.) WALS başlangıçta yerleştirmeler rastgele düzenlenmeli, ardından sırasıyla:
- için düzeltme ve çözme.
- için düzeltme ve çözme.
Her aşama tam olarak çözülebilir (doğrusal bir sistem çözümü yoluyla) ve dağıtılabilir. Bu tekniğin uyum sağlaması garanti edilir çünkü her adım kaybın azalması garanti edilmektedir.
SGD ve WALS
SGD ve WALS'ın avantajları ve dezavantajları vardır. İkisinin arasındaki farkları görmek için aşağıdaki bilgileri inceleyin:
SGD
Çok esnek; diğer kayıplar, işlevleri için kullanılabilir.
Paralel hale getirilebilir.
Daha yavaştır. Birbirine çok hızlı yakınlaşmaz.
Gözlemlenmeyen girişlerin işlenmesi daha zordur ( kullanın.
WALS
Yalnızca Loss Square'ler kullanılabilir.
Paralel hale getirilebilir.
SGD'ye göre daha hızlı yakınlaşır.
Gözlemlenmeyen girişlerle ilgili işlemler daha kolaydır.