एम्बेड करना: एम्बेड करना

इस सेक्शन में, एम्बेड पाने के कई तरीकों के बारे में बताया गया है. साथ ही, स्टैटिक एम्बेड को कॉन्टेक्स्ट के हिसाब से एम्बेड में बदलने का तरीका भी बताया गया है.

डाइमेंशन कम करने की तकनीकें

गणित की कई तकनीकें हैं, जो कम डाइमेंशन वाले स्पेस में, ज़्यादा डाइमेंशन वाले स्पेस के अहम स्ट्रक्चर को कैप्चर करती हैं. सिद्धांत रूप से, इनमें से किसी भी तकनीक का इस्तेमाल करके, मशीन लर्निंग सिस्टम के लिए एम्बेडिंग बनाई जा सकती है.

उदाहरण के लिए, शब्द एम्बेड बनाने के लिए मुख्य कॉम्पोनेंट का विश्लेषण (पीसीए) का इस्तेमाल किया गया है. बैग ऑफ़ वर्ड वेक्टर जैसे इंस्टेंस के सेट को देखते हुए, पीसीए ऐसे डाइमेंशन ढूंढने की कोशिश करता है जो आपस में काफ़ी मिलते-जुलते हों और जिन्हें एक ही डाइमेंशन में छोटा किया जा सकता हो.

न्यूरल नेटवर्क के हिस्से के तौर पर एम्बेडिंग को ट्रेनिंग देना

अपने टारगेट टास्क के लिए, न्यूरल नेटवर्क को ट्रेनिंग देते समय, एम्बेडिंग बनाई जा सकती है. इस तरीके से, आपको अपने सिस्टम के हिसाब से बेहतर तरीके से एम्बेड किया गया डेटा मिलता है. हालांकि, एम्बेडिंग को अलग से ट्रेनिंग देने के मुकाबले, इसमें ज़्यादा समय लग सकता है.

आम तौर पर, अपने न्यूरल नेटवर्क में d साइज़ की एक हिडन लेयर बनाई जा सकती है. इसे एम्बेडिंग लेयर के तौर पर दिखाया जाता है. यहां d, हिडन लेयर में मौजूद नोड की संख्या और एम्बेडिंग स्पेस में मौजूद डाइमेंशन, दोनों को दिखाता है. एम्बेड की गई इस लेयर को किसी भी दूसरी सुविधा और छिपी हुई लेयर के साथ जोड़ा जा सकता है. किसी भी डीप न्यूरल नेटवर्क की तरह, नेटवर्क की आउटपुट लेयर में नोड पर होने वाले नुकसान को कम करने के लिए, ट्रेनिंग के दौरान पैरामीटर को ऑप्टिमाइज़ किया जाएगा.

खाने के सुझाव के उदाहरण पर वापस आकर, हमारा लक्ष्य उपयोगकर्ता के मौजूदा पसंदीदा खाने के आधार पर, ऐसे नए खाने के सुझाव देना है जो उसे पसंद आएंगे. सबसे पहले, हम अपने उपयोगकर्ताओं के पांच सबसे पसंदीदा फ़ूड के बारे में ज़्यादा डेटा इकट्ठा कर सकते हैं. इसके बाद, हम इस टास्क को सुपरवाइज़्ड लर्निंग की समस्या के तौर पर मॉडल कर सकते हैं. हम इन पांच सबसे ज़्यादा खाए जाने वाले आइटम में से चार को फ़ीचर डेटा के तौर पर सेट करते हैं. इसके बाद, पांचवें आइटम को सॉफ़्टमैक्स लॉस का इस्तेमाल करके, मॉडल के अनुमान को ऑप्टिमाइज़ करने के लिए, पॉज़िटिव लेबल के तौर पर अलग से सेट करते हैं.

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

इमेज 12. हॉट डॉग की वन-हॉट एन्कोडिंग के लिए न्यूरल नेट. पहली लेयर, पांच नोड वाली एक इनपुट लेयर है. हर नोड पर, उस खाने के आइकॉन के साथ एनोटेट किया गया है जिसे वह दिखाता है (बोर्श, हॉट डॉग, सलाद, ..., और शवरमा). इन नोड की वैल्यू [0, 1, 0, ..., 0] है. ये वैल्यू, 'हॉट डॉग' के वन-हॉट एन्कोडिंग को दिखाती हैं. इनपुट लेयर, तीन नोड वाली एम्बेडिंग लेयर से जुड़ी है. इस लेयर के नोड की वैल्यू क्रमशः 2.98, -0.75, और 0 है. एम्बेडिंग लेयर, पांच नोड वाली हिडन लेयर से कनेक्ट होती है. इसके बाद, यह पांच नोड वाली आउटपुट लेयर से कनेक्ट होती है.
12वां डायग्राम. डीप न्यूरल नेटवर्क के इनपुट के तौर पर दी गई hot dog की वन-हॉट एन्कोडिंग. एम्बेडिंग लेयर, वन-हॉट एन्कोडिंग को तीन डाइमेंशन वाले एम्बेडिंग वेक्टर [2.98, -0.75, 0] में बदलती है.

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

कॉन्टेक्स्ट के हिसाब से एम्बेड करना

word2vec स्टैटिक एम्बेडिंग वैक्टर की एक सीमा यह है कि अलग-अलग कॉन्टेक्स्ट में शब्दों के अलग-अलग मतलब हो सकते हैं. "हां" का मतलब अपने-आप एक होता है, लेकिन "हां, सही है" वाक्यांश में इसका मतलब इसके उलट होता है. "पोस्ट" का मतलब "मेल", "मेल में डालना", "कान की बाली का बैकिंग", "घोड़ों की दौड़ के आखिर में मार्कर", "पोस्टप्रोडक्शन", "पिलर", "सूचना लगाना", "गार्ड या सैनिक को तैनात करना" या "बाद में" हो सकता है.

हालांकि, स्टैटिक एम्बेडिंग की मदद से, हर शब्द को वेक्टर स्पेस में एक पॉइंट से दिखाया जाता है. भले ही, उसके कई मतलब हो सकते हैं. पिछले एक्सरसाइज़ में, आपको नारंगी शब्द के लिए स्टैटिक एम्बेडिंग की सीमाओं के बारे में पता चला था. यह शब्द,रंग या फ़ल के टाइप का मतलब दे सकता है. सिर्फ़ एक स्टैटिक एम्बेडिंग के साथ, word2vec डेटासेट पर ट्रेनिंग के दौरान, नारंगी हमेशा जूस के बजाय अन्य रंगों के करीब होगा.

इस समस्या को हल करने के लिए, कॉन्टेक्स्ट के हिसाब से एम्बेड की सुविधा को डेवलप किया गया था. कॉन्टेक्स्ट के हिसाब से एम्बेड करने की सुविधा की मदद से, किसी शब्द को कई एम्बेड के ज़रिए दिखाया जा सकता है. इन एम्बेड में, आस-पास के शब्दों के साथ-साथ, उस शब्द की जानकारी भी शामिल होती है. डेटासेट में मौजूद शब्द वाले हर यूनीक वाक्य के लिए, Orange का एक अलग एम्बेड होगा.

ELMo जैसे कुछ तरीके, कॉन्टेक्स्ट के हिसाब से एम्बेड बनाने के लिए, किसी उदाहरण के स्टैटिक एम्बेड का इस्तेमाल करते हैं. जैसे, किसी वाक्य में किसी शब्द के लिए word2vec वेक्टर. साथ ही, इसे ऐसे फ़ंक्शन की मदद से बदल देते हैं जिसमें आस-पास के शब्दों की जानकारी शामिल होती है. इससे कॉन्टेक्स्ट के हिसाब से एम्बेड किया जाता है.

संदर्भ के हिसाब से एम्बेड करने के बारे में जानकारी के लिए यहां क्लिक करें

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

ऊपर बताए गए मॉडल, भाषा मॉडल हैं. हालांकि, कॉन्टेक्स्ट के हिसाब से एम्बेड करने की सुविधा, इमेज जैसे अन्य जनरेटिव टास्क में काम की होती है. घोड़े की फ़ोटो में पिक्सल की RGB वैल्यू को एम्बेड करने पर, मॉडल को ज़्यादा जानकारी मिलती है. ऐसा तब होता है, जब हर पिक्सल को दिखाने वाले पोज़िशनल मैट्रिक और आस-पास के पिक्सल के कुछ एन्कोडिंग को जोड़ा जाता है. इससे, सिर्फ़ RGB वैल्यू के ओरिजनल स्टैटिक एम्बेड की तुलना में, संदर्भ के हिसाब से एम्बेड किए गए डेटा की जानकारी मिलती है.