医学数据共享隐私保护中基于聚类的匿名化算法关键技术研究*

2023-08-02 11:29唐明坤吴思竹周佳茵段一凡胡拯涌
医学信息学杂志 2023年6期
关键词:元组等价复杂度

唐明坤 吴思竹 周佳茵 段一凡 胡拯涌 钱 庆

(中国医学科学院/北京协和医学院医学信息研究所 北京 100020)

1 引言

随着数据共享需求的不断增长,数据隐私保护问题受到越来越多关注。近年来我国相继出台《中华人民共和国个人信息保护法》等法律法规,对数据隐私保护提出更高要求[1]。医学数据中包含大量个人隐私信息,随着跨单位合作的增加,医学数据共享需求也在不断增长[2],相关数据共享平台[3-4]和机制[5-7]等研究受到广泛关注。然而,由于包含大量个人隐私信息和群体健康生理信息,医学数据的高质量开放共享面临诸多挑战[8]。

基于聚类的匿名化算法具有灵活性较高、能够保留原始数据更多信息的特点,被广泛应用于各种对数据质量要求较高的场景,尤其是医学数据共享[9-11]。但医学数据具有语义信息层次丰富、隐私保护需求多样化等特点,加上不同类型基于聚类的匿名化算法在时间复杂度、适用数据特点、适用场景等方面存在较大差异,导致在真实世界数据共享中如何选择合适的基于聚类的匿名化算法成为迫切需要解决的问题。因此本研究通过梳理面向医学数据共享的匿名化聚类算法关键技术相关内容,以期为相关研究提供参考。

2 基于聚类的匿名化算法主要流程

2.1 主要流程

医学数据类型丰富,包括电子病历数据、公共卫生数据等。基于聚类的匿名化算法首先根据数据特点选择合适的隐私模型,而后将原始数据集映射到特定度量空间中,再对空间中的数据进行聚类和泛化、抑制或扰动等匿名化处理以实现数据匿名化。本文归纳其主要流程,包括待处理数据属性类别确定、隐私模型选择、匿名化聚类算法选择与实现,见图1。

图1 基于聚类的匿名化算法主要流程

2.2 数据属性类别确定

数据属性类型包括显式标识符、准标识符、敏感属性和非敏感属性4类。显式标识符指能直接确定个体身份的属性,如姓名等;准标识符指在一定背景知识下,能够通过该属性或属性组合确定个体身份的属性,如年龄等;敏感属性指需要保护、涉及个体隐私信息的属性,如疾病等;非敏感属性是不属于以上3类的属性。显式标识符直接暴露个体身份,需要进行抑制处理;而准标识符和敏感属性潜在暴露个体身份,是匿名化处理的重点对象。

2.3 隐私模型选择

隐私模型是数据集匿名化处理的标准。其可分为传统隐私模型和个性化隐私模型。后者在传统隐私模型基础上对敏感属性值进行个性化保护,例如给予艾滋病患者相关数据更多保护。确定是否需要个性化保护后,还需要进一步综合隐私保护需求(如严格或宽泛程度)和数据特点(如数据规模、离群值数量等)。通常隐私保护需求越高则需要选择更严格的隐私模型。同时,数据集特点也约束着隐私模型的选择,例如大规模电子病历数据集,当数据量在总人口中占比较大时,需要使用考虑人口统计信息的隐私模型。

2.4 算法选择与实现

基于聚类的匿名化算法是实现隐私模型的方法。基于聚类的匿名化算法选择除了要考虑隐私模型的要求,还需要考虑算法的实现成本、数据集特点等。选取最佳匿名化算法才能够获得高质量匿名化数据集。不同算法之间的差别主要是聚类过程和匿名化处理。聚类过程指将数据集中相似元组聚集成簇的过程,该过程受距离度量方法影响,决定算法性能。匿名化处理指对每个聚类簇进行泛化、抑制或扰动从而使每个簇内的单个元组无法再与其他元组区别的过程。

3 隐私模型

3.1 传统隐私模型

3.1.1 k-匿名模型 经典传统隐私模型包括k-匿名模型、l-多样性模型、t-近似性模型等,各模型要求及能抵御的攻击,见表1。k-匿名模型是最早出现的隐私模型[12],也是实现其他隐私模型的基础。该模型因为能够简单且有效降低重识别风险,至今仍被广泛应用于医疗数据、中医药临床数据等的隐私保护[13]。k-匿名模型能够抵御链接攻击,但存在同质性攻击风险,例如在一个医疗数据集中,当一个等价类中多个患者患有相同疾病,攻击者可以轻易确定满足该类准标识符的个体患有该疾病。

表1 经典传统隐私模型的要求及可抵御的攻击风险

3.1.2 l-多样性模型 为了抵御同质性攻击,Machanavajjhala A等[14]提出l-多样性模型进一步加强对数据集中敏感属性的保护。该模型要求敏感属性在同一个等价类中的值具有多样性,具体可以细分为4类,见前文表1。与l-多样性模型原理类似的隐私模型还有p-Sensitive k-匿名模型[16]和(α,k)-匿名模型[17]等。l-多样性相关隐私模型能够抵御链接攻击和同质性攻击,但仍存在相似性攻击风险,例如在匿名数据集的某个等价类中,多个患者患有类似疾病,攻击者便可以通过语义或敏感程度推断出患者疾病。

3.1.3 t-近似性模型 Li N[15]提出t-近似性模型对等价类中敏感属性值的分布提出限制,以抵御相似性攻击。但该模型明显降低了匿名化数据集质量,尤其是当数据集规模较小或者k-匿名模型的k值较小时数据质量下降严重,只能通过提高阈值t来提高输出数据集质量。

3.2 个性化隐私模型

3.2.1 个性化隐私模型分类 个性化隐私模型在传统隐私模型的基础上对不同敏感属性值赋予个性化权重,对高敏感性的敏感属性值进行重点保护。个性化隐私模型可分为两类。一类是仅根据保护需求将敏感值划分不同的保护级别,如(p+,α)-敏感k-匿名模型[18]。该模型要求先将敏感属性值依照敏感程度划分不同级别,然后保证在一个等价类中至少包含p个不同类别的敏感属性值,避免了同类敏感属性值在单个等价类中的集中分布,能有效实现个性化隐私保护。另一类是通过构建敏感属性泛化结构树,用泛化值取代敏感值实现匿名保护,如个性化(p,k)匿名隐私保护模型[19]。该模型首先对不同敏感值进行评估,然后构建泛化结构树,根据评估分值进行泛化。该方法能有效保护高敏感性的敏感属性值,但也会造成部分敏感属性值丢失,导致数据质量下降。

3.2.2 个性化隐私模型相关研究 近年来,随着个性化数据共享场景增加,个性化隐私模型相关研究也逐渐增多。李文等[20]于2017年提出面向医疗数据共享的个性化l-多样性匿名隐私保护模型,不仅要求匿名化数据满足Entropy l-多样性模型,而且还将敏感属性值区分为强敏感属性值和弱敏感属性值,限制强敏感属性值出现频率,实现移动医疗系统用户隐私数据保护。2022年冷建宇[21]针对医疗数据中疾病属性具有双重语义信息的特点,提出个性化的(w,k,d)-匿名模型。该模型不仅按照疾病严重程度进行分级,而且还利用疾病语义层次结构度量不同疾病之间的距离用于约束等价类,从而实现个性化保护。

4 基于聚类的匿名化算法

4.1 实现传统隐私模型的匿名化算法

4.1.1 实现k-匿名模型算法 作为最基础的模型,实现k-匿名模型的基于聚类的匿名化算法种类十分丰富,包括k-means 算法[22]、k-member算法[23]、平均矢量最大距离算法(maximum distance to average vector algorithm,MDAV)[24]、单程k-均值算法(one-pass k-means algorithm,OKA)[25]等。k-means算法[22]是实现k-匿名模型最简单的算法,通过随机选取聚类中心,多次迭代生成等价类后实现匿名化。k-member算法[23]和MDAV算法[24]原理相似,聚类过程都是逐个元组逐簇进行的,当聚类簇大小达到k以后,才开始进行下一个簇的聚类,因此算法性能较差,都具有O(n2)的时间复杂度。为了降低时间复杂度,Lin J L[25]提出OKA算法,通过一次同时随机生成k个聚类中心,将聚类过程的时间复杂度降低到了O(n2/k)。

4.1.2 实现l-多样性模型的算法 许多实现l-多样性模型的算法都是在k-匿名模型算法基础上进行改进的。例如郑珂等[26]基于k-means 算法提出通过将敏感属性转化为多维向量,然后根据向量距离进行聚类的基于多敏感属性k-means算法,能够抵御链接攻击和同质性攻击;夏赞珠等[27]提出基于MDAV改进的(k,e)-MDAV聚类算法,设置敏感属性取值差异参数e,要求在聚类过程中保证每个簇大小达到k且敏感属性取值差异也达到e以上,实现抵御同质性攻击的敏感属性保护。Gui Q等[28]提出基于泛化数据的模糊C均值聚类(fuzzy C-means clustering with generalization data,FCMGD)算法,在该算法中,每个元组不是仅分配到单个聚类簇中,而是通过构建隶属度矩阵允许元组对每个聚类都有一个隶属度,然后根据隶属度矩阵调整聚类结果实现l-多样性模型。

4.1.3 实现t-近似性模型的算法 为了保证匿名化数据中等价类敏感属性值分布能够与整个数据集分布相同,通常需要首先将整个数据集根据相似敏感属性进行划分,然后再进行聚类。Cao J等[29]指出敏感属性分类和重分配(sensitive attribute bucketization and redistribution,SABRE)算法框架,首先将原始数据根据敏感属性值的相似性划分为多个组,在构建等价类簇时纳入从各组中等比例选取的元组,以保证生成的等价类敏感属性值与整体敏感属性值的分布趋同,从而实现t-近似性模型。Soria-Comas J等[30]提出可以通过先对敏感属性排序再聚类或先聚类再检查聚类簇是否满足模型要求两种方案实现t-近似性模型。Fang Y等[31]引入完全不相交投影(complete disjoint projections,CODIP)方法,用一个单值属性替换每个多值敏感属性,并根据其关联将所有敏感属性分割为一些不相交的子集,然后再分别处理每个子集以满足敏感属性的分布要求。Wang R等[32]在模糊C均值聚类算法基础上,对不满足t-近似性模型的聚类簇通过元组抽取再分配的方法实现多敏感属性的t-近似性模型。

4.2 实现个性化隐私模型的匿名化算法

实现个性化隐私模型的基于聚类的匿名化算法为了保证敏感属性在各级别的分布,通常需要将整个数据集元组的相似敏感属性进行划分后再进行聚类。如王平水[33]提出的个性化(l,c)-匿名算法,首先对各敏感属性值的敏感度进行定义,根据敏感属性值的敏感度降序排列构建哈希桶,然后从中选取元组进行聚类使信息损失最小,以保证敏感程度高的属性值得到更高程度保护。对敏感属性进行泛化的个性化匿名模型的聚类算法,如贾俊杰等[19]提出的个性化(p,k)-匿名隐私保护算法,只需要在普通聚类算法基础上,根据对敏感属性保护的需求,对高敏感性的敏感属性值进行泛化,直至满足使用者需求,便能实现个性化保护。近年来,还出现许多结合敏感属性特点改进的算法。如黄玉蕾等[34]提出的基于多敏感值的个性化隐私保护算法、朱理奥[35]提出的个性化(w,l,k)-匿名模型等。

4.3 基于聚类的匿名化算法比较分析(表2)

表2 代表性基于聚类的匿名化算法特点

4.3.1 距离度量 距离度量方法不同会影响聚类效果,但许多聚类算法并未给出度量两个元组之间距离的具体方法。通常距离度量与数据属性分类有关。有研究[37]仅提及连续型数据、二元数据等的距离度量方式,未考虑多分类类型数据的距离度量。另有研究[23]提出一种构建分类型数据泛化树的方法,通过比较最小共同父类度量两个多分类类型数据值的距离,以更准确地表示两个元组之间的距离。该方法可以作为改进手段应用于所有聚类算法中。

4.3.2 时间复杂度 从前文表2中可以看出,各算法的时间复杂度大小从Ο(kn)到Ο(en2)不等。时间复杂度高低与元组在聚类过程中的比较次数有关。时间复杂度低的算法由于元组之间比较次数较少,聚类效果较差,匿名化过程引起的信息损失较多。实现l-多样性模型的算法时间复杂度达到Ο(n2),这与约束敏感属性过程中聚类中心需要与所有元组都进行距离比较有关。

4.3.3 优点及不足 基于聚类的匿名化算法的优点及不足主要受到聚类过程影响,包括聚类中心的选择、聚类簇纳入元组的方式以及等价类的大小等。许多算法是基于原有算法进行改进产生的,例如V-MDAV算法在MDAV算法的基础上允许每个等价类大小不固定,从而提高簇内元组相似性,减少泛化过程信息损失。

5 基于聚类的匿名化算法应用于医学数据共享隐私保护的建议

5.1 合理选择基于聚类的匿名化算法类型

在医学数据需要共享时,首先需要对共享数据进行分析。如果该数据结构化程度较高,共享时对数据质量具有较高要求,且对匿名化处理时间成本要求较低,那么基于聚类的匿名化算法是比其他匿名化算法更优的选择。选择算法类型时,需要判断不同敏感属性值是否存在不同保护需求,并基于此选择实现传统或个性化的隐私模型算法。在医学数据中往往存在许多需要进行特殊保护的敏感属性值,应当选择实现个性化隐私模型的算法。同时,对敏感属性的保护需求程度也是选择模型的重要依据。从l-多样性模型到t-近似性模型等,对敏感属性的分布要求越来越严格,生成的匿名化数据质量也越来越低,因此选择模型算法时需要在加强隐私保护和保证数据质量之间进行权衡。最后,数据集的基本特点也是算法选择的重要影响因素。例如数据集中离群值较多时,不应选择受离群值影响较大的MDAV等算法;而数据规模较大或处理设备性能较差,需要在较短时间内获得匿名化结果时,不应选择FCMGD等时间复杂度较高的聚类算法。

5.2 灵活改进基于聚类的匿名化算法模型

由于真实世界的数据共享场景千变万化,很难有完全满足使用要求的基于聚类的匿名化算法可供直接使用。因此实际使用时,可以根据数据集特点等对算法进行改进,例如在医学数据共享过程中,如果选择实现l-多样性模型的(k,e)-MDAV算法,但数据集中的离群值较多导致聚类效果不够理想时,可以考虑参考加权k-member聚类算法进行改进,减少离群值影响。同时,医学数据中通常存在许多缺失值,而大多数基于聚类的匿名化算法都没有讨论存在缺失值时的处理方法。此时则可以参考面向不完整医疗数据集的匿名化聚类算法对缺失值的处理方法[9],对所选择算法进行改进。此外,在不同场景中衡量匿名化数据集效用的指标不同,可以针对具体方面的效用对算法进行调整改进。例如对面向机器学习用途的数据共享,需要保证匿名化数据的机器学习结果与原始数据的结果相似,可以在匿名化处理过程结合非均衡熵模型,使匿名化数据集具有较好的分类模型训练能力[38]。最后,还可以融合多种算法的优点对所选择的算法进行改进,例如个性化聚类算法与传统聚类算法的融合等。

5.3 加大基于聚类的匿名化算法工具研发力度

目前基于聚类的匿名化算法主要是研究者利用Java、Python等编程语言根据算法原理编写程序实现的,实现成本较高。虽然近年来涌现出sdcMicro工具包等集合多种基于聚类的匿名化算法工具,但这些工具支持的算法数量均较少且灵活性较差,基于聚类的匿名化算法工具的研发存在大量空白。基于聚类的匿名化算法工具研发一方面可以使一些常见的需要不断重复使用匿名化算法的医学数据共享场景,如基于科研目的的电子病历数据共享等,能够实现快速匿名化处理。这不但可以减少匿名化成本,而且可以提高数据共享积极性,有效保障共享数据隐私安全。另一方面有利于实现数据共享匿名化过程规范化,建立科学统一匿名化要求标准,保障匿名化结果具有相对稳定性,从而提高匿名化结果可靠性,为匿名化评估提供依据。

6 结语

近年来出现的各类传统算法的改进算法模型和个性化隐私模型的匿名化算法在医学领域被广泛应用,研究者在使用这些算法时应尤其注意选择最合适类型。此外,研究者和医学数据共享者还应当关注数据本身特点和共享目标选择匿名化处理方式,从而实现平衡数据的安全性和可用性。

猜你喜欢
元组等价复杂度
等价转化
Python核心语法
海量数据上有效的top-kSkyline查询算法*
一种低复杂度的惯性/GNSS矢量深组合方法
基于减少检索的负表约束优化算法
n次自然数幂和的一个等价无穷大
求图上广探树的时间复杂度
某雷达导51 头中心控制软件圈复杂度分析与改进
收敛的非线性迭代数列xn+1=g(xn)的等价数列
出口技术复杂度研究回顾与评述