पाठ 4 / 25
Moderation और Thresholds
Classifier score को threshold के साथ उपयोग करें और precision-recall का trade-off समझें।
रेखा कहाँ खींचें
Moderation classifier score देता है (text के हानिकारक होने की संभावना)। आप threshold चुनते हैं जिसके ऊपर रोकते या review कराते हैं। कम threshold लगभग सारा हानिकारक text पकड़ता है (ऊँचा recall) पर कई हानिरहित संदेश भी रोकता है (कम precision)। ऊँचा threshold सिर्फ़ सबसे साफ़ मामले रोकता है (ऊँचा precision) पर कुछ नुक़सान चूकता है (कम recall)। सही बिंदु हर ग़लती की क़ीमत पर निर्भर है, इसलिए उसे अनुमान से नहीं, डेटा से चुनें।
पहले और बाद में जाँचें
Filters और जाँचें model में जाने वाली और उससे निकलने वाली दोनों चीज़ों की रक्षा करती हैं।
तीन thresholds पर precision और recall, चलाकर
मैंने यह आठ labelled उदाहरणों (1 = हानिकारक) पर चलाया। Threshold 0.5 से 0.85 करने पर precision 0.8 से 1.0 हो जाता है पर recall 1.0 से 0.5 गिर जाता है।
scores = [(0.95,1),(0.9,1),(0.8,1),(0.7,0),(0.6,1),(0.4,0),(0.3,0),(0.2,0)] # (score, harmful?)
def at(th):
tp = sum(1 for s,y in scores if s>=th and y==1)
fp = sum(1 for s,y in scores if s>=th and y==0)
fn = sum(1 for s,y in scores if s<th and y==1)
return th, round(tp/(tp+fp),2) if tp+fp else None, round(tp/(tp+fn),2)
for th in (0.5, 0.65, 0.85):
print(at(th))
Output:
(0.5, 0.8, 1.0) (0.65, 0.75, 0.75) (0.85, 1.0, 0.5)
Review band रखें
एक cut-off की जगह ऊँचे score के ऊपर रोकें, नीचे वाले को allow करें, और बीच की band को इंसानी review या सुरक्षित उत्तर पर भेजें। इससे इंसानी समय वहीं ख़र्च होता है जहाँ classifier अनिश्चित है।
त्वरित जाँच: Moderation threshold बढ़ाने पर recall का क्या होता है?
- वह हमेशा बढ़ता है
- वह आम तौर पर गिरता है, ज़्यादा हानिकारक items छूटते हैं
- वह अपरिभाषित हो जाता है
- वह ठीक वैसा ही रहता है
Answer
वह आम तौर पर गिरता है, ज़्यादा हानिकारक items छूटते हैं — सख़्त cut-off कुल मिलाकर कम items रोकता है, इसलिए कुछ असली नुक़सान उसके नीचे निकल जाता है।