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

यह सेक्शन, एम्बेड करने की दो आम तकनीकों पर फ़ोकस करता है:

  • डाइमेंशन में कमी
  • बड़े न्यूरल नेट मॉडल से एम्बेडिंग निकालना

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

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

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

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

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

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

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

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

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

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

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

किसी शब्द को एम्बेड करने के लिए ट्रेनिंग देना

पिछले सेक्शन में, आपने word2vec एम्बेडिंग स्पेस में, शब्दों के बीच के सेमेटिक संबंधों को विज़ुअलाइज़ किया था.

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

इस वीडियो में, किसी आसान मॉडल का इस्तेमाल करके, नेटवर्क को ट्रेनिंग देने की प्रोसेस के तहत, वर्ड एम्बेडिंग बनाने का एक और तरीका बताया गया है:

स्टैटिक बनाम संदर्भ के हिसाब से एम्बेड करना

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

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