टेन्सरफ़्लो डिसीज़न फ़ॉरेस्ट मॉडल के साथ टेक्स्ट का उपभोग करने के तरीके

यह एक दस्तावेज़ीकरण मार्कडाउन पृष्ठ है। अधिक जानकारी के लिए, मार्कडाउन रेफरेंस (गो/डॉक्यूमेंटेशन-रेफरेंस) और डॉक्यूमेंटेशन स्टाइल गाइड (गो/डॉक्यूमेंटेशन-स्टाइल) देखें।

पृष्ठभूमि

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

निम्नलिखित अनुभागों में, हम इन सुविधाओं के साथ एक डेटासेट का उल्लेख करेंगे, और मान लेंगे कि हम भविष्यवाणी कर रहे हैं कि कोई उपयोगकर्ता एक विशिष्ट उत्पाद खरीदने जा रहा है या नहीं:

विशेषता उपयोगकर्ता पहचान पूर्व खरीद उत्पाद शीर्षक उत्पाद वर्णन
उदाहरण डेटा 1234 ["टीवी", "वैक्यूम"] "वाईफ़ाई राउटर" "यह राउटर है..."


इस उदाहरण में, "पूर्व खरीदारी" एक विरल पाठ सुविधा (या श्रेणीबद्ध वस्तुओं का एक सेट) है। "उत्पाद शीर्षक" भी है, लेकिन इस उदाहरण में इसे चिह्नित नहीं किया गया है। "उत्पाद विवरण" एक प्राकृतिक भाषा विशेषता है, जिसमें अन्य विशेषताओं की तुलना में भिन्न गुण हैं, क्योंकि हम उम्मीद करते हैं कि शब्दावली बड़ी (या असीमित) होगी, शब्द-क्रम मायने रखेगा, और अन्य अर्थपूर्ण और शाब्दिक गुण अंतर्निहित होंगे। भाषा। जिन रणनीतियों का हम नीचे वर्णन करते हैं वे इन सभी सुविधाओं के लिए उपयुक्त हैं, लेकिन प्रत्येक के लिए अलग-अलग ट्रेडऑफ़ होंगे।

त्वरित संदर्भ

सबसे अच्छा समाधान, यदि प्रशिक्षण और अनुमान लागत चिंता का विषय नहीं है, तो प्रत्येक पाठ सुविधा के लिए श्रेणीबद्ध-सेट और पूर्व-प्रशिक्षित एम्बेडिंग दोनों का उपयोग करना है, क्योंकि उनमें पूरक ताकत और कमजोरियां हैं। हम इसकी अनुशंसा करते हैं जब तक कि नीचे उल्लिखित बाधाओं में से कोई एक मौजूद न हो।

अनुमान गति प्रशिक्षण की गति टोकन <> लेबल संबंधों को याद रखने की क्षमता सामान्यकरण
एकाधिक श्रेणियाँ सबसे तेज़ (++) सबसे तेज़ (++) सीमित सीमित (+)
बहु गरम तेज़ (+) तेज़ (अपेक्षाकृत छोटे शब्द आकार को मानते हुए) (++) अच्छा सीमित (+)
श्रेणीबद्ध-सेट सबसे तेज़ (+++) धीमा (+) श्रेष्ठ सीमित (++)
एम्बेडिंग सबसे धीमा (मैट्रिक्स गुणन की तरह गैर-तुच्छ एनकोडर ऑप्स मानते हुए) (+ से +++) सबसे तेज़ (शब्दावली आकार >> एम्बेडिंग आयाम मानते हुए) (+++) खराब अच्छा (++ से +++)

एन-ग्राम

एन-ग्राम (उदाहरण के लिए {"the", "cat", "is", "blue"} -> {"<start> the", "the cat", "cat is", "isblue", "blue < अंत>"}) कई मामलों में फायदेमंद हो सकता है, और स्थानीय शाब्दिक जानकारी प्राप्त कर सकता है। वे नीचे दी गई सभी विधियों में समर्थित हैं, लेकिन नाटकीय रूप से बड़े शब्दावली आकार की कीमत पर आते हैं, जो प्रशिक्षण लागत के कारण उन्हें अव्यावहारिक बना सकता है।

हतोत्साहित रणनीतियाँ

वन-हॉट/मल्टी-हॉट एन्कोडिंग/शब्दों का थैला

विरल पाठ को सघन करने के लिए वन-हॉट एन्कोडिंग एक क्लासिक रणनीति है। यहां हम एक विस्तार मानते हैं जहां एक विरल पाठ सुविधा को मल्टी-हॉट (सभी निहित टोकन के लिए 1s) या गिनती-आधारित वैश्वीकरण (शब्दावली में प्रत्येक टोकन के लिए गिनती) द्वारा दर्शाया जाता है।

उदाहरण के लिए, यदि शब्दावली 4 आइटम है, और ["टीवी", "वैक्यूम", "वाईफ़ाई", "राउटर"] जैसे अनुक्रमित है, तो सुविधा "पूर्व खरीदारी" एक सघन वेक्टर होगी <1, 1, 0, 0 >. यदि गिनती को ध्यान में रखा गया और सुविधा ["टीवी", "टीवी", "वैक्यूम"] थी, तो यह <2, 1, 0, 0> होगी।

पेशेवरों

  • चूँकि निर्णय वन विभाजन व्यक्तिगत विशेषताओं पर सीखे जाते हैं, यह प्रशिक्षण के समय श्रेणीबद्ध सेटों की तुलना में कम महंगा है।
  • पूर्व के विपरीत, किसी भी क्लिपिंग या पैडिंग की आवश्यकता नहीं है, और टोकन के उदाहरणों में समान शब्दार्थ हैं (यानी "टीवी" स्थिति की परवाह किए बिना विभाजन में स्थिर रहेगा)।

दोष

  • यह रणनीति अक्सर अत्यधिक असंतुलित और विरल विभाजन की ओर ले जाती है, जो डीएफ सीखने के एल्गोरिदम को अभिसरण करने में या तो धीमा कर सकती है या निम्नतर बना सकती है। यह है क्योंकि:
    • समान जानकारी को सीखने के लिए अधिक विभाजन की आवश्यकता होती है
    • अत्यधिक विरल वृक्षों का सामान्यीकरण संतुलित वृक्षों की तुलना में खराब होता है, जिसके परिणामस्वरूप आमतौर पर कम सटीक मॉडल प्राप्त होता है।
  • स्थितिगत जानकारी को ध्यान में नहीं रखता. इससे प्राकृतिक भाषा सुविधाओं के प्रदर्शन पर असर पड़ सकता है।
  • श्रेणीबद्ध डेटा पर संख्यात्मक विभाजन सीखना उप-इष्टतम है; श्रेणीबद्ध विभाजन खोजने के लिए अनुकूलन हैं जिनका यहां लाभ नहीं उठाया गया है।
  • प्रशिक्षण कम्प्यूटेशनल जटिलता शब्दावली वस्तुओं की संख्या के साथ रैखिक रूप से मापी जाती है (जिनमें से प्रत्येक को एक संख्यात्मक विशेषता के रूप में उपभोग किया जाएगा)। व्यवहार में, जब तक डेटासेट बहुत छोटा न हो (ऐसी स्थिति में बड़ी शब्दावली ओवरफिटिंग को प्रोत्साहित कर सकती है), इससे > 5k आइटम की शब्दावली को प्रशिक्षित करना बहुत धीमा हो जाता है।
  • उदाहरण के लिए, प्रशिक्षण मेमोरी खपत प्रति शब्दावली आइटम 1 बाइट (एक-हॉट के लिए) या 4 बाइट्स (गिनती के लिए) होगी, क्योंकि अनुक्रमण के समय, डेटा को विरल डेटा के घने संस्करण के रूप में संग्रहीत किया जाएगा। यह बड़ी शब्दावली और डेटासेट के लिए निषेधात्मक रूप से बड़ा हो सकता है।

एक निश्चित लंबाई के साथ एकाधिक श्रेणीबद्ध विशेषताएं

चूंकि श्रेणीबद्ध विशेषताओं को निर्णय वन एल्गोरिदम द्वारा कुशलतापूर्वक सीखा जा सकता है, विरल टोकन का उपभोग करने का एक प्राकृतिक तरीका पैड / क्लिप करना है जैसे कि प्रति उदाहरण इनपुट टोकन की एक निश्चित संख्या हो, और प्रत्येक टोकन स्थिति एक अलग और स्वतंत्र सुविधा है। ऊपर दिए गए उदाहरण में, यदि "पूर्व खरीदारी" में अधिकतम 5 टोकन हैं, तो हम 1-5 टोकन का प्रतिनिधित्व करने वाली सुविधाएं f1...f5 बना सकते हैं, और किसी भी टोकन > 5 को हटा सकते हैं, और उन उदाहरणों के लिए लापता मान जोड़ सकते हैं जहां <5 हैं।

पेशेवरों

  • यह प्रशिक्षण के लिए कारगर है.
  • यदि प्रति उदाहरण टोकन की संख्या में कम भिन्नता है, और टोकन स्वतंत्र हैं, तो इससे मॉडल की गुणवत्ता पर कोई असर नहीं पड़ेगा।
  • यह अन्य तरीकों की तुलना में अधिक स्वाभाविक रूप से अतिरिक्त शब्दार्थ (जैसे उदाहरण में खरीद आदेश) को पकड़ सकता है।

दोष

  • "लापता" गद्देदार टोकन पर शब्दार्थ जोड़ता है जो मॉडल के लिए शोर के रूप में काम करेगा। यह विशेष रूप से तब स्पष्ट किया जाएगा जब प्रति उदाहरण टोकन की संख्या में बड़ा अंतर हो, जो उदाहरण के लिए "उत्पाद विवरण" सुविधा के साथ हो सकता है।
  • सीखे गए पेड़ ऑर्डर देने के प्रति अत्यधिक संवेदनशील होंगे, अर्थात यदि विशेषता ["ए", "बी"] है तो भविष्यवाणी ["बी", "ए"] की भविष्यवाणी से भिन्न होगी, और यदि बाद वाला कभी नहीं देखा गया था डेटा में, मॉडल पूर्व से सामान्यीकरण करने में असमर्थ होगा। सामान्य तौर पर, स्थिति अपरिवर्तनीयता जानने के लिए बहुत अधिक डेटा की आवश्यकता होगी।
  • डिफ़ॉल्ट रूप से, प्रत्येक टोकन को एक अलग शब्दावली के साथ एक फीचर द्वारा दर्शाया जाएगा। भले ही आप कार्यान्वयन को प्रति फीचर शब्दावली वस्तुओं के समान सेट पर विचार करने के लिए बाध्य करते हैं, f1='TV', f2='TV' की तुलना में एक अलग शब्दावली आइटम होगा। इसका मतलब यह है कि एल्गोरिदम टोकन "टीवी" और लेबल के बीच संबंध सीखने में कम कुशल होगा - इसे प्रत्येक टोकन स्थिति के लिए अलग से सीखना होगा।

बेहतर रणनीतियाँ

श्रेणीबद्ध सेट

श्रेणीबद्ध सेट ( https://arxiv.org/pdf/2009.09991.pdf ) विरल पाठ के लिए TF-DFs डिफ़ॉल्ट सुविधा प्रतिनिधित्व हैं। एक श्रेणीबद्ध सेट प्रभावी रूप से शब्दों का एक थैला है, डुप्लिकेट और ऑर्डरिंग को अनदेखा करता है। उदाहरण के लिए, सुविधा "टीवी सबसे अच्छा है" को श्रेणीबद्ध सेट {"सर्वश्रेष्ठ", "है", "द", "टीवी} द्वारा दर्शाया जाएगा।

विभिन्न प्रकार के कार्यों (पेपर देखें) पर बेंचमार्क के अनुसार, मूल श्रेणीबद्ध सेट स्प्लिटर, आमतौर पर मल्टी-हॉट और निश्चित-लंबाई श्रेणीबद्ध विशेषताओं से बेहतर प्रदर्शन करता है। सिद्धांत रूप में, एक-हॉट एन्कोडेड सुविधाओं पर श्रेणीबद्ध सेट विभाजन और बूलियन विभाजन दोनों एक ही जानकारी सीख सकते हैं। हालाँकि, निम्नलिखित उदाहरण लें, जहाँ पेड़ निम्नलिखित फ़ंक्शन को सीखने का प्रयास कर रहा है:

if description contains “high” AND “speed” AND “gaming”:
  return True

इस मामले में, मूल श्रेणीबद्ध सेट स्प्लिटर 1 स्प्लिट सीखेगा, जहां {"हाई", "स्पीड", "गेमिंग"} => सच है।

एक हॉट प्रतिनिधित्व के लिए "हाई", "स्प्लिट" और "गेमिंग" पर 3 स्प्लिट्स की आवश्यकता होगी, और उन श्रेणियों के सभी संभावित वियोजनों के लिए उचित लीफ नोड्स खोजने की आवश्यकता होगी (यानी "हाई" और "स्पीड" नहीं)। व्यवहार में, वन-हॉट एन्कोडिंग अत्यधिक असंतुलित पेड़ों की ओर ले जाती है जिन्हें सर्वोत्तम प्रदर्शन करने वाले निर्णय वन शिक्षण एल्गोरिदम द्वारा कुशलता से अनुकूलित नहीं किया जा सकता है।

पेशेवरों

  • निर्णय वनों के लिए शब्दों की जानकारी सीखने में सर्वश्रेष्ठ।
  • सेवा करने के लिए अत्यधिक कुशल (क्विकस्कोरर के साथ परोसा जा सकता है, जो उप-माइक्रोसेकंड-प्रति-उदाहरण समय तक बड़े पेड़ों की सेवा कर सकता है)। सेवा समय की जटिलता प्रत्येक उदाहरण के श्रेणीबद्ध सेट में वस्तुओं की संख्या में रैखिक है, जो व्यवहार में शब्दावली के आकार से बहुत छोटी है।
  • प्रति फीचर एक ही शब्दावली को अनुकूलित करता है, इसलिए शब्दार्थ साझा किए जाते हैं।

दोष

  • एक श्रेणीबद्ध सेट को प्रशिक्षित करने की लागत num_examples * शब्दावली आकार के साथ विभाजित होती है, इसलिए वन-हॉट एल्गोरिदम के समान, व्यावहारिक सेटिंग्स में प्रशिक्षित शब्दावली का आकार काफी छोटा (एन हजार) हो सकता है। ध्यान दें कि लालची एल्गोरिदम के नमूना अंश को समायोजित करके इस प्रशिक्षण गति में सुधार किया जा सकता है, लेकिन यह उप-इष्टतम गुणवत्ता प्राप्त कर सकता है।

एंबेडिंग

न्यूरल नेटवर्क्स ने विभिन्न प्रकार के एनएलपी कार्यों पर अत्याधुनिक प्रदर्शन प्रदर्शित किया है, और संख्यात्मक सुविधाओं के रूप में उपयोग की जाने वाली पूर्व-प्रशिक्षित एम्बेडिंग अनुभवजन्य रूप से निर्णय वन एल्गोरिदम के साथ भी अच्छी तरह से काम करती है, बावजूद इसके कि सुविधाओं का आंतरिक रूप से बहुत अलग तरीके से उपयोग किया जाता है। ध्यान दें कि यहां हम "एम्बेडिंग" को किसी भी तंत्रिका नेटवर्क एन्कोडिंग के रूप में संदर्भित करते हैं, उदाहरण के लिए ट्रांसफार्मर / कनवल्शनल / आवर्ती परतों का आउटपुट।

पूर्व-प्रशिक्षित एम्बेडिंग का उपयोग आंशिक रूप से तंत्रिका नेटवर्क के साथ अच्छी तरह से काम करता है क्योंकि एक वेक्टर स्पेस का आरंभीकरण जहां यूक्लिडियन स्पेस में समान टोकन या वाक्य बंद होते हैं, एनएलपी कार्यों में अच्छी तरह से स्थानांतरित होता है, और उस आरंभीकरण से ग्रेडिएंट छोटे होते हैं और अभिसरण करने में तेज़ होते हैं पूरी तरह से यादृच्छिक आरंभीकरण की तुलना में। हालाँकि, निर्णय वृक्ष व्यक्तिगत संख्यात्मक विशेषताओं के रूप में एम्बेडिंग का उपयोग करते हैं, और उन व्यक्तिगत विशेषताओं 1 के अक्ष-संरेखित विभाजन सीखते हैं। इसका मतलब यह है कि समान अर्थ संबंधी जानकारी का उपयोग करना लगभग असंभव है - एक डॉट उत्पाद या मैट्रिक्स गुणन, उदाहरण के लिए, अक्ष-संरेखित विभाजन के एक सेट के साथ प्रदर्शित नहीं किया जा सकता है। इसके अलावा, तंत्रिका नेटवर्क के विपरीत, जो प्रशिक्षण के दौरान ग्रेडिएंट डिसेंट के माध्यम से एम्बेडिंग को अपडेट कर सकता है, डिफ़ॉल्ट निर्णय वन शिक्षण एल्गोरिदम गैर-विभेदित हैं, जिसका अर्थ है कि एम्बेडिंग को जमे रहना चाहिए। ध्यान दें कि अलग-अलग निर्णय वनों पर काम (उदाहरण के लिए https://arxiv.org/pdf/2007.14761.pdf ) मौजूद है। हालाँकि, शायद आंशिक रूप से क्योंकि व्यवहार में एम्बेडिंग में जानकारी के सभी हिस्सों का वास्तव में उपयोग नहीं किया जाता है, यहां तक ​​कि तंत्रिका नेटवर्क द्वारा भी, यह रणनीति अभी भी निर्णय वनों के साथ अच्छी तरह से काम करती है।

पेशेवर:

  • बहुत बड़े शब्दावली आकारों से निपट सकते हैं - चूंकि एक एम्बेडिंग प्रभावी रूप से एम्बेडिंग आयामों की एक छोटी संख्या में एक घनत्व है, इसलिए यह संभावना नहीं है कि निर्णय वन में इनपुट सुविधाओं की संख्या नाटकीय रूप से बढ़ जाती है।
  • सिद्धांत रूप में बेहतर सामान्यीकरण किया जा सकता है, क्योंकि समान एम्बेडिंग विभाजन के सेट साझा कर सकते हैं। ध्यान दें कि यहां एक बड़ी चेतावनी यह है कि, जैसा कि ऊपर बताया गया है, वेक्टर स्पेस में आधार परिवर्तन या घुमाव में दो समान एम्बेडिंग हो सकते हैं जो निर्णय वनों के लिए अक्ष-संरेखित विभाजन स्थान में पूरी तरह से अलग हो सकते हैं।
  • स्वाभाविक रूप से पुनरावृत्ति/शब्द क्रम को समाहित कर सकता है, उदाहरण के लिए यदि एनकोडर में कनवल्शन, ध्यान या आरएनएन शामिल है।
  • किसी अन्य डेटासेट से जानकारी का लाभ उठा सकते हैं (ट्रांसफर लर्निंग के लिए पूर्व-प्रशिक्षण)।

दोष

  • जानकारी को याद रखने में अच्छा नहीं - विभाजन अस्पष्ट वर्गीकरण या वाक्यांशों के प्रति उच्च संवेदनशीलता का कारण बन सकता है (यानी "राउटर बढ़िया है" बनाम "एक बढ़िया राउटर") अलग-अलग एम्बेडिंग उत्पन्न करेगा, जो यूक्लिडियन स्पेस में करीब हो सकता है लेकिन जरूरी नहीं कि समान हो संख्यात्मक विशेषताएं.
  • सेवा करने में सबसे धीमी, क्योंकि पूर्ण एनकोडर फ़ॉरवर्ड पास को अनुमान समय पर करने की आवश्यकता होती है। वास्तविक विलंबता एम्बेडिंग उत्पन्न करने वाले आर्किटेक्चर पर अत्यधिक निर्भर है; यानी, एक ट्रांसफार्मर एनकोडर आम तौर पर माध्य-पूलिंग के साथ एक कच्चे एम्बेडिंग टेबल लुकअप की तुलना में बहुत धीमा होगा।

टिप्पणियाँ


  1. तिरछे विभाजन को सक्षम करने से गैर-अक्ष संरेखित जानकारी सीखने की अनुमति मिल सकती है, लेकिन यह अभी भी आयाम-दर-आयाम के आधार पर होगा।