चरण 2.5: कोई मॉडल चुनें

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

दशकों की रिसर्च की वजह से, हमारे पास डेटा प्रोसेसिंग और मॉडल कॉन्फ़िगरेशन के कई विकल्पों का ऐक्सेस है. हालांकि, कुछ कारगर विकल्पों की उपलब्धता, ज़्यादा सटीक नहीं होगी और उन सवालों के दायरे को बहुत ज़्यादा बढ़ा देगी. जैसा कि बताया गया है कि सबसे अच्छा विकल्प शायद आसानी से समझ न आए. लोगों को लुभाने के लिए, हर तरह के विकल्प को आज़माना चाहिए. हालांकि, यह बहुत महंगा होगा.

इस गाइड में, हम टेक्स्ट क्लासिफ़िकेशन मॉडल चुनने की प्रोसेस को आसान बनाने की कोशिश करते हैं. किसी डेटासेट के लिए, हमारा लक्ष्य उस एल्गोरिदम को ढूंढना है जो ट्रेनिंग के लिए ज़रूरी कंप्यूटेशन के समय को कम करके, ज़्यादा से ज़्यादा सटीक हो पाता है. हमने अलग-अलग तरह की समस्याओं (खास तौर पर भावना का विश्लेषण और विषय की कैटगरी तय करने से जुड़ी समस्याओं) के लिए, बड़ी संख्या में (~450K) प्रयोग किए और हर डेटासेट को अलग-अलग डेटा प्रोसेसिंग की अलग-अलग तकनीकों और अलग-अलग मॉडल आर्किटेक्चर के बीच चुना. इससे हमें ऐसे डेटासेट पैरामीटर की पहचान करने में मदद मिली जो सबसे बेहतर विकल्पों पर असर डालते हैं.

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

डेटा तैयार करने और मॉडल बनाने के लिए एल्गोरिदम

1. Calculate the number of samples/number of words per sample ratio.
2. If this ratio is less than 1500, tokenize the text as n-grams and use a
simple multi-layer perceptron (MLP) model to classify them (left branch in the
flowchart below):
  a. Split the samples into word n-grams; convert the n-grams into vectors.
  b. Score the importance of the vectors and then select the top 20K using the scores.
  c. Build an MLP model.
3. If the ratio is greater than 1500, tokenize the text as sequences and use a
   sepCNN model to classify them (right branch in the flowchart below):
  a. Split the samples into words; select the top 20K words based on their frequency.
  b. Convert the samples into word sequence vectors.
  c. If the original number of samples/number of words per sample ratio is less
     than 15K, using a fine-tuned pre-trained embedding with the sepCNN
     model will likely provide the best results.
4. Measure the model performance with different hyperparameter values to find
   the best model configuration for the dataset.

नीचे दिए गए फ़्लोचार्ट में, पीले बॉक्स डेटा और मॉडल तैयार करने की प्रक्रियाओं की जानकारी देते हैं. स्लेटी रंग के बॉक्स और हरे रंग के बॉक्स, ऐसे विकल्पों को दिखाते हैं जिन्हें हम हर प्रोसेस के लिए मानते हैं. हरे बॉक्स हर प्रोसेस के लिए हमारा सुझाया गया विकल्प दिखाते हैं.

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

टेक्स्ट क्लासिफ़िकेशन फ़्लोचार्ट

पांचवां डायग्राम: टेक्स्ट की कैटगरी तय करने का फ़्लोचार्ट

इस फ़्लोचार्ट में दो मुख्य सवालों के जवाब दिए गए हैं:

  1. हमें किस लर्निंग एल्गोरिदम या मॉडल का इस्तेमाल करना चाहिए?

  2. हम टेक्स्ट और लेबल के बीच के संबंध को बेहतर तरीके से समझने के लिए डेटा को कैसे तैयार करें?

दूसरे सवाल का जवाब पहले सवाल के जवाब पर निर्भर करता है; किसी मॉडल में डेटा देने के लिए हम जिस तरीके का इस्तेमाल करते हैं उससे तय होता है कि हम कौनसा मॉडल चुनेंगे. मॉडल को दो कैटगरी में बांटा जा सकता है: वे शब्द जो ऑर्डर करने के लिए इस्तेमाल की गई जानकारी (क्रम वाले मॉडल) का इस्तेमाल करते हैं और जो सिर्फ़ टेक्स्ट को “बैग” (सेट) में शब्दों (एन-ग्राम मॉडल) के तौर पर देखते हैं. क्रम वाले मॉडल में कई तरह के न्यूरल नेटवर्क (सीएनएन), बार-बार होने वाले न्यूरल नेटवर्क (आरएनएन), और उनके वैरिएशन शामिल हैं. n-ग्राम मॉडल में लॉजिस्टिक रिग्रेशन, आसान मल्टी-लेयर पर्सपेट्रॉन (MLP, या पूरी तरह से कनेक्ट किए गए न्यूरल नेटवर्क), अपग्रेड किए गए ट्री और सहायता वेक्टर मशीन शामिल हैं.

हमने अपने प्रयोगों से देखा है कि “नमूनों की संख्या” (S) और “हर नमूने के लिए शब्दों की संख्या” (W) का अनुपात, किस मॉडल की परफ़ॉर्मेंस के हिसाब से है.

जब इस अनुपात का मान छोटा (<1500) होता है, तो ऐसे छोटे मल्टी-लेयर पर्सपेट्रॉन जो इनपुट के तौर पर n-ग्राम लेते हैं (जिसे हम विकल्प A कहते हैं) बेहतर या कम से कम सिलसिलेवार मॉडल का इस्तेमाल करते हैं. एमएलपी को समझना और समझना आसान है. क्रम वाले मॉडल की तुलना में एमएलपी का हिसाब लगाने में कम समय लगता है. जब इस अनुपात का मान बड़ा (>= 1500) हो, तो क्रम वाले मॉडल का इस्तेमाल करें (विकल्प B). इसके बाद के चरणों में, आप नमूने/शब्द-प्रति-नमूना अनुपात के आधार पर चुने गए मॉडल प्रकार के लिए प्रासंगिक उप-सेक्शन (A या B) लेबल पर जा सकते हैं.

हमारे IMDb समीक्षा डेटासेट के मामले में, सैंपल/शब्द-प्रति-नमूना अनुपात ~144 है. इसका मतलब है कि हम एमएलपी का मॉडल बनाएंगे.