Skip to content

एनोटेशन अध्ययनों के लिए सांख्यिकीय Power और नमूना आकार

किसी नतीजे के सार्थक होने के लिए कितने आइटम चाहिए, यह सवाल प्रति आइटम कितने एनोटेटर से अलग क्यों है, और एनोटेशन व मूल्यांकन अध्ययनों को कम power पर बड़े दावे करने से कैसे बचाएँ।

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

एक नहीं, दो बजट

हर एनोटेशन परियोजना अपनी मेहनत दो स्वतंत्र अक्षों पर ख़र्च करती है, और उन्हें अलग-अलग नाम देना काम आता है:

  • ओवरलैप (प्रति आइटम एनोटेटर): इससे लेबल की विश्वसनीयता मिलती है, यानी यह भरोसा कि किसी एक आइटम का लेबल सही है। इसी पर कितने एनोटेटर चाहिए? है।
  • नमूना आकार (आइटम की संख्या): इससे सांख्यिकीय power मिलती है, यानी परिस्थितियों, मॉडलों या समूहों के बीच के असली अंतर को पकड़ पाने की क्षमता।

तय बजट में दोनों एक-दूसरे की कीमत पर आते हैं, पर हल अलग-अलग समस्याओं का करते हैं। दस एनोटेटर 50 आइटम लेबल करें तो लेबल बहुत भरोसेमंद मिलेंगे, पर नमूना इतना छोटा होगा कि किसी की तुलना ही न हो सके। एक एनोटेटर 5,000 आइटम लेबल करे तो लेबल शोर भरे होंगे, पर इतने होंगे कि असली प्रभाव पकड़ में आ जाए। आप इनमें से कौन-सी गलती करने जा रहे हैं, यह इस पर निर्भर है कि आपका असली सवाल क्या है।

सांख्यिकीय power है क्या

सांख्यिकीय power वह संभावना है कि जो प्रभाव सचमुच मौजूद है, आपका अध्ययन उसे पकड़ ले। कम power का मतलब है कि जब मॉडल A सचमुच मॉडल B से बेहतर है, तब भी आपका प्रयोग अक्सर यह दिखा नहीं पाता, और, जो कम साफ़ है, आपको जो “सार्थक” नतीजे मिलते हैं उनके तुक्का होने और effect size के फूले हुए होने की गुंजाइश ज़्यादा रहती है। चलन 80% power का लक्ष्य रखने का है, जिसके लिए पहले ही तय करना पड़ता है कि पकड़ने लायक सबसे छोटा प्रभाव कितना है और उसी के हिसाब से अध्ययन का आकार रखना पड़ता है।

असहज बात यह है कि यह कदम कितनी बार छूट जाता है। Card et al. (2020) ने आम NLP सेटअप पर power विश्लेषण चलाए और पाया कि प्रकाशित तुलनाओं में से बहुत सी बुरी तरह underpowered हैं: सामान्य पेपर जिन छोटे अंतरों का दावा करते हैं उन्हें भरोसे से पकड़ने के लिए, ख़ासकर मानवीय मूल्यांकन में, अक्सर सैकड़ों से हज़ारों आइटम चाहिए, अध्ययनों में असल में इस्तेमाल होने वाली संख्या से कहीं ज़्यादा। उनकी व्यावहारिक सीख यह है कि power की गणना डेटा जुटाने से पहले करें, बाद में significance को उलटी दिशा से गढ़ें नहीं।

Significance test सही चुनना

पर्याप्त आइटम होना ज़रूरी है, पर काफ़ी नहीं; परीक्षण भी सही करना पड़ता है। Dror et al. (2018) इस पर मानक संदर्भ है, और उसकी सलाह ठोस है:

  • परीक्षण को डेटा से मिलाइए। NLP के मेट्रिक आम तौर पर normally distributed नहीं होते, इसलिए t-test लागू मान लेने के बजाय nonparametric विकल्पों पर टिकें, यानी bootstrap और permutation test।
  • कई तुलनाओं के लिए सुधार कीजिए। कई मॉडल, मेट्रिक या उपसमूह जाँचने से false positive बढ़ जाते हैं; जब कई परीक्षण चलाएँ तो समायोजन करें (Bonferroni, या उससे बेहतर Benjamini-Hochberg)।
  • सिर्फ़ p-value नहीं, effect size और confidence interval भी बताइए। आइटम पर्याप्त हों तो कोई अंतर सांख्यिकीय रूप से सार्थक हो सकता है और व्यवहार में बेमानी। Effect size और interval पाठक को बताते हैं कि इसकी परवाह करनी है या नहीं।

एक चलने लायक नुस्ख़ा

  1. बताइए कि सबसे छोटा कितना अंतर मायने रखेगा (मान लीजिए, win rate में 2 अंक का अंतर)।
  2. उस प्रभाव के लिए 80% power पर power analysis चलाकर आइटम की लक्ष्य संख्या निकालिए।
  3. ओवरलैप अलग से तय कीजिए, इस आधार पर कि लेबल कितने व्यक्तिपरक हैं (एनोटेटर-संख्या मार्गदर्शिका देखें)।
  4. डेटा जुटाने के बाद bootstrap या permutation test लें, तुलनाओं की संख्या के हिसाब से सुधार करें, और effect size इंटरवल के साथ बताएँ।

क्रम मायने रखता है: डेटा देख लेने के बाद अध्ययन का आकार तय करना ही वह तरीका है जिससे कम power वाले नतीजे खोज बनकर पेश हो जाते हैं।

Potato में यह कैसे करें

Power डिज़ाइन का फ़ैसला है, कोई config key नहीं, पर Potato का काम आपको साफ़ डेटा देना है जिस पर विश्लेषण चले। विश्वसनीयता के लिए ओवरलैप और नमूना आकार के लिए instance की संख्या कार्य आवंटन में तय करें:

yaml
automatic_assignment:
  on: true
  instance_per_annotator: 400    # sample size: items each annotator sees
  labels_per_instance: 3         # overlap: reliability per item

दोनों घुंडियाँ जानबूझकर स्वतंत्र रखी गई हैं। एक्सपोर्ट में हर एनोटेटर का अपना लेबल उसकी ID और timestamp के साथ बना रहता है, और यही वह चीज़ है जो offline significance निकालते वक़्त आइटम के हिसाब से और एनोटेटर के हिसाब से bootstrap resample करने देती है। सिर्फ़ समुच्चय के बजाय प्रति-एनोटेटर लेबल बचाए रखना ही power को ध्यान में रखने वाले ढंग के विश्लेषण को संभव बनाता है; बहुत जल्दी एक gold लेबल पर सिमट गए तो वह variance ही खो देंगे जो bootstrap को चाहिए।

आगे पढ़ें