Kullanıcıların tüm öğelerin yalnızca bir kısmını görebildiği bir durum için hangi öneri motoru?


9

Belge yönetim sistemine bir öneri özelliği eklemek istiyorum . Şirket belgelerinin çoğunun saklandığı bir sunucudur. Çalışanlar web arayüzüne göz atıyor ve istedikleri belgeleri indirmek (veya çevrimiçi okumak için) tıklıyorlar.
Her çalışanın tüm belgelerin bir alt kümesine erişimi vardır:

Çalışanlar tüm belgelerin yalnızca bir alt kümesine erişebilir

Amacım : Bir çalışanınıza yakın zamanda takım arkadaşları tarafından açılan belgeleri veya az önce açtıkları belgeye ek olarak hizmet veren e-tabloyu veya okumak isteyebilecekleri herhangi bir şeyi öneriyorum.

Herkese açık veriler için birçok öneri motoru vardır (tüm Netflix kullanıcıları tüm filmleri görebilir), ancak buradaki durum özeldir: Her çalışanın tüm belgelerin sadece bir kısmının izni vardır, Netflix'te herhangi bir kullanıcının tüm filmlere erişimi vardır.

Örnek : Çalışan1 DocumentA okuyabilir ancak DocumentB okuyamaz. Çalışan2 her ikisini de okuyabilir ve Çalışan3 hiçbirini okuyamaz.

Tabii ki, erişimi olmayan bir çalışan dokümanı tavsiye etmemeliyim. Ayrıca, bir belgenin popülaritesini yalnızca ona erişimi olan çalışanlar bağlamında değerlendirmeliyim. İşleri daha da karmaşık hale getirmek için, çalışanlar bazen bir projeden diğerine geçer ve bu da eriştikleri belgeleri etkiler.

  • Bu tür bir problem için bir isim var mı?
  • Hassasiyet / verimlilik kaybı olmadan daha yaygın bir soruna indirgenebilir mi?
  • Değilse, bu tür bir sorun için hangi yaklaşım iyi çalışır?

Not: Netflix benzeri bir öneri motoru yeterince iyi değil. Sadece 10 çalışanın (ben de dahil) ona erişimi varsa 50 görünümlü bir belge belirgin olmalı, ancak 100.000 çalışanın erişimi varsa belirgin olmamalıdır.

Gerekli olması halinde, birkaç veri özelliği bulunmaktadır: Ortalama bir şirketin 1000 çalışanı, yaklaşık 10000 dokümanı vardır, bir çalışan günde yaklaşık 5 dokümanı tıklar. Her projenin ortalama 10 çalışanı vardır ve yaklaşık 100 dokümanı vardır. Her çalışan paralel olarak ortalama 5 proje üzerinde çalışmaktadır.

Yanıtlar:


1

İki şeyi ayrı ayrı ele almanız gerektiğini hissediyorum.

İlk olarak, sisteminizdeki kullanıcılar için erişim kontrolüne sahip olmanız gerekir. Her kullanıcıya ve dosyaya eklenmiş erişim belirteçleri olabilir. İşleme başlamadan önce dosya veritabanına filtre uygulayın.

İkincisi, önerdiğim belgeleri sıralamak, mevcut tarama kullanıcısına göre bir belge ağırlığı ve kullanıcı ağırlığı için biraz ağırlığa sahiptir.

Örneğin, belge ağırlığını ve kullanıcı ağırlığını aşağıdaki gibi düşünebilirim, ancak sisteminize göre çok daha karmaşık olabilirler.

DocumentWeight = Number of Views/ Number of Users can Access
UserWeight = ## Relative to browsing user- Users in similar project will have higher weights

DocumentScore = Sum over all viewed users{DocumentWeight x UserWeight}

Belgeleri sıralayabilirsiniz, bu ihtiyacınız olan belgeleri istatistiksel olarak yukarı çeker. Umarım bu biraz yardımcı olur.


0

Açıklamanızdan, işbirlikçi filtreleme adı verilen yöntemlere bakmanızı öneririm . Temel olarak, bir belgenin görüntülenme / indirme işlemlerini bazı öğeler için olumlu bir geri bildirim olarak değerlendirebilir ve daha sonra benzer öğeleri arayan kullanıcılar için bu öğeleri önerebilirsiniz.

Gizli sonuçların filtrelenmesi her kullanıcı için ayrı ayrı yapılmalıdır (tüm olası önerileri bulursunuz, ancak yalnızca kullanıcının görebileceği sonuçların çıktısını alabilirsiniz).


Böyle genel bir yöntemin yeterli olacağını düşünmüyorum: Sadece 10 çalışanın (ben dahil) buna erişimi varsa 50 görünümlü bir belge, ancak 100.000 çalışanın buna erişimi varsa belirgin olmamalıdır.
Nicolas Raoul

Yöntemi değil genel fikri anlattım. İşbirlikçi filtreleme daha karmaşıktır ve sağladığım bağlantı iyi bir giriş noktasıdır, ancak farklı uygulamaları ve yaklaşımları arayabilir ve belirli veri özellikleriniz için en uygun olanı bulabilirsiniz.
chewpakabra

Sorumla ilgili verilerimi yeterince açıkladım mı? Değilse, belirli bir yaklaşım önerilmeden önce gereken bilgileri sormaya çekinmeyin. Çok teşekkürler :-)
Nicolas Raoul 18:16

Kafa karıştırıcı bulduğum şey, 10000 görüntülü bir belgenin neden tavsiye olarak gösterilmeye değmediği ve 50 görüntülü bir belgenin neden iyi olduğu konusunda net bir fikrin olmaması. 100'e ne dersin? Yoksa 51 mi? Görüntüleme sayısını alakasız hale getiren belirli bir kitleniz varsa, bu tür durumları eğitim setinden hariç tutabilir ve yine de işbirlikçi yaklaşımlara bağlı kalabilirsiniz. Değilse, bir tür sınıflandırma veya kümeleme probleminiz olabilir, bu da daha geniş bir konudur.
chewpakabra

10000 figürü nereden geliyor? Eğer 100000 demek istiyorsan, o zaman yeterince açık değildim: "ona erişimim var" demek "görmek" demek değildir, "istedikleri zaman erişim iznine sahip olmak" anlamına gelir. Başka bir deyişle, ilk belge, görüntüleme iznine sahip olan herkes tarafından ortalama 10 kez, ikinci belge, görüntüleme iznine sahip olan her kişi tarafından yalnızca ortalama 0.0005 kez görüntülendi.
Nicolas Raoul

0

Sonunda sizi tavsiye sistemlerinde yaygın olarak kullanılan SVD'ye yönlendirecek olan Büyük Veri Kümelerinin Madenciliği s. 328'e bir göz atın .


Bahsettiğiniz sayfada, boyutsallığın azaltılması ile ilgili çeşitli genel özellikler sunulmaktadır. Yukarıdaki soru için neyin geçerli olduğunu özetlemek ister misiniz? Çok teşekkürler!
Nicolas Raoul

Evet; Tavsiye için
SVD'nin
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.