7

मैं एक एन-आयामी फीचर वेक्टर स्टोर करना चाहता हूं, उदा। <1.00, 0.34, 0.22, ..., 0>, प्रत्येक दस्तावेज़ के साथ, और फिर एक अन्य विशेषता वेक्टर प्रदान करते हैं, जिसमें कोसाइन समानता के क्रम में क्रमबद्ध परिणाम होते हैं। क्या यह लोचदार खोज के साथ संभव है?क्या फीचर वेक्टर के साथ लोचदार खोज से पूछना संभव है?

उत्तर

6

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

कश्मीर घ पेड़

पहले दृष्टिकोण एक डेटा संरचना की मदद कि निकटतम पड़ोसी प्रश्नों का समर्थन करता है, उदा स्मृति में वैक्टर स्टोर करने के लिए है के-डी पेड़। एक k-d tree इस अर्थ में बाइनरी खोज पेड़ का एक सामान्यीकरण है कि द्विआधारी खोज वृक्ष के प्रत्येक स्तर को के आयामों में से एक भाग में विभाजित करता है। यदि आपके पास स्मृति में सभी बिंदुओं को लोड करने के लिए पर्याप्त स्थान है, तो कोसाइन समानता मानों द्वारा क्रमबद्ध पुनर्प्राप्त वैक्टरों की एक सूची प्राप्त करने के लिए के-डी पेड़ों पर nearest neighbour search algorithm लागू करना संभव है। इस विधि का स्पष्ट नुकसान यह है कि यह अंक के विशाल सेट तक स्केल नहीं करता है, जैसा अक्सर सूचना पुनर्प्राप्ति में सामना किया जाता है।

उल्टे मात्रा निर्धारित वेक्टर

दूसरा दृष्टिकोण उल्टे मात्रा निर्धारित वैक्टर उपयोग करने के लिए है। एक साधारण श्रेणी-आधारित क्वांटिज़ेशन छद्म-शब्द या लेबल वेक्टर की वास्तविक संख्याओं को असाइन करता है ताकि बाद में इसे लुसीन (या उस मामले के लिए लोचदार खोज) द्वारा अनुक्रमित किया जा सके।

उदाहरण के लिए, हम सीमा [0.1, 0.2) और इतने पर ... में नमूना वेक्टर के लिए लेबल रेंज [0 करने के लिए एक, 0.1), बी असाइन कर सकते हैं अपने प्रश्न को (जे, डी, सी, .. ए) के रूप में एन्कोड किया गया है। (क्योंकि [.9,1] जे है, [0.3,0.4) डी है और इसी तरह)।

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

इस विधि का मुख्य लाभ यह है कि यह वास्तविक संख्या वाले वैक्टरों के बड़े संग्रह के लिए अच्छी तरह से स्केल करता है। मुख्य नुकसान यह है कि गणना समानता मान वास्तविक कोसाइन समानताओं के लिए अनुमानित हैं (मात्रा में होने वाले नुकसान के कारण)। एक छोटी मात्रा माप सीमा बढ़ी हुई इंडेक्स आकार की लागत पर बेहतर प्रदर्शन प्राप्त करती है।

+0

यह ध्यान देने योग्य है कि आपके दावे कि क्वांटिज्ड वेक्टरों के साथ पाए गए मूल्यों को कोसाइन समानता के अनुमान लगभग अत्यधिक आशावादी हैं। विशेष रूप से, इस "सन्निकटन" 0.11 में 0.1 से 0.1 है जो 0.1 9 से है। कहने की कोई क्षमता नहीं है कि "ए" "बी" से "बी" के करीब है "z" है। यदि यह सुधार करने का कोई तरीका नहीं है तो यह अनुमान कुछ भी नहीं है। यह आपके पास किसी भी दूरी की जानकारी को सक्रिय रूप से नष्ट कर देगा। कृपया, कृपया, कृपया इसे लागू न करें, आप अपने आवेदन को नष्ट कर देंगे। –

+0

यह भी ध्यान देने योग्य है कि "उल्टा मात्राबद्ध वैक्टर" एक चीज नहीं है। सचमुच एकमात्र जगह यह शब्द पूरे इंटरनेट पर दिखाई देता है। वेक्टर क्वांटिज़ेशन एक बात है, लेकिन यह बिल्कुल नहीं है कि इस जवाब में क्या उल्लेख किया गया है। –

+0

मात्राकरण आपको प्रत्येक घटक द्वारा वैक्टरों का पता लगाने में मदद करेगा, यानी आप पहचान लेंगे कि 0.11 सेल [0.1, 0.2) से संबंधित होगा ... मानते हुए कि आप 0.1 के अंतराल आकार का उपयोग कर रहे हैं। लेकिन आप स्वयं वैक्टरों के घटकों को स्टोर कर सकते हैं। एक प्रश्न बिंदु को देखते हुए, सटीक दूरी की गणना करना संभव है। यहां तक ​​कि यदि आप वैक्टर को मापते हैं, तो दूरी गणना में होने वाली मात्रात्मक त्रुटि महत्वपूर्ण नहीं होगी यदि अंतराल पर्याप्त छोटा हो ... – Debasis

संबंधित मुद्दे