बोला गया सारांश — साथ पढ़ने के लिए प्ले दबाएँ: बोली जा रही पंक्ति ऊपर रहती है।
बहुआयामी "निकटता" कैसे काम करती है
स्ट्रिंग्स की समस्या
"car" खोजें और आपको हर दस्तावेज़ मिलेगा जिसमें "car" शब्द है। आपको "automobile" नहीं मिलेगा। या "vehicle"। या "my Civic needs new brakes"।
दशकों तक, यह खोज थी, स्ट्रिंग समानता के बजाय अर्थ के आधार पर परिणाम लौटाना। Google ने इंजीनियरिंग के साथ लगातार वृद्धिशील सुधार किए: समानार्थी शब्दकोश "car" को "automobile" से मैप करते थे, स्टेमिंग नियम "running" को "run" से जोड़ते थे, और क्लिक-पैटर्न माइनिंग से पता चलता था कि जो लोग "NYC apartments" खोजते हैं वे "Manhattan rentals" के समान परिणाम चाहते हैं। गैर-मिलान वाली स्ट्रिंग्स के बीच कनेक्शन को कमोबेश हाथ से मैप करना पड़ता था।
Embeddings ने इस सब को इस विचार के साथ चुनौती दी कि अर्थ एक स्थान हो सकता है। पाठ को निर्देशांक में परिवर्तित करके, समान अवधारणाएं एक दूसरे के पास समाप्त होती हैं। सिमेंटिक स्पेस का यह मैपिंग मैनुअल नहीं है, बल्कि प्रशिक्षण डेटा से उदीयमान है।
एन्कोडिंग
आइए एक सरलीकृत उदाहरण से शुरू करें।
कल्पना करें कि आप ज्ञान के कॉर्पस में हर दस्तावेज़ को दो आयामों पर स्कोर करते हैं: यह डायनासोर से कितना संबंधित है, और यह रोलर कोस्टर से कितना संबंधित है। समान विषयों के बारे में दस्तावेज़ एक दूसरे के पास समाप्त होंगे।
आइए सिर्फ तीन स्रोतों से शुरू करें। इनमें से प्रत्येक को वहां रखें जहां आपको लगता है कि वे संबंधित हैं।
यह रोलर कोस्टर से कितना संबंधित है? →
बिल्कुल नहीं बहुत ज्यादा चयनित आइटम रखने के लिए क्लिक करें
यह डायनासोर से कितना संबंधित है? →
स्रोत
🦕
डायनासोर के बारे में एक बच्चों की किताबक्लिक करके चुनें
🎢
Velocicoaster वेब पेजक्लिक करके चुनें
📚
एक पूरा विश्वकोशक्लिक करके चुनें
आपने अभी 2D स्पेस में अर्थ को मैप किया है, जो हमारे संग्रह की वस्तुओं को उनके विषय के आधार पर प्लॉट किया है।
पुनः प्राप्ति
अब इस स्पेस को खोजते हैं।
एक प्रश्न को उसी ग्राफ पर उसी अक्षों के साथ प्लॉट करें। अपने प्रश्न को उसी तर्क के साथ मैप करके जो आपने स्रोतों को मैप करने के लिए उपयोग किया था, आप सुनिश्चित हो सकते हैं कि निकटतम आइटम सबसे प्रासंगिक होंगे। बोनस फीचर: पुनः प्राप्त किए जाने वाले आइटम की संख्या को नियंत्रित करने के लिए स्लाइडर का उपयोग करें।
पुनः प्राप्त करने के लिए स्रोत (k): 2
यह रोलर कोस्टर से कितना संबंधित है? →
बिल्कुल नहीं बहुत ज्यादा प्रश्न रखने के लिए ग्राफ पर क्लिक करें
यह डायनासोर से कितना संबंधित है? →
प्रश्न
❓ "सबसे अच्छा डायनासोर-थीम वाला रोलर कोस्टर कौन सा है? "
क्लिक करके रखें
यह समानता खोज का सार है। हम प्रश्न को प्लॉट करते हैं और निकटतम k आइटम खोजते हैं। कीवर्ड मिलान या समानार्थी तालिकाओं के बजाय, हम बहु-आयामी निकटता का उपयोग करते हैं।
दो अक्ष एक शुरुआत है। लेकिन दो आयाम केवल दो अवधारणाओं को कैप्चर कर सकते हैं। वास्तविक दुनिया में दो से अधिक विषय हैं, इसलिए हमें अधिक आयामों की आवश्यकता है।
अधिक आयाम
क्या होगा अगर हम एक तीसरी अक्ष जोड़ें? आइए जीव विज्ञान का उपयोग करें।
बच्चों की किताब उच्च स्कोर करती है (प्रजातियां, आवास, आहार)। विश्वकोश कुछ को कवर करता है। Velocicoaster पृष्ठ इसका मुश्किल से उल्लेख करता है।
घुमाने के लिए ड्रैग करें।
तीन आयाम, प्रति दस्तावेज़ तीन निर्देशांक। Velocicoaster पृष्ठ अब (0. 50, 0. 90, 0. 05) है (0. 50, 0. 90) के बजाय।
अब एक चौथी अक्ष की कल्पना करने का प्रयास करें।
चूंकि मैं केवल 3 आयामों में मौजूद हूं, मैं व्यक्तिगत रूप से नहीं कर सकता 😔 लेकिन यह वास्तव में मायने नहीं रखता! प्रत्येक नई आयाम प्रत्येक बिंदु में एक और निर्देशांक और दूरी सूत्र में एक और वर्ग पद जोड़ता है। स्थानिक प्रतिनिधित्व 4D पर काम करना बंद कर देता है, लेकिन गणित काम करती रहती है।
हमें 4D से बहुत आगे जाना होगा, क्योंकि वास्तविक embedding models लगभग एक हजार आयामों का उपयोग करते हैं। प्रत्येक दस्तावेज़ और प्रत्येक query उस हजार-आयामी स्पेस में एक बिंदु बन जाता है। "निकटतम दस्तावेज़ खोजें" का अर्थ अभी भी वही है जो इसका मतलब 2D ग्राफ पर था। यह सिर्फ एक लंबी दूरी की गणना है।
अनलेबल किए गए अक्ष
हमने अक्षों को चुना: डायनासोर, रोलर कोस्टर, जीव विज्ञान। लेकिन कौन निर्धारित करता है कि कौन से 1,024 विषय एक वास्तविक embedding model में शामिल होते हैं?
वास्तव में, कोई निर्णय नहीं लेता। प्रत्येक अक्ष का अर्थ उदीयमान है (अर्थात यह प्रशिक्षण में सिर्फ दिखाई देता है), और अधिक एक ब्लैक बॉक्स है। आप आयाम 847 को देख सकते हैं और कह सकते हैं "यह डायनासोर अक्ष है।" आयाम किसी भी चीज़ के अनुरूप नहीं हैं जिसे एक मानव नाम दे सकता है।
यह स्पेस को समझना कठिन बनाता है। हम आयाम 847 को पूछताछ नहीं कर सकते यह समझने के लिए कि दो पाठ एक दूसरे के पास क्यों समाप्त हुए, या क्यों कुछ जो हम करीब होने की उम्मीद करते थे वह दूर समाप्त हुआ।
पाठ को निर्देशांक के रूप में
तो निर्देशांक किसे असाइन करता है? एक embedding model। कोई भी स्ट्रिंग अंदर, निश्चित-लंबाई संख्याओं की सूची बाहर।
पाठ
"work from home"
→
Embedding
[0. 23, -0. 87, 0. 41, ... ]
1,024 मान
पाठ
"Employees may work remotely up to two days per week with manager approval. "
→
Embedding
[0. 71, 0. 09, -0. 33, ... ]
1,024 मान
आउटपुट हमेशा समान लंबाई का होता है (हमारे विशिष्ट मामले में 1,024 मान, क्योंकि हम VoyageAI के embeddings model का उपयोग कर रहे हैं) और यह सच है चाहे इनपुट तीन शब्द हो या तीन पैराग्राफ। पाठ का एक टुकड़ा स्पेस में एक बिंदु के अनुरूप है। embedding model पाठ को पढ़ता है और एक एकल vector आउटपुट करता है।
गणित-नेत्र वाले आपमें से कुछ को पता होगा कि "vector" और "निर्देशांक सेट" वास्तव में विनिमेय नहीं हैं, लेकिन हमारे उद्देश्यों के लिए, vector को उस पते के रूप में सोचना उपयुक्त है जहां यह पाठ बाकी सब के सापेक्ष रहता है।
समानता
हमारे 2D ग्राफ पर "निकटतम" का अर्थ सीधी-रेखा दूरी था। व्यवहार में, समानता खोज cosine similarity का उपयोग करती है। Cosine similarity केवल यह मापने का एक और तरीका है कि दो पाठ कितने समान हैं, इस बात के आधार पर कि उनके vectors किस दिशा में इशारा करते हैं न कि वे कितनी दूर बैठे हैं।
इसे स्वयं आजमाएं! उनकी cosine similarity देखने के लिए दो स्रोत चुनें।
स्रोत A
❓ 🦕 🎢 📚
❓ सबसे अच्छा डायनासोर रोलर कोस्टर?
स्रोत B
❓ 🦕 🎢 📚
🦕 बच्चों की डायनासोर किताब
Cosine similarity 0. 2894
-1 विपरीत 0 असंबंधित 1 समान
Velocicoaster पृष्ठ को डायनासोर किताब से तुलना करने का प्रयास करें — उनके vectors बहुत अलग दिशाओं में इशारा करते हैं। विश्वकोश हर चीज़ के बीच कहीं समाप्त होता है, जो फिट बैठता है, क्योंकि यह सभी का जैक है लेकिन किसी का मास्टर नहीं है।