एंबेड करना

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

मॉडल को ट्रेन करने के लिए, आपने खाने की 5,000 लोकप्रिय चीज़ों का एक डेटासेट तैयार किया. इनमें सूप, हॉट डॉग, सलाद, पिज़्ज़ा, और शवर्मा शामिल हैं.

इमेज 1. यहां, खाने की पांच चीज़ों की इमेज बनी हैं. सबसे ऊपर बाईं ओर से
       घड़ी की दिशा में: सूप, हॉट डॉग, सलाद, पिज़्ज़ा, और शवर्मा.
इमेज 1. खाने की चीज़ों की जानकारी वाले डेटासेट में शामिल, सैंपल के तौर पर दी गई खाने की कुछ चीज़ें.

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

इमेज 2. सबसे ऊपर: सूप को वन-हॉट तरीके से एन्कोड करके दिखाया गया है.
       छह बॉक्स के ऊपर, यह वेक्टर [1, 0, 0, 0, ..., 0] दिया है.
       बाईं से दाईं ओर दिए हर बॉक्स के ऊपर,
       वेक्टर वाला एक अंक दिया है. बाईं से दाईं ओर दिए बॉक्स में
       ये इमेज हैं:  सूप, हॉट डॉग, सलाद, पिज़्ज़ा, [empty],
       और शवर्मा. बीच में: हॉट डॉग को वन-हॉट तरीके से एन्कोड करके दिखाया गया है.
       छह बॉक्स के ऊपर, यह वेक्टर [0, 1, 0, 0, ..., 0] दिया है.
       बाईं से दाईं ओर दिए हर बॉक्स के ऊपर, वेक्टर वाला एक अंक दिया है. बाईं से दाईं ओर दिए बॉक्स में
       वही इमेज हैं जिनका इस्तेमाल सूप को दिखाने के लिए
       किया गया है. सबसे नीचे: शवर्मा को वन-हॉट तरीके से एन्कोड करके दिखाया गया है. छह बॉक्स के ऊपर
       यह वेक्टर [0, 0, 0, 0, ..., 1] दिया है. बाईं से दाईं ओर दिए हर बॉक्स के ऊपर,
       वेक्टर वाला एक अंक दिया है. बाईं से दाईं ओर दिए बॉक्स में
       वही इमेज हैं जिनका इस्तेमाल सूप और हॉट डॉग को दिखाने के लिए
       किया गया है.
इमेज 2. सूप, हॉट डॉग, और शवर्मा को वन-हॉट तरीके से एन्कोड करके दिखाया गया है. वन-हॉट तरीके से एन्कोड किए गए हर वेक्टर की लंबाई 5,000 होती है. ऐसा इसलिए, क्योंकि डेटासेट में मौजूद हर मेन्यू आइटम को एक वैल्यू दी जाती है. डायग्राम में मौजूद इलिप्सिस उन 4,995 वैल्यू को दिखाता है जो इसमें नहीं दी गई हैं.

स्पार्स वेक्टर के तौर डेटा को दिखाने की वजह से आने वाली दिक्कतें

वन-हॉट तरीके से एन्कोड करके इस डेटा को दिखाया गया है. हालांकि, डेटा को दिखाने के इस तरीके में कई कमियां होती हैं.

  • वैल्यू की संख्या. इनपुट वेक्टर बड़े होने की वजह से, न्यूरल नेटवर्क को बहुत ज़्यादा वैल्यू पर ट्रेन करना पड़ता है. अगर वन-हॉट तरीके से एन्कोड की गई M एंट्री हैं और इनपुट के बाद, नेटवर्क की पहली लेयर में N नोड हैं, तो मॉडल उस लेयर के लिए MxN वैल्यू पर ट्रेन होता है.
  • डेटा पॉइंट की संख्या. आपके मॉडल में जितनी ज़्यादा वैल्यू होती हैं, आपको उतने ज़्यादा डेटा के लिए उसे ट्रेन करना पड़ता है.
  • कंप्यूटेशन की मात्रा. जितनी ज़्यादा वैल्यू होती हैं, मॉडल को ट्रेन और इस्तेमाल करने के लिए उतनी ज़्यादा कंप्यूटेशन की ज़रूरत पड़ती है. इसकी वजह से, आपको हार्डवेयर की क्षमता बढ़ानी पड़ती है.
  • लगने वाली मेमोरी की मात्रा. मॉडल में जितनी ज़्यादा वैल्यू होती हैं, उसे ट्रेन और इस्तेमाल के लिए तैयार करने में उतनी ज़्यादा मौमरी की ज़रूरत पड़ती है. बेहतर तरीके से इसे बढ़ाना मुश्किल होता है.
  • डिवाइस पर मशीन लर्निंग (ओडीएमएल) के काम करने में दिक्कतें आना. अगर आपको अपने एमएल मॉडल को, क्लाउड पर उपलब्ध कराने की बजाय उपयोगकर्ताओं की डिवाइसों पर चलना है, तो आपको इसका साइज़ कम रखना होगा. इसके लिए, आपको वैल्यू की संख्या घटानी होंगी.

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