返回博客技术

GDPR合规的机器学习训练数据:在不编写代码的情况下匿名化10,000条记录

GDPR限制将个人数据用于机器学习训练,超出其原始收集目的。依赖临时Python脚本的数据科学家创建了一致性差、无法审计的匿名化。批处理在45分钟内生成GDPR合规的训练数据集。

April 19, 20267 分钟阅读
ML training dataGDPR data scienceSchrems IItraining dataset anonymizationresponsible AI

GDPR合规的机器学习训练数据:在不编写代码的情况下匿名化10,000条记录

每个处理GDPR相关数据的数据科学团队都编写过某种版本的这个脚本:

import re
def anonymize_email(text):
    return re.sub(r'[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+.[a-zA-Z]{2,}', '[EMAIL]', text)

这并不是GDPR合规。这只是电子邮件地址的替换。数据集中仍然包含姓名、电话号码、医疗记录ID和其他十几类个人身份信息(PII),这些都会导致合规失败。

“我匿名化了电子邮件”和“这个数据集符合GDPR用于机器学习训练的要求”之间的差距很大、后果严重,并且常常被低估。

为什么GDPR限制机器学习训练数据的使用

GDPR的目的限制原则(第5条第1款(b))规定,个人数据只能为特定、明确和合法的目的收集,并且不得以与这些目的不兼容的方式进一步处理。

为订单履行收集的客户数据并不是为了训练推荐模型而收集的。为治疗收集的健康记录数据并不是为了训练再入院预测模型而收集的。为产品反馈收集的调查响应数据并不是为了训练情感分析模型而收集的。

使用这些数据进行机器学习训练需要:

  1. 每个数据主体对机器学习训练目的的明确同意(操作上复杂,通常无法追溯)
  2. 合法利益评估,表明训练目的与原始收集兼容(法律上不确定,依赖于数据保护机构)
  3. 匿名化——去除或替换PII,使数据在GDPR下不再是个人数据

适当的匿名化是最少阻力和最大的法律确定性的路径。挑战在于正确和一致地做到这一点。

临时匿名化脚本的问题

为每个新数据集编写一次性Python脚本的数据科学团队会产生累积问题:

覆盖不完整: 为处理一个数据集的模式而编写的脚本错过了自上次模式更新以来添加的列中的PII。6个月前添加的临床笔记字段:不在正则表达式模式中。客户中间名字段:正则表达式仅处理名字和姓氏模式。

数据集之间的不一致性: 数据集A使用script_v1.py进行了匿名化。数据集B使用script_v3.py进行了匿名化。数据集C由另一位团队成员匿名化,他不知道script_v3.py。合并的训练数据集有三种不同的匿名化方法。数据保护官无法认证它。

没有审计记录: 脚本运行了。它改变了什么?发现了哪些实体?在哪些行?没有处理元数据,合规文档是不可能的。当数据保护机构审计员问“你怎么知道这个训练数据集是匿名的?”时,“我们运行了一个Python脚本”并不是一个令人满意的答案。

模型漂移: 在2023年有效的正则表达式模式无法检测到在2024年数据中引入的新标识符格式(新的社会安全号码格式、不同的电子邮件域模式、不断变化的电话号码格式)。脚本不会自我更新。

批处理方法

一家医疗保健AI公司的数据科学团队需要在其美国团队可以从欧盟办公室访问之前,匿名化8,000条患者记录(适用Schrems II跨境数据传输限制)。

传统方法: 数据工程师编写一个自定义的Python匿名化脚本。时间:2-3天的开发,1-2天与数据保护官的测试和审查,1天的迭代。总计:4-6天。机器学习项目时间表延迟。

批处理方法:

  1. 将8,000条记录导出为CSV(标准数据科学格式)
  2. 上传到批处理
  3. 配置实体类型:PERSON, EMAIL_ADDRESS, PHONE_NUMBER, US_SSN, MEDICAL_RECORD, DATE_OF_BIRTH, LOCATION
  4. 选择方法:替换(用现实的虚假数据替代,以保持数据集结构用于机器学习训练)
  5. 处理:8,000条记录处理时间为45分钟
  6. 下载匿名化的CSV
  7. 数据保护官审查处理元数据(每条记录发现的实体、应用的方法):2小时
  8. 数据保护官批准,数据共享继续

总时间:45分钟处理 + 2小时数据保护官审查 vs. 4-6天工程。机器学习时间表保持在轨道上。

替换与编辑在机器学习训练数据中的选择

匿名化方法的选择对机器学习的效用很重要:

编辑(黑条/占位符替换): 用**[REDACTED]或类似的标记替换PII。结果数据集中在PII的位置上有一致的占位符标记。对于训练以检测PII的自然语言处理模型,这创建了一个标记数据集。对于训练下游任务(情感、分类、推荐)的模型,[REDACTED]标记会干扰自然语言建模——模型学习到[REDACTED]**是一个特殊标记,而不是从真实姓名和数值的分布中学习。

替换(现实的合成替代): 用“David Chen”(一个现实但不同的名字)替换“John Smith”。电子邮件“jsmith@company.com”变为“dchen@synthetic.com”。结果数据集保持自然语言分布——句子结构、实体位置、共现模式——这些对自然语言处理模型训练很重要。

对于机器学习训练数据,替换是合适的方法。模型不会学习预测特定的虚假值(它们是随机替代),但它从姓名、电子邮件和其他实体在文本中出现的结构和上下文模式中学习。

Schrems II与跨境数据流

Schrems II裁决(CJEU,2020)使欧盟-美国隐私保护盾失效,给从欧盟到美国服务器的数据传输带来了不确定性。对数据科学的实际影响:来源于欧盟的训练数据不能在没有适当传输保障的情况下发送到基于美国的机器学习基础设施(AWS美国东部,GCP美国中部)。

适当的保障包括:

  • 带有传输影响评估的标准合同条款(SCCs)
  • 用于集团内部转移的约束性公司规则(BCRs)
  • **匿名数据的例外:**适当匿名化的数据在GDPR下不再是个人数据,并且不受传输限制

对于使用基于美国的机器学习基础设施的团队,适当的匿名化完全消除了Schrems II问题。匿名化的数据集不再是个人数据——可以在任何基础设施上传输、存储和处理,而无需传输机制要求。

提交数据保护官批准的文档

在向数据保护官提交匿名化训练数据以获得批准时,提供:

  1. 源数据描述: 原始数据集是什么,它的收集目的是什么,包含了哪些个人数据类别?

  2. 匿名化配置: 检测和替换了哪些实体类型?应用了什么方法?

  3. 处理元数据: 每条记录检测到的实体数量、检测置信度分数、处理的总记录数

  4. 剩余风险评估: 从匿名数据集中重新识别任何个体的概率是多少?对于在结构化文本上应用285+实体类型的替换方法匿名化,这个概率对于大多数训练数据集来说非常低。

  5. 预期用途: 将训练什么机器学习模型?训练目的是什么?

批处理的处理元数据自动提供第2-3点。第1、4和5点需要数据科学家的输入。

结论

GDPR合规的机器学习训练数据是可以实现的,无需临时脚本,无需多天的工程延迟,也无需牺牲数据集在模型训练中的效用。替换匿名化方法保留了使数据对自然语言处理模型训练有用的自然语言特性,同时去除了造成GDPR责任的个人数据特性。

45分钟的批处理是合规审查延迟时间表与简单的数据保护官签字之间的区别。

来源:

准备好保护您的数据了吗?

开始使用 285 种实体类型在 48 种语言中匿名化 PII。