Dinamik tavsiye sistemleri


14

Bir Tavsiye Sistemi , farklı kullanıcıların derecelendirmeleri arasındaki korelasyonu ölçecek ve belirli bir kullanıcıya ilgisini çekebilecek öğeler hakkında önerilerde bulunacaktır.

Bununla birlikte, tatlar zamanla değişir, bu nedenle eski derecelendirmeler mevcut tercihleri yansıtmayabilir veya tam tersi. Bir keresinde "çok iğrenç değil" olarak değerlendireceğiniz bir kitaba "mükemmel" koyabilirsiniz. Dahası, çıkarların kendileri de değişir.

Tavsiye sistemleri değişen bir ortamda nasıl çalışmalıdır?

  1. Bir seçenek, "eski" yi doğru bir şekilde tanımladığınızı varsayarak işe yarayabilecek "eski" derecelendirmeleri kesmektir (derecelendirmelerin hiçbir zaman sona ermediğini ve sorunun var olmadığını iddia ettiğini bile söyleyebilirsiniz). Ancak bu mümkün olan en iyi seçenek değildir: elbette tadı gelişir, bu normal bir yaşam akışıdır ve bir zamanlar doğru geçmiş derecelendirmelerin ek bilgisini kullanamamamızın bir nedeni yoktur.
  2. Başka bir seçenek de bu ekstra bilgiyi bir şekilde barındırmaktır. Böylece sadece mevcut ilgi alanlarınız için bir "anlık eşleşme" bulamadık, aynı zamanda bir sonraki hoşunuza gidebilecek şeyleri de öneriyoruz ( şimdi hoşunuza giden şeylerin aksine ).

Bunu yeterince iyi açıklayıp açıklayamadığımdan emin değilim. Temelde ikinci yaklaşımı destekliyorum ve tat yörüngeleri arasındaki korelasyonları ölçecek ve önerecek verim önerileri verecek bir Tavsiye Sistemi'nden bahsediyorum . "tadı yörünge" (ve sadece "tadı anlık görüntü") seninkine benzer.

Şimdi soru: "Seçenek 2" ye benzer bir şeyin zaten var olup olmadığını merak ediyorum ve eğer varsa, nasıl çalıştığını merak ediyorum. Ve yoksa, nasıl çalışması gerektiğini tartışabilirsiniz! :)

Yanıtlar:


8

Bu konunun detaylı olarak tartışıldığı Yehuda Koren (Netflix Yarışması!) Tarafından zamansal dinamiklerle ortaklaşa filtreleme makalesini öneriyorum .

Yazara katılıyorum, ilk seçeneğin ("kesme") gidilecek yol olmadığını. Eski tercihlerin bu şekilde göz ardı edildiği doğrudur, ancak a) bazı tercihler asla değişmez, bu nedenle her daim yeşilleri tanımlamak için veri öldürülür ve b) geleceğin tercihlerini anlamak için geçmişte bazı tercihler gereklidir ( Örneğin, sezon 1'i satın alın -> sezon 2'yi satın almanız muhtemeldir).

Bununla birlikte, Koren bu tür yörüngeleri açıkça tanımlamaya çalışmaz (yani, bir kullanıcının gelecekteki değişiklik davranışlarını tahmin edebilir), çünkü bu çok zor bir görevdir. Bunu, bir yörünge boyunca tercih edilen "istasyonların" zamana bağlı OLMADIĞINI, ancak bir kullanıcının kişisel gelişimine, belki de başka yörüngeler tarafından kesintiye uğratılabileceğini veya geçilebileceğini veya sadece farklı bir şekilde ifade edildiğini göz önünde bulundurarak hayal edebilirsiniz. Örneğin, sert aksiyon filmlerinden aksiyon filmlerine geçilirse, kesin bir “giriş yumuşak aksiyon filmi” ya da bunun gibi bir şey yoktur. Kullanıcı bu alana istediği zaman girebilir (zaman ve öğe alanında). Bu sorunlar, verilerin seyrekliği ile birleştiğinde, burada uygulanabilir bir model oluşturmayı neredeyse imkansız hale getirmektedir.

Bunun yerine Koren, derecelendirme tahminlerinin etkinliğini artırmak için geçmiş verileri uzun vadeli model sinyallerine ve günlük gürültüye ayırmaya çalışır. Bu yaklaşımı hem SVD'ye hem de basit bir işbirlikçi neigborbood modeline uyguluyor. Ne yazık ki, henüz matematik ile bitirmedim, bu yüzden daha fazla ayrıntı veremiyorum.

Yörüngelerin açık bir şekilde modellenmesi hakkında ek not

Sekans Madenciliği alanı yapmak için yöntemler sağlar, ancak kritik nokta, öğelerin uygun bir soyut temsilini bulmaktır (çünkü öğelerin kullanımı seyreklik nedeniyle çalışmaz), örneğin etiketlere kümeleme. Bununla birlikte, bu yaklaşım bazı kullanıcıların (Veri Madenciliği!) Davranışları hakkında bazı bilgiler sunabilmesine rağmen, uygulama tüm müşteriler (yani kitle) söz konusu olduğunda geçerli olmayabilir, bu nedenle Koren tarafından önerilen örtük modelleme sonunda daha iyi.


Aslında "tat yörüngeleri" hakkında konuşmasa da, Yehuda gazetesi benim bahsettiğim şeye çok yakın. Belki de doğru ve "tat değişim oranı" herhangi bir kişi için sabit değil .. Bağlantı için teşekkürler!
andreister

Evet, ilk düşündüğüm şey bu.
Stumpy Joe Pete

2

Çalışan bir sistemin farkında değilim, ancak Amazon, NetFlix veya birisinin böyle bir sistemi varsa şaşırmaz. Google arama motorunda bile benzer bir sistem olabilir.

Geçen sene Dr. Ng'nin dersini alırken bunu düşündüm. İlk olarak en uygun olacağını düşündüğüm yaklaşım yaşa göre bir ağırlıklandırma faktörü eklemek olacaktır. Bir veri parçası ne kadar güncel olursa, o kadar fazla ağırlıklandırılır. Bu yaklaşımın uygulanması nispeten basit ve hesaplama açısından ucuz olacaktır.

Ancak, bu yaklaşımı daha dikkatli düşündükten sonra, birçok uygulama için ciddi kusurları olduğunu düşünüyorum. Şahsen, bir türü takip edeceğim veya bir süre göstereceğim, onun lastiği, başka bir şeye geçeceğim, ancak daha sonra orijinal türe döneceğim. Bu tükenmişlik, yeniden alevlenme döngüsü toplumda da ortaya çıkar.

Bu nedenle, biraz daha karmaşık bir sisteme yöneliyorum. Verilerin iki kümeye ayrılması gerekir; mevcut veriler - eşiğin uygulamaya ve bireyin etkileşimlerinin uzunluğuna bağlı olarak değişmesi gerekecektir - bu daha ağır ağırlıklandırılacak ve zaman içinde değerlerde yavaş düşüşle daha düşük olarak derecelendirilecek "geçmiş" verilerdir. İkincisi, yoğun bir ilginin veya katılımın aniden ortadan kalktığı “kapanma” yı tespit etmeye çalışmak için bir faktör dahil edilecektir. Benzer şekilde sınıflandırılan "mevcut" veriler, tarihselmiş gibi yeniden sınıflandırılacaktır.

Bu yaklaşımın hiçbirinde titizlik veya geçerlilik yoktur, ancak hipotezin bazı denemelerini oluşturmaya değeceğine inanıyorum.


Eski veriler için daha düşük ağırlık fikriniz aslında "seçenek 1" e benzer. Bunun yerine, değişen lezzetin tüm yörüngesinin önemli olduğunu söylüyorum - yani, dün A türünü sevdiyseniz ve bugün B türünü seviyorsanız, sistem aynı "AB- ??" tadı hareket eder ve yarın C türü istediğinizi önerirsiniz
andreister

1

Gördüğüm gibi, ortak çalışmaya dayalı filtrelemenin değiştirilmiş bir sürümü işe yarayabilir. Bununla birlikte, her bir sıralamada bir zaman damgası tutmanız ve daha eski bir rütbenin ağırlığını hesaplarken bir ceza oluşturmanız gerekir.

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.