आपकी कुछ सुविधाएं, अलग-अलग वैल्यू हो सकती हैं जो ऑर्डर के क्रम के मुताबिक नहीं हैं. उदाहरण के लिए, कुत्तों की नस्ल, शब्दों या पिन कोड. इन सुविधाओं को कैटगरी के तौर पर जाना जाता है. हर वैल्यू को कैटगरी कहा जाता है. आप स्ट्रिंग या यहां तक कि संख्याओं के रूप में कैटगरी वैल्यू दिखा सकते हैं, लेकिन आप इन संख्याओं की तुलना नहीं कर पाएंगे या उन्हें एक-दूसरे से घटा नहीं पाएंगे.
अक्सर, आपको उन सुविधाओं को दिखाना चाहिए जिनमें संख्या के डेटा के बजाय, कैटगरी डेटा के तौर पर इंटेजर की वैल्यू होती हैं. उदाहरण के लिए, एक ऐसी पिन कोड सुविधा पर विचार करें जिसमें वैल्यू पूरी संख्या हैं. अगर आपने गलती से इस सुविधा को संख्या के तौर पर दिखा दिया है, तो आप मॉडल को अलग-अलग पिन कोड के बीच संख्या वाले संबंध का पता लगाने के लिए कह रहे हैं. उदाहरण के लिए, आप मॉडल से उम्मीद कर रहे हैं कि पिन कोड 20004, पिन कोड के तौर पर दोगुना (या आधा) है. पिन कोड को कैटगरी डेटा के तौर पर दिखाकर, आप मॉडल को हर एक पिन कोड के लिए अलग-अलग सिग्नल ढूंढ सकते हैं.
अगर डेटा फ़ील्ड की कैटगरी की संख्या कम है, जैसे कि हफ़्ते का दिन या रंगों की सीमित पैलेट, तो आप हर कैटगरी के लिए एक खास सुविधा बना सकते हैं. उदाहरण के लिए:
पहली इमेज: हर कैटगरी के लिए एक खास सुविधा.
इसके बाद, कोई मॉडल हर रंग के लिए अलग-अलग वज़न जान सकता है. उदाहरण के लिए, हो सकता है कि मॉडल को पता चले कि लाल रंग की कार, ग्रीन कार की तुलना में ज़्यादा महंगी हैं.
इसके बाद, सुविधाओं को इंडेक्स किया जा सकता है.
दूसरी इमेज: इंडेक्स की गई सुविधाएं.
इस तरह की मैपिंग को शब्दावली कहा जाता है.
शब्द ज्ञान
शब्दावली में, हर वैल्यू एक खास सुविधा दिखाती है.
Index Number | Category |
---|---|
0 | Red |
1 | Orange |
2 | Blue |
... | ... |
मॉडल, स्ट्रिंग से इंडेक्स को खोजता है. ऐसा करके, सुविधा वेक्टर में 1.0 और उससे जुड़े सभी स्लॉट में 0.0 को असाइन किया जाता है.
तीसरी इमेज: वेक्टर को दिखाने के लिए, कैटगरी को मैप करने के लिए एंड-टू-एंड प्रोसेस.
कम जानकारी दिखाने के बारे में जानकारी
उदाहरण के लिए, अगर आपकी कैटगरी हफ़्ते के दिन हैं, तो आप शुक्रवार को सुविधा वेक्टर [0, 0, 0, 0, 1, 0, 0] के साथ दिखा सकते हैं. हालांकि, एमएल सिस्टम के ज़्यादातर लागू होने से, इस वेक्टर को मेमोरी में दिलचस्प तरीके से दिखाया जाएगा. यह आम तौर पर दिखने वाली वैल्यू और उनके इंडेक्स की सूची है, जैसे कि वैल्यू के लिए 1.0 और इंडेक्स के लिए [4]. यह आपको 0 सेकंड की बड़ी मात्रा में कम मेमोरी खर्च करने और ज़्यादा गुणा वाली मैट्रिक्स गुणा करने की सुविधा देता है. बुनियादी गणित के मामले में, [4], [0, 0, 0, 1, 0, 0] के बराबर है.
Voice के बाहर (OOV)
जैसे अंकों वाले डेटा में बाहरी चीज़ें शामिल होती हैं, वैसे ही कैटगरी वाले डेटा में भी ऐसा होता है. उदाहरण के लिए, किसी डेटा सेट पर विचार करें जिसमें कारों के बारे में जानकारी हो. इस डेटा सेट में एक सुविधा कार के रंग की हो सकती है. मान लें कि कार के सामान्य रंग (काला, सफ़ेद, स्लेटी वगैरह) इस डेटा सेट में अच्छी तरह से दिखाए जाते हैं और आप उनमें से हर रंग को एक कैटगरी में बनाते हैं, ताकि आप जान सकें कि इन अलग-अलग रंगों का आपके मान पर क्या असर पड़ता है. हालांकि, मान लें कि इस डेटा सेट में कम दिखने वाली रंगों वाली कारों की संख्या कम है (मॉव, प्यूस, एवोकाडो). इनमें से हर रंग को एक अलग कैटगरी देने के बजाय, आप उन्हें आउट ऑफ़ वोक (OOV) नाम की किसी कैच-ऑल कैटगरी में मिला सकते हैं. OOV का इस्तेमाल करने पर, सिस्टम उन रंगों में से हर एक के लिए प्रशिक्षण लेने में समय बर्बाद नहीं करता है.
हैशिंग
दूसरा विकल्प हर स्ट्रिंग (कैटगरी) को आपके उपलब्ध इंडेक्स स्पेस में हैश करना है. हैशिंग की वजह से अक्सर टकराव होता है. हालांकि, आपको एक ही इंडेक्स में मौजूद कैटगरी के कुछ शेयर किए गए मॉडल के बारे में पता रहता है.
अहम शब्दों के लिए, हैशिंग की वजह से, किसी शब्दावली को चुनना मुश्किल होता है. दूसरी ओर, हैशिंग के लिए आपको किसी शब्दावली को इकट्ठा करने की ज़रूरत नहीं है. जो सुविधा समय के साथ बहुत ज़्यादा बदलती है, तो यह फ़ायदेमंद होता है.
चौथी इमेज: किसी शब्द को आइटम के हिसाब से मैप करना.
हैशिंग और शब्दावली का हाइब्रिड
आप हाइब्रिड तरीके अपना सकते हैं और हैशिंग को किसी शब्दावली के साथ मिला सकते हैं. अपने डेटा में सबसे अहम कैटगरी के लिए ग्लॉसरी का इस्तेमाल करें, लेकिन OOV बकेट को कई OOV बकेट में बदलें और हैशिंग का इस्तेमाल करके कैटगरी को बकेट में असाइन करें.
हैश बकेट में मौजूद कैटगरी को एक इंडेक्स शेयर करना होगा और मॉडल से अच्छा अनुमान नहीं लगाया जा सकेगा. हालांकि, हमने अपनी शब्दावली से बाहर की कैटगरी के बारे में जानने के लिए कुछ मेमोरी असाइन की है.
चित्र 5: शब्दावली और हैशिंग को जोड़ने वाला हाइब्रिड अप्रोच.
एम्बेड करने की जानकारी के बारे में नोट
मशीन लर्निंग क्रैश कोर्स को याद करें जिसमें बताया गया है कि एम्बेड करना, एक बेहतरीन सुविधा है, जो लगातार काम करने वाली सुविधा के तौर पर दिखाई जाती है. डीप मॉडल, अक्सर इंडेक्स को इंडेक्स से बदलकर एम्बेड करते हैं.
चित्र 6: एम्बेड करने के माध्यम से पार्स करने की सुविधा वेक्टर
हमने जिन दूसरे बदलावों की चर्चा की थी उन्हें डिस्क पर सेव किया जा सकता है. हालांकि, एम्बेड करने की प्रोसेस अलग है. एम्बेडिंग को ट्रेनिंग दी जाती है. इसलिए, यह आम तौर पर डेटा में बदलाव नहीं होती, बल्कि मॉडल का हिस्सा होती है. उन्हें दूसरे मॉडल के महत्व के साथ ट्रेनिंग दी जाती है. साथ ही, वे मोटाई की एक परत के बराबर होते हैं.
पहले से जोड़ी गई एम्बेडिंग का क्या होगा? पहले से जुड़ी हुई ट्रेनिंग में आम तौर पर बदलाव किया जा सकता है, इसलिए वे अब भी मॉडल का हिस्सा हैं.