- 構建可靠的機器學習系統
- (美)凱茜·陳 (愛爾蘭)尼爾·理查德·墨菲 (美)克蘭蒂·帕里薩 (美)D.斯卡利 (美)托德·安德伍德
- 3167字
- 2025-06-26 18:00:39
2.1 數據即責任
關于機器學習的文章都表明數據是機器學習系統中的重要資產。這種觀點是合理的:沒有數據就不可能有機器學習系統。如圖2-1所示,具有更多(和更高質量)的訓練數據的簡單(甚至簡單化)機器學習系統通常可以勝過具有較少或代表性較差的數據的更復雜系統[2]。
各個組織都會繼續爭先恐后地收集盡可能多的數據,希望找到將這些數據轉化為價值的方法。事實上,許多組織已經將其變成了一種非常成功的商業模型。想想Netflix,它向客戶推薦高質量節目和電影的能力是其早期的獨特之處。據說Netflix在進入內容制作方面的業務后還使用了這些數據,在詳細了解人們想看什么之后,以此為根據來確定為哪些觀眾制作什么節目。
當然,就像任何東西都可能是資產一樣,在正確(錯誤)的場景下,它也可能是負債。就數據而言,最重要的是,數據的獲取、收集和管理可能會暴露數據中意想不到的細微差別和復雜性。不考慮這些對我們和我們的用戶來說可能會有潛在隱患。所有方法都必須根據數據類型確定數據的范圍,例如,醫療記錄的數據也許需要不同于工作經歷數據的處理方式。當然,天下沒有免費的午餐,最佳數據管理方式的成本一定高昂。
本節的目的不是讓本書成為數據收集、存儲、報告和刪除實踐方面的權威著作。這遠遠超出了本節甚至本書的范圍。這里的目的是列舉足夠多的關于復雜性的問題,以阻止任何讀者簡單地認為“更多數據==更好”或認為“這東西很簡單”。讓我們回顧一下數據的生命周期,看一下挑戰來自哪里。

圖2-1:數據規模、模型的錯誤率以及出現數據問題的可能性之間的權衡參考
首先,數據的收集必須符合適用的法律,這些法律可能是基于我們的組織所在地,數據的來源地,以及組織政策。我們必須考慮清楚這一點(并與我們可能所在的經營地的所有管轄區的律師咨詢)。對于什么是關于人的數據,如何獲得存儲數據的許可,如何存儲和檢索被授予的許可,我們是否需要以及在什么情況下向提供數據的人提供訪問權,都有嚴格限制。這些限制可能來自法律、行業慣例、保險條例、公司管理政策或其他來源。在一些司法管轄區,常見限制的例子包括禁止在未經個人明確書面同意的情況下收集個人身份信息(PII),同時要在數據主體要求下刪除該數據。是否收集數據以及如何收集數據不是技術問題。它是一個政策和管理的問題(這個問題會在第6章進行更詳盡的介紹)。
如果我們被允許收集和存儲數據,那么必須禁止外部訪問以保證這些數據的安全。泄露用戶的私人數據很少會給企業帶來什么好處。此外,訪問必須受到限制,甚至對員工也是如此。員工不應該在沒有詳細記錄的情況下無限制地查看或更改私人用戶數據。
另一種減少數據訪問權限和審計方面的問題的方法是對數據進行匿名化。一個相對簡單和有價值的選擇是使用假名。在這里,私人識別碼以一種可逆的方式被替換成其他識別碼,逆轉假名需要訪問額外的數據或系統。這可以保護數據不被在管道上工作的工程師隨意查看,但當我們發現自己需要逆轉匿名化時,則允許查看。假名也希望能保留與我們的模型相關的數據的屬性。換句話說,如果數據字段在特定情況下以某種方式相似是很重要的(例如,想想郵政編碼,當位于同一城鎮或同一個城市的同一地區時,它們的前綴是相同的),那么我們的假名可能需要保留這一點。盡管這種級別的保護可以防止隨意檢查,但重要的是,要將假名數據視為與完全非匿名數據一樣有潛在風險的數據。歷史上有很多這種假名數據暴露用戶的真實私人信息的案例(案例請參閱下面的內容)。
不同級別匿名化的應用示例
根據被訪問的數據的敏感性,需要對數據進行不同的控制。
原始數據
數據不包含PII,或者我們有極其嚴格的訪問控制,而且PII本身也很關鍵(例如,醫療數據)。
假名數據
已經對其進行嚴格的訪問控制。偶爾需要進行可控的人工檢查,但PII數據本身與檢查無關(例如,信用卡數據的前綴被清空或轉換,只留下最后四位數字:XXXX-XX-1234——這仍然是非常多的數據,但有一些合理的保護措施使其不會被隨意檢查)。
匿名數據
其他所有情況下,我們收集PII,但不需要它來排除故障或提升模型性能。
一種更好的方法是永久地刪除關于一個人的私人數據和我們用來訓練的數據之間任何直接相關的聯系。如果我們能夠永久地刪除私人數據和個人之間的聯系,數據的風險就會大大降低,處理數據的靈活性也會增加。當然,這并不像看起來那么簡單[3]。以一種不是簡單可逆但仍有價值的方式做到這一點可能很困難。雖然存在許多優秀的技術,但一個公認的基本觀點是將擁有的數據結合到一起,以確保任何報告的數據都與任何真實的個人唯一標識符沒有聯系。這是許多嚴肅的人口研究組織所采取的方法,特別是美國人口調查局。然而,要做到這一點,還有很多細微的地方需要注意。盡管我們會參考什么是正確的匿名化,但它是一個超出本書范圍的話題。
不要將自己的身份匿名化
在過去的幾年里,有幾個非常受關注的失敗案例已經讓匿名化的難點變得十分清晰。特別是哈佛大學政府系的Latanya Sweeney博士(http://latanyasweeney.org)的著作值得一讀。Sweeney博士輕松地證明,盡管當時的馬薩諸塞州州長威廉·韋爾德的健康記錄是“匿名”的,但只需知道他的性別、年齡和郵政編碼(可從選民記錄中免費獲得),就可以識別出他的健康記錄。Sweeney博士進一步證明,美國87%的人只需通過三條信息(性別、年齡和郵政編碼)就能被唯一識別,更多細節可參見Nate Anderson的“Anonymized Data Really Isn’t——and Here’s Why Not”(https://oreil.ly/V39HT)。
類似的研究表明,瀏覽器用戶代理字符串與郵政編碼或其他幾種信息相結合,可以唯一地識別一個人。這個故事的寓意是匿名化的實現十分困難,你肯定需要自學這方面的知識,或將其外包給擅長此事的人或平臺。匿名化本身就是一個重要的專業。如何正確地匿名化與一些數學上的復雜話題密切相關,如密碼學,它是一個獨立的專業。
最終,我們需要能夠刪除這些數據。我們可能會根據個人用戶的要求、當地法律、歐盟《通用數據保護條例》(GDPR;https://gdpr-info.eu)等法規而這樣做,或者在其他情況下,我們不再有存儲這部分數據的權限。事實證明,刪除數據并使其真正地被刪除很困難。
這至少從早期的MS-DOS時代就開始了,當時刪除一個文件只是刪除了對它的引用,而不是實際數據本身,這意味著你可以憑借足夠的決心和運氣重建文件。從不得不追蹤數據的多個副本到元數據管理,今天的計算環境的一切都使刪除比當年要更困難。在大多數分布式存儲系統中,數據被分割成許多部分,并存儲在不同的物理機器上。根據實際情況來說,要確定每一個可能有數據寫入的耐用存儲設備(機械硬盤或固態硬盤),基本上是不可能的。
重要的是,人們確定他們想要沒有任何阻礙地刪除自己的數據。平衡這一點的一種方法是在真正刪除數據之前施加一個短暫的延遲。用戶在要求刪除數據后,可能會被授予幾小時甚至幾天的時間來取消該請求。但在某些時候,一旦我們確認該請求是確定的、合法的,我們就需要追蹤該數據的每一份副本并將其剔除。根據它的存儲方式、數據結構、索引和備份可能會被重建,以使訪問與之相關的數據和刪除之前一樣高效可靠。
與大多數任務相同,刪除數據的任務要經過細致的思考之后才能完成。如果你的系統沒有考慮那么多,你可以使用一些變通方法。這里有兩個常見的優化方法:
定期重寫數據
當存在一個重新生成數據的過程時,我們可以利用前面提到的“不要立即刪除數據”的策略,在下次重寫數據時排除“已刪除”的數據。這假設數據再生的周期與預期的可接受的刪除延遲相匹配。這也假設數據的重寫能有效地實際刪除數據,雖然現實情況很可能根本不是這樣。
對所有數據進行加密并銷毀一部分密鑰
以這種方式設計的系統有一些明顯的優勢。特別是,它可以保護“靜態”的私人數據(寫入持久性存儲)。刪除數據也很簡單:如果失去了用戶數據的密鑰,我們就不能再讀取這些數據。弊端大多是可以避免的,但值得認真考慮:任何采用這種策略的人都需要非常可靠的密鑰處理系統,因為如果密鑰丟失,所有的數據都會丟失。這也會使可靠地從密鑰系統的每個備份中刪除密鑰變得困難。