मेरे पास लगभग 700k उपयोगकर्ताओं का डेटाबेस है जो उन्होंने देखा/सुना/पढ़ा/खरीदा/आदि के साथ देखा है। मैं एक अनुशंसा इंजन बनाना चाहता हूं जो कि चीजों में समान स्वाद वाले उपयोगकर्ताओं के आधार पर नई वस्तुओं की सिफारिश करता है, साथ ही वास्तव में लोगों को ढूंढने के लिए उपयोगकर्ता जो सोशल नेटवर्क पर निर्माण कर रहा हूं, उसके साथ दोस्त बनना चाहता हूं (इसी तरह आखरीएफएम)।समान वस्तुओं और उपयोगकर्ताओं को खोजने के लिए अनुशंसा एल्गोरिदम (और कार्यान्वयन)
- "उन" मेरे डेटाबेस में से अधिकांश वास्तव में मेरे वेबसाइट के उपयोगकर्ताओं नहीं हैं:
मेरे आवश्यकताओं इस प्रकार हैं। वे तीसरे पक्ष के स्रोतों से खनन डेटा रहे हैं। हालांकि, उपयोगकर्ताओं की सिफारिश करते समय, मैं उन लोगों को खोज सीमित करना चाहता हूं जो मेरी वेबसाइट के सदस्य हैं (जबकि अभी भी बड़े डेटा सेट का लाभ उठा रहे हैं)।
- मुझे एकाधिक वस्तुओं को ध्यान में रखना होगा। नहीं "वे लोग जो आपको पसंद करते हैं ..." लेकिन "वे लोग जो आपको पसंद करते हैं ..."।
- मुझे उपयोगकर्ताओं के बीच समानता की गणना करने और उनकी प्रोफ़ाइल (स्वाद-ओ-मीटर) देखने पर उन्हें दिखाने की आवश्यकता है।
- कुछ आइटम रेट किए गए हैं, अन्य नहीं हैं। रेटिंग 1-10 से हैं, बुलियन मूल्य नहीं। ज्यादातर मामलों में यदि यह मौजूद नहीं है तो अन्य आंकड़ों से रेटिंग मूल्य घटा देना संभव होगा (उदा। यदि उपयोगकर्ता ने किसी आइटम को पसंद किया है, लेकिन इसे रेट नहीं किया है, तो मैं 9 की रेटिंग मान सकता हूं)।
- इसे पाइथन कोड के साथ एक या दूसरे तरीके से बातचीत करना है। अधिमानतः, इसे एक अलग (संभवतः नोएसक्यूएल) डेटाबेस का उपयोग करना चाहिए और मेरे वेब बैक-एंड में उपयोग करने के लिए एक एपीआई का पर्दाफाश करना चाहिए। मैं जिस परियोजना को बना रहा हूं वह पिरामिड और स्क्लाक्लेमी का उपयोग करता है।
- मैं आइटम शैलियों को ध्यान में रखना चाहता हूं।
- मैं अपनी शैली (संभवतः टैग) दोनों के आधार पर आइटम पृष्ठों पर समान आइटम प्रदर्शित करना चाहता हूं और किस उपयोगकर्ता ने आइटम का आनंद लिया (जैसे अमेज़ॅन के "लोग जिन्होंने यह आइटम खरीदा" और Last.fm कलाकार पृष्ठ)। विभिन्न शैलियों के आइटम अभी भी दिखाए जाने चाहिए, लेकिन कम समानता मान है।
- मैं कुछ उदाहरणों के साथ एक एल्गोरिदम का एक अच्छी तरह से प्रलेखित कार्यान्वयन पसंद करूंगा।
कृपया "pysuggest या mahout का उपयोग करें" जैसे उत्तर न दें, क्योंकि एल्गोरिदम का एक बड़ा हिस्सा लागू होता है और मैं अपने डेटा/उपयोग के लिए सबसे उपयुक्त है। मुझे नियो 4j में दिलचस्पी है और यह सब उपयोगकर्ताओं और वस्तुओं के बीच कनेक्शन के ग्राफ के रूप में कैसे व्यक्त किया जा सकता है।
शैलियों के लिए मैं शैलियों श्रेणी नोड्स की अनुशंसा करता हूं कि आइटम जुड़े हुए हैं और आप उन्हें मैच क्लॉज –
में खाते में ले जा सकते हैं, वास्तव में बहुत आसान है, पोस्ट किया गया लिंक ग्राफ़ होने के विपरीत ग्राफ-डीबी में जानकारी संग्रहीत कर रहा है सिफारिश के लिए आधारित दृष्टिकोण। – Steve
धन्यवाद! मैंने कुछ और पढ़ा है, Neo4j दस्तावेज में साइफर कुकबुक पर एक नज़र डाली है और यह वही करता है जो मुझे करने की ज़रूरत है। मैंने अपने अनुशंसा इंजन के लिए ग्राफ डेटाबेस दृष्टिकोण के साथ जाने का फैसला किया है। – vomitcuddle