Skip to content

擊鍵記錄倫理

Potato 擊鍵記錄的知情同意、IRB 審查、資料留存和參與者權利:這些資料能揭示什麼,以及如何公平地使用寫作過程標記。

擊鍵記錄記錄的是你的標註者怎麼寫。那是關於可識別個人的行為資料,它帶來的義務不在技術文件的覆蓋範圍內。

這一頁是寫給部署這個功能的研究者的。它不是法律意見,也不能替代你所在機構的審查。

在你把功能開啟之前,這些都不適用。keystroke_logging.enabled 預設為 false,升級不會改變這一點。

你實際收集的是什麼

Potato 的事件流是內容無關的。它們記錄某個字元在何時、在欄位的什麼位置被插入,以及是哪一類按鍵產生了它,但從不記錄是哪個字元。你無法從事件流還原出文本。

這是一項實實在在的隱私保護,但它和「這些資料不可識別身份」不是一回事。

時間模式是一種生物特徵

擊鍵動態,也就是按鍵間隔、按鍵停留時間和雙字母組延遲的分佈,是一種確立已久的行為生物特徵。它可以用來識別個人,也可以把不同場景下的賬號關聯起來。Potato 不做這件事,也不提供相關工具,但底層資料支援這麼做。

請像對待任何其他行為生物特徵那樣對待擊鍵事件流:把它當作可識別身份的、需要留存期限的、需要取得知情同意的。

除作者身份之外還能推斷出什麼

在研究中,時間資料被用來推斷打字技能、語言熟練度和第二語言身份、認知負荷和疲勞,在某些文獻裡還有運動和神經系統狀況。Potato 一樣都不計算,但你保留的資料足以支撐這類分析,而你的參與者在同意做「一個標註任務」時,多半不會想到這些。

把你收集的東西說清楚。不要指望一條籠統的「我們會收集使用資料」條款能覆蓋它。

披露

disclose_to_annotators 預設為 true。關閉它會在啟動時記錄一條警告:

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

不披露地收集有其正當理由,因為有些研究設計一旦告訴參與者在測什麼就失效了。那是倫理委員會的決定,而不是一個配置上的方便。如果你關掉披露,你應該拿得出允許這麼做的批准檔案。

知情同意示例文本

請按你的方案調整。它是一個起點,不是照抄不看的模板。

你怎麼寫會被記錄,你寫了什麼也會被記錄。

在你鍵入回答的過程中,本研究會記錄你打字的時間資訊:你何時開始和停止、停頓多久、何時回頭修改,以及何時從別處貼上文本進來。它記錄的是打字的時間和結構,而不是你按下的每一個鍵。這份記錄無法用來還原出你提交的答案以外的任何內容。

這些資料用於理解人們如何完成任務,以及檢查所收集資料的品質。

[如適用:]這些測量可能會被用來識別哪些回答是從別處複製或生成的,而不是由你寫出來的。

[如適用:]這些記錄可能會作為匿名化研究資料集的一部分被共享。

你可以隨時聯絡 [ ] 要求我們刪除你的資料。

方括號裡的條款很重要。如果你打算把標記用於付款或排除決定,請在人們開始工作之前就說明,而不是在你已經標記了他們之後。

公平地使用標記

寫作過程檢測產出附帶證據的標記。怎麼使用它們是你的責任。

要做:

  • 把標記當作去檢視的提示,而不是一項結論。
  • 讀每個會話的證據,而不只是判定標籤。
  • 在採取行動之前給標註者解釋的機會。
  • 已知的誤報考慮進去:移動端鍵盤、IME 使用者、聽寫、輔助技術和打字快的人。
  • 事先在你的方案裡寫明你的決策規則。

不要做:

  • 把標記接到自動拒絕、扣款或封禁上。
  • 把校準出來的尾部當成不端行為。百分位閾值會在任何人群裡標出固定的一部分,包括一個完全誠實的人群。
  • 以能識別到個人的方式公佈按標註者的風險分數。
  • 用標記去對一個人做出超出「這份回答是不是他寫的」之外的論斷。這些資料不支援關於其能力、投入或品行的推斷。

基礎率問題

如果你有 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.jsontyping_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 是一個合理的折中,既保留聚合特徵,又丟掉生物特徵層面的細節。

共享與發表

如果你把擊鍵資料作為資料集的一部分發布:

  • 把使用者 id 換成研究專用的化名,且不能映射回平臺 id。Prolific 和 MTurk 的工作者 id 是識別符號,不是化名。
  • 想清楚是否真的需要會話級的時間資訊,還是摘要特徵就夠了。摘要比事件流難以重新識別得多。
  • 檢查你的知情同意是否覆蓋了再分發,而不只是收集。
  • 貼上雜湊按會話加鹽,無法逆推,但它們確實會暴露同一段文本被貼上過兩次。請判斷這種關聯在公開發布中是否可以接受。

Potato 的匯出正是為此才需要主動開啟。export_include_typing_dynamicskeystrokes 匯出器都預設關閉,所以行為資料不會不小心進入資料集釋出。

各法域的注意事項

這不是法律意見。這裡只是指出哪些方面通常與之相關。

GDPR 與英國 GDPR。 足以識別一個人的時間模式屬於個人資料。如果你用它們來鎖定個人,請考慮第 22 條(自動化決策)是否適用,尤其是當一個標記會影響付款時。同意必須是具體且知情的,一份籠統的條款接受多半不夠。

美國的機構審查。 這通常屬於以人為物件的研究。有些 IRB 把擊鍵動態視作生物特徵識別符號,這可能會改變審查類別。

眾包平臺。 Prolific、MTurk 及類似平臺對監測參與者和拒絕工作各有自己的規則。在你基於一個標記拒絕任何人之前,先查一下平臺政策。有幾家要求你必須能向工作者說明拒絕的理由。

延伸閱讀

有關實現細節,請參閱原始碼文件