一种增量发布流式生物数据的隐私保护算法技术领域
本发明涉及数据发布中的匿名隐私保护技术领域,具体是一种增量发布流式生物
数据的隐私保护算法。
背景技术
随着DNA测序技术的发展,DNA测序成本迅速下降,“人类基因组计划”得以完成。在
此之后,大量以基因数据为主体的生物数据仍然不间断地产生,而这些生物数据通过分享
被广泛应用于医学研究和临床诊断。当不同来源的动态生物数据以数据流的形式到达收集
方后,该数据会被及时更新到已发布的数据集中。然而,生物数据的发布具有潜在的隐私泄
露问题,容易造成数据提供者身份被识别。这将会阻碍生物数据的分享,导致生物数据难以
被提供于医学研究。因此,生物数据在发布时应避免提供者身份被识别,进行合理的隐私保
护。
目前,针对于生物数据隐私保护的方法主要为基于图2中的DNA泛化格的k-匿名算
法——DNALA算法,该算法直接对基因组序列进行泛化操作,使发布的生物数据表满足2-匿
名。在DNALA中,Malin已经证明了如果k>2,则匿名后的基因组数据容易造成过度泛化,使发
布的数据集具有较低的效用。为保留数据的可用性,DNALA算法尽可能保证序列聚合成两两
一组的簇,然后对每个簇进行泛化,使每个簇中基因组具有相同的碱基序列。由于DNALA算
法在处理数据时形成少量的包含三个元组的簇,故DNALA保证了满足2-匿名的同时保留了
数据的可用性。但是,DNALA算法是一种处理静态生物数据的算法,该算法处理动态数据的
增量发布需要花费大量的时间,无法使新到达的生物数据及时发布。基于此,Li提出了
Hybrid算法,该算法可以及时匿名并发布流式生物数据,但是Hybrid算法往往会形成大量
包含三个基因组的簇,导致发布的数据集可用性较低。
发明内容
为了克服上述现有技术的缺点,本发明提供一种增量发布流式生物数据的隐私保
护算法,大幅度提升发布的DNA数据集的实用性,使其具有较高的挖掘价值。
本发是以如下技术方案实现的:一种增量发布流式生物数据的隐私保护算法,输
入:流式生物数据集S;已发布数据集A;时延约束δ;已发布数据集A的平均距离AD(Average
Distance);已发布数据集A的聚类结果m个簇(n1,n2,...,nm),其中,任意ni与nj不包含相同
的元组,且任意一个元组簇ni中包含元组的数量为2或者3,已发布数据集A中的元组均存在
于这m个簇中;输出:更新后的匿名表A';具体步骤如下:
1)首先,设有空集合Setw用来存放等待发布的数据;
2)当数据集S非空时,取出流式生物数据集S中ts值最小的元组s,将其插入到Setw
中,ts为元组达到收集方的时间;
3)若空集合Setw中元组个数不大于δ,则执行步骤4);若Setw中元组个数大于δ,则
执行步骤6);
4)找到空集合Setw内距元组s最近的序列r,计算出r和s的距离dist(r,s);
5)如果,dist(r,s)小于已发布数据集A的平均距离AD时,从空集合Setw取出元组r
和s形成的簇放入已发布数据集A中,并泛化r和s,然后执行步骤7);否则,直接执行步骤7);
6)获取空集合Setw中ts最小的元组a,找到数据集A中距离a最近的序列b,将a添加到含b的
元组簇ni中;针对新形成的元组簇ni所含元素个数的不同,采取相应处理方式:若此时的ni
中元组个数为3时,则泛化ni;若ni中元组个数为4,则把ni划分为元素个数相等的g和h两个
簇,并确保两个分组的内部元素距离之和最小,然后泛化g和h;
7)跳转到步骤2),直到流式生物数据集S为空;
8)得到更新后的匿名表A'。
本发明的有益效果是:能够对生物数据有效的隐私保护,克服现存Hybrid算法匿
名流式生物数据容易造成过度泛化的缺陷,发布更加精确的数据集,大幅度提高发布生物
数据集的可用性。
附图说明
图1是本发明流程框图;
图2为DNALA算法下的DNA泛化格示意图;
图3为多序列比对机制(MSA)和两两序列比对机制(PSA)示意图;
图4为Hybrid算法下新到达的生物数据更新到已发布数据集中的示例图;
图5为NSPSGD算法下新到达的生物数据更新到已发布数据集中的示例图;
图6a为数据集I,δ=40时NSPSGD算法与Hybrid算法匿名效果的对比;
图6b为数据集II,δ=40时NSPSGD算法与Hybrid算法匿名效果的对比;
图6c为数据集III,δ=80时NSPSGD算法与Hybrid算法匿名效果的对比;
图7a为数据集I,平均距离与时延δ及发布数据量之间的函数关系;
图7b为数据集II,平均距离与时延δ及发布数据量之间的函数关系;
图7c为数据集III,平均距离与时延δ及发布数据量之间的函数关系。
具体实施方式
本发明主要提出了一种增量发布流式生物数据的隐私保护算法,以下为本发明使
用到的k-匿名概念以及流式基因组数据的概念。
定义1 k-匿名模型:发布的数据集中每条记录至少具有k-1不可区分记录,则发布
的数据集满足k-匿名。根据这一原则,k-匿名模型确保重新确定一个人在公布的数据集的
概率不超过1/k。具体参考表1处理结果。表1为原数据集及其k-匿名的转换示意图。其中年
龄和性别的属性已被泛化,并且表中最后一个条目被抑制。从表中可以看出,变换后的数据
集满足2-匿名。
表1
定义2流式基因组数据的k-匿名:假设S为一个具有属性AS=(pid,DNA sequence,
ts)的流式基因组数据集,其中pid标志个人序列号、DNA为基因序列,ts为S中元组的到达时
间。假设S'为S匿名后的数据,则S'中不包含pid、ts属性。若S'满足k-匿名,则需满足一下条
件:
(1)对于t'由t泛化而得,
(2)对于|EQ(t')|≥k,所有EQ(t')中的元组和t'相同,并且|EQ(t')|代表
|EQ(t')|的数目,那么我们将S'命名为一个满足k-匿名的流式基因数据集。例如表2所示,
表格中左边的数据集为原始流式基因数据,右边的数据则是匿名后满足2-匿名的数据集。
其中pid为3201和3202的元组为一个EQ(t'),此时|EQ(t')|=2。
表2
定义3延迟约束δ:设P是一个动态基因组数据集的匿名计划,如果由P输出的满足
k-匿名的数据集S'满足:t'.ts-t.ts<δ。其中,t是S中与t'相对应的元组,δ为一个
给定的实数且δ>0。那么,我们称P满足时延约束δ。
针对现存的DNALA算法和Hybrid算法处理动态基因数据的缺陷,我们提出了一种
改进的k-匿名算法。首先,DNALA是一种静态基因组数据,其处理动态序列花费时间较长。其
次,在DNALA中,已证明对包含三个元组的聚簇进行泛化时容易造成过度泛化,降低数据的
可用性,而Hybrid算法在处理动态生物数据时会形成大量包含三元组的簇,造成数据集的
过度泛化。为解决这一问题,本发明中的算法尽可能地使得元组两两聚合成簇并进行泛化,
使匿名后的数据表在满足k=2的同时,聚合更多的包含两元组的簇。
如图1所示,基于以上所说,一种增量发布流式生物数据的隐私保护算法(NSPSGD
算法),输入:流式生物数据集S;已发布数据集A;时延约束δ;已发布数据集A的平均距离AD
(Average Distance);已发布数据集A的聚类结果m个簇(n1,n2,...,nm),其中,任意ni与nj不
包含相同的元组,且任意一个元组簇ni中包含元组的数量为2或者3,已发布数据集A中的元
组均存在于这m个簇中;输出:更新后的匿名表A';具体步骤如下:
1)首先,设有空集合Setw用来存放等待发布的数据;
2)当数据集S非空时,取出流式生物数据集S中ts值最小的元组s,将其插入到Setw
中,ts为元组达到收集方的时间;
3)若空集合Setw中元组个数不大于δ,则执行步骤4);若Setw中元组个数大于δ,则
执行步骤6);
4)找到空集合Setw内距元组s最近的序列r,计算出r和s的距离dist(r,s);
5)如果,dist(r,s)小于已发布数据集A的平均距离AD时,从空集合Setw取出元组r
和s形成的簇放入已发布数据集A中,并泛化r和s,然后执行步骤7);否则,直接执行步骤7);
6)获取空集合Setw中ts最小的元组a,找到数据集A中距离a最近的序列b,将a添加到含b的
元组簇ni中;针对新形成的元组簇ni所含元素个数的不同,采取相应处理方式:若此时的ni
中元组个数为3时,则泛化ni;若ni中元组个数为4,则把ni划分为元素个数相等的g和h两个
簇,并确保两个分组的内部元素距离之和最小,然后泛化g和h;
7)跳转到步骤2),直到流式生物数据集S为空;
8)得到更新后的匿名表A'。
由以上步骤可知,NSPSGD算法的步骤2)取出S中最早到达的元组s,并将其插入一
个等待发布的临时存储集合Setw。步骤3)判断Setw中是否有数据等待时间超过了时延。步骤
4)~步骤5)判断如果Setw中元组数小于δ,则Setw中最先到达的等待时长不超过δ。从Setw找
到离s最近的元组r,计算r和s的间距dist(r,s)。如果dist(r,s)小于AD,把r和s组成的簇更
新到A中,这一步确保了已发布数据集新增簇时,不会增大其信息损失量。步骤6)如果Setw
数目不小于δ,则Setw中最先到达的a的等待时长已经超过了给定的时延,取出元组a,在A中
找到离其最近的元组b,将a插入到包括b的簇中,这一步确保了所有的序列都将被发布。如
果a插入后的簇包括四个序列,将其分成两个小簇,使每个簇中仅包含两个元组,然后泛化
这些序列;而新组成的簇包括三个序列时,则直接泛化这些序列。
图3为多序列比对机制(MSA)和两两序列比对机制(PSA)示意图;虽然NSPSGD算法
不能确保在发布的数据集中每个簇中只含有两个基因组,但通过时延约束,可以有效地减
少包含三个元组的簇的形成,使发布的数据集具有较高的可用性,同时,保证了基因数据的
安全性,防止个人隐私的泄露。由此可知NSPSGD算法比Hybrid算法匿名的流式基因数据具
有更小的信息损失。图5是NSPSGD算法处理流式数据的例图,图4是Hybrid算法处理流式数
据的例图。由图可知,图5中包含三序列的簇的个数比图4少,因此,NSPSGD算法具有更高的
精确度。
实验验证及结果分析
实验数据集及环境:为了评估NSPSGD算法,并测试其在处理最新到达基因数据时
的表现,实验使用来自NCBI的三个数据集,分别包含元组个数为:327、540和711。详情如表3
所示。为模拟大数据流,实验将这些数据的1/3作为静态处理数据集,采用Hybrid和其他
MWM-based算法对其进行匿名处理。此后将剩下的2/3作为动态更新数据,并通过NSPSGD算
法进行动态匿名化处理。
表3
测试NSPSGD算法的实验平台配置如下:AMD Athlon(tm)II 2.1GHz CPU/4GB内存,
Window 10系统。以下所得实验数据均为在运行10次实验的基础上取其结果的平均值。
实验结果分析
图6a、图6b以及图6c为平均距离随流基因序列更新数量的变化情况。从图6a中可
以看出,NSPSGD算法处理后形成的平均距离小于Hybrid算法,且NSPSGD算法隐匿的数据平
均距离不断缩减,Hybrid算法总体呈现曲折下降。在这个过程中,Hybrid算法泛化产生了许
多三序列簇,从而导致平均距离增大,而NSPSGD算法可以找到一些Setw中适当的二序列簇
使得平均距离减小。因此,被NSPSGD算法隐匿的数据相比于Hybrid算法的处理结果具有更
小的平均距离和IL。图6b和图6c也显示了相同结论:在处理流式数据时,NSPSGD算法比
Hybrid算法有更高的精度。
图7a、图7b以及图7c主要展现NSPSGD算法本身所具有的参数与效果之间的评估,
图中数据表示平均距离与发布序列量及时延δ之间的函数关系。从中可以看出普遍规律,随
着时延的增大,在同一更新数据量的情况下,平均距离随之减小的。
综上所述,相比于Hybrid算法,NSPSGD算法整体性能更优。同时,实验结果表明该
算法遵循一般规则:在整个过程中抑制阈值越大,信息损失得越少。它能够保留Hybrid算法
的特点,对生物数据进行有效的隐私保护,克服现存的Hybrid算法生成大量三序列聚类的
缺陷,发布更多精确的数据集,同时缩短匿名增量流式生物数据的时间,使得发布的生物数
据集的实用性大大增强。