ऐसी स्थिति के लिए क्या सिफारिश इंजन है जहां उपयोगकर्ता केवल सभी वस्तुओं का एक अंश देख सकते हैं?


9

मैं एक दस्तावेज़ प्रबंधन प्रणाली में एक सिफारिश सुविधा जोड़ना चाहता हूं । यह एक सर्वर है जिस पर कंपनी के अधिकांश दस्तावेज़ संग्रहीत होते हैं। कर्मचारी वेब इंटरफ़ेस को ब्राउज़ करते हैं और अपने इच्छित दस्तावेज़ डाउनलोड (या ऑनलाइन पढ़ने) के लिए क्लिक करते हैं।
प्रत्येक कर्मचारी के पास सभी दस्तावेजों के सबसेट तक पहुंच होती है:

कर्मचारियों के पास केवल सभी दस्तावेजों के एक सबसेट तक पहुंच है

मेरा लक्ष्य : किसी कर्मचारी को उनके साथियों द्वारा हाल ही में खोले गए दस्तावेज़ों या उन स्प्रेडशीट की अनुशंसा करें जो उनके द्वारा खोले गए दस्तावेज़ के अनुलग्नक के रूप में कार्य करती हैं, या कुछ भी जो वे पढ़ना चाहते हैं।

सार्वजनिक रूप से उपलब्ध डेटा के लिए कई सिफारिश इंजन हैं (सभी नेटफ्लिक्स उपयोगकर्ता सभी फिल्में देख सकते हैं), लेकिन यहां स्थिति विशेष है: प्रत्येक कर्मचारी को केवल सभी दस्तावेजों के एक अंश की अनुमति है, जबकि नेटफ्लिक्स में किसी भी उपयोगकर्ता की सभी फिल्मों तक पहुंच है।

उदाहरण : Employee1 DocumentA पढ़ सकता है लेकिन DocumentB नहीं। Employee2 दोनों को पढ़ सकता है और Employee3 कोई भी नहीं पढ़ सकता है।

बेशक, मुझे एक कर्मचारी दस्तावेजों की सिफारिश नहीं करनी चाहिए, जिसके लिए उसकी पहुंच नहीं है। इसके अलावा, मुझे लगता है कि मुझे केवल उन कर्मचारियों के संदर्भ में एक दस्तावेज की लोकप्रियता पर विचार करना चाहिए जिनके पास इसकी पहुंच है। चीजों को और अधिक जटिल बनाने के लिए, कर्मचारी कभी-कभी एक परियोजना से दूसरे में जाते हैं, जो उन दस्तावेजों को प्रभावित करता है जिनके पास उनकी पहुंच है।

  • क्या इस तरह की समस्या का कोई नाम है?
  • क्या इसे बिना किसी सामान्य समस्या के सटीक / दक्षता हानि के बिना कम किया जा सकता है?
  • यदि नहीं, तो इस तरह की समस्या के लिए कौन सा दृष्टिकोण अच्छा काम करेगा?

नोट: नेटफ्लिक्स जैसा सिफारिश इंजन पर्याप्त अच्छा नहीं है। 50 विचारों वाला एक दस्तावेज प्रमुख होना चाहिए, यदि केवल 10 कर्मचारियों (मेरे सहित) की पहुंच है, लेकिन 100000 कर्मचारियों की पहुंच होने पर यह प्रमुख नहीं है।

यदि इसकी आवश्यकता है, तो यहां कुछ डेटा निर्दिष्ट हैं: औसत कंपनी में 1000 कर्मचारी हैं, लगभग 10000 दस्तावेज़ हैं, एक कर्मचारी प्रति दिन लगभग 5 दस्तावेज़ों पर क्लिक करता है। प्रत्येक परियोजना में औसतन 10 कर्मचारी होते हैं, और उनके पास लगभग 100 दस्तावेज़ होते हैं। प्रत्येक कर्मचारी समानांतर में औसतन 5 परियोजनाओं पर काम करता है।

जवाबों:


1

मुझे लगता है कि आपको दो चीजों को अलग से संबोधित करने की आवश्यकता है।

सबसे पहले, आपको अपने सिस्टम में उपयोगकर्ताओं के लिए अभिगम नियंत्रण की आवश्यकता है। आपके पास प्रत्येक उपयोगकर्ता और फ़ाइल से जुड़े टोकन हो सकते हैं। प्रोसेस करने से पहले फाइल डेटाबेस को फ़िल्टर करें।

दूसरा, मेरे द्वारा सुझाए गए दस्तावेज़ों की रैंकिंग में दस्तावेज़ के वजन और उपयोगकर्ता के वजन के लिए कुछ वजन होगा जो वर्तमान ब्राउज़िंग उपयोगकर्ता के सापेक्ष है।

उदाहरण के लिए मैं दस्तावेज़ के वजन और उपयोगकर्ता के वजन के बारे में सोच सकता हूं, लेकिन वे आपके सिस्टम के अनुसार बहुत अधिक जटिल हो सकते हैं-

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}

आप दस्तावेजों को रैंक कर सकते हैं, यह सांख्यिकीय रूप से आपके द्वारा आवश्यक दस्तावेजों को खींच लेगा। मुझे उम्मीद है कि यह कुछ मदद होगी।


0

आपके विवरण से, मैं आपको सुझाव दूंगा कि आप सहयोगी फ़िल्टरिंग नामक विधियों की ओर देखें । मूल रूप से, आप किसी दस्तावेज़ के किसी भी दृश्य / डाउनलोड को कुछ आइटम के लिए एक सकारात्मक प्रतिक्रिया के रूप में मान सकते हैं और फिर इसी तरह के दस्तावेज़ों को देखने वाले उपयोगकर्ताओं के लिए ऐसी वस्तुओं की अनुशंसा कर सकते हैं।

प्रति-उपयोगकर्ता आधार पर छिपे हुए परिणामों को फ़िल्टर किया जाना चाहिए (आपको सभी संभावित सुझाव मिलते हैं, लेकिन केवल उन्हीं को आउटपुट करता है जो उपयोगकर्ता देखने के अधिकार प्राप्त कर सकते हैं)।


मुझे नहीं लगता कि इस तरह की एक सामान्य विधि पर्याप्त होगी: 50 विचारों वाला एक दस्तावेज प्रमुख होना चाहिए यदि केवल 10 कर्मचारियों (मेरे सहित) की पहुंच है, लेकिन 100000 कर्मचारियों की पहुंच होने पर यह प्रमुख नहीं है।
निकोलस राउल

मैंने विधि नहीं, बल्कि सामान्य विचार का वर्णन किया। सहयोगात्मक फ़िल्टरिंग अधिक जटिल है और मैंने जो लिंक प्रदान किया है वह एक अच्छा प्रवेश बिंदु है, जबकि आप विभिन्न कार्यान्वयन और दृष्टिकोणों की खोज कर सकते हैं और अपने विशेष डेटा बारीकियों के लिए सबसे उपयुक्त पा सकते हैं।
14

क्या मैंने अपने प्रश्न में अपनी डेटा बारीकियों का स्पष्ट रूप से वर्णन किया है? यदि नहीं, तो कृपया किसी भी जानकारी के लिए बेझिझक पूछें जो किसी विशिष्ट दृष्टिकोण से पहले आवश्यक है। बहुत बहुत धन्यवाद :-)
निकोलस राउल

मुझे जो भ्रामक लगता है वह स्पष्ट विचार की अनुपस्थिति है कि 10000 विचारों वाला एक दस्तावेज़ अनुशंसा के रूप में दिखाने लायक नहीं है, और 50 दृश्य वाला एक ठीक है। 100 के बारे में क्या? या ५१? यदि आपके पास दर्शकों का एक निश्चित प्रतिशत है जो दृश्य गणना को अप्रासंगिक बनाता है तो आप ऐसे मामलों को प्रशिक्षण सेट से बाहर कर सकते हैं और फिर भी सहयोगी दृष्टिकोण के साथ रह सकते हैं। यदि नहीं, तो आपको किसी प्रकार का वर्गीकरण या क्लस्टराइज़ेशन समस्या हो सकती है, जो एक तरह से व्यापक विषय है।
chewpakabra

10000 का आंकड़ा कहां से आता है? यदि आपका मतलब 100000 है, तो मैं पर्याप्त रूप से स्पष्ट नहीं था: "इसका उपयोग किया है" का मतलब यह नहीं है "इसे देखा है", इसका मतलब है "अगर वे चाहें तो इसे एक्सेस करने की अनुमति है"। दूसरे शब्दों में, पहले दस्तावेज़ को प्रत्येक व्यक्ति द्वारा औसतन 10 बार देखा गया है, जिसे इसे देखने की अनुमति है, लेकिन दूसरे दस्तावेज़ को प्रत्येक व्यक्ति द्वारा औसतन केवल 0.0005 बार देखा गया है, जिसे इसे देखने की अनुमति है।
निकोलस राउल

0

खनन के बड़े पैमाने पर डेटा सेट पीपी 328 पर एक नज़र डालें जो अंततः आपको एसवीडी के लिए ले जाएगा जो आमतौर पर अनुशंसित सिस्टम में उपयोग किया जाता है।


जिस पृष्ठ का आप उल्लेख करते हैं वह आयामीता में कमी के बारे में विभिन्न सामान्यताओं का परिचय देता है। क्या आप मन करेंगे कि ऊपर दिए गए प्रश्न पर क्या लागू होता है? आपका बहुत बहुत धन्यवाद!
निकोलस राउल

हाँ; यह दिखाता है कि सिफारिश के लिए एसवीडी का उपयोग कैसे करना है
ड्रेय
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.