निकटतम पड़ोसी बहुत ही उच्च आयामी डेटा की खोज करते हैं


17

मेरे पास उपयोगकर्ताओं और उनके द्वारा पसंद किए जाने वाले आइटम का एक बड़ा विरल मैट्रिक्स है (1M उपयोगकर्ताओं और 100K वस्तुओं के क्रम में, बहुत कम स्तर पर)। मैं उन तरीकों की खोज कर रहा हूं जिनमें मैं kNN खोज कर सकता हूं। मेरे डेटासेट के आकार और मेरे द्वारा किए गए कुछ प्रारंभिक परीक्षणों को देखते हुए, मेरी धारणा यह है कि जिस विधि का मैं उपयोग करूंगा, उसे या तो समानांतर या वितरित करने की आवश्यकता होगी। इसलिए मैं संभावित समाधानों के दो वर्गों पर विचार कर रहा हूं: एक वह जो या तो उपलब्ध है (या यथोचित रूप से आसान तरीके से लागू हो), एक सिंगल मल्टीकोर मशीन पर, दूसरा स्पार्क क्लस्टर पर, यानी मैपरेड कार्यक्रम के रूप में। यहाँ तीन व्यापक विचार हैं जिन पर मैंने विचार किया:

  • एक cosine समानता मीट्रिक मानकर, सामान्यीकृत मैट्रिक्स के पूर्ण गुणन को इसके स्थानान्तरण द्वारा निष्पादित करें (बाहरी उत्पादों के योग के रूप में कार्यान्वित)
  • स्थानीय-संवेदनशील हैशिंग (एलएसएच) का उपयोग करना
  • पीसीए के साथ समस्या की पहली गतिशीलता को कम करना

मैं इस समस्या से निपटने के संभावित तरीकों के बारे में किसी भी विचार या सलाह की सराहना करता हूँ।


1
मैं अभी इस क्षेत्र की जांच कर रहा हूं और मैंने जो भी पाया उसके बारे में एक ब्लॉग पोस्ट लिखा। मैंने एक एलएसएच का उपयोग किया, लेकिन मुझे लगता है कि मेरी स्पार्सिटी का स्तर आप की तुलना में अधिक था। tttv-engineering.tumblr.com/post/109569205836/…
फिलिप पर्ल

जवाबों:


15

मुझे उम्मीद है कि निम्नलिखित संसाधन आपको समस्या को हल करने की दिशा में अतिरिक्त विचार प्राप्त कर सकते हैं :

1) शोध पत्र "कुशल के-निकटतम पड़ोसी, उच्च आयामी विरल डेटा के लिए एल्गोरिदम में शामिल हों" : http://arxiv.org/abs/1011.2807

2) क्लास प्रोजेक्ट पेपर "कोलैबोरेटिव फ़िल्टरिंग के आधार पर सिफारिश प्रणाली" (स्टैनफोर्ड यूनिवर्सिटी): http://cs229.stanford.edu/proj2008/Wen-RecommendationSystemBasedOnCollaborative.iltering.pdf

3) नेटफ्लिक्स पुरस्कार प्रतियोगिता ( k-NN- आधारित) के लिए परियोजना : http://cs.carleton.edu/cs_comps/0910/netflixprize/final_results/knn/index.html

4) रिसर्च पेपर "हब्स इन स्पेस: डायमेंशनल नियर नेबर्स इन हाई-डायमेंशनल डेटा" डाइमेंशनिटी शाप पर और विशेष रूप से मशीन लर्निंग से इसके संबंध के संबंध में, और विशेष रूप से k-NN एल्गोरिथ्म : http://jmlr.org /papers/volume11/radovanovic10a/radovanovic10a.pdf

5) विरल k-NN वर्गीकरण के लिए सॉफ्टवेयर (मुक्त, लेकिन खुला स्रोत नहीं दिखता है - लेखकों के साथ स्पष्ट हो सकता है): http://www.autonlab.org/autonweb/10408.html

6) StackOverflow पर कई चर्चा सूत्र :

7) ग्राफलैब पर ध्यान दें , मशीन लर्निंग के लिए एक खुला स्रोत समानांतर ढांचा ( http://select.cs.cmu.edu/code/graphlab ), जो मॉडल के माध्यम से समानांतर क्लस्टरिंग का समर्थन करता है MapReduce: http: //select.cs.cmu। edu / कोड / graphlab / clustering.html

आप प्रासंगिक पैकेजों और पृष्ठों के लिंक के लिए विरल प्रतिगमन पर डेटा साइंस StackExchange पर मेरा जवाब यहाँ भी देख सकते हैं : /datascience//a/918/2452RCRAN Task View


4

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


1

आपको उपयोग करना चाहिए: PySparNN , फेसबुक द्वारा हाल ही में अजगर में लागू किया गया जो कि तेजी से खूनी है। इसे इस्तेमाल करना भी आसान है।

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