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