清單管理?面向機器學(xué)習(xí)中的數(shù)據(jù)集
毋庸置疑的是,數(shù)據(jù)在機器學(xué)習(xí)中起著至關(guān)重要的作用。每個機器學(xué)習(xí)模型實例都是使用靜態(tài)數(shù)據(jù)集的形式進行訓(xùn)練和評估,這些數(shù)據(jù)集的特性從根本上影響了模型的行為: 如果一個模型的部署環(huán)境與它的訓(xùn)練或評估數(shù)據(jù)集不匹配,或者這些數(shù)據(jù)集存在不必要的誤差和偏見,那么它就不可能有良好的表現(xiàn)。當(dāng)機器學(xué)習(xí)模型應(yīng)用于高風(fēng)險領(lǐng)域時,如招聘和金融等領(lǐng)域時,這種不匹配會產(chǎn)生特別嚴(yán)重的后果。即使在其他領(lǐng)域,不匹配也可能導(dǎo)致收益的損失。
雖然數(shù)據(jù)的可信來源已經(jīng)在數(shù)據(jù)庫領(lǐng)域得到了廣泛的研究,但是在機器學(xué)習(xí)領(lǐng)域卻不是這樣的,記錄數(shù)據(jù)集的創(chuàng)建和使用并沒有得到足夠的重視,目前還沒有標(biāo)準(zhǔn)化的機器學(xué)習(xí)數(shù)據(jù)集記錄流程。
有什么好的方法么?不妨嘗試一下清單管理。
1. 關(guān)于清單管理
在電子工業(yè)中,每個部件,無論多么簡單或復(fù)雜,都伴隨著一份描述其操作特性、測試結(jié)果、推薦使用和其他信息的數(shù)據(jù)表。同樣的,我們可以嘗試使用清單管理,每個數(shù)據(jù)集都伴隨著一個清單列表,記錄其動機、組成、采集、用途等等。數(shù)據(jù)集的清單列表會增加機器學(xué)習(xí)的透明度和問責(zé)制,減少機器學(xué)習(xí)模型中不必要的誤差和偏見。
用于數(shù)據(jù)集的清單需要滿足兩個關(guān)鍵群體的需求: 數(shù)據(jù)集創(chuàng)建者和數(shù)據(jù)集消費者。對于數(shù)據(jù)集的創(chuàng)建者來說,清單可以對創(chuàng)建、分發(fā)和維護數(shù)據(jù)集的過程進行反思,包括任何潛在的假設(shè)、風(fēng)險或危害,以及使用的影響。對于數(shù)據(jù)集消費者來說,清單可以確保他們擁有所需的信息,以便在使用數(shù)據(jù)集時做出明智的決策。數(shù)據(jù)集創(chuàng)建者的透明度對于數(shù)據(jù)集消費者來說是必要的,這樣可以充分了解選擇適當(dāng)?shù)臄?shù)據(jù)集,并避免無意中的誤用。
同時,數(shù)據(jù)集的清單管理促進機器學(xué)習(xí)結(jié)果有更大的重用性,無法訪問數(shù)據(jù)集的開發(fā)者可以利用清單中的信息創(chuàng)建具有類似特征的替代數(shù)據(jù)集。
2. 面向數(shù)據(jù)集生命周期的清單
數(shù)據(jù)集生命周期包括: 動機、組成、采集、預(yù)處理/清理/標(biāo)記、使用、分發(fā)和維護。面向數(shù)據(jù)集的生命周期,可以嘗試簡歷清單列表。需要注意的是,清單中的內(nèi)容并非適用于所有數(shù)據(jù)集,那些不適用的選項可以跳過。
2.1 數(shù)據(jù)集的創(chuàng)建動機
創(chuàng)建數(shù)據(jù)集的理由是創(chuàng)建的動機,自檢清單可能包括:
- 創(chuàng)建數(shù)據(jù)集的目的是什么?
- 預(yù)期面向什么問題?
- 有沒有什么具體的任務(wù)?
- 誰創(chuàng)建了數(shù)據(jù)集,代表哪個實體(實例例如,公司、機構(gòu)、組織) ?
2.2 數(shù)據(jù)集的組成
數(shù)據(jù)集的創(chuàng)建者在數(shù)據(jù)采集之前明確的清單列表,要了解對數(shù)據(jù)集的消費者提供所需要的信息,以便在是否使用數(shù)據(jù)集時做出明智的決定。需要注意的是,如果涉及個人信息,要關(guān)注《個人信息保護法》,以及其他的法律法規(guī)的限定。
- 組成數(shù)據(jù)集的實例代表什么(例如,文檔、照片、人物、國家等) ?
- 是否存在多種類型的實例(例如,電影、用戶和評級之間的交互,可能是節(jié)點和邊) ?
- 總共有多少個實例 ?
- 數(shù)據(jù)集是否包含所有可能的實例,還是來自更大集合的實例樣本(不一定是隨機的) ?如果數(shù)據(jù)集是一個樣本,那么較大的集合是什么?樣本能否代表較大的集合嗎?如果是,要描述如何驗證這個代表性。如果不能,要描述原因。
- 每個實例由哪些數(shù)據(jù)組成?原始數(shù)據(jù)(例如,未處理的文本或圖像)還是特征數(shù)據(jù)呢?
- 是否有與每個實例相關(guān)聯(lián)的標(biāo)簽或?qū)ο?
- 單個實例中是否缺少信息?如果是,描述這個信息是缺失的(例如,因為它是不可用的)。
- 個別實例之間的關(guān)系是否明確(例如,社交網(wǎng)絡(luò)鏈接等) ?
- 是否有推薦的數(shù)據(jù)拆分(例如,訓(xùn)練、開發(fā)/驗證、測試) ?如果是,描述這些拆分背后的理由。
- 數(shù)據(jù)集中是否有任何錯誤、噪音源或冗余? 如果有,描述是哪些。
- 數(shù)據(jù)集是自包含的,還是鏈接到外部資源(例如,網(wǎng)站或其他數(shù)據(jù)集) ?如果鏈接到或依賴于外部資源,a)是否保證這些資源在一段時間內(nèi)將繼續(xù)存在并保持不變; b)是否存在完整數(shù)據(jù)集的官方版本(即,包括數(shù)據(jù)集創(chuàng)建時存在的外部資源) ; c)是否存在外部數(shù)據(jù)集資源的使用限制(例如,許可或費用) ?說明所有外部資源和與之相關(guān)的任何限制,以及鏈接。
- 數(shù)據(jù)集是否包含可能被視為機密的數(shù)據(jù)(例如,受醫(yī)患保密性保護的數(shù)據(jù)等) ?
如果數(shù)據(jù)集與人有關(guān),還可能包括:
- 數(shù)據(jù)集是否識別人群(例如,按年齡、性別) ?如果是,描述如何識別的,并在數(shù)據(jù)集中提供它們各自分布的描述。
- 是否有可能從數(shù)據(jù)集中直接或間接地(即與其他數(shù)據(jù)結(jié)合)識別個人(即一個或多個自然人) ?
- 數(shù)據(jù)集是否包含任何可能被視為敏感的數(shù)據(jù)(例如,政治觀點或身份或地點的數(shù)據(jù); 金融或健康數(shù)據(jù); 生物特征或基因數(shù)據(jù); 政府身份識別形式,如身份證等) ?
2.3 采集
數(shù)據(jù)獲取過程,可以人們創(chuàng)建具有類似特征的替代數(shù)據(jù)集,可能包括:
- 如何獲得與每個實例相關(guān)聯(lián)的數(shù)據(jù)?這些數(shù)據(jù)是否可以直接觀察到(例如,原始文本、電影評級) ,或者從其他數(shù)據(jù)(例如,詞性標(biāo)簽、年齡或語言)中間接推斷/導(dǎo)出?如有關(guān)數(shù)據(jù)是間接從其他數(shù)據(jù)推斷/得出,有關(guān)數(shù)據(jù)是否經(jīng)過驗證/核實?
- 采用了哪些機制或程序來收集數(shù)據(jù)(例如,硬件設(shè)備或傳感器、人工管理、軟件程序、軟件 api) ?如何驗證這些機制或程序?
- 如果數(shù)據(jù)集是一個較大集合中的樣本,那么采樣策略是什么(例如,確定性的、具有特定采樣概率的概率) ?
- 數(shù)據(jù)收集的時間跨度是多少?這個時間段是否與與實例(例如,最近抓取的舊文章)相關(guān)聯(lián)數(shù)據(jù)的創(chuàng)建時間段相匹配?
- 是否進行過任何道德審查程序 ?
如果數(shù)據(jù)集與人員有關(guān),還可能包括:
- 是直接從有關(guān)個人那里收集數(shù)據(jù),還是通過第三方或其他來源(例如網(wǎng)站)獲取數(shù)據(jù)?
- 是否向有關(guān)個人通報了數(shù)據(jù)收集的情況?如果是,通知是如何提供的,并提供一個鏈接或其他訪問點,或以其他方式通知的本身。
- 有關(guān)個人是否同意收集和使用他們的數(shù)據(jù)?如果是,提供一個鏈接或其他訪問點,或以其他方式復(fù)制個人的同意確認(rèn)。
- 如果獲得同意,是否向同意的個人提供了今后撤銷其同意或用于某些用途的機制?如果是,提供一個鏈接或其他接入點。
- 是否對數(shù)據(jù)集的潛在影響及其對數(shù)據(jù)主體的使用進行了分析?如果是,分析包括結(jié)果、鏈接或任何支持文檔的其他訪問點。
2.4 預(yù)處理/清洗/標(biāo)記
數(shù)據(jù)集的消費者需要了解處理過程,以確定”原始”數(shù)據(jù)是否可以與其所選任務(wù)兼容的方式進行了處理。清單包括:
- 是否對數(shù)據(jù)進行了預(yù)處理/清理/標(biāo)記(例如,離散化、標(biāo)記化、詞性標(biāo)記、特征提取、實例刪除、缺失值處理) ?
- 除了預(yù)處理/清理/標(biāo)記的數(shù)據(jù)之外,還保存了“原始”數(shù)據(jù)嗎?如果是,提供一個鏈接或其他接入點的“原始”數(shù)據(jù)。
- 用于預(yù)處理/清理/標(biāo)記數(shù)據(jù)的軟件是否可用?如果可以,提供一個鏈接或其他接入點。
2.5 用途
數(shù)據(jù)集的應(yīng)用邊界是什么?通過明確這些任務(wù),數(shù)據(jù)集的創(chuàng)建者可以幫助數(shù)據(jù)集消費者做出明智的決定,從而避免潛在的風(fēng)險或危害。
- 數(shù)據(jù)集是否已用于某些任務(wù)? 如果是,簡述一下這些任務(wù)。
- 是否有一個存儲鏈接到所有使用數(shù)據(jù)集的論文或系統(tǒng)?如果有,提供一個鏈接或其他接入點。
- 數(shù)據(jù)集可以用于什么(其他)任務(wù)?
- 數(shù)據(jù)集的組成或者數(shù)據(jù)集的收集和預(yù)處理/清理/標(biāo)記的方式是否會影響未來的使用?
- 是否有不應(yīng)該使用數(shù)據(jù)集的任務(wù)? 如果有,說明一下。
2.6 分發(fā)
數(shù)據(jù)集的分發(fā)要么在數(shù)據(jù)集所代表的組織內(nèi)部分發(fā),要么在外部分發(fā)給第三方,清單可能包括:
- 數(shù)據(jù)集是否會分發(fā)給數(shù)據(jù)集所代表的組織之外的第三方(例如,公司、機構(gòu)、組織) ?
- 數(shù)據(jù)集將如何發(fā)布(例如,網(wǎng)站上的下載鏈接、 API、 GitHub等) ?數(shù)據(jù)集是否有一個 DOI 數(shù)據(jù)集?
- 數(shù)據(jù)集什么時候分發(fā)?
- 數(shù)據(jù)集是否會根據(jù)版權(quán)或其他知識產(chǎn)權(quán)許可使用條款分發(fā)?如果是,描述許可證和/或使用條款,并提供鏈接或其他接入點。
- 是否有任何第三方對與實例相關(guān)的數(shù)據(jù)施加基于 ip 的或其他限制?
- 是否對數(shù)據(jù)集的分發(fā)管制或限制?
2.7 維護
不要有人生,沒人養(yǎng)。關(guān)于數(shù)據(jù)集的維護計劃,清單可能包括:
- 誰將支持/托管/維護數(shù)據(jù)集?
- 如何聯(lián)系數(shù)據(jù)集的所有者或管理者(例如,電子郵件地址) ?
- 是否有勘誤表? 如果有,提供鏈接。
- 是否會更新數(shù)據(jù)集(例如,更正標(biāo)記錯誤、添加新實例、刪除實例) ?如果,多久更新一次,由誰更新,以及如何通知數(shù)據(jù)集的消費者 ?
- 如果數(shù)據(jù)集與人有關(guān),是否對保留與實例有關(guān)的數(shù)據(jù)有適用的限制?如果有,這些限制如何執(zhí)行?
- 數(shù)據(jù)集的舊版本是否會繼續(xù)得到支持/托管/維護?
- 如果其他人希望擴展/增強/構(gòu)建/貢獻數(shù)據(jù)集,是否有一種機制讓他們這樣做?這些貢獻是否得到驗證/核實?
3.數(shù)據(jù)集清單管理的作用與影響
數(shù)據(jù)集的清單管理不能提供一個完整的解決方案來減輕不必要的偏見或潛在的風(fēng)險。創(chuàng)建者可能無法預(yù)測數(shù)據(jù)集的每一種可能的用途,當(dāng)創(chuàng)建與人相關(guān)數(shù)據(jù)集的時候,可能需要與多領(lǐng)域的專家合作,才能較好地收集數(shù)據(jù)。
為數(shù)據(jù)集進行清單管理必然會增加數(shù)據(jù)集創(chuàng)建者的成本。盡管清單有較多一次性問題的選項,但創(chuàng)建清單的過程總是需要時間,組織的基礎(chǔ)設(shè)施和工作流程需要修改,同樣是開發(fā)成本。清單列表和工作流可能會對動態(tài)數(shù)據(jù)集造成問題,頻繁更新數(shù)據(jù)集的清單可能會有較大的成本。
盡管如此,數(shù)據(jù)集的清單管理促進了數(shù)據(jù)集創(chuàng)建者和數(shù)據(jù)集消費者之間更好的溝通,還使數(shù)據(jù)集創(chuàng)建者能夠區(qū)分透明度和可靠性。總的來說,對數(shù)據(jù)集進行清單管理應(yīng)該是利大于弊的。