本发明属于数据开放和隐私保护技术领域,具体涉及一种数据发布的隐私保护方法。
背景技术:
随着数据开放成为大数据时代的必然趋势,普遍认为隐私保护是数据开放中不可避免的关键问题之一。差分隐私直方图发布方法作为隐私保护数据发布的一种重要形式,通过对原始数据的统计结果添加噪声扰动,使得攻击者在统计意义上无论拥有多少背景知识,都无法有效地获取个体隐私。另外,该技术使个体敏感数据失真的同时,又能基本保持数据的全局统计特性,故而保留了数据受隐私保护发布后的价值。
差分隐私直方图方法是一种非交互式的隐私保护数据发布机制,该机制通常首先对数据库进行常见的批量查询操作(如计数查询),然后对结果(批量数据)进行加噪处理,加噪结果以直方图的形式展示给用户。在数据开放中,批量数据是发布得最多的数据种类。早期是采用匿名机制对批量数据中包含的用户隐私进行抑制或擦除,而目前常见的差分隐私直方图发布方法则是采用噪声扰动的方式对批量数据直接添加噪声扰动后进行发布。
目前,现有差分隐私直方图发布方法不能较好地应用于数据开放中的隐私保护数据发布,一方面是数据种类繁多,没有统一的发布业务流程;另一方面,直接添加噪声的发布方法发布的数据相对原始数据噪声扰动过大,降低了再次利用挖掘学习的价值。
因此,需要一种数据发布的隐私保护方法,针对批量数据这种应用场景,实现可用性更高的隐私保护数据发布。
技术实现要素:
本发明的主要目的在于克服现有技术的缺点与不足,提供一种数据发布的隐私保护方法,是面向批量数据的差分隐私直方图发布方法,可以根据用户向数据开放平台提交的批量查询请求,从数据库中获取相应的批量数据,并对批量数据添加满足给定的差分隐私保护要求的随机噪声,最后将噪声扰动结果通过直方图发布的方式返回给用户,可以有效地保护数据中包含的个体隐私不被泄露,同时提高返回的直方图发布的结果的可用性。
为了达到上述目的,本发明采用以下技术方案:本发明公开了一种数据发布的隐私保护方法,其特征在于,包括下述步骤:
p1:计算全局敏感度,获取用户的批量查询请求,形成一个查询函数集f,求得查询函数集f的全局敏感度s(f);
所述查询函数集f由用户提交的所有批量查询请求对应的查询函数f组成;所述全局敏感度是查询函数集f中局部敏感度δf的最大值,所述局部敏感度δf指的是增加或减少数据库中任意一条记录后查询函数f输出的最大值,即
p2:获取初始批量数据,将查询函数集f作用于数据开放平台中的目标数据库,得到结果集r,将所述结果集r的每个元素表示为一个向量t,所述向量t作为待发布的批量数据;
p3:对批量数据加噪排序,设定系统的差分隐私保护预算ε,取一半差分隐私保护预算
p4:对排序后的批量数据进行分组重构,使用基于回溯策略的贪心聚类方法对排序后的批量数据的所有分量进行分组,将每个分组的平均值替换组内的每个分量;
p5:对分组重构后的批量数据进行二次加噪,取剩余的一半差分隐私保护预算
p6:将二次加噪后的批量数据表示成直方图的形式,返回给用户。
作为优选的技术方案,在步骤p2中,所述的初始批量数据是查询函数f的输出结果t,用一个向量t=<x1,x2,...,xn>表示,后续对向量各分量的操作能根据下标快速计算,其中包含对向量各分量的加噪、排序、分组和重构操作。
作为优选的技术方案,所述查询函数集f是动态更新的,其中包含的每个查询函数f对应用户提交的一个批量查询请求,查询函数的输入是查询请求指定的数据库的任意一个子集,查询函数的输出是一个n维的实数向量t,其中n小于数据库的记录数。
作为优选的技术方案,在步骤p3中,所述批量数据加噪排序包括下述步骤:
p31:设定系统的差分隐私保护预算ε,根据向量t的维度生成随机噪声向量y=<y1,y2,...,yn>,y的每个分量均为一个独立的随机变量;
p32:向量t添加随机噪声向量y,得到加噪的向量<x1+y1,x2+y2,...,xn+yn>;
p33:将向量<x1+y1,x2+y2,...,xn+yn>进行升序排序得到
作为优选的技术方案,在步骤p31中,所述独立的随机变量为拉普拉斯变量η,其概率密度函数为
作为优选的技术方案,在步骤p4中,对排序后的批量数据进行分组重构的具体步骤为:
p41:初始化一个空的分组c1,将
p42:计算当前分组ci的分组误差err(ci),计算当前分量
p43:更新当前分组
p44:初始化空的分组ci+1,分量
p45:计算ci-2的分组误差err(ci-2),计算上一个分组第一个元素
p46:更新当前待划分的分量
p47:用组平均值代替组内每个元素的值,将所有分组ci的元素进行重构,即更新
作为优选的技术方案,所述分组误差,其计算方法为取平均值重构产生的误差与添加拉普拉斯噪声产生的误差的和,即为
作为优选的技术方案,在步骤p42中,所述误差下界是对当前分量
本发明与现有技术相比,具有如下优点和有益效果:
(1)本发明和差分隐私保护的传统方法相比较,本方法提出的回溯分组方法和实现技术,在划分分组上更具精确与合理性,达到了更小的误差效果,较好解决了数据开放中差分隐私保护的误差问题。
(2)在隐私保护系统中使用本方法的实际实现,在差分隐私保护一定预算ε前提下,本方法可实现每个批量数据分量的噪声扰动更小,更接近原始数据,从而使发布数据的可用性更高。
附图说明
图1是根据本发明一个实施例的数据发布的隐私保护方法流程图;
图2是根据本发明一个实施例的对批量数据进行加噪排序流程图;
图3是根据本发明一个实施例的对加噪排序后数据进行分组重构流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
如图1所示,本实施例一种数据发布的隐私保护方法,具体包括下述步骤:
p1:计算全局敏感度,获取用户的批量查询请求,形成一个查询函数集f,求得查询函数集f的全局敏感度s(f);所述查询函数集f由用户提交的所有批量查询请求对应的查询函数f组成;所述全局敏感度是查询函数集f中局部敏感度δf的最大值,所述局部敏感度δf指的是增加或减少数据库中任意一条记录对查询函数f输出的最大值,即
p2:获取批量数据,首先将查询函数集f作用于数据开放平台中的目标数据库,得到的结果集r,将结果集的每个元素表示为一个向量t,作为待发布的批量数据;所述批量数据是查询函数f的输出结果t,用一个向量t=<x1,x2,...,xn>表示;
p3:对批量数据加噪排序,设定系统的差分隐私保护预算ε,取一半差分隐私保护预算
如图2所示,对批量数据进行加噪排序的具体步骤为:
p31:设定系统的差分隐私保护预算ε,根据向量t的维度生成随机噪声向量y=<y1,y2,...,yn>,y的每个分量均为一个独立的拉普拉斯随机变量η,其概率密度函数为
p32:向量t添加随机噪声向量y,得到加噪的向量<x1+y1,x2+y2,...,xn+yn>;
p33:将向量<x1+y1,x2+y2,...,xn+yn>进行升序排序得到
p4:对排序后的批量数据进行分组重构,使用基于回溯策略的贪心聚类方法对排序后的批量数据的所有分量进行分组,将每个分组的平均值替换组内的每个分量;
如图3所示,步骤p4中对加噪排序后数据进行分组重构的具体步骤为:
p41:初始化一个空的分组c1,将
p42:计算当前分组ci的分组误差err(ci),计算当前分量
p43:更新当前分组
p44:初始化空的分组ci+1,分量
p45:计算ci-2的分组误差err(ci-2),计算上一个分组第一个元素
p46:更新当前待划分的分量
p47:用组平均值代替组内每个元素的值,将所有分组ci的元素进行重构,即更新
p5:对分组重构后的批量数据进行二次加噪,取剩余的一半差分隐私保护预算
p6:将二次加噪后的批量数据表示成直方图的形式,返回给用户。
上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。