Mahout'ta madde ve kullanıcı bazlı öneri farkı


15

Ben kullanıcı tabanlı ve öğe tabanlı öneri birbirinden tam olarak nasıl farklı bilmek istiyorum.

Bunu tanımlar

Kullanıcı tabanlı : Benzer kullanıcıları bularak öğeleri önerin. Bu, kullanıcıların dinamik yapısı nedeniyle ölçeklendirmek genellikle daha zordur.

Öğe tabanlı : Öğeler arasındaki benzerliği hesaplayın ve önerilerde bulunun. Öğeler genellikle çok fazla değişmez, bu nedenle bu genellikle çevrimdışı hesaplanabilir.

Ancak iki tür öneri olsa da, anladığım kadarıyla her ikisi de bazı veri modellerini alacaktır (1,2 veya 1,2, 0,5 öğe1, öğe2, değer veya kullanıcı1, kullanıcı2, değer olmadığı yerde değer) zorunlu) ve tüm hesaplamayı, seçtiğimiz benzerlik ölçüsü ve öneri oluşturma işlevi olarak gerçekleştirir ve aynı veriler üzerinde hem kullanıcı / öğe temelli öneri çalıştırabiliriz (bu doğru bir varsayımdır ??).

Bu yüzden bu iki tip algoritmanın tam olarak ve hangi açıdan farklı olduğunu bilmek istiyorum.

Yanıtlar:


11

Her iki modelin de aynı veriler üzerinde sorunsuz çalıştığı doğrudur. Her iki öğe de kullanıcı öğesi derecelendirmeleri matrisinde çalışır.

Kullanıcı tabanlı yaklaşımda, algoritma , benzer olan diğer kullanıcıların derecelendirmelerini birleştirerek ikullanıcı utarafından bir öğe için bir derecelendirme üretir . Burada benzer, iki kullanıcının derecelendirmelerinin yüksek Pearson korelasyonuna veya kosinüs benzerliğine veya benzer bir şeye sahip olduğu anlamına gelir.u'u

Madde tabanlı yaklaşımda biz bir derecelendirme üretmek itarafından uöğelerin grubunu inceleyerek i'benzer iki (biz ürün kullanıcılardan aldığınızı değerlendirmesi bakıyor olurduk şimdi haricinde yukarıdaki ile aynı anlamda) uoy veriyor ve o zamana kadar derecelendirmeleri birleştirir uait i'bir tahmin değerlendirmesi içine uiçin i.

Madde tabanlı yaklaşım, Amazon'da ( http://dl.acm.org/citation.cfm?id=642471 ), kullanıcı tabanlı filtrelemeyle ölçek sorunlarını çözmek için icat edildi . Sattıkları şeylerin sayısı, kullanıcı sayısından çok daha az ve çok daha az dinamik olduğundan, öğe-öğe benzerlikleri çevrimdışı olarak hesaplanabilir ve gerektiğinde erişilebilir.


21

Madde Bazlı Algoritma

for every item i that u has no preference for yet

  for every item j that u has a preference for

    compute a similarity s between i and j

    add u's preference for j, weighted by s, to a running average

 return the top items, ranked by weighted average

Kullanıcı Tabanlı Algoritma

for every item i that u has no preference for yet

 for every other user v that has a preference for i

   compute a similarity s between u and v

   add v's preference for i, weighted by s, to a running average

 return the top items, ranked by weighted average

Öğe - Kullanıcı tabanlı:

1) Önerenler, uğraşmaları gereken öğe veya kullanıcı sayısına göre ölçeklenir, bu nedenle her türün diğerinden daha iyi performans gösterebileceği senaryolar vardır

2) Öğeler arasındaki benzerlik tahminlerinin zaman içinde yakınsama olasılığı kullanıcılar arasındaki benzerliklerden daha yüksektir

3) Birleşen benzerlikleri hesaplayabilir ve önbelleğe alabiliriz, bu da öğeye dayalı danışmanlara bir performans avantajı sağlayabilir

4) Öğe tabanlı önerenler, kullanıcının tercih ettiği öğelerin bir listesiyle başlar ve bu nedenle kullanıcı tabanlı önerenlerin yaptığı gibi en yakın öğe mahallesine ihtiyaç duymaz


Adil uyarı: Bağlantılar bu sitede cevap olarak kabul edilmez. Herhangi bir downvotes almadan önce düzenlemenizi veya silmenizi öneririm!
sheldonkreger

1
büyük olasılıkla "kullanıcı tabanlı algoritma" bir yazım hatası vardır - dördüncü satır "i için tercih u ekleyin ..." ile
başlamalı

@BernardoAflalo Ben onun bir yazım hatası olduğunu sanmıyorum, tüm v için tercih eklemek ve sonra ağırlıklı bir ortalama almak
Oswald
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.