大数据学习笔记6·社会计算中的大数据(4)

上一篇介绍了LifeSpec项目,这个项目是关于用户理解和用户画像的。这篇是社会计算部分的最后一篇,关于用户连接和图隐私。

用户连接与隐私保护

用户连接与隐私保护有很强的相关性。

上图中,左边有两个网络。对于用户连接,我们的目标是映射这两个网络和连接这些网络中的用户节点。然后,我们就能产生一个更大的网络。这样,用户就能够被连接在一起,我们就可以知道跨网络的用户信息。

但是,如果从隐私的角度来看这个问题,把第一个图看成一个匿名化处理后的图,称其为目标图;把第二张图看成辅助图或者攻击者可获得的信息。所以,如果能够匹配这两幅图,就意味着我们能够把匿名化处理之后的图中的一个节点与辅助图中的一个节点匹配在一起。这意味着,这个节点就被去匿名化了。这是隐私攻击者的一个典型任务。

隐私保护的一些基本概念

  • 身份泄露攻击

身份泄露意味着暴露节点在真实世界中的身份。有两种类型的攻击

  1. 主动攻击:攻击者会创建很多小账号并建立一些具有很高的可区分度的模式来连接这些帐号。在数据发布之后,攻击者会搜索那些模式。他们可以在匿名化处理之后的图中有效地连接目标账号。
  2. 被动攻击:攻击者不能在数据发布之前做这件事情,因此他们需要收集其他外部数据。例如,他们有感兴趣的节点以及这些节点之间的部分边的信息。基于这些信息,攻击者就可以匹配辅助信息和原始图并识别目标结点。

看看右边的图,上面的图称为目标图,即发布的经过匿名化处理之后的图。攻击者可能会有一个称为辅助图的子图。他们知道子图中所有节点的真实身份。他们想要把子图与目标图进行匹配以识别感兴趣的节点。

这里,我们会处理简单图和丰富图。

简单图是指节点和边都没有属性的图。丰富图是指节点或者边有属性的图。例如,节点可能会有一些人口属性信息,边可能会有交互信息。

  • 图的匿名化

传统上,图的匿名化是通过修改图的结构和描述信息来实现的。

例如,右边的目标图和辅助图。为了让攻击者无法匹配这两张图,我们可以修改目标图,如增加一些边。这样会增加攻击的难度,因为改变了目标图的结构。但是,同时,这也会损失数据的效用,因为增加了不正确的数据。一个例子是K自同构算法,它能够保证抵御各种类型的结构性攻击。但是,它需要增加超过70%的新边到数据库和理论会议中的共同作者图中。

实践中仍然会使用很多轻量级的匿名化算法。这里的轻量级匿名化算法是指算法没有对图做很多修改。一个极端的例子是简单匿名化,这种方法只对节点的id进行哈希处理,而不改变其他任何东西。例如,Kaggle是一个数据挖掘和分析竞赛的平台,很多学生和研究人员都对它很感兴趣。在这个平台中,脸谱和其他公司发布的社交网络数据仍然只做了简单匿名化处理。

图的去匿名化算法

在这项工作中,我们想要设计图的去匿名化算法,这个算法能够处理简单图和丰富图。我们假设,对手总是能收集目标节点附近的子图。所收集的子图称为辅助图,其中节点的真实身份是已知的。如果能够设计这样的去匿名化算法,那么就可以使用这个算法来连接这两幅图并进行用户连接,而用户连接将有助于用户理解。

简单图

这里的关键是定义图节点的相似度。这里的基本假设是辅助图与目标图相似。所以,这里我们想要定义用来测量目标图中的一个节点与辅助图中的另一个节点的相似度的方法。定义了相似度之后,我们就可以得到一个矩阵。矩阵中包含目标图和辅助图中的所有节点对的相似度。最后,我们可以使用一个算法来根据这些相似度输出最佳匹配。

这里的相似性是以递归的方式定义的。基本上,两个节点的相似度是和它们的邻接节点的相似度相关的。所以,看看右边这个例子。我们有目标图和辅助图。如果想比较节点3和节点C。我们注意到,节点3有节点1和节点2这两个邻接节点,节点C有节点B、节点D和节点E这三个邻接节点。首先,因为邻接节点的数量不同,所以节点3和节点C的相似度会受到影响。然后,因为已经在前面的步骤中计算了所有节点对的相似度,所以我们可以利用这些相似度来简化这一步中的计算。因此,在这个例子中,我们有了节点1和节点B、节点1和节点D、节点2和节点B等的相似度。所以,基于这些相似度,可以找到二分图之间的最大加权匹配。这里的二分图一边是节点1和节点2,另一边是节点B、节点D和节点E。如果找到了最大加权匹配,我们就可以估计节点3和节点C之间的相似度。所以,这样我们可以递归地更新这两个图的相似度。

我们的相似度计算方法还有一些好的属性。假设目标图与辅助图是子同构的。目标图中节点的自相似是指这个节点与它在辅助图中对应节点之间的相似性。例如,如果知道节点3和节点C是同一个人,那么自相似是指节点3和节点C之间的相似度。所以,首先可以证明,一个节点总是和它自身最相似。这意味着看看节点3,如果节点C是节点3在辅助图中对应的节点,那么节点3和辅助图中所有其他节点的相似度将小于等于节点3和节点C之间的相似度。所以,这是相似度的一个非常好的属性。我们还可以证明,自相似度总是来源于目标图的邻接矩阵的主特征向量。由于真实社交图的特征向量都是有偏的,因此主特征值很高的社交图通常都是与众不同的,这意味着它们很容易被识别。

丰富图

对于丰富图,我们仅扩展了之前的定义,考虑了属性和方向。

因为边和节点都有属性,所以我们可以比较这些属性并把它们加入到相似性计算中去。

这幅图展示了去匿名化算法的步骤。

这里的去匿名化算法是指,如果有一幅目标图和一幅辅助图,那么怎么样来匹配这两幅图。还有,怎样找到目标图中的节点的真实身份。

开始时我们让所有相似度等于1,即它们都是一样的。然后根据我们的相似度函数迭代地更新这些值。我们介绍了计算节点3和节点C之间的相似度的例子。我们反复更新这些值,最后会收敛到最终的相似度矩阵。基于这个相似度矩阵,我们可以找到由这些矩阵生成的二分图的最大匹配。然后,输出排名最靠前的m个映射作为匹配的结果。

算法评估

我们使用两个数据集来评估我们的算法。一个数据集是微软学术搜索的共同作者图,其中包含8,000多个节点和18,000多条边。这个图中没有属性,所以它是简单图。

第二个数据集是2012年KDDCup发布的腾讯微博的交互数据。这个数据集中包含230万个节点和5,500万条边。这是一个丰富图,节点有性别、年龄和标签等属性,边有评论数、转发数和@数。

我们采用准确率和召回率作为选出最先输出的m个映射的评价准则。

这里我们对比了我们的去匿名化算法和几个轻量级去匿名化算法的准确率和召回率。这些轻量级去匿名化算法包括之前介绍过的简单去匿名化算法。

  • 简单去匿名化算法:只是简单的交换节点的位置而不改变图的结构。
  • k度匿名化:确保图中的每个节点至少有其他k-1个节点和它具有相同的度。K度匿名化只向图中增加最少数量的边。
  • 稀疏化:这个方法随机去掉一部分边。
  • 扰动:这个方法先随机去掉一部分边,再随机增加一部分边。
  • 交换:这个方法会交换两条随机选择的边之间的连接。
  • 保谱随机化:尝试使扰动和转换随机化,同时尽量保留图谱。这是为了获得更好的效用。

子图攻击

首先,说明我们的算法在子图攻击方面的性能。

对于子图攻击,这里我们假设辅助图是原始图的子图,其规模可能是原始图,即目标图的25%或50%。在这个图中我们可以看到,我们的算法在识别方面获得了相当高的准确度。即使当子图较小,如规模只有原始图25%时,我们的算法在识别方面仍然可以获得相当高的准确度。这里,X轴展示的是不同的匿名化方法,Y轴展示的是最好的2,000个输入匹配的准确度。

重叠图

我们还在重叠图上比较我们的算法。这意味着,辅助图和原始图有一定程度的重叠。也就是说,辅助图不是原始图的一个子图,其中还包含一些新的节点。这里的性能与之前的子图攻击的结果类似。同样的,这里的X轴表示不同的匿名化方法,Y轴表示最好的2,000个输入匹配。

与其他算法对比

我们还对比了我们的算法和一个已有的方法。这个方法是Narayanan提出的。我们在共同作者图上进行了这个比较。我们使用的辅助图与原始图有25%的重叠。我们的方法和Narayana的方法的区别之一在于我们不需要任何种子映射。这意味着我们的算法可以在没有任何信息的情况下开始,而他们的方法需要一组高质量的种子映射才能开始。在实验中,我们发现,Narayana的方法要获得好的性能,至少需要有60%~80%的种子映射是正确的。而且,即使所有的种子映射都是正确的,Narayana的方法的召回率仍然低于我们的方法。

绿色的线表示我们的方法,红色的线表示他们的方法。对于绿色的线,如果想要获得高的召回率,那么就需要输出更多的映射,但是这样会使准确率变低。对于红色的曲线,我们只改变种子映射的质量。当种子映射的质量更高时,他们的方法的准确率和召回率都会更高。为了让他们的方法比我们的方法更好,对于各种匿名化方法,他们需要使映射的准确率达到60%、70%甚至是80%。此外,它们的方法的召回率总是低于我们的方法。

效率

在效率方面,微软学术搜索的共同作者图是一个包含8,000个节点的简单图,我们通常需要8分钟~20分钟来完成去匿名化。对于腾讯微博用户交互图,由于它非常大,所以我们设计了一个方法来提高效率。

这里,X轴表示最佳候选对的数量。这意味着我们在迭代中只维护特定数量的最佳候选对。此外,为了节省空间和时间,我们还移除了所有其他候选对。左边这幅图的Y轴表示准确率,右边这幅图的Y轴表示运行时间。从运行时间中,我们可以看到,如果保持一定数量的候选对,准确率会先提高然后保持平稳。所以从这里来看,我们可以说不需要保留所有最佳候选对,而只需要保留一部分最佳候选对,这样可以在保持高的准确率的同时获得好的运行时间。

结论

在主特征向量中的值大的节点更容易被攻击

我们发现,在主特征向量中的值大的节点更容易被识别。在这个图中,X表示不同的匿名化方法,Y轴表示识别的准确性。这里,我们根据特征值把节点分到不同的桶中。这里有八个桶,我们使用不同的颜色来表示不同的桶中的节点。我们发现,特征值高的桶中的节点的识别准确度要高得多。这表明,如果你在社交网络中非常有影响力,那么你就很容易被识别,因此具有更高的隐私风险。

额外的描述信息使攻击更加容易

我们还评估了我们的方法应用于丰富图时的性能。在这个试验中,我们使用了腾讯微博的图。我们使用原始数据集的子图作为附属图,子图总是包含1,000个节点,但是具有不同的重叠比例。与目标图相比,这一比例可能在25%~100%之间。目标图包含所有剩余节点的匿名化子图。腾讯微博的图中有230万个节点。这里我们还使用了一个特定的概率来扰动属性。这意味着我们可能随机地把性别从男性变为女性。

在图中,X轴表示不同的匿名化方法,Y轴表示最好的250个映射的准确度。比较我们的方法和简单匿名化方法,我们发现,改变图的结构不会对匿名化带来很大的困难。因为不同的匿名化策略在准确率方面的差别不大。但是另一方面,对属性的扰动会显著地降低准确率。由于节点和边的属性提供了重要的信息,因此可以预期这些信息会使攻击更加容易。

总结

  • 设计了一个基于节点相似度的社交图去匿名化算法。这个算法同时考虑了图的结构和属性。
  • 这个算法能够有效地完成大规模社交图的去匿名化。
  • 额外的描述信息使攻击更加容易,即使信息不准确时也是如此。
  • 在特征向量中心度方面有影响力的节点具有高的隐私风险。

系列总结

未来的挑战

  1. 隐私无疑是我们需要面对的最重要的挑战。因为所有这些数据都来源于用户,它们都代表了用户的一些行为模式,所以用户会关心我们如何使用这些数据以及我们能够从这些数据中挖掘出什么。
  2. 我们如何从不同的公司和组织获得数据。这对于这个领域中的研究非常重要。
  3. 我们还鼓励多学科的研究,因为我们的很多研究主题都与社会学和心理学的研究相关,所以我们需要鼓励不同学科的研究人员和我们一起工作。
  4. 由于数据是多种多样的,这些数据可能是用户轨迹、照片、标签和社交网络。我们有各种各样的数据。如何管理这些大规模的不同来源的数据对我们来说是另一个挑战。
时间: 2024-10-18 19:25:52

大数据学习笔记6·社会计算中的大数据(4)的相关文章

大数据学习笔记4·社会计算中的大数据(2)

本篇继续讨论对用户移动规律的理解:结合地理建模和矩阵分解来做兴趣点推荐. 位置推荐是一类非常受欢迎的应用.在位置推荐中,我们需要理解用户的潜在兴趣并熟悉用户所处的环境.然后,我们就可以根据用户的兴趣和位置的属性发现用户可能感兴趣的地点.与普通推荐任务相比,地理位置在位置推荐中是改进推荐性能的一个重要因素. 在前面一篇中,我们讨论了如何恢复用户行为数据用于移动规律的理解.我们发现,用户移动行为通常集中在像家庭.工作场所和最喜欢的餐馆这样的重要地点.而且,两个地点之间的距离通常很短.所以,我们想要利

大数据学习笔记5·社会计算中的大数据(3)

前两篇文章介绍了我们在用户移动规律的理解方面的研究工作,包括如何处理用户轨迹中的缺失数据以及如何为用户推荐感兴趣的位置.在这一部分,我将展示我们在用户特征研究方面的研究项目. LifeSpec 首先,我想介绍我们近期开展的LifeSpec项目.这个项目的目标是利用社交网络中的用户数据来探索城市生活方式的方方面面. 我们从多个社交网络收集了数据,包括街旁,微博,图书和电影评论网站豆瓣,以及著名的餐馆评论网站点评.我们收集的数据覆盖了超过140万用户,这些用户在我们的数据集中至少有两个账号. 右边这

大数据学习笔记3·社会计算中的大数据(1)

背景信息 什么是用户行为数据,用户行为数据是怎么积累的.为什么我们需要研究用户理解以及为什么用户理解这么重要.在第二部分,我会介绍我们最近关于移动规律理解应用的研究工作.例如,怎样处理用户轨迹中的数据缺失问题,怎么样为用户推荐有趣的地点.在最后一部分,我会展示我们近期在用户分析和隐私保护方面的研究项目. 这张图展示了每分钟用户在一些网站上产生的数据量. 用户数据是怎么样收集的 二十多年之前,那时候普适计算的概念才刚刚被提出来.马克.维瑟提出了普适计算的概念.那时候已经有了大型机和个人计算机,人们

大数据学习笔记2·互联网搜索中的大数据研究

大规模网络搜索的设计 大规模搜索引擎的逻辑结构 上图来自1998年Google两个创始人发表的论文. crawler:爬虫,从互联网上获取文档信息 index:读取这些信息,并记住哪些单词出现在哪些文档中,称为索引 search:使关键词查询成为可能,并对查询结果进行排序 Google的独特性在于:使用anchor text描述目标文档,并利用文档之间的链接对文档的重要性排序,这就是PageRank. Google搜索的主要数据结构 将大文件设计为虚拟文件 每个页面有三个描述维度: sync同步

大数据学习笔记7·城市计算(1)

前言 众所周知,快速的城市化使得很多人的生活变得现代化,同时也产生了很多挑战,如交通拥挤.能源消耗和空气污染. 城市的复杂性使得应对这些挑战看起来几乎是不可能的.近来,传感技术和大规模计算基础设施的进步产生了各种各样的大数据,从社会化媒体数据到交通数据,从地理数据到气象数据.如果使用得当,我们可以使用这些数据去应对城市中面临的各种挑战. 受到这个机会的激励,我们提出了城市计算的解决方案.它把城市传感.城市数据管理.城市数据分析和服务提供变成一个对人的生活.城市运行系统和环境进行不断重复但不显眼的

社会计算中一些名词笔记

社会计算中相关的一些概念,整理下笔记: 1.弱连接[weak tie]:最早来源于Granovetter的"弱连接假设"(weak tie hypothesis),比如下图,弱连接假设是说,如果A和B.C有一条强连接,可以理解成A和B.C是好朋友,则B.C之间形成连接的可能性就会很大,即B.C很有可能也称为好朋友. 也就是说,A和B.C通过强连接连接,则B.C之间的连接一般是存在的,如果B.C之间不存在连接,则B.C之间的连接很容易生成,这个叫做"三元闭包"(For

angular学习笔记(五)-阶乘计算实例(2)

<!DOCTYPE html> <html ng-app> <head> <title>2.3.3计算阶乘实例2</title> <meta charset="utf-8"> <script src="../angular.js"></script> <script src="script.js"></script> </

Android学习笔记_78_ Android开发中使用软引用和弱引用防止内存溢出

在<Effective Java 2nd Edition>中,第6条"消除过期的对象引用"提到,虽然Java有 垃圾回收机制,但是只要是自己管理的内存,就应该警惕内存泄露的问题,例如的对象池.缓存中的过期对象都有可能引发内存泄露的问题.书中还提到可以用 WeakHashMap来作为缓存的容器可以有效解决这一问题.之前也确实遇到过类似问题,但是没有接触过"弱引用"相关的问题,于是查阅了一些资料. <Java 理论与实践: 用弱引用堵住内存泄漏>

angular学习笔记(五)-阶乘计算实例(1)

<!DOCTYPE html> <html ng-app> <head> <title>2.3.2计算阶乘实例1</title> <meta charset="utf-8"> <script src="../angular.js"></script> <script src="script.js"></script> </