机器学习数据集中敏感数据的处理考量
1. 引言
在开发机器学习(ML)程序时,平衡公司内部的数据访问与该访问的安全影响至关重要。我们希望原始数据集中的见解能指导 ML 训练,同时限制对敏感数据的访问。为实现这两个目标,可以在原始数据的子集上训练 ML 系统,或者在对整个数据集部分应用聚合或混淆技术后进行训练。
2. 敏感信息处理的挑战
敏感信息是指需要通过额外安全措施(如限制访问或加密)来保护的数据,例如姓名、电子邮件地址、账单信息等。处理机器学习数据集中的敏感数据存在困难,原因如下:
-
基于角色的安全机制不适用
:大多数基于角色的安全机制针对所有权概念,即用户只能查看和/或编辑自己的数据,但 ML 数据集是多个用户数据的聚合,数据工程师需要访问整个数据集才能有效使用。
-
加密和降分辨率不足
:加密或降低敏感字段的分辨率常被用作预防措施,但对于 ML 数据集并不总是足够,因为聚合数据集本身可能通过频率分析攻击破解加密。
-
数据处理影响模型训练
:随机标记化、抑制或删除敏感字段可能会模糊必要数据,降低有效 ML 模型训练效果,导致预测性能不佳。
3. 保护敏感数据的目标
为保护 ML 数据集中的敏感数据,需牢记以下三个目标:
-
高置信度识别敏感数据
:准确识别数据集中的敏感数据。
-
保护敏感数据不影响项目
:通过删除、掩码或粗化已确定为敏感的数据来实现。
-
创建治理计划和最佳实践文档
:让数据工程师和客户能就敏感数据做出适当决策,特别是在敏感数据无法可靠识别、掩码或删除的情况下。
4. 识别敏感数据
敏感数据可能存在于多种场景中,以下是五种常见场景及识别方法:
-
列中的敏感数据
:在结构化数据集中,敏感数据可能局限于特定列。例如,包含用户姓名和邮寄地址的列。需确定哪些列包含敏感数据,决定如何保护它们并记录决策。
-
非结构化文本数据集中的敏感数据
:可通过已知模式检测,如使用正则表达式检测聊天记录中的信用卡号。使用 Google Data Loss Prevention API(DLP API)等工具可减少正则表达式检测错误。
-
自由形式非结构化数据中的敏感数据
:存在于文本报告、音频记录、照片或扫描收据等中。可使用以下工具识别:
-
自由文本文件
:使用 Cloud Natural Language API 等自然语言处理系统识别实体、电子邮件地址等。
-
音频记录
:使用 Cloud Speech API 进行语音转文本,再应用自然语言处理器。
-
图像
:使用 Cloud Vision API 进行文本检测,获取图像中的原始文本并确定其位置。
-
视频
:将视频解析为单个图片帧作为图像文件处理,或使用 Cloud Video Intelligence API 和 Cloud Speech API 处理音频。
以下是识别敏感数据的流程:
graph LR
A[数据类型判断] --> B{是否为结构化数据}
B -- 是 --> C[检查列是否含敏感数据]
B -- 否 --> D{是否为文本数据}
D -- 是 --> E[用正则或 DLP API 检测]
D -- 否 --> F{是否为音频数据}
F -- 是 --> G[用 Cloud Speech API 转文本再处理]
F -- 否 --> H{是否为图像数据}
H -- 是 --> I[用 Cloud Vision API 检测]
H -- 否 --> J{是否为视频数据}
J -- 是 --> K[解析帧或用 API 处理]
- 字段组合中的敏感数据 :敏感数据可能以字段组合的形式存在,或者从受保护字段随时间的趋势中显现。例如,将邮政编码模糊为前三位(“zip3”)可降低识别用户的可能性,但工作和家庭地址的 zip3 组合可能仍能识别用户。识别数据集在频率分析攻击下是否真正受保护需要统计专业知识。
- 非结构化内容中的敏感数据 :由于嵌入的上下文信息,敏感数据可能存在于非结构化内容中。例如,聊天记录中的特定短语可能包含敏感信息。由于非结构化性质和复杂的短语组合,使用编程工具处理此场景困难,可考虑对整个非结构化数据集进行更严格的访问治理。对于模型开发,可采用经过可信人员清理和审查的数据子样本。
5. 保护敏感数据
识别敏感数据后,需确定如何保护它,以下是几种方法:
-
删除敏感数据
:如果项目不需要用户特定信息,可在将数据提供给数据工程师之前删除。根据数据集结构,删除敏感数据的方法不同:
-
结构化数据集
:创建不提供对相关列访问权限的视图,数据工程师无法查看数据,但数据仍“实时可用”,无需人工干预进行去标识化以进行连续训练。
-
非结构化内容
:如果敏感数据可通过已知模式识别,可自动删除并用通用字符串替换,如 DLP API 所做的那样。
-
图像、视频、音频或自由形式非结构化数据
:扩展用于识别敏感数据的工具来掩码或删除它。
-
字段组合中的敏感数据
:如果已使用自动化工具或手动数据分析步骤量化每列的风险,数据工程师可就保留或删除相关列做出明智决策。
-
掩码敏感数据
:当无法删除敏感数据字段时,数据工程师仍可使用掩码格式的数据训练有效模型。以下是几种掩码技术:
-
替换密码
:用哈希和/或加密值替换所有明文标识符的出现。通常使用强加密哈希(如 SHA - 256)或强加密算法(如 AES - 256)存储敏感字段。注意,加密时使用盐会产生不可重复的值,不利于 ML 训练。
-
标记化
:用无关的虚拟值替换每个敏感字段中的真实值。虚拟值到真实值的映射在另一个更安全的数据库中加密/哈希。此方法仅在相同值重用相同标记值时适用于 ML 数据集,类似于替换密码,易受频率分析攻击,但增加了一层保护。
-
主成分分析(PCA)或降维技术
:将多个特征组合,仅在生成的 PCA 向量上进行 ML 训练。例如,将年龄、是否吸烟和体重三个字段组合成一个 PCA 列。此方法可提高安全性,但会降低数据分布,以准确性换取安全性。
由于加密、哈希和标记化等掩码方法易受频率分析攻击,所有掩码方法都必须与有效的审计和治理机制结合,以限制对可能包含敏感数据的所有机器学习数据集的访问。
-
粗化敏感数据
:粗化是降低数据精度或粒度的技术,使识别数据集中的敏感数据更困难,同时仍能获得与使用粗化前数据训练模型相当的好处。以下字段特别适合此方法:
- 位置 :根据全球人口密度不同,可对位置坐标进行舍入,或使用城市、州或邮政编码等位置标识符。
- 邮政编码 :将美国 5 + 4 格式的邮政编码粗化为前三位(“zip3”),减少识别特定用户的能力。
- 数字数量 :将数字分箱,例如用出生年代或月份代替确切生日。
- IP 地址 :将 IPv4 地址的最后一个八位字节置零(IPv6 则是最后 80 位),在管道早期进行 IP 地址粗化,甚至可修改日志记录软件在写入磁盘前掩码或抑制 IP 地址。
6. 建立治理政策
如果数据集包含任何敏感数据,建议咨询法律顾问以建立治理政策和最佳实践文档。建立政策框架时可考虑以下常见概念:
-
建立安全文档存储位置
:确保治理文档的安全存储。
-
排除加密密钥等工具
:不在文档中包含加密密钥、哈希函数等工具。
-
记录敏感数据来源
:记录所有已知的传入敏感数据来源。
-
记录存储位置和数据类型
:记录所有已知的存储敏感数据的位置及数据类型,包括已采取的保护措施。
-
记录处理困难的位置
:记录难以、不一致或无法进行修复步骤的敏感数据位置,特别是可能受到频率分析攻击的情况。
-
建立扫描和识别新来源的流程
:持续扫描和识别新的敏感数据来源。
-
记录访问权限
:记录被授予临时或永久访问敏感数据的角色和员工姓名,以及他们需要访问的原因。
-
记录访问请求流程
:记录员工请求访问敏感数据的流程,包括访问位置、复制权限等限制。
-
建立定期审查流程
:定期审查谁有权访问哪些敏感数据,并确定是否仍需要访问权限。规划员工离职或换岗时的处理流程。
-
建立沟通和执行流程
:建立沟通、执行和定期审查政策的流程。
通过以上方法,可以在保护敏感数据的同时,有效利用机器学习数据集进行模型训练。
机器学习数据集中敏感数据的处理考量
7. 不同保护方法的对比
为了更清晰地了解各种保护敏感数据的方法,下面通过表格进行对比:
| 保护方法 | 优点 | 缺点 | 适用场景 |
| — | — | — | — |
| 删除敏感数据 | 直接消除敏感信息,数据工程师无法接触到敏感数据;结构化数据可自动去标识化进行连续训练 | 可能大幅降低数据集价值;对于复杂组合敏感数据难以准确删除 | 项目不需要用户特定信息;敏感数据可明确界定且删除不影响整体分析 |
| 掩码敏感数据 | 可在保留数据用于训练的同时保护敏感信息;标记化增加额外保护;PCA 可提高安全性 | 替换密码、标记化易受频率分析攻击;PCA 会降低数据分布,影响准确性 | 无法删除敏感数据但仍需利用其进行训练;数据工程师确定掩码不影响 ML 训练 |
| 粗化敏感数据 | 降低数据精度或粒度,使识别敏感数据更困难;不影响整体数据的可用性 | 可能损失一定的数据细节 | 位置、邮政编码、数字数量、IP 地址等字段 |
8. 实际应用案例分析
以下通过一个简单的案例来展示上述方法的实际应用。假设我们有一个电商用户数据集,包含用户姓名、地址、购买历史、IP 地址等信息,我们要训练一个推荐模型。
-
识别敏感数据
:
- 姓名、地址属于敏感数据列,可直接识别。
- 购买历史中的信用卡号,可使用正则表达式或 DLP API 识别。
- 用户评价中的敏感信息,可使用自然语言处理系统识别。
- 地址和购买时间的组合可能存在敏感信息,需进行风险量化分析。
graph LR
A[电商用户数据集] --> B[识别列敏感数据]
A --> C[识别文本敏感数据]
A --> D[识别组合敏感数据]
B --> E[姓名、地址]
C --> F[信用卡号、评价敏感信息]
D --> G[地址和购买时间组合]
-
保护敏感数据
:
- 删除敏感数据 :如果推荐模型不需要用户姓名,可创建一个不包含姓名列的视图。
- 掩码敏感数据 :对于用户地址,使用替换密码进行掩码,如使用 SHA - 256 哈希存储。对于购买历史中的信用卡号,使用标记化方法,将真实卡号映射到虚拟值。
- 粗化敏感数据 :将用户的 IP 地址最后一个八位字节置零,将购买时间粗化为月份。
9. 总结
处理机器学习数据集中的敏感数据是一个复杂但必要的任务。我们需要在数据可用性和安全性之间找到平衡。通过高置信度识别敏感数据、采用合适的保护方法(删除、掩码、粗化)以及建立有效的治理政策,可以有效保护敏感数据,同时确保机器学习模型的训练效果。
在实际应用中,要根据具体的数据集和项目需求,灵活选择和组合这些方法。对于不同类型的敏感数据,可能需要采用不同的处理策略。同时,持续的监控和审查是确保数据安全的关键,随着业务的发展和数据的变化,及时调整保护措施和治理政策。
总之,通过科学合理的方法和流程,我们可以在机器学习领域中安全地利用数据,推动业务的发展和创新。
超级会员免费看
823

被折叠的 条评论
为什么被折叠?



