APP下载

基于随机干扰的文本型数据隐私保护方法研究

2021-04-09徐雅斌

关键词:数据表关联语义

徐雅斌,郭 昊

(1.北京信息科技大学 网络文化与数字传播北京市重点实验室,北京 100101;2.北京信息科技大学 北京材料基因工程高精尖创新中心,北京 100101;3.北京信息科技大学 计算机学院,北京 100101)

0 引言

经过多年的信息化建设,各行各业、各个领域都已经积累了大量的数据,而且数据量仍呈现出爆发式增长的态势。但是,孤立数据的利用价值相对较低,只有经过共享和交换,将数据有机地融合到一起,才能在更大程度上发挥数据的应有价值。然而有些数据涉及个人隐私,比如:发布给第三方进行市场需求分析的零售数据中包含客户信息;共享给医疗部门进行疾病预防研究的医疗数据中包含患者信息,等等。在数据的共享和交换过程中,如果处理不当,就可能导致隐私泄露,这正是很多数据拥有者的顾虑所在。

因此,是否能够有效保护个人隐私,直接影响到数据的应用,以及大数据和人工智能产业的发展。在此背景下,隐私保护研究成为数据科学研究中的一个热门领域,隐私保护相关技术具有广泛的市场前景和应用价值。

1 相关工作

隐私保护就是采用技术手段,在保证数据质量的前提下,对数据进行处理,使其不泄露个人隐私。早期简单的人工数据脱敏技术不仅效率低,而且很难保证不存在漏洞,无法真正有效保护个人隐私。一种常见的隐私保护技术是匿名化处理,它主要用于对准标识符的部分内容进行泛化处理,适用于数值型数据。

数据扰乱技术[1]是出现相对较晚的一种隐私保护方法。其主要思想是,在保证数据有效性的前提下,通过扰乱处理,使得扰乱后的数据不完全真实地反映个人信息,即使数据项与某个体相关联,该个体的隐私也不会被暴露,从而实现隐私保护。

数据扰乱方法主要包含随机干扰、数据清洗、数据屏蔽、数据交换、数据泛化和乱序技术[2]等。其中随机干扰方法是隐私保护效果较为理想、应用更加广泛的一种方法。

目前,随机干扰方法主要分为两种,一种是加法干扰,一种是乘法干扰。加法干扰由Agrawal和Srikant[3]提出,该方法的主要思想如下:尽管数据拥有者需要将数值型数据提供给他人使用,但是并不想暴露真实数值以防止隐私泄露,为此只提供这些数值型数据的分布情况和统计属性。为达到这一目的,数据拥有者通过给这些数值型数据添加随机噪声进行干扰,其中随机噪声服从均匀分布或高斯分布。干扰后的数据值便不再为真实值,但是可以通过一些方法获得真实值的统计属性。这种方法的优点是简单易行,但只能处理数值型属性。

乘法干扰是对整体数据进行干扰处理,而不需要考虑数据的类型。其中最典型的方法是S.R.M.Oliveira[4]等提出的几何数据转换方法。该方法的主要思想是通过几何转换,比如平移、缩放和简单的旋转等方法对原始数据进行转化。但是这个方法容易改变数据的相似程度,会让数据的聚类结果产生较大误差。

此后,S.R.M.Oliveira等[5]再次提出保持空间距离不变的基于旋转的转换(RBT)方法,实现了多维空间中点的等距变换,具有很好的隐私保护效果。但是该方法在满足过高程度的隐私要求时,可能无法取得合适的旋转角度,从而无法完成干扰处理。而且变换后的数据往往缺乏可读性,在不进行数据挖掘时,不能从数据表中读出有价值的信息。而且该方法只适用于数值型的数据。

为了解决文本型属性的隐私保护问题,随机化回答技术应运而生。随机化回答技术[6]最早应用于抽样调查问题中。因为在实际调查中,经常碰到一些敏感问题,如果对被调查者直接询问,被调查者出于戒备,往往会拒绝回答或不真实回答。而随机化回答方法既能使调查者获得正确信息,又能让被调查者不担心暴露隐私,因此也被用于隐私保护。

最早出现的随机化回答模型是Waner[6]模型。设X表示敏感属性的真实值,S表示一个与X相互独立的正的随机数,且S的均值与方差已知,分别记为θ、γ2。干扰后的值是敏感变量X与随机数S的乘积。然后使用简单随机有放回抽样方法得到真实值的无偏估计量和方差等统计属性。在此基础上,Singh S[7]和Hong Z[8]也提出了一些改进后的随机化回答方法。但这些方法大都针对二值属性,不适用于有多值属性。

文献[9]提出了一种基于随机化回答的处理多值文本类型数据的随机映射方法。其主要思想是,按照某些特定的随机化参数对原始数据进行随机映射,生成新的数据,然后将新数据提供给数据使用方。实现过程如下:

假设原始数据集D中的属性X有m个不同的取值X1,X2,…,Xm,同时给定一个固定的参数α,它的取值介于0和1之间。假设有两个随机数发生器M和N,M产生一个0到1之间的随机数u,而N可生成一个1~m之间的随机整数l。在随机映射方法中,将会根据u的取值来决定是否保留原来的属性的取值,若不保留则使用X中的Xl来替换它。随机映射方法在进行选值替换时,不考虑替换词的语义是否与原词接近,因此可能出现大量记录的属性值被语义完全不同的值所替换的情况,从而产生语义错误。

从以上的介绍可以看出,乘法干扰后的数据在干扰后不再按照原有的二维表形式排列,因此不具有可读性。加法干扰具有易实施、信息损失低、保护效果好的优点。但传统的加法干扰只能处理数值型属性,无法处理文本型属性。而针对文本型属性的随机化映射方法存在语义缺失的问题。

为了解决这些问题,本文基于加法干扰方法,引入随机化映射的思想,提出了改进的随机干扰方法,用以处理单属性和多属性文本类型的数据。

2 针对单个敏感属性的随机干扰

2.1 主要思想

该方法的主要思想如下:基于模糊语义处理技术,使得属性中的文本能够被语义接近的词所替换。假设数据集M中的属性为Y,Y={Y1,Y2,…,Yi};Y1,Y2,…,Yi为不同的文本,根据偏移度计算方法,为Y中的每一个文本计算偏移度{y1,y2,…,yi},得到Yi的偏移度PYYi=yi。若任意两个偏移度yn、ym数值接近,则其所对应的文本Yn、Ym是语义接近的。

对属性Y中所有记录的偏移度施加噪音干扰r,r服从高斯分布。干扰后任意记录T的偏移度为PYTi=yi+ri。在偏移度序列{y1,y2,…,yi}中,寻找数值最接近记录T的偏移度PYTi的偏移度yi,找

到后,将记录T中的文本改为yi所对应的文本Yi。这样记录T中的文本就被与它语义最接近的文本Yi所代替,从而完成干扰处理。

关于如何衡量文本语义的接近程度,本文使用的是分类系统[10]。分类系统可以将未标识类别的概念映射到现有的类别中,一个概念可以同多个类别相关联。在分类系统中,概念可以根据属性关系进行排序。例如,“肺结核是一种呼吸系统疾病”这句话中,肺结核是一种相对狭隘的概念,呼吸系统疾病代表一种相对广泛的概念。将解剖学作为排序准则,则可将“肺结核”归类为呼吸系统疾病。根据该排序原则可以对所有疾病构建一个分类树,叶子节点为具体的疾病,互为兄弟节点的疾病则表明它们在语义上较为接近。

分类系统如图1所示。

图1 疾病属性按病因-解剖原则定义的属性值分类系统

以医疗大数据为例,属性[疾病]为敏感属性。通过分类系统对该属性下的每一类值都进行编号,如果该属性中的值在分类系统构成的分类树中互为兄弟节点,则说明它们是语义接近的,可以进行替换。若某一类值找不到兄弟节点,则它可以被该属性中的任意一类值进行替换。

2.2 算法描述

使用模糊语义处理方法进行单敏感属性随机干扰的算法如下:

1) 根据分类系统对敏感属性[疾病]的值进行分类。

2) 对属性中的每一类值匹配分类树中的编号,并用编号替换。

3) 计算偏移度:某一属性集上的偏移度定义为:

(1)

PAX=±(1-μ(x))

(2)

式中:x表示属性A中某一具体值;PAX表示该属性值的偏移度;Pi表示某一类值i在该属性中所占比,通过Pi来计算中间变量μ(x),然后再计算叶子节点(即属性中的具体值)的偏移度。

4) 计算完每一类具体值的偏移度后,将属性中的每一类具体值表示为[编号+偏移度]。

5) 对每个记录的偏移度添加噪音r:

PiX=PAX+r

(3)

式中:PiX即每个记录的偏移度;r服从分布U(-α,α),α为叶子节点层中最左节点与最右节点的偏移度差值,这保证了干扰程度不会超过源数据的本身差异。

6) 对每个记录的编号进行修改。添加噪声后某一记录A的偏移度PiX若更接近于分类树中兄弟节点的偏移度,则改变属性值A的编号为该节点的编号;若更接近本身则不改变编号。

7) 将每个记录的编号通过分类树转化为具体语义值。

算法结束。属性中的一部分值会被替换为语义相近的值,从而完成隐私保护。

3 针对多个关联敏感属性的随机干扰

3.1 主要思想

当数据表存在多个敏感属性时,有一些敏感属性是相互关联的。比如敏感属性[疾病]就与敏感属性[主治医生]存在某种关联关系。如果对两个属性单独进行干扰处理,就会破坏这种关联关系。为了解决这一问题,本文提出了一种基于多维桶(MSB)分组技术[11]的多敏感属性随机干扰方法,可以保证在干扰后属性之间的关联关系不被破坏。

多维桶分组技术的主要思想,是把数据表中的多个敏感属性看作一个高维的复合敏感属性向量,向量中的每一维表示一个敏感属性,从而将复合敏感属性向量与多维桶的多维向量联系起来,再将数据表中的所有记录映射到多维桶中。这时对数据表中的敏感属性值的处理就转换为对多维桶中的记录进行处理,并通过对多维桶中数据进行处理来满足隐私保护要求,从而保护用户的敏感属性信息。多维桶分组技术构成的分组保证了属性间的关联关系。这样对敏感属性干扰后,与它相关的属性就可以在干扰之后依旧维持源数据中的关联关系。

在处理多敏感属性时,将复合敏感属性向量作为一个整体进行干扰就避免了破坏关联关系的问题。具体方法如下:根据数据表中的多个敏感属性之间的关联关系构造多维桶。设数据表T有d维桶,将di维桶中的记录合并为集合S,对S中所有记录的第di+1维敏感属性进行单敏感属性干扰。干扰完成后将记录重新放入d维桶中。依次类推,当d维桶中所有敏感属性维度都被干扰后,则干扰完成。

接下来进行分组。首先选取桶容量最大的记录作为该分组的第一个记录,然后屏蔽该记录所在的行和列的桶,从剩下的桶中选取容量最大的桶作为该分组的第二个记录,以此类推,当该分组满足隐私保护要求(比如1-多样性),则第一个分组结束,采取同样的方法来获得其他分组,直至多维桶中所有的记录不能再构成一个分组为止。经过分组后每一个分组内的记录均是相关联的。

3.2 算法描述

多敏感属性随机干扰算法如下:

输入:数据表T,多个敏感属性(S1,S2,…,Sd),多样性参数L;

输出:数据表T

1) 数据表T上的分组GS,根据数据表中的多个敏感属性之间的关联关系,来构造d维桶Bucket(S1,S2,…,Sd);

2) For(i=1;i≤d;i++)

集合S= Bucket(Si),任意记录A属于S,对A中Si+1属性下的元组进行单敏感属性干扰;

3) 将干扰后的记录重新放入d维桶Bucket(S1,S2,…,Sd);

4) 开始提取记录构成分组;

5) 对所有的桶进行初始化,均设置为未屏蔽标记,分组GS为空;

6) 对所有记录重新进行分组;

7) 将构成的分组G添加到Gs;

8) 对每个剩余记录g,如果g加入到分组G,G仍然满足参数L要求,则插入成功,否则继续插入到下一个分组,若所有分组均不能插入,则删除该值;

算法结束。

经过本方法干扰处理后,敏感属性与其相关敏感属性的关联关系基本与源数据保持一致,从而避免了对关联关系的破坏,减少了信息损失。

4 实验及其结果分析

4.1 数据集及数据预处理

本实验所采用的数据集为公共医疗卫生平台提供的疾病情况数据集。数据的大小为1.3 MiB,包含10 000条记录。其中属性集共有10个属性,包含1个数值型属性和9个文本型属性。实验平台配置如下:Intel i7 2.80GHz/8GB,Windows10。算法实现所用的语言为Python3.5,使用的工具是Jupyter Notebook。预处理阶段将数据中含有缺失项的元组去除。

4.2 评价指标

从以下3个方面对本文提出的方法进行评价。

1) 扩展性:本算法的运行时间与所处理的数据量是否呈线性关系,以此衡量本算法的扩展性是否足够好,适用范围是否足够大。

2) 运行效率:在相同数据量下,本方法相比其他方法在运行时间上是否更少,效率是否更高。

3) 信息损失:源数据在进行隐私保护处理后,敏感属性与关联敏感属性的关系是否保持一致。若敏感属性与其他敏感属性的关联关系与源数据中的关联关系出现不一致的情况,则认为产生了信息损失。可通过计算产生信息损失的数据量占总数据量的比例来计算信息损失,若比例较低则说明信息损失较少。

4.3 实验结果及分析

4.3.1 算法扩展性实验

针对不同数据量进行干扰处理的算法扩展性测试结果如图2所示。

图2 算法扩展性实验

从图2可以看出,随着数据量的增加,算法的运行时间基本呈线性增长,由此说明本算法的扩展性良好,适用范围更广。

4.3.2 运行效率对比实验

由于本方法与随机映射方法都是处理文本型数据,并且最后经过处理的数据在形式上也是相似的,因此,本实验选择与随机映射方法进行比较,测试处理相同数据量时所需要的时间。实验结果如图3所示。

图3 算法运行效率对比实验

从图3可以明显看出,在处理相同数据时,本方法的运行时间比随机映射方法所需时间更少,由此可以证明效率更高,且随着数据量的变大,优势更加明显。

4.3.3 信息损失对比实验

图4给出了两种方法的信息损失率对比情况。

图4 信息损失比较

由图4可以看出,本文采用的多维桶方法的信息损失率远小于随机映射方法。这是因为随机映射方法在处理几个相关联的敏感属性时,对每个敏感属性都是单独进行干扰保护,并没有考虑到如何维持属性间的关联关系,因此很容易造成干扰量较大情况下记录的属性间关联度与源数据不一致。由于本方法使用了多维桶分组技术使得这种情况大大减少。产生少量信息损失的原因是,在所有分组产生后,需要将剩余的记录插入到这些分组中,而有极少量的记录不能插入到任何分组中,需要对这些记录进行随机修改,因此产生了信息损失。但与随机映射方法相比,所产生的信息损失是大幅减少的。

以上3个实验证明了本方法在扩展性、运行效率和减少信息损失率3个方面均比随机映射方法更有优势。

5 结束语

数据的共享与交换可以有效促进数据的融合,提升数据的价值,但同时也将增加隐私泄露的风险。因此如何保护个人隐私是迫切需要解决的问题。

本文提出的随机干扰方法是一种针对文本型数据进行隐私保护的方法。在干扰替换时,通过使用语义接近的词进行替换,使得干扰后的数据语义更贴近源数据。由于在实际的数据应用场景中,某个敏感属性多是与其他属性相互关联,如果单独对某个敏感属性进行干扰处理而不处理相关的属性,干扰后的数据就将丢失原始数据中所存在的属性间的关联关系,造成信息损失。针对这个问题,本文采用基于多维桶分组技术的多敏感属性干扰方法,可以有效保证关联关系不被破坏。

本文方法可以为单个和多个敏感属性提供隐私保护,在扩展性、运行效率以及信息损失率方面表现出一定的优势。

猜你喜欢

数据表关联语义
真实场景水下语义分割方法及数据集
湖北省新冠肺炎疫情数据表(2.26-3.25)
湖北省新冠肺炎疫情数据表
湖北省新冠肺炎疫情数据表
“一带一路”递进,关联民生更紧
奇趣搭配
智趣
“吃+NP”的语义生成机制研究
汉语依凭介词的语义范畴
试论棋例裁决难点——无关联①