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

इस लाइन में
ऐपल स्ट्रूडल को
कहां रखा जाएगा? यकीनन, इसे hot dog
और shawarma
के बीच रखा जा सकता है. हालांकि, ऐपल स्ट्रूडल में एक अतिरिक्त डाइमेंशन है. यह डाइमेंशन इसकी मिठास या इसके मिठाई होने के बारे में बताता है, जो इसे खाने की अन्य आइटम से काफ़ी अलग बनाता है.
इस इमेज में "मिठाई होने" के बारे में बताने वाला डाइमेंशन जोड़कर, ऐपल स्ट्रूडल की जगह दिखाई गई है:

एंबेड करने की इस प्रोसेस में, n-डाइमेंशन वाले स्पेस में मौजूद हर आइटम को n फ़्लोटिंग-पॉइंट नंबर के साथ दिखाया गया है. आम तौर पर, फ़्लोटिंग-पॉइंट नंबर की रेंज -1 से 1 या 0 से 1 होती है. इमेज 3 में दिखाई गई, एंबेड करने की प्रोसेस में खाने के हर आइटम को एक कोऑर्डिनेट के साथ एक डाइमेंशन वाले स्पेस में दिखाया गया है. वहीं, इमेज 4 में खाने के हर आइटम को दो कोऑर्डिनेट के साथ दिखाया गया है. इमेज 4 में, "ऐपल स्ट्रूडल" ग्राफ़ के ऊपरी दाएं क्वाड्रेंट में है और इसे पॉइंट (0.5, 0.3) असाइन किया जा सकता है. "हॉट डॉग" निचले दाएं क्वाड्रेंट में है और इसे पॉइंट (0.2, -0.5) असाइन किया जा सकता है.
एंबेड करने की प्रोसेस में, किसी भी दो आइटम के बीच की दूरी का पता गणित के हिसाब से लगाया जा सकता है. साथ ही, इस दूरी को दोनों आइटम के बीच की समानता के हिसाब से समझा जा सकता है. इमेज 4 में, एक-दूसरे के नज़दीक दो आइटम दिखाए गए हैं, जैसे कि shawarma
और hot dog
. मॉडल के ज़रिए दिखाए गए डेटा में ये दोनों आइटम उन आइटम के मुकाबले एक-दूसरे से काफ़ी मिलते-जुलते दिखते हैं जो एक-दूसरे से ज़्यादा दूरी पर मौजूद हैं, जैसे कि apple strudel
और borscht
.
यह भी समझें कि 1D के मुकाबले, इमेज 4 में दिए गए 2D स्पेस में apple strudel
की दूरी shawarma
और hot dog
से काफ़ी ज़्यादा होगी. ऐसा लगता है कि apple strudel
, हॉट डॉग या शवर्मा से उतना मिलता-जुलता नहीं है जितना हॉट डॉग और शवर्मा एक-दूसरे से मिलते-जुलते हैं.
चलिए, अब सूप के बारे में बात करते हैं, जो अन्य आइटम के मुकाबले ज़्यादा तरल है. इससे हमें तीसरे डाइमेंशन का पता चलता है, जो कि तरलता है या खाने का आइटम किस हद तक तरल हो सकता है. इस डाइमेंशन को जोड़कर, सभी आइटम को इस तरीके से 3D में विज़ुअलाइज़ किया जा सकता है:

इस 3D स्पेस में रसगुल्ले को कहां रखा जाएगा? यह सूप की तरह की तरल है और ऐपल स्ट्रूडल की तरह ही मिठाई है, लेकिन यह सैंडविच तो बिलकुल भी नहीं है. रसगुल्ले की एक जगह यह भी हो सकती है:

यह देखें कि इन तीन डाइमेंशन में कितनी जानकारी दी गई है. आपके पास इसमें अतिरिक्त डाइमेंशन जोड़ने का विकल्प होता है, जैसे खाने के आइटम में कितना मांस इस्तेमाल किया गया है या उसे कितनी देर तक पकाया गया है. हालांकि, 4D, 5D, और इससे ज़्यादा डाइमेंशन वाले स्पेस को विज़ुअलाइज़ करना मुश्किल होता है.
असल ज़िंदगी में, एंबेड किए जा रहे स्पेस
असल ज़िंदगी में, एंबेड किए जा रहे स्पेस d-डाइमेंशन वाले होते हैं. यहां d की वैल्यू 3 से बहुत ज़्यादा होती है. हालांकि, यह डेटा की डाइमेंशनैलिटी से कम होती है. साथ ही, डेटा पॉइंट के बीच के संबंध उतना बेहतर तरीके से दिख सके जितना ऊपर बताए गए उदाहरण में दिख रहा है. (शब्दों को एंबेड करने के लिए, d की वैल्यू 256, 512 या 1024 होगी.1)
इसका मतलब यह है कि एमएल पर काम करने वाले व्यक्ति आम तौर पर खास टास्क और एंबेड करने की प्रोसेस के लिए इस्तेमाल होने वाले डाइमेंशन की संख्या सेट करता है. इसके बाद मॉडल, ट्रेनिंग के लिए दिए गए उदाहरणों को एंबेड किए जा रहे स्पेस में डाइमेंशन के खास नंबर के साथ रखने की कोशिश करता है. इसके अलावा, अगर d की वैल्यू तय नहीं की गई है, तो मॉडल डाइमेंशन के नंबर को ट्यून करने की कोशिश करता है. हर डाइमेंशन को समझना इतना आसान नहीं होता है जितना आसान "मिठाई होना" या "तरल होना" वाले डाइमेंशन को समझना है. कभी-कभी इस बात का अनुमान आसानी से लगाया जा सकता है कि किसी डाइमेंशन का क्या "मतलब" है. हालांकि, हमेशा ऐसा नहीं होता है.
एंबेड करने की प्रोसेस आम तौर पर हर टास्क के लिए अलग हो सकती है. इसलिए, टास्क बदलने पर इस प्रोसेस में भी बदलाव होगा. उदाहरण के लिए, शाकाहारी बनाम मांसाहारी के लिए जनरेट की गई एंबेड करने की प्रोसेस, दिन या मौसम के हिसाब से पकवान का सुझाव देने वाले मॉडल से जनरेट की गई एंबेड करने की प्रोसेस अलग होगी. उदाहरण के लिए, "परांठे" और "निहारी" दोनों ही, दिन के समय के हिसाब से पकवान का सुझाव देने वाले मॉडल के एंबेड किए गए स्पेस में एक-दूसरे के काफ़ी नज़दीक होंगे. हालांकि, ये दोनों पकवान शाकाहारी और मांसाहारी पकवान का सुझाव देने वाले मॉडल के एंबेड किए जा रहे स्पेस में एक-दूसरे से काफ़ी दूर होंगे.
स्टैटिक डेटा को एंबेड करने की प्रोसेस
एंबेड करने की प्रोसेस हर टास्क के लिए अलग होती है. किसी टास्क में इसका इस्तेमाल सामान्य कामों के लिए किया जाता है: किसी शब्द के कॉन्टेक्स्ट का अनुमान लगाना. शब्द के कॉन्टेक्स्ट का अनुमान लगाने वाले मॉडल यह मान सकते हैं कि एक जैसे कॉन्टेक्स्ट में इस्तेमाल हुए शब्द सिमैंटिक तौर पर एक-दूसरे से जुड़े हुए हैं. मान लीजिए कि किसी ट्रेनिंग डेटा में "उन्होंने खच्चर पर बैठकर पहाड़ी पार की" और "उन्होंने घोड़े पर बैठकर पहाड़ी पार की" वाक्य हैं. ऐसे में, मॉडल मानता है कि "खच्चर" और "घोड़ा" एक-जैसे कॉन्टेक्स्ट में इस्तेमाल किए गए हैं. इससे पता चलता है कि सिमैंटिक समानता के मामलों के आधार पर एंबेड करने की प्रोसेस भाषा से जुड़े कई सामान्य टास्क के लिए काफ़ी अच्छी तरह काम करती हैं.
हालांकि, यह एक पुराना उदाहरण है और इसे अन्य मॉडल ने बड़े पैमाने पर खारिज किया है. इसलिए, word2vec मॉडल, इलस्ट्रेशन के लिए अब भी मददगार है. word2vec
को बड़ी संख्या में इस्तेमाल किए गए दस्तावेज़ के डेटा पर ट्रेन किया जाता है, ताकि हर शब्द के लिए एंबेड करने की सिंगल ग्लोबल वेक्टर हासिल किया जा सके. हर शब्द या डेटा पॉइंट के लिए, एंबेड करने के लिए सिंगल वेक्टर हासिल हो जाने के बाद, इस प्रोसेस को स्टैटिक डेटा को एंबेड करने की प्रोसेस कहा जाता है. इस वीडियो में, word2vec
की ट्रेनिंग के बारे में आसान इलस्ट्रेशन के ज़रिए समझाया गया है.
रिसर्च से पता चलता है कि जब एंबेड करने की ये स्टैटिक प्रोसेस ट्रेन हो जाती हैं, तब ये सिमैंटिक जानकारी को कुछ हद तक कोड में बदल देती है. खास तौर पर, ऐसा शब्दों के बीच रिलेशनशिप के लिए किया जाता है. इसका मतलब है कि एक जैसे कॉन्टेक्स्ट में इस्तेमाल किए गए शब्द, एंबेड किए जा रहे स्पेस में एक-दूसरे के नज़दीक होंगे. एंबेड किए जा रहे ऐसे खास वेक्टर, ट्रेनिंग के लिए इस्तेमाल किए गए डेटासेट पर निर्भर होते हैं जिन्हें जनरेट किया गया है. ज़्यादा जानकारी के लिए, T. Mikolov et al (2013), "Efficient estimation of word representations in vector space" देखें.
-
François Chollet, Deep Learning with Python (Shelter Island, NY: Manning, 2017), 6.1.2. ↩