Skip to content

कीस्ट्रोक लॉगिंग नैतिकता

Potato की कीस्ट्रोक लॉगिंग के लिए सहमति, IRB समीक्षा, प्रतिधारण, और प्रतिभागी अधिकार: यह डेटा क्या उजागर कर सकता है और लेखन-प्रक्रिया फ़्लैग का निष्पक्ष उपयोग कैसे करें।

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

यह पृष्ठ उस शोधकर्ता के लिए लिखा गया है जो यह सुविधा तैनात कर रहा है। यह क़ानूनी सलाह नहीं है, और यह आपके अपने संस्थान की समीक्षा की जगह नहीं लेता।

जब तक आप सुविधा चालू न करें, इसमें से कुछ भी लागू नहीं होता। keystroke_logging.enabled डिफ़ॉल्ट रूप से false है, और अपग्रेड करने से यह नहीं बदलेगा।

आप असल में क्या जुटा रहे हैं

Potato की स्ट्रीम कंटेंट-ब्लाइंड हैं। वे दर्ज करती हैं कि कोई अक्षर डाला गया, कब डाला गया, फ़ील्ड में कहाँ, और किस वर्ग की कुंजी से बना, पर यह कभी नहीं कि कौन-सा अक्षर था। स्ट्रीम से टेक्स्ट दोबारा नहीं बनाया जा सकता।

यह एक सार्थक गोपनीयता सुरक्षा है, और यह वही बात नहीं है कि डेटा पहचान-रहित हो।

टाइमिंग पैटर्न एक बायोमेट्रिक हैं

कीस्ट्रोक डायनामिक्स, यानी कुंजियों के बीच के अंतरालों, dwell समय, और digraph latency का वितरण, एक स्थापित व्यवहारगत बायोमेट्रिक है। इनका उपयोग व्यक्तियों की पहचान करने और अलग-अलग संदर्भों में खातों को जोड़ने के लिए किया जा सकता है। Potato ऐसा नहीं करता और इसके लिए कोई उपकरण नहीं देता, पर अंतर्निहित डेटा इसे संभव बनाता है।

कीस्ट्रोक स्ट्रीम के साथ वैसा ही बर्ताव कीजिए जैसा किसी और व्यवहारगत बायोमेट्रिक के साथ करते: पहचान-योग्य के रूप में, प्रतिधारण सीमा की ज़रूरत वाले के रूप में, और सहमति की माँग करने वाले के रूप में।

लेखकत्व से आगे क्या अनुमान लगाया जा सकता है

शोध में टाइमिंग डेटा से टाइपिंग कौशल, भाषा दक्षता और दूसरी भाषा की स्थिति, संज्ञानात्मक भार और थकान, और कुछ साहित्य में गति-संबंधी तथा तंत्रिका-संबंधी स्थितियों का अनुमान लगाया गया है। Potato इनमें से कुछ भी नहीं निकालता, पर आप जो डेटा रखते हैं वह ऐसे विश्लेषण को सहारा देगा, और आपके प्रतिभागी शायद ही इसकी उम्मीद करते होंगे जब वे “एक एनोटेशन कार्य” के लिए हाँ कहते हैं।

आप क्या जुटा रहे हैं, यह बताइए। इसे ढकने के लिए “हम उपयोग संबंधी डेटा जुटाते हैं” जैसे सामान्य वाक्य पर भरोसा मत कीजिए।

सूचना देना

disclose_to_annotators डिफ़ॉल्ट रूप से true है। इसे बंद करने पर स्टार्टअप के समय चेतावनी लॉग होती है:

yaml
keystroke_logging:
  disclose_to_annotators: false   # logs a warning; make sure your IRB covers this

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

नमूना सहमति भाषा

इसे अपने प्रोटोकॉल के अनुसार ढालिए। यह एक शुरुआती बिंदु है, बिना पढ़े चिपकाने वाला ढाँचा नहीं।

आप जो लिखते हैं, उसके साथ यह भी रिकॉर्ड होता है कि आप कैसे लिखते हैं।

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

इसका उपयोग यह समझने के लिए किया जाता है कि लोग कार्य को कैसे पूरा करते हैं, और जुटाए गए डेटा की गुणवत्ता जाँचने के लिए।

[यदि लागू हो:] इन मापों का उपयोग ऐसे उत्तरों की पहचान के लिए किया जा सकता है जो आपके लिखे नहीं, बल्कि कहीं और से नकल किए गए या कहीं और बनाए गए थे।

[यदि लागू हो:] ये रिकॉर्डिंग एक अनामीकृत शोध डेटासेट के हिस्से के रूप में साझा की जाएँगी।

आप किसी भी समय [ ] से संपर्क करके हमसे अपना डेटा हटाने के लिए कह सकते हैं।

कोष्ठक वाले वाक्य मायने रखते हैं। अगर आप भुगतान या बहिष्करण के निर्णयों में फ़्लैग इस्तेमाल करने का इरादा रखते हैं, तो यह लोगों के काम शुरू करने से पहले बताइए, उन्हें फ़्लैग कर देने के बाद नहीं।

फ़्लैग का निष्पक्ष उपयोग

लेखन-प्रक्रिया पहचान साक्ष्य के साथ फ़्लैग बनाती है। आप उनका उपयोग कैसे करते हैं, यह आपकी ज़िम्मेदारी है।

यह कीजिए:

  • फ़्लैग को देखने का संकेत मानिए, निष्कर्ष नहीं।
  • सिर्फ़ फ़ैसले का लेबल नहीं, प्रति-सत्र साक्ष्य पढ़िए।
  • कार्रवाई से पहले एनोटेटर को सफ़ाई देने का मौक़ा दीजिए।
  • ज्ञात फ़ॉल्स पॉज़िटिव का हिसाब रखिए: मोबाइल कीबोर्ड, IME उपयोगकर्ता, डिक्टेशन, सहायक तकनीक, और तेज़ टाइपिस्ट।
  • अपना निर्णय-नियम पहले से, अपने प्रोटोकॉल में दर्ज कीजिए।

यह मत कीजिए:

  • फ़्लैग को स्वचालित अस्वीकृति, भुगतान रोकने, या प्रतिबंध से जोड़ना।
  • कैलिब्रेट किए गए tail को ग़लती मान लेना। percentile थ्रेशोल्ड किसी भी आबादी का एक तय हिस्सा फ़्लैग करता है, पूरी तरह ईमानदार आबादी का भी।
  • प्रति-एनोटेटर जोखिम स्कोर इस तरह प्रकाशित करना कि व्यक्ति पहचाने जा सकें।
  • फ़्लैग के आधार पर किसी व्यक्ति के बारे में उत्तर के लेखकत्व से आगे कोई दावा करना। यह डेटा उनकी योग्यता, मेहनत, या चरित्र के बारे में अनुमानों को सहारा नहीं देता।

बेस-रेट समस्या

अगर आपके 5% उत्तर किसी चैटबॉट से पेस्ट किए गए हैं और आपका नियम 5% सत्र फ़्लैग करता है, तो नियम दोनों को कितनी अच्छी तरह अलग करता है इसके हिसाब से, जो फ़्लैग हुआ उसका अधिकांश हिस्सा फिर भी ईमानदार काम हो सकता है। ऐसे प्लेटफ़ॉर्म पर जहाँ असली कदाचार दुर्लभ है, छोटी-सी फ़ॉल्स-पॉज़िटिव दर वाला नियम भी सही पकड़ से ज़्यादा झूठे आरोप पैदा करता है। फ़्लैग के ऊपर कोई नीति बनाने से पहले अपनी बेस रेट का अनुमान लगाइए।

प्रतिभागी अधिकार

विलोपन

किसी एक प्रतिभागी की स्ट्रीम और सारांश हटाएँ:

python
from potato import typing_store
typing_store.delete_for_user(task_dir, project, user_id)

इससे typing_sessions साफ़ हो जाता है। <output_annotation_dir>/<user>/user_state.json में typing_summaries के नीचे मिरर हुए सारांश अलग से हटाने होंगे, अगर आप पूरे विलोपन अनुरोध का पालन कर रहे हैं।

न्यूनीकरण

उतना ही जुटाइए जितने से आपके प्रश्न का उत्तर मिल जाए:

yaml
keystroke_logging:
  fidelity: summary               # features only, no raw streams retained
  include_schemas: [rationale]    # instrument one field, not every box
  classify_paste_source: false    # skip clipboard comparison entirely

प्रतिधारण

Potato डेटा को अपने आप समाप्त नहीं करता। अगर आपका प्रोटोकॉल किसी प्रतिधारण अवधि का वादा करता है, तो अवधि बीतने पर स्ट्रीम ख़ुद हटाइए। विश्लेषण अवधि के बाद fidelity: summary पर चले जाना एक ठीक-ठाक बीच का रास्ता है, जिसमें समग्र फ़ीचर बचे रहते हैं और बायोमेट्रिक ब्योरा छूट जाता है।

साझा करना और प्रकाशन

अगर आप कीस्ट्रोक डेटा किसी डेटासेट के हिस्से के रूप में जारी करते हैं:

  • उपयोगकर्ता आईडी की जगह अध्ययन-विशिष्ट छद्मनाम रखिए, जो वापस प्लेटफ़ॉर्म आईडी तक न ले जाएँ। Prolific और MTurk के वर्कर आईडी पहचानकर्ता हैं, छद्मनाम नहीं।
  • सोचिए कि सत्र-स्तर की टाइमिंग वाक़ई चाहिए, या सारांश फ़ीचर से काम चल जाएगा। सारांश से दोबारा पहचान करना स्ट्रीम की तुलना में कहीं कठिन है।
  • जाँचिए कि आपकी सहमति सिर्फ़ संग्रह ही नहीं, पुनर्वितरण को भी कवर करती है।
  • पेस्ट hash प्रति सत्र salted होते हैं और उलटे नहीं जा सकते, पर वे यह ज़रूर बता देते हैं कि एक ही टेक्स्ट दो बार पेस्ट हुआ था। तय कीजिए कि सार्वजनिक रिलीज़ में यह जुड़ाव स्वीकार्य है या नहीं।

Potato के एक्सपोर्ट ठीक इसी वजह से ऑप्ट-इन हैं। export_include_typing_dynamics और keystrokes एक्सपोर्टर, दोनों डिफ़ॉल्ट रूप से बंद हैं, इसलिए व्यवहार संबंधी डेटा ग़लती से किसी डेटासेट रिलीज़ में कभी शामिल नहीं होता।

क्षेत्राधिकार संबंधी टिप्पणियाँ

यह क़ानूनी सलाह नहीं है। यह सिर्फ़ बताता है कि आमतौर पर क्या प्रासंगिक होता है।

GDPR और UK GDPR. ऐसे टाइमिंग पैटर्न जो किसी व्यक्ति की पहचान करा सकें, व्यक्तिगत डेटा हैं। अगर आप उनसे व्यक्तियों को अलग करके चिह्नित करते हैं, तो विचार कीजिए कि अनुच्छेद 22 (स्वचालित निर्णय-प्रक्रिया) लागू होता है या नहीं, ख़ासकर जब कोई फ़्लैग भुगतान को प्रभावित करता हो। सहमति विशिष्ट और सूचित होनी चाहिए, और सामान्य शर्तों की स्वीकृति शायद पर्याप्त न हो।

अमेरिकी संस्थागत समीक्षा. यह आमतौर पर मानव-विषयक शोध है। कुछ IRB कीस्ट्रोक डायनामिक्स को बायोमेट्रिक पहचानकर्ता मानते हैं, जिससे समीक्षा की श्रेणी बदल सकती है।

क्राउडसोर्सिंग प्लेटफ़ॉर्म. Prolific, MTurk, और ऐसे ही दूसरे प्लेटफ़ॉर्म के अपने नियम हैं कि प्रतिभागियों की निगरानी कैसे हो और काम कब अस्वीकार किया जाए। किसी फ़्लैग के आधार पर किसी को अस्वीकार करने से पहले प्लेटफ़ॉर्म की नीति देखिए। कई प्लेटफ़ॉर्म यह माँगते हैं कि आप वर्कर को अस्वीकृति का कारण बता सकें।

आगे पढ़ें

कार्यान्वयन विवरण के लिए, स्रोत दस्तावेज़ देखें।