केरस एम्बेडिंग लेयर में एंबेडिंग लेयर को कैसे प्रशिक्षित किया जाता है? (टेंसरफ़्लो बैकएंड का उपयोग करते हुए कहते हैं, इसका अर्थ शब्द 2vec, दस्ताने या फास्टटेक्स के समान है)
मान लें कि हम एक प्रीटेंडेड एम्बेडिंग का उपयोग नहीं करते हैं।
केरस एम्बेडिंग लेयर में एंबेडिंग लेयर को कैसे प्रशिक्षित किया जाता है? (टेंसरफ़्लो बैकएंड का उपयोग करते हुए कहते हैं, इसका अर्थ शब्द 2vec, दस्ताने या फास्टटेक्स के समान है)
मान लें कि हम एक प्रीटेंडेड एम्बेडिंग का उपयोग नहीं करते हैं।
जवाबों:
कैरस में एंबेडिंग लेयर्स को आपके नेटवर्क आर्किटेक्चर की किसी भी अन्य लेयर की तरह ही प्रशिक्षित किया जाता है: वे चयनित ऑप्टिमाइज़ेशन विधि का उपयोग करके नुकसान फ़ंक्शन को कम करने के लिए तैयार हैं। अन्य परतों के साथ प्रमुख अंतर यह है कि उनका आउटपुट इनपुट का गणितीय कार्य नहीं है। इसके बजाय परत के इनपुट का उपयोग एम्बेडिंग वैक्टर [1] के साथ एक तालिका को अनुक्रमित करने के लिए किया जाता है। हालांकि, अंतर्निहित स्वत: भेदभाव इंजन को इन वैक्टरों को अनुकूलित करने की कोई समस्या नहीं है ताकि वे नुकसान को कम कर सकें ...
इसलिए, आप यह नहीं कह सकते कि केरस में एंबेडिंग लेयर वर्ड 2vec [2] के समान है। याद रखें कि word2vec एक बहुत विशिष्ट नेटवर्क सेटअप को संदर्भित करता है जो एक एम्बेडिंग सीखने की कोशिश करता है जो शब्दों के शब्दार्थ को पकड़ता है। केरस की एम्बेडिंग परत के साथ, आप केवल हानि फ़ंक्शन को कम करने की कोशिश कर रहे हैं, इसलिए यदि उदाहरण के लिए आप एक भावुक वर्गीकरण समस्या के साथ काम कर रहे हैं, तो सीखा हुआ एम्बेडिंग शायद पूर्ण शब्द शब्दार्थ पर कब्जा नहीं करेगा, लेकिन सिर्फ उनकी भावनात्मक ध्रुवीयता ...
उदाहरण के लिए, [3] से लिया गया निम्न चित्र क्लिकबैट हेडलाइंस (बाएं) और पूर्व-प्रशिक्षित word2vec एम्बेडिंग (दाएं) का पता लगाने के लिए डिज़ाइन किए गए पर्यवेक्षित नेटवर्क के भाग के रूप में खरोंच से प्रशिक्षित एक केरस के साथ तीन वाक्यों के एम्बेडिंग को दर्शाता है । जैसा कि आप देख सकते हैं, word2vec एम्बेडिंग वाक्यांशों b) और c) के बीच शब्दार्थ समानता को दर्शाते हैं। इसके विपरीत, केरस की एंबेडिंग लेयर द्वारा उत्पन्न एम्बेडिंग वर्गीकरण के लिए उपयोगी हो सकती है, लेकिन b) और c) की शब्दार्थ समानता को कैप्चर नहीं करती है।
यह बताता है कि जब आपके पास सीमित मात्रा में प्रशिक्षण के नमूने होते हैं, तो शब्द 2vec वज़न के साथ अपनी एम्बेडिंग परत को प्रारंभ करना एक अच्छा विचार हो सकता है , इसलिए कम से कम आपका मॉडल मानता है कि "आल्प्स" और "हिमालय" समान चीजें हैं, भले ही वे डॉन हों टी दोनों आपके प्रशिक्षण डेटासेट के वाक्यों में होते हैं।
[१] केर 'एंबेडिंग' की परत कैसे काम करती है?
[२] https://www.tensorflow.org/tutorials/word2vec
[३] https://link.springer.com/article/10.1007/s10489-017-1109-7
नोट: वास्तव में, छवि एंबेडिंग लेयर के बाद परत की सक्रियता को दिखाती है, लेकिन इस उदाहरण के प्रयोजन के लिए यह कोई फर्क नहीं पड़ता ... [3] में अधिक विवरण देखें
एम्बेडिंग परत असतत और विरल 1-हॉट-वेक्टर से एक निरंतर और घने अव्यक्त स्थान में एक प्रक्षेपण है। यह (n, m) का एक मैट्रिक्स है जहाँ n आपकी शब्दावली का आकार है और n आपका इच्छित अव्यक्त आयाम है। केवल व्यवहार में, वास्तव में मैट्रिक्स गुणा करने की कोई आवश्यकता नहीं है, और इसके बजाय आप सूचकांक का उपयोग करके गणना पर बचत कर सकते हैं। तो व्यवहार में, यह एक परत है जो सकारात्मक पूर्णांक (शब्दों के अनुरूप सूचक) को निश्चित आकार के घने वैक्टर (एम्बेडिंग वैक्टर) में मैप करता है।
आप इसे Skip-Gram या CBOW का उपयोग करके Word2Vec एम्बेडिंग बनाने के लिए प्रशिक्षित कर सकते हैं। या आप इसे अपने विशिष्ट कार्य पर प्रशिक्षित कर सकते हैं ताकि हाथ में आपके विशिष्ट कार्य के लिए एक एम्बेडिंग अनुकूल हो सके। आप पहले से प्रशिक्षित एम्बेडिंग (जैसे Word2Vec, GloVe आदि) को भी लोड कर सकते हैं और फिर अपनी विशिष्ट समस्या (ट्रांसफर लर्निंग का एक रूप) पर प्रशिक्षण जारी रख सकते हैं।