फीचर हैशिंग, जिसे हैशिंग ट्रिक के रूप में भी जाना जाता है, मशीन लर्निंग में उच्च-आयामी, स्पार्स श्रेणीबद्ध फीचर्स को एक कॉम्पैक्ट, निश्चित-आकार के वेक्टर प्रतिनिधित्व में बदलने की एक तकनीक है। यह प्रत्येक फीचर नाम (या टोकन) पर एक हैश फ़ंक्शन लागू करता है ताकि आउटपुट वेक्टर में उसका इंडेक्स निर्धारित किया जा सके, और वैकल्पिक रूप से योगदान का चिह्न निर्धारित करने के लिए एक दूसरा हैश फ़ंक्शन भी लागू करता है। यह विधि एक अलग फीचर डिक्शनरी बनाए रखने की आवश्यकता से बचती है, जिससे मेमोरी और कम्प्यूटेशनल ओवरहेड कम होता है, लेकिन हैश टकराव पेश करने की कीमत पर, जो मॉडल प्रदर्शन को थोड़ा खराब कर सकते हैं।
यह तकनीक विशेष रूप से बड़े पैमाने पर सीखने के कार्यों के लिए उपयोगी है, जैसे ऑनलाइन विज्ञापन, टेक्स्ट वर्गीकरण, और अनुशंसा प्रणाली, जहां अद्वितीय फीचर्स की संख्या लाखों या अरबों में हो सकती है। फीचर्स को, मान लीजिए, 10,000 से 1 मिलियन आयामों के स्थान में मैप करके, फीचर हैशिंग रैखिक मॉडल या तंत्रिका नेटवर्क के साथ कुशल प्रशिक्षण सक्षम बनाता है, अक्सर सटीकता में नगण्य हानि के साथ।
इतिहास और उत्पत्ति
फीचर हैशिंग की अवधारणा की जड़ें 2000 के दशक की शुरुआत में हैं, जिसमें प्राकृतिक भाषा प्रसंस्करण और कर्नेल विधियों में स्वतंत्र विकास शामिल हैं। सबसे पहले प्रकाशित उपयोगों में से एक जॉन लैंगफोर्ड और सहकर्मियों द्वारा 2007 में किया गया था, जिन्होंने इसे स्पैम पहचान के लिए बड़े पैमाने पर सीखने में लागू किया। इस तकनीक को 2009 में किलियन वेनबर्गर और सहकर्मियों द्वारा "फीचर हैशिंग फॉर लार्ज स्केल मल्टीटास्क लर्निंग" पेपर के बाद व्यापक मान्यता मिली, जिसने दृष्टिकोण को औपचारिक रूप दिया और कई कार्यों पर इसकी प्रभावशीलता प्रदर्शित की।
उससे पहले, समान विचार कर्नेल सन्निकटन के लिए हैशिंग के संदर्भ में दिखाई दिए, जैसे कि 2007 में अली रहीमी और बेंजामिन रेख्ट द्वारा यादृच्छिक फीचर्स पर काम। फीचर हैशिंग वोवपाल वैबिट लर्निंग सिस्टम में उपयोग की जाने वाली "हैशिंग ट्रिक" से भी निकटता से संबंधित है, जिसे लैंगफोर्ड ने याहू! रिसर्च में विकसित किया था।
यह कैसे काम करता है
फीचर हैशिंग दो मुख्य चरणों में काम करता है। पहले, प्रत्येक फीचर नाम (जैसे, एक शब्द या एक श्रेणीबद्ध मान) को एक हैश फ़ंक्शन के माध्यम से पारित किया जाता है, आमतौर पर एक 32-बिट या 64-बिट हैश, एक पूर्णांक उत्पन्न करने के लिए। उस पूर्णांक को फिर वांछित आउटपुट आयाम के मापांक से घटाया जाता है, जिससे वह इंडेक्स मिलता है जहां फीचर का मान (अक्सर उपस्थिति के लिए 1) जमा होता है। टकरावों से पूर्वाग्रह कम करने के लिए, एक दूसरा हैश फ़ंक्शन योगदान का चिह्न (+1 या -1) निर्धारित करता है, ताकि टकराव औसतन रद्द हो जाएं।
उदाहरण के लिए, टेक्स्ट वर्गीकरण में, एक दस्तावेज़ में प्रत्येक शब्द को, मान लीजिए, 100,000 आकार के वेक्टर में एक इंडेक्स पर हैश किया जाता है। फिर वेक्टर का उपयोग एक रैखिक क्लासिफायर या तंत्रिका नेटवर्क के लिए इनपुट के रूप में किया जाता है। क्योंकि हैश फ़ंक्शन नियतात्मक है, वही फीचर हमेशा उसी इंडेक्स पर मैप होता है, जिससे प्रशिक्षण और अनुमान में स्थिरता सुनिश्चित होती है।
मुख्य लाभ यह है कि कोई फीचर डिक्शनरी संग्रहीत करने की आवश्यकता नहीं होती है, जो तब महत्वपूर्ण है जब फीचर स्थान मेमोरी में फिट होने के लिए बहुत बड़ा हो। हालांकि, टकराव हो सकते हैं, जहां विभिन्न फीचर्स एक ही इंडेक्स पर मैप होते हैं, जिससे संभावित रूप से हस्तक्षेप हो सकता है। यदि आउटपुट आयाम फीचर्स की संख्या के सापेक्ष पर्याप्त बड़ा है तो प्रभाव आमतौर पर छोटा होता है।
मशीन लर्निंग में अनुप्रयोग
फीचर हैशिंग बड़े पैमाने पर मशीन लर्निंग सिस्टम में व्यापक रूप से उपयोग किया जाता है, विशेष रूप से ऑनलाइन लर्निंग और वितरित कंप्यूटिंग के संदर्भ में। यह वोवपाल वैबिट लाइब्रेरी का एक मुख्य घटक है, जिसका उपयोग विज्ञापन में क्लिक-थ्रू दर भविष्यवाणी के लिए किया जाता है। यह प्राकृतिक भाषा प्रसंस्करण में बैग-ऑफ-वर्ड्स प्रतिनिधित्व के लिए भी नियोजित है, जहां प्रत्येक दस्तावेज़ को एक हैश किए गए वेक्टर में परिवर्तित किया जाता है, जिससे विशाल टेक्स्ट कॉर्पोरा पर क्लासिफायर का कुशल प्रशिक्षण संभव होता है।
अनुशंसा प्रणालियों में, फीचर हैशिंग उपयोगकर्ता और आइटम आईडी, साथ ही प्रासंगिक फीचर्स को एक कॉम्पैक्ट प्रतिनिधित्व में एन्कोड कर सकता है, जिससे मॉडल स्पष्ट लुकअप तालिकाओं के बिना लाखों उपयोगकर्ताओं और आइटमों को संभाल सकते हैं। यह ग्रेडिएंट बूस्टिंग मशीनों, जैसे XGBoost और LightGBM, के लिए फीचर इंजीनियरिंग में भी उपयोग किया जाता है, जहां श्रेणीबद्ध फीचर्स को मेमोरी उपयोग कम करने के लिए अक्सर हैश किया जाता है।
हाल ही में, फीचर हैशिंग को एम्बेडिंग परतों के लिए डीप लर्निंग में लागू किया गया है, जहां यह सीखे गए एम्बेडिंग के लिए एक निश्चित-आकार के विकल्प के रूप में कार्य कर सकता है, विशेष रूप से दुर्लभ या अनदेखी श्रेणियों के लिए। इस दृष्टिकोण को कभी-कभी "हैशिंग एम्बेडिंग" कहा जाता है और यह ऑनलाइन लर्निंग परिदृश्यों में फायदेमंद हो सकता है जहां नए फीचर्स अक्सर दिखाई देते हैं।
लाभ और सीमाएं
फीचर हैशिंग का प्राथमिक लाभ मेमोरी दक्षता है। चूंकि कोई डिक्शनरी आवश्यक नहीं है, मॉडल को असीमित संख्या में फीचर्स वाले डेटा पर प्रशिक्षित किया जा सकता है, जब तक हैश आउटपुट आयाम निश्चित है। यह विशेष रूप से स्ट्रीमिंग या वितरित सेटिंग्स में उपयोगी है, जहां फीचर्स चलते-फिरते खोजे जा सकते हैं।
एक और लाभ सरलता है: कार्यान्वयन सीधा है और जटिल प्रीप्रोसेसिंग की आवश्यकता नहीं होती है। यह आसान समानांतरीकरण भी सक्षम बनाता है, क्योंकि प्रत्येक फीचर को स्वतंत्र रूप से हैश किया जा सकता है।
हालांकि, फीचर हैशिंग की सीमाएं हैं। हैश टकराव मॉडल सटीकता को खराब कर सकते हैं, खासकर जब आउटपुट आयाम बहुत छोटा हो। यह तकनीक व्याख्यात्मकता भी खो देती है, क्योंकि एक हैश किए गए इंडेक्स को मूल फीचर नाम पर वापस मैप करना संभव नहीं है, बिना एक अलग मैपिंग संग्रहीत किए, जो उद्देश्य को विफल कर देता है। इसके अतिरिक्त, हैश फ़ंक्शन और आउटपुट आयाम का चुनाव ट्यूनिंग की आवश्यकता होती है, और टकराव दर और मेमोरी उपयोग के बीच एक व्यापार-बंद होता है।
वैकल्पिक विधियों के साथ तुलना
फीचर हैशिंग की तुलना अक्सर अन्य आयामीता कमी तकनीकों, जैसे वन-हॉट एन्कोडिंग, लेबल एन्कोडिंग, और सीखे गए एम्बेडिंग के साथ की जाती है। वन-हॉट एन्कोडिंग सीधा है लेकिन एक डिक्शनरी की आवश्यकता होती है और उच्च-कार्डिनैलिटी फीचर्स के लिए अत्यधिक मेमोरी-गहन हो सकती है। लेबल एन्कोडिंग पूर्णांक आईडी प्रदान करती है लेकिन एक मनमाना क्रम लागू करती है, जो श्रेणीबद्ध डेटा के लिए भ्रामक हो सकता है। सीखे गए एम्बेडिंग, जैसे कि तंत्रिका नेटवर्क में उपयोग किए जाते हैं, शब्दार्थ संबंधों को पकड़ सकते हैं लेकिन प्रशिक्षण और एक निश्चित शब्दावली की आवश्यकता होती है।
फीचर हैशिंग इन दृष्टिकोणों के बीच बैठता है: यह वन-हॉट एन्कोडिंग की तुलना में अधिक मेमोरी-कुशल है, लेबल एन्कोडिंग की ऑर्डरिंग समस्या से बचता है, और प्रशिक्षण या शब्दावली की आवश्यकता नहीं होती है। हालांकि, यह फीचर्स के बीच संबंधों को नहीं पकड़ता है, जो एम्बेडिंग कर सकते हैं।
व्यवहार में, फीचर हैशिंग अक्सर एक बेसलाइन या फॉलबैक के रूप में उपयोग किया जाता है जब अन्य विधियां पैमाने के कारण अव्यवहार्य होती हैं। इसे उत्पादन प्रणालियों में दक्षता में सुधार के लिए अन्य तकनीकों, जैसे डेटा ऑगमेंटेशन या मॉडल प्रूनिंग के साथ भी जोड़ा जाता है।
हालिया विकास और अनुसंधान
फीचर हैशिंग पर अनुसंधान जारी है, विशेष रूप से डीप लर्निंग और बड़े पैमाने पर सिस्टम के संदर्भ में। अध्ययनों ने मॉडल प्रदर्शन पर हैश टकरावों के प्रभाव का विश्लेषण किया है, जिससे आउटपुट आयाम चुनने के लिए दिशानिर्देश सामने आए हैं। कुछ कार्यों ने सीखे गए हैश फ़ंक्शन प्रस्तावित किए हैं जो डेटा वितरण के अनुकूल होते हैं, संभावित रूप से टकरावों को कम करते हैं।
बड़े भाषा मॉडल के युग में, फीचर हैशिंग कम प्रमुख है क्योंकि ये मॉडल आमतौर पर टोकनाइजेशन और सीखे गए एम्बेडिंग का उपयोग करते हैं। हालांकि, यह टेबुलर डेटा में श्रेणीबद्ध फीचर्स को संभालने और मशीन लर्निंग पाइपलाइनों में कुशल फीचर इंजीनियरिंग के लिए प्रासंगिक बना हुआ है।
हालिया कार्य ने फेडरेटेड लर्निंग और गोपनीयता-संरक्षण सेटिंग्स में फीचर हैशिंग के उपयोग का भी पता लगाया है, जहां हैश फीचर अस्पष्टता के एक रूप के रूप में कार्य कर सकता है। इसके अतिरिक्त, AWS ट्रेनियम और Google Cloud TPUs जैसे हार्डवेयर त्वरक फीचर हैशिंग द्वारा प्रदान किए गए कम मेमोरी फुटप्रिंट से लाभ उठा सकते हैं।
कुल मिलाकर, फीचर हैशिंग एक परिपक्व तकनीक है जो बड़े पैमाने पर और संसाधन-बाधित वातावरणों में नए अनुप्रयोगों को खोजना जारी रखती है।