CN114722427B - 联邦学习中的隐私去重方法、装置、设备及存储介质 - Google Patents
联邦学习中的隐私去重方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN114722427B CN114722427B CN202210634395.5A CN202210634395A CN114722427B CN 114722427 B CN114722427 B CN 114722427B CN 202210634395 A CN202210634395 A CN 202210634395A CN 114722427 B CN114722427 B CN 114722427B
- Authority
- CN
- China
- Prior art keywords
- data
- index
- result
- identifier
- group
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 208
- 238000003860 storage Methods 0.000 title claims abstract description 45
- 230000008030 elimination Effects 0.000 title description 5
- 238000003379 elimination reaction Methods 0.000 title description 5
- 239000003999 initiator Substances 0.000 claims abstract description 181
- 230000002776 aggregation Effects 0.000 claims abstract description 125
- 238000004220 aggregation Methods 0.000 claims abstract description 125
- 238000004458 analytical method Methods 0.000 claims abstract description 105
- 230000006870 function Effects 0.000 claims description 169
- 230000004044 response Effects 0.000 claims description 16
- 238000012935 Averaging Methods 0.000 claims description 12
- 230000001174 ascending effect Effects 0.000 claims description 10
- 238000012545 processing Methods 0.000 claims description 10
- 238000005516 engineering process Methods 0.000 abstract description 17
- 238000013473 artificial intelligence Methods 0.000 abstract description 7
- 238000010801 machine learning Methods 0.000 abstract description 6
- 230000008569 process Effects 0.000 description 103
- 230000000694 effects Effects 0.000 description 61
- 238000010586 diagram Methods 0.000 description 15
- 230000003993 interaction Effects 0.000 description 15
- 238000004364 calculation method Methods 0.000 description 12
- 230000000977 initiatory effect Effects 0.000 description 12
- 229910002056 binary alloy Inorganic materials 0.000 description 11
- 230000005540 biological transmission Effects 0.000 description 8
- 230000002457 bidirectional effect Effects 0.000 description 6
- 238000004891 communication Methods 0.000 description 6
- 238000004590 computer program Methods 0.000 description 6
- 238000007405 data analysis Methods 0.000 description 6
- 230000004913 activation Effects 0.000 description 5
- 238000013507 mapping Methods 0.000 description 4
- 238000011161 development Methods 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000011160 research Methods 0.000 description 3
- 238000012549 training Methods 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 239000012634 fragment Substances 0.000 description 2
- 230000002452 interceptive effect Effects 0.000 description 2
- 238000005192 partition Methods 0.000 description 2
- 238000006116 polymerization reaction Methods 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000012482 interaction analysis Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000008447 perception Effects 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 241000894007 species Species 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000013526 transfer learning Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6245—Protecting personal data, e.g. for financial or medical purposes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6227—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database where protection concerns the structure of data, e.g. records, types, queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
- G06N20/20—Ensemble learning
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Databases & Information Systems (AREA)
- Medical Informatics (AREA)
- Artificial Intelligence (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种联邦学习中的隐私去重方法、装置、设备及存储介质,涉及机器学习领域。该方法包括:获取第一数据集;将第一数据的第一数据标识发送至协助方设备,协助方设备存储的第二数据对应有索引关系;接收协助方设备发送的索引结果,索引结果是协助方设备在索引关系中基于第二数据标识对第一数据标识进行查询得到的结果,用于表示第一数据标识在索引关系中的排列次序;对索引结果进行聚合分析,得到第二数据集的数据去重统计结果。通过以上方式,能够在避免信息泄露的前提下,使得发起方设备无需获取协助方设备的对象数据,根据索引结果确定第二数据的部分数据信息。本申请可应用于云技术、人工智能、智慧交通等各种场景。
Description
技术领域
本申请实施例涉及机器学习领域,特别涉及一种联邦学习中的隐私去重方法、装置、设备及存储介质。
背景技术
随着计算机技术的发展,联邦学习逐渐成为一个热门课题,联邦学习通过多方协作对数据进行加密分析。在保护用户隐私和数据安全的同时,解决了数据孤岛的问题。
相关技术中,通常采用聚合函数,由不同的数据拥有方对自身拥有的数据进行数据分析。例如,在对数据进行去重操作时,将数据进行分组。对于一个组内的数据,采用映射方法,对不同数据赋予相同的数据值,并根据键信息对数据进行去重操作,其中,去重操作的过程由不同的数据拥有方各自进行。
在上述方法中各个数据拥有方之间是相互独立的。出于隐私保护的原因,不同数据拥有方无法直接将原始数据发送至其他数据拥有方,当某个数据拥有方需要对其他数据拥有方的数据信息进行去重分析时,无法实现保密分析过程。
发明内容
本申请实施例提供了一种联邦学习中的隐私去重方法、装置、设备及存储介质,能够使得发起方设备无需获取协助方设备的对象数据,即可根据协助方设备发送的索引结果,确定第二数据集中第二数据的部分数据信息,在避免数据泄露的前提下,实现了数据去重统计过程。针对本申请训练得到的联邦学习中的隐私去重方法。所述技术方案如下。
一方面,提供了一种联邦学习中的隐私去重方法,所述方法包括:
获取第一数据集,所述第一数据集中的第一数据对应有第一数据标识,所述第一数据标识用于唯一指示所述第一数据;
将所述第一数据的第一数据标识发送至协助方设备,所述协助方设备存储有第二数据集,所述第二数据集中包括至少一个第二数据的第二数据标识与所述第一数据标识匹配,所述第二数据对应有索引关系,所述索引关系是对所述第二数据排列得的顺序关系;
接收所述协助方设备发送的索引结果,所述索引结果是所述协助方设备在所述索引关系中基于所述第二数据标识对所述第一数据标识进行查询得到的结果,所述索引结果用于表示所述第一数据标识在所述索引关系中的排列次序;
对所述索引结果进行聚合分析,得到所述第二数据集的数据去重统计结果,所述数据去重统计结果是针对所述索引结果进行去重后统计得到的结果。
另一方面,提供了一种联邦学习中的隐私去重方法,所述方法包括:
接收第一数据标识,所述第一数据标识用于唯一指示第一数据,所述第一数据是发起方设备中第一数据集中的数据;
基于协助方设备存储的第二数据集中的第二数据,确定所述第二数据对应的索引关系,所述第二数据集中包括至少一个第二数据的第二数据标识与所述第一数据标识匹配,所述索引关系是对所述第二数据排列得到的顺序关系;
在所述索引关系中基于所述第二数据标识对所述第一数据标识进行查询,得到索引结果;
将所述索引结果发送至所述发起方设备,所述发起方设备用于基于所述索引结果确定所述第二数据集的数据去重统计结果。
另一方面,提供了一种联邦学习中的隐私去重装置,所述装置包括:
获取模块,用于获取第一数据集,所述第一数据集中的第一数据对应有第一数据标识,所述第一数据标识用于唯一指示所述第一数据;
发送模块,用于将所述第一数据的第一数据标识发送至协助方设备,所述协助方设备存储有第二数据集,所述第二数据集中包括至少一个第二数据的第二数据标识与所述第一数据标识匹配,所述第二数据对应有索引关系,所述索引关系是对所述第二数据排列得到的顺序关系;
接收模块,用于接收所述协助方设备发送的索引结果,所述索引结果是所述协助方设备在所述索引关系中基于所述第二数据标识对所述第一数据标识进行查询得到的结果,所述索引结果用于表示所述第一数据标识在所述索引关系中的排列次序;
分析模块,用于对所述索引结果进行聚合分析,得到所述第二数据集的数据去重统计结果,所述数据去重统计结果是针对所述索引结果进行去重后统计得到的结果。
另一方面,提供了一种联邦学习中的隐私去重装置,所述装置包括:
接收模块,用于接收第一数据标识,所述第一数据标识用于唯一指示第一数据,所述第一数据是发起方设备中第一数据集中的数据;
确定模块,用于基于协助方设备存储的第二数据集中的第二数据,确定所述第二数据对应的索引关系,所述第二数据集中包括至少一个第二数据的第二数据标识与所述第一数据标识匹配,所述索引关系是对所述第二数据排列得到的顺序关系;
查询模块,用于在所述索引关系中基于所述第二数据标识对所述第一数据标识进行查询,得到索引结果;
发送模块,用于将所述索引结果发送至所述发起方设备,所述发起方设备用于基于所述索引结果确定所述第二数据集的数据去重统计结果。
另一方面,提供了一种计算机设备,所述计算机设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如上述本申请实施例中任一所述联邦学习中的隐私去重方法。
另一方面,提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现如上述本申请实施例中任一所述的联邦学习中的隐私去重方法。
另一方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述实施例中任一所述的联邦学习中的隐私去重方法。
本申请实施例提供的技术方案带来的有益效果至少包括:
在发起方设备和协助方设备之间进行联邦学习中的隐私去重过程时,发起方设备将第一数据的第一数据标识发送至协助方设备,协助方设备根据第二数据排列得到的顺序关系确定索引关系,并在索引关系中对第一数据标识进行查询得到索引结果,发起方设备接收协助方设备发送的索引结果后进行聚合分析,得到第二数据集的数据去重统计结果。通过上述方法,发起方设备无需获取协助方设备的对象数据,即可根据协助方设备发送的索引结果,确定第二数据集中第二数据的部分数据信息,保护了发起方设备和协助方设备的原始敏感数据和分组结果不被对方获取,实现发起方设备和协助方设备之间安全、公平的信息共享过程,在避免数据泄露的前提下,实现了数据去重统计过程。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请一个示例性实施例提供的相关技术中的去重方法流程图;
图2是本申请一个示例性实施例提供的实施环境示意图;
图3是本申请一个示例性实施例提供的联邦学习中的隐私去重方法流程图;
图4是本申请一个示例性实施例提供的发起方设备存储的第一数据集;
图5是本申请一个示例性实施例提供的协助方设备存储的第二数据集;
图6是本申请另一个示例性实施例提供的联邦学习中的隐私去重方法流程图;
图7是本申请再一个示例性实施例提供的联邦学习中的隐私去重方法流程图;
图8是本申请一个示例性实施例提供的位图示意图;
图9是本申请又一个示例性实施例提供的联邦学习中的隐私去重方法流程图;
图10是本申请其余一个示例性实施例提供的联邦学习中的隐私去重方法流程图;
图11是本申请一个示例性实施例提供的发起方设备和协助方设备的交互流程图;
图12是本申请一个示例性实施例提供的位图更新示意图;
图13是本申请另一个示例性实施例提供的发起方设备和协助方设备的交互流程图;
图14是本申请一个示例性实施例提供的发起方设备和协助方设备的交互示意图;
图15是本申请一个示例性实施例提供的并行交互流程图;
图16是本申请一个示例性实施例提供的联邦学习中的隐私去重装置的结构框图;
图17是本申请另一个示例性实施例提供的联邦学习中的隐私去重装置的结构框图;
图18是本申请一个示例性实施例提供的服务器的结构框图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
首先,针对本申请实施例中涉及的名词进行简单介绍。
人工智能(Artificial Intelligence,AI):是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。换句话说,人工智能是计算机科学的一个综合技术,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器。人工智能也就是研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。
联邦学习(Federated Learning):联邦学习又称为联合学习,能够在保护用户隐私和数据安全的前提下实现数据的“可用而不可见”,也即通过多方协作完成机器学习模型的训练任务,此外,还能够提供机器学习模型的推理服务。
与传统的集中式机器学习不同,联邦学习过程中,由两个或两个以上的参与方一起协作训练一个或多个机器学习模型。从分类上来说,基于数据的分布特征,联邦学习可以划分为横向联邦学习(Horizontal Federated Learning)、纵向联邦学习(VerticalFederated Learning)和联邦迁移学习(Federated Transfer Learning)。其中,横向联邦学习又称为基于样本的联邦学习,适用于样本集共享相同特征空间但样本空间不同的情况;纵向联邦学习又称为基于特征的联邦学习,适用于样本集共享相同样本空间但特征空间不同的情况;联邦迁移学习则适用于样本集不仅在样本空间上不同而且在特征空间上也不同的情况。
聚合函数:聚合函数是对一组值执行计算并返回单一的值。除COUNT(数量统计)以外,聚合函数忽略空值,一般来说,结构化查询语言(Structured Query Language,SQL)中的聚合函数一般包括SUM(求和),AVG(求均值),MAX(求最大值),MIN(求最小值),COUNT(求数量)。聚合函数经常与选择语句(SELECT)中的分组(GROUP BY)子句搭配使用,根据一个或多个行或列对数据集进行分组。
位图(BitMap):将数据储存到一个或多个数字中的数据结构。在计算机中,一个整数(Integer)类型数据通常由32位构成,位图常用于大数据环境下的统计或计算,能够用最小的空间成本储存大量的数据信息。
分布式计算框架(Akka):Akka是一个开发库和运行环境,主要用于构建高并发,分布式,可容错,事件驱动的基于脚本语言(JavaScript,java)虚拟机平台的应用。它提供了一种称为角色Actor的并发模型,主要用于异步消息传递和计算事务处理,是一种轻量级的统一模型实体。
随着人工智能技术研究和进步,人工智能技术在多个领域展开研究和应用,例如常见的智能家居、智能穿戴设备、虚拟助理、智能音箱、智能营销,无人驾驶、自动驾驶、无人机、机器人、智能医疗、智能客服、车联网、自动驾驶、智慧变通等,相信随着技术的发展,人工智能技术将在更多的领城得到应用,并发辉越来越重要的价值。
相关技术中,通常采用聚合函数,由不同的数据拥有方对自身拥有的数据进行数据分析。例如,在对数据进行去重操作时,将数据进行分组,对于一个组内的数据,采用映射方法,对不同数据赋予相同的数据值,并根据键信息对数据进行去重操作,其中,去重操作的过程由不同的数据拥有方各自进行。然而,在上述方法中,各个数据拥有方之间是相互独立的,出于隐私保护的原因,不同数据拥有方无法直接将对象数据发送至其他数据拥有方,当需要对多个数据拥有方的数据进行综合分析时,无法实现保密分析过程。
示意性的,不同的参与方基于自身存储的数据集,对数据集中数据进行去重操作。示意性的,在SQL中,若聚合函数带有去重(distinct)关键字,意味着在计算过程中要对聚合函数包含的数据去重。
如图1所示,在分布式集群(Spark)引擎中,对数据项去重的方法是:先根据分组要求对数据集110进行分组,对一个组内的数据,将其对应到一个Map(Key,Value)映射,其中,Key为组内数据,而所有的Value均相同(如:所有组内数据的Value为1),接着将此映射按照Key进行去掉重复项,最后再将此映射还原为数据列120,并根据数据列120进行聚合计算。在此过程中,假设某个参与方需要对另一个参与方的数据进行分析时,由于参与方双方的数据是保密的,而参与方双方的分组字段(分组情况)对对方也是保密的,无法把对象数据发送给对方,因此传统的Spark引擎去重方法就无法执行,因为无法将所有组内不可见的对方数据制作成一个可供去重的Map映射。在此场景下,传统方法无法处理这种跨参与方的多数据集的聚合计算去重过程。
本申请实施例中,提供了一种联邦学习中的隐私去重方法,使得发起方设备无需获取协助方设备的对象数据,即可根据协助方设备发送的索引结果,确定第二数据集中第二数据的部分数据信息,在避免数据泄露的前提下,实现了数据去重统计过程。针对本申请训练得到的联邦学习中的隐私去重方法,在应用时包括消息推广场景、应用程序的喜好程度确认场景等多种联邦分析场景下。以上应用场景仅为示意性的举例,本实施例提供的联邦学习中的隐私去重方法还可以应用于其他场景中,本申请实施例对此不加以限定。
需要说明的是,本申请所涉及的信息(包括但不限于用户设备信息、用户个人信息等)、数据(包括但不限于用于分析的数据、存储的数据、展示的数据等)以及信号,均为经用户授权或者经过各方充分授权的,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。例如,本申请中涉及到的数据都是在充分授权的情况下获取的。
其次,对本申请实施例中涉及的实施环境进行说明,示意性的,请参考图2,在联邦学习中的隐私去重过程中,包括多个硬件设备(n个硬件设备),以n个硬件设备中硬件设备2为发起方设备210、硬件设备3为协助方设备220为例进行说明,也即,对发起方设备210和协助方设备220之间的隐私去重过程进行说明。其中,发起方设备210和协助方设备220之间通过通信网络230连接。
在一些实施例中,发起方设备210或者协助方设备220通过其对应的终端或者服务器进行联邦学习中的隐私去重过程。例如:发起方设备210通过其对应的终端与协助方设备220对应的终端进行联邦学习中的隐私去重过程;或者,发起方设备210通过其对应的终端与协助方设备220对应的服务器进行联邦学习中的隐私去重过程;或者,发起方设备210通过其对应的服务器与协助方设备220对应的终端进行联邦学习中的隐私去重过程;或者,发起方设备210通过其对应的服务器与协助方设备220对应的服务器进行联邦学习中的隐私去重过程。
在一些实施例中,发起方设备210具有数据获取功能,从而对多个第一数据(如:第一数据1、第一数据2等)进行获取,不同的第一数据有其对应的第一数据标识;同理,协助方设备220具有数据获取功能,从而对多个第二数据(如:第二数据1、第二数据2等)进行获取,不同的第二数据有其对应的第二数据标识。
可选地,协助方设备220具有索引赋值功能,从而对不同第二数据进行索引赋值,得到不同第二数据对应的数据索引。示意性的,根据不同第二数据对应的数据值,对多个第二数据进行数值排序,得到第二数据的顺序关系,并根据第二数据的顺序关系对第二数据分配不同的数据索引。根据不同第二数据对应的数据索引,确定协助方设备对应的索引关系。
在一些实施例中,发起方设备210用于向协助方设备220发送第一数据标识。协助方设备220在接收到的第一数据标识后,在索引关系中基于第二数据标识对第一数据标识进行查询,得到表示第一数据标识在索引关系中排列次序的索引结果。
可选地,协助方设备将索引结果发送至发起方设备,发起方设备对索引结果进行聚合分析,得到第二数据集的数据去重统计结果,数据去重统计结果是针对索引结果进行去重后统计得到的结果。以上是对发起方设备和协助方设备之间采用联邦学习中的隐私去重方法进行数据分析的简要介绍。
值得注意的是,上述终端包括但不限于手机、平板电脑、便携式膝上笔记本电脑、智能语音交互设备、智能家电、车载终端等移动终端,也可以实现为台式电脑等;上述服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(Content Delivery Network,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器。
其中,云技术(Cloud technology)是指在广域网或局域网内将硬件、应用程序、网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术。云技术基于云计算商业模式应用的网络技术、信息技术、整合技术、管理平台技术、应用技术等的总称,可以组成资源池,按需所用,灵活便利。云计算技术将变成重要支撑。技术网络系统的后台服务需要大量的计算、存储资源,如视频网站、图片类网站和更多的门户网站。伴随着互联网行业的高度发展和应用,将来每个物品都有可能存在自己的识别标志,都需要传输到后台系统进行逻辑处理,不同程度级别的数据将会分开处理,各类行业数据皆需要强大的系统后盾支撑,只能通过云计算来实现。
在一些实施例中,上述服务器还可以实现为区块链系统中的节点。
结合上述名词简介和应用场景,对本申请提供的联邦学习中的隐私去重方法进行说明,以该方法应用于服务器为例,如图3所示,该方法包括如下步骤310至步骤340。
步骤310,获取第一数据集。
可选地,第一数据集为发起方设备存储的数据集,第一数据集中包括有多个第一数据。
示意性的,基于隐私保护的前提,发起方设备是在联邦学习过程中,对其他参与方的数据进行隐私分析的参与方。也即,在不会获取其他参与方对象数据前提下,对其他参数方的数据信息进行分析。
示意性的,第一数据集中存储的第一数据为发起方设备的隐私数据,也即,基于隐私保护规定,发起方设备不能将其存储的第一数据发送至其他参与方。
可选地,第一数据集中存储的第一数据的数据类型相同。例如:第一数据集中存储的多个第一数据为多个喜好权重数据,如,不同的喜好权重数据用于指示不同玩家帐号对不同游戏的喜好程度;或者,第一据集中存储的多个第一数据为多个时长数据,如:不同的时长数据用于指示不同对象对不同项目的注册时长等。
其中,第一数据集中的第一数据对应有第一数据标识,第一数据标识用于唯一指示第一数据。通过第一数据和第一数据标识之间的关系,能够唯一确定第一数据。
示意性的,如图4所示,为发起方设备所存储的第一数据集示意图。其中,身份标识(Identity Document,ID)用于指示第一数据标识;分组字段col(column,列)用于指示不同的分组信息;数据值(value)用于指示与身份标识和分组字段col对应的数据值情况。
在一个可选的实施例中,将分组字段col和数据值作为第一数据,将身份标识作为与第一数据对应的第一数据标识。
在一个可选的实施例中,将数据值作为第一数据,将身份标识作为与第一数据对应的第一数据标识,将分组字段col作为分组信息。其中,分组信息用于指示第一数据集中的分组情况。
示意性的,第一数据集中存储有3款应用程序对应的程序数据,3款应用程序分别为A游戏401、B游戏402以及C游戏403,将3款应用程序作为3个分组。采用第一数据标识作为第一数据对应下标的方式,对第一数据集中的多个第一数据分别进行表示。
例如:在A游戏401对应的分组内,存储有3个第一数据,其中,第一数据A1=2,即:第一数据A1对应的身份标识(第一数据标识)为1,第一数据A1的数据值为2;第一数据A2=3,即:第一数据A2对应的身份标识为2,第一数据A2的数据值为3;第一数据A3=3,即:第一数据A3对应的身份标识为3,第一数据A3的数据值为3。
同理,在B游戏402对应的分组内,存储有2个第一数据,其中,第一数据B4=5,即:第一数据B4对应的身份标识为4,第一数据B4的数据值为5;第一数据值B5=6,即:第一数据B5对应的身份标识为5,第一数据B5的数据值为6。同理,在C游戏403对应的分组内,存储有1个第一数据,其中,数据值C6=9,即:第一数据C6对应的身份标识为6,第一数据C6的数据值为9。
步骤320,将第一数据的第一数据标识发送至协助方设备。
示意性的,在获取第一数据集后,获取第一数据集中存储的多个第一数据分别对应的第一数据标识,并将多个第一数据标识发送至协助方设备。
在一个可选的实施例中,将在联邦学习过程中除发起方设备以外的其他参与方作为协助方设备。示意性的,在两个参与方进行的两方场景中,若参与方1为发起方设备,则参与方2为协助方设备;或者,在多个参与方进行的多方场景中,若参与方1为发起方设备,则多个参与方中除参与方1以外的其他参与方为协助方设备等。
其中,协助方设备存储有第二数据集,第二数据集中包括有多个第二数据。
示意性的,第二数据集中存储的第二数据为协助方设备的对象数据,基于隐私保护规定,协助方设备不能将其存储的第二数据集以及第二数据集中的第二数据发送至其他参与方,其中,第二数据是协助方设备存储的、不可为其他参与方所知悉的数据信息。
其中,协助方设备存储有第二数据集,第二数据集中包括至少一个第二数据的第二数据标识与第一数据标识匹配,第二数据对应有索引关系,索引关系是对第二数据排列得到的顺序关系。
在一个可选的实施例中,第二数据集中包括至少一个第二数据的第二数据标识与第一数据标识匹配。示意性的,对于第二数据集中存储的多个第二数据而言,每一个第二数据有其对应的第二数据标识,第二数据标识用于唯一指示第二数据,通过第二数据和第二数据标识之间的关系,能够唯一确定第二数据。
可选地,存在至少一个第一数据标识与第二数据标识匹配包括如下至少一种情况。
1、第二数据集中第二数据对应的第二数据标识,与第一数据集中第一数据对应的第一数据标识一一对应。
示意性的,在对发起方设备对应的第一数据集和协助方设备对应的第二数据集进行分析前,首先将发起方设备对应的数据标识和协助方设备对应的数据标识进行隐私求交,基于交集部分的数据标识对应的数据组成第一数据集和第二数据集。也即,在确定数据标识的交集后,从发起方设备对应的数据中,确定交集内的数据标识对应的第一数据,将多个第一数据组成第一数据集;从协助方设备对应的数据中,确定交集内的数据标识对应第的二数据,将多个第二数据组成第二数据集。
基于数据标识的交集,第一数据集中第一数据对应的第一数据标识与第二数据对应的第二数据标识是相同的,均为数据标识的交集中的数据标识。
2、第二数据集中第二数据对应的第二数据标识,与第一数据集中第一数据对应的第一数据标识部分相同。
示意性的,发起方设备与协助方设备各自存储有大量的数据,其中,发起方设备对应的多个第一数据标识用于指示发起方设备存储的多个第一数据对应的标识信息;协助方设备对应的多个第二数据标识用于指示协助方设备存储的多个名称信息。第二数据集中第二数据对应的第二数据标识,与第一数据集中第一数据对应的第一数据标识部分相同。
在一个可选的实施例中,第二数据对应有索引关系,索引关系是对第二数据排列得到的顺序关系。
示意性的,索引关系是协助方设备基于第二数据确定的关系。如图5所示,为协助方设备所存储的第二数据集示意图。其中,身份标识(ID)用于指示第二数据标识;分组字段col用于指示不同的分组信息;数据值用于指示与身份标识和分组字段col对应的数据值情况。
以数据值为第二数据、身份标识为与第二数据对应的第二数据标识为例进行说明。
示意性的,第二数据集为一家公司拥有的数据集,该公司运营有多个项目。在第二数据集中,存储有2款项目对应的数据,2款项目分别为M项目501以及L项目502。
例如:在M项目501中,以Mn对应表示M项目501中不同的第二数据,其中,n代表第二数据对应的身份标识,Mn对应的数据值为第二数据对应的数据值。则第二数据M1=2、第二数据M2=7、第二数据M4=3、第二数据M6=9。同理,在L项目502中,以Ln应表示L项目502中不同的数据值,其中,n代表第二数据对应的身份标识,Ln对应的数据值为第二数据对应的数据值。则第二数据L3=2、第二数据L5=0。
可选地,在确定第二数据对应的数据值大小后,根据数据值大小,对第二数据排列得到第二数据的顺序关系,例如:根据多个第二数据对应的数据值大小,对多个第二数据进行升序排列,得到第二数据的数据值对应的排序结果为:0<2<3<7<9。示意性的,基于第二数据M1与第二数据M4的数据值大小相同,在对多个第二数据进行升序排列时,将相同的数据值进行一次比较即可。
在一个可选的实施例中,在确定多个第二数据对应的顺序关系后,对多个第二数据进行索引赋值操作,根据不同第二数据对应的数据索引,确定能够体现第二数据顺序关系的索引关系。
示意性的,在得到第二数据对应的顺序关系后,对每一个第二数据赋予一个对应的数据索引,以数据索引指示不同的第二数据,其中,不同数据值的第二数据对应不同的数据索引。例如:第二数据的数据值对应的排序结果为:0、2、3、7、9,根据数据值的排序结果,对每一个第二数据赋予一个对应的数据索引,例如,对数据值为0的第二数据赋予的数据索引为1,对数据值为2的第二数据赋予的数据索引为2,对数据值为3的第二数据赋予的数据索引为3等。
可选地,基于上述索引赋值操作,不同的第二数据拥有其对应的数据索引,从而得到第二数据集中多个第二数据分别对应的数据索引,由于数据索引的索引赋值过程与第二数据对应的数据值的数值大小相关,故将第二数据与数据索引之间的关系作为体现第二数据顺序关系的索引关系。
步骤330,接收协助方设备发送的索引结果。
其中,索引结果是协助方设备在索引关系中基于第二数据标识对第一数据标识进行查询得到的结果,索引结果用于表示第一数据标识在索引关系中的排列次序。
可选地,协助方设备基于第二数据的顺序关系,对第二数据进行索引赋值,确定不同数据值的第二数据分别对应的数据索引。响应于第一数据集对应的第一数据标识和第二数据集对应的第二数据标识相匹配,在第二数据对应的索引关系中,对第一数据标识进行查询。
示意性的,协助方设备在接收到第一数据标识后,根据索引关系,对第一数据标识进行查询,将第一数据标识与索引关系相对应后,将对应后的数据索引作为索引结果发送至发起方设备。
步骤340,对索引结果进行聚合分析,得到第二数据集的数据去重统计结果。
可选地,发起方设备在得到索引结果后,基于对第二数据的分析要求,根据不同种类的聚合函数的种类差异,确定对索引结果的分析方式,从而进行聚合分析过程。
示意性的,当需要对第二数据对应的数据量进行确定时,以聚合函数中的数量统计函数,确定第二数据对应的数据量;或者,当需要对第二数据对应的数据值的总和进行确定时,根据聚合函数中的求和函数,通过协助方设备辅助确定第二数据对应数据值的总和。
可选地,采用聚合函数对索引结果进行聚合分析后,发起方设备在不获取协助方设备原始的第二数据的基础上,能够以隐私保护的方式,对协助方设备存储的第二数据集中第二数据的数据信息进行分析,从而确定第二数据集对应的数据去重统计结果。
其中,数据去重统计结果是针对索引结果进行去重后统计得到的结果。
示意性的,在采用聚合函数对索引结果进行聚合分析时,采用聚合函数中的数量统计函数,通过索引结果确定数据值不重复的第二数据的数量,从而避免对相同数据值的第二数据进行重复分析。
值得注意的是,以上仅为示意性的举例,本申请实施例对此不加以限定。
综上所述,在发起方设备和协助方设备之间进行联邦学习中的隐私去重过程时,发起方设备将第一数据的第一数据标识发送至协助方设备,协助方设备根据第二数据排列得到的顺序关系确定索引关系,并在索引关系中对第一数据标识进行查询得到索引结果,发起方设备接收协助方设备发送的索引结果后进行聚合分析,得到第二数据集的数据去重统计结果。通过上述方法,发起方设备无需获取协助方设备的对象数据,即可根据协助方设备发送的索引结果,确定第二数据集中第二数据的部分数据信息,保护了发起方设备和协助方设备的原始敏感数据和分组结果不被对方获取,实现发起方设备和协助方设备之间安全、公平的信息共享过程,在避免数据泄露的前提下,实现了数据去重统计过程。
在一个可选的实施例中,在将第一数据的第一数据标识发送至协助方设备时,根据第一数据对应的指定信息字段,将第一数据标识分批次发送至协助方设备。示意性的,如图6所示,上述图3所示出的实施例中还可以实现为如下步骤610至步骤650。
步骤610,获取第一数据集。
其中,第一数据集中的第一数据对应有第一数据标识,第一数据标识用于唯一指示第一数据。
步骤620,根据第一数据对应的指定信息字段对第一数据集进行分组,得到多个分组。
可选地,第一数据对应的指定信息字段用于指示第一数据所对应的分组信息。示意性的,分组信息包括如下至少一种信息划分方式。
(1)种类划分的分组信息:根据第一数据的种类差异,对第一数据集中的第一数据进行划分,将第一数据对应的种类差异,作为第一数据对应的指定信息字段,如:F种类和G种类之间的差异;(2)来源划分的分组信息:根据第一数据的来源差异,对第一数据集中的第一数据进行划分,将第一数据对应的来源差异,作为第一数据对应的指定信息字段,如:来源一和来源二之间的差异;(3)时间划分的分组信息:根据第一数据的获取时间的差异,对第一数据集中的第一数据进行划分,将第一数据对应的获取时间的差异,作为第一数据对应的指定信息字段,如:部分第一数据来源于1个月前,部分第一数据来源于1个月内等。
示意性的,如图4所示,为发起方设备所存储的第一数据集示意图。其中,身份标识用于指示第一数据标识;分组字段col用于指示第一数据对应的指定信息字段;数据值用于指示与身份标识和分组字段col对应的数据值情况。
可选地,根据第一数据对应的指定信息字段,对第一数据集进行分组,从而得到与指定信息字段的种类数量对应的分组数量。
例如:根据第一数据对应的指定信息字段,将第一数据集分为三个分组,包括:“A游戏401”对应的分组A、“B游戏402”对应的分组B以及“C游戏403”对应的分组C等,也即,将第一数据集中相同的指定信息字段对应的第一数据划分为一个分组,从而得到不同指定信息字段对应的多个分组。
步骤630,将指定分组中的第一数据对应的第一数据标识发送至协助方设备。
可选地,在得到多个分组后,将多个分组中指定分组中的第一数据对应的第一数据标识发送至协助方设备。
示意性的,指定分组是多个分组中任意一个或者多个分组。例如:在得到的多个分组中,包括分组A、分组B以及分组C。在确定指定分组时,包括如下至少一种方式:(1)将多个分组中的一个分组作为指定分组,例如:将多个分组中的分组A作为指定分组;或者,将多个分组中的分组B作为指定分组;或者,将多个分组中的分组C作为指定分组;(2)将多个分组中的至少一个分组作为指定分组,例如:将多个分组中的分组A和分组B作为指定分组;或者,将多个分组中的分组B和分组C作为指定分组;或者,将多个分组中的分组A、分组B和分组C均作为指定分组等。
在一个可选的实施例中,对指定分组中的第一数据对应的第一数据标识发送至协助方设备的方法进行介绍。
1、当指定分组中包括一个分组时,将该指定分组中的第一数据对应的第一数据标识发送至协助方设备。
示意性的,如图4所示,在得到“A游戏401”对应的分组A、“B游戏402”对应的分组B以及“C游戏403”对应的分组C后,将“A游戏401”对应的分组A作为指定分组,并将指定分组中的第一数据对应的第一数据标识发送至协助方设备,也即,将分组A中的第一数据(A1、A2以及A3)对应的第一数据标识(1、2、3)发送至协助方设备。
2、当指定分组中包括多个分组时,将多个分组中的第一数据对应的第一数据标识依次发送至协助方设备。
示意性的,如图4所示,将“A游戏401”对应的分组A以及“B游戏402”对应的分组B作为指定分组,将分组A中第一数据(A1、A2以及A3)对应的第一数据标识(1、2、3)发送至协助方设备后,将分组B中第一数据(B4以及B5)对应的第一数据标识(4、5)发送至协助方设备。
3、当指定分组中包括多个分组时,将多个分组中的第一数据对应的第一数据标识共同发送至协助方设备。
示意性的,如图4所示,将“A游戏401”对应的分组A以及“B游戏402”对应的分组B作为指定分组,将分组A中第一数据(A1、A2以及A3)对应的第一数据标识(1、2、3)发送至协助方设备的同时,将分组B中第一数据(B4以及B5)对应的第一数据标识(4、5)发送至协助方设备。
值得注意的是,以上仅为示意性的举例,本申请实施例对此不加以限定。
在一个可选的实施例中,响应于指定分组中第一数据的数量达到预设数量阈值,对指定分组中的第一数据进行小组划分。
示意性的,当根据指定信息字段对第一数据集进行分组,得到包括指定分组在内的多个分组后,考虑到向协助方设备发送的指定分组的隐私保护问题,在将分组中的第一数据对应的第一数据标识发送至协助方设备时,首先对指定分组中的第一数据进行小组划分。
可选地,预设数量阈值为预先设定的数量阈值,例如:预设数量阈值为2,当指定分组中第一数据的数量达到2时,对指定分组中的第一数据进行小组划分,也即,当指定分组中第一数据的数量达到2个后,在将指定分组中第一数据对应的第一数据标识发送至协助方设备时,首先对指定分组中的第一数据进行小组划分,使得指定分组中的第一数据被划分为多个小组。
示意性的,将指定分组中的第一数据划分为两个小组,每个小组中包括至少一个第一数据。例如,如图4所示,对于指定分组B分组而言,在发起方设备将B分组中的第一数据对应的第一数据标识发送至协助方设备时,首先对B分组中第一数据(B4以及B5)进行小组划分,得到两个小组,分别为小组1和小组2,其中,小组1中包括第一数据B4,小组2中包括第一数据B5,之后,将第一数据B4对应的第一数据标识4和第一数据B5对应的第一数据标识5发送至协助方设备。
或者,预设数量阈值为3,当指定分组中第一数据的数量达到3时,对指定分组中的第一数据进行小组划分,也即,当指定分组中第一数据的数量达到3个后,对指定分组中的第一数据进行小组划分。
示意性的,将指定分组中的第一数据划分为两个小组,第一个小组中包括一个第一数据,第二个小组中包括两个第一数据等。例如,如图4所示,对于指定分组A分组而言,在发起方设备将A分组中的第一数据对应的第一数据标识发送至协助方设备时,首先将A分组中第一数据(A1、A2以及A3)进行小组划分,得到两个小组,分别为小组1和小组2,其中,小组1中包括第一数据A1,小组2中包括第一数据A2和第一数据A3,之后,将第一数据A1对应的第一数据标识1、第一数据A2对应的第一数据标识2以及第一数据A3对应的第一数据标识3发送至协助方设备。
在一个可选的实施例中,按小组分批次向协助方设备发送第一数据对应的第一数据标识。
可选地,在将第一数据对应的第一数据标识发送至协助方设备时,基于对指定分组进行划分后得到的多个小组,将每个小组作为一个批次,将多个小组中第一数据对应的第一数据标识分批次发送至协助方设备。
示意性的,如图4所示,将“A游戏”对应的分组A作为指定分组,并对分组A中第一数据(A1、A2以及A3)进行小组划分,得到两个小组,分别为小组1和小组2,其中,小组1中包括第一数据A1,小组2中包括第一数据A2和第一数据A3。之后,将每个小组作为一个批次,将小组1和小组2中第一数据对应的第一数据标识分批次发送至协助方设备。
例如:将小组1作为向协助方设备发送的第一批次,将小组2作为向协助方设备发送的第二批次。即:将小组1中第一数据A1对应的第一数据标识1发送至协助方设备后,再将小组2中第一数据A2对应的第一数据标识2以及第一数据A3对应的第一数据标识3发送至协助方设备;或者,将小组2作为向协助方设备发送的第一批次,将小组1作为向协助方设备发送的第二批次。即:将小组2中第一数据A2对应的第一数据标识2以及第一数据A3对应的第一数据标识3发送至协助方设备后,再将小组1中第一数据A1对应的第一数据标识1发送至协助方设备等。
值得注意的是,以上仅为示意性的举例,本申请实施例对此不加以限定。
在一个可选的实施例中,得到多个分组对应的多个小组后,在向协助方设备发送第一数据的第一数据标识时,对多个分组对应的多个小组进行发送的过程包括如下至少一种方式。
(1)在将多个分组对应的多个小组中第一数据对应的第一数据标识分批次发送至协助方设备的同时,对多个分组进行并行发送。
示意性的,如图4所示,对多个分组进行小组划分后,得到A分组对应的小组1(其中包括第一数据A1和第一数据A2)和小组2(其中包括第一数据A3),得到B分组对应的小组3(其中包括第一数据B4)和小组4(其中包括第一数据B5),之后,在将A分组和B分组中第一数据对应的第一数据标识发送至协助方设备时,将A分组中小组1和小组2中第一数据对应的第一数据标识进行分批次发送,将B分组中小组3和小组4中第一数据对应的第一数据标识进行分批次发送,同时,对A分组和B分组进行并行发送。
例如:在第一批次发送过程中,将小组1中第一数据A1和第一数据A2对应的第一数据标识(1,2)以及小组3中第一数据B4对应的第一数据标识4发送至协助方设备,在第二批次发送过程中,将小组2中第一数据A3对应的第一数据标识3,以及小组4中第一数据B5对应的第一数据标识5发送至协助方设备;或者,在第一批次发送过程中,将小组2中第一数据A3对应的第一数据标识3以及小组3中第一数据B4对应的第一数据标识4发送至协助方设备,在第二批次发送过程中,将小组1中第一数据A1和第一数据A2对应的第一数据标识(1,2)以及小组4中第一数据B5对应的第一数据标识5发送至协助方设备等。
可选地,在以小组为发送形式,向协助方设备发送第一数据标识时,对小组对应的第一数据标识进行单次发送,例如:在第一批次发送过程中将小组2对应的第一数据标识3发送至协助方设备后,在第二批次发送过程中无需对小组2对应的第一数据标识3进行重复发送。
(2)将一个分组对应的多个小组中第一数据对应的第一数据标识分批次发送至协助方设备后,再对其余分组中的多个小组进行分批次发送。
示意性的,如图4所示,采用上述方法对多个分组进行小组划分后,得到A分组对应的小组1和小组2以及B分组对应的小组3和小组4,之后,在将A分组和B分组中第一数据对应的第一数据标识发送至协助方设备时,将A分组对应的小组1和小组2中第一数据对应的第一数据标识进行分批次发送后,再将B分组对应的小组3和小组4中第一数据对应的第一数据标识进行分批次发送。
例如:在第一批次发送过程中,将对A分组对应的小组1中第一数据对应的第一数据标识发送至协助方设备;在第二批次发送过程中,将对A分组对应的小组2中第一数据对应的第一数据标识发送至协助方设备;在完成对A分组对应的多个小组(小组1和小组2)中第一数据对应的第一数据标识的发送过程后,在第三批次发送过程中,将B分组对应的小组3中第一数据对应的第一数据标识发送至协助方设备;在第四批次发送过程中,将B分组对应的小组4中第一数据对应的第一数据标识发送至协助方设备。
(3)在对多个分组对应的多个小组中第一数据对应的第一数据标识分批次发送至协助方设备的过程中,对不同分组对应的多个小组中第一数据对应的第一数据标识进行交叉发送。
示意性的,如图4所示,采用上述方法对多个分组进行小组划分后,得到A分组对应的小组1和小组2以及B分组对应的小组3和小组4,之后,在将A分组和B分组中第一数据对应的第一数据标识发送至协助方设备时,对分组A以及分组B分别对应的多个小组中第一数据对应的第一数据标识进行交叉发送。
例如:在第一批次发送过程中,将A分组对应的小组1中第一数据对应的第一数据标识发送至协助方设备;在第二批次发送过程中,将B分组对应的小组3中第一数据对应的第一数据标识发送至协助方设备;在第三批次发送过程中,将A分组对应的小组2中第一数据对应的第一数据标识发送至协助方设备;在第四批次发送过程中,将B分组对应的小组4中第一数据对应的第一数据标识发送至协助方设备。
或者,在第一批次发送过程中,将A分组对应的小组2中第一数据对应的第一数据标识发送至协助方设备;在第二批次发送过程中,将B分组对应的小组3中第一数据对应的第一数据标识发送至协助方设备;在第三批次发送过程中,将B分组对应的小组4中第一数据对应的第一数据标识发送至协助方设备,在第四批次发送过程中,将A分组对应的小组1中第一数据对应的第一数据标识发送至协助方设备等。
也即,在采用交叉发送的方式对多个小组中第一数据对应的第一数据标识进行发送时,既包括固定小组数的交叉发送,也包括随机小组数的交叉发送。
其中,固定小组数的交叉发送用于指示在将一个分组中的固定小组数对应的第一数据标识发送至协助方设备后,对其余分组中的固定小组数对应的第一数据标识进行发送,例如:固定小组数为1,则在对A分组中小组1对应的第一数据标识进行发送后,对B分组中小组3对应的第一数据标识进行发送,再对A分组中小组2对应的第一数据标识进行发送等;同理,固定小组数为2,则在对A分组中小组1和小组2对应的第一数据标识进行发送后,对B分组中小组3和小组4对应的第一数据标识进行发送等。
值得注意的是,以上仅为示意性的举例,本申请实施例对此不加以限定。
步骤640,接收协助方设备发送的索引结果。
其中,索引结果是协助方设备在索引关系中基于第二数据标识对第一数据标识进行查询得到的结果,索引结果用于表示第一数据标识在索引关系中的排列次序。
步骤650,对索引结果进行聚合分析,得到第二数据集的数据去重统计结果。
其中,数据去重统计结果是针对索引结果进行去重后统计得到的结果。
综上所述,发起方设备将第一数据的第一数据标识发送至协助方设备,协助方设备在索引关系中对第一数据标识进行查询得到索引结果,发起方设备对接收到的索引结果进行聚合分析,得到第二数据集的数据去重统计结果。通过上述方法,发起方设备无需获取协助方设备的对象数据,即可根据协助方设备发送的索引结果,确定第二数据集中第二数据的部分数据信息,实现了发起方设备和协助方设备之间安全、公平的信息共享过程,在避免数据泄露的前提下,实现了数据去重统计过程。
在本申请实施例中,对向协助方设备发送第一数据标识的过程进行了介绍。在向协助方设备发送第一数据标识时,发起方设备根据第一数据对应的指定信息字段,对第一数据集进行分组,得到多个分组,在通过多个分组中的指定分组向协助方设备发送指定分组中第一数据对应的第一数据标识时,可以对指定分组进行小组划分,将不同小组中第一数据对应的第一数据标识分批次发送至协助方设备,从而对指定信息字段的字段信息进行保护,避免协助方设备通过接收到的第一数据标识,确定发送方的字段信息,有效增强了发起方设备对本方存储数据的数据保护效果。
在一个可选的实施例中,发起方设备在对索引结果进行聚合分析时,采用位图分析方法,对位图进行更新,从而基于更新后的位图得到第二数据集的数据去重统计结果。示意性的,如图7所示,上述图3所示出的实施例还可以实现为如下步骤710至步骤760。
步骤710,获取第一数据集。
其中,第一数据集中的第一数据对应有第一数据标识,第一数据标识用于唯一指示第一数据。
步骤720,将第一数据的第一数据标识发送至协助方设备。
其中,协助方设备存储有第二数据集,第二数据集中包括至少一个第二数据的第二数据标识与第一数据标识匹配,第二数据对应有索引关系,索引关系是对第二数据排列得到的顺序关系。
步骤730,接收协助方设备发送的索引结果。
其中,索引结果是协助方设备在索引关系中基于第二数据标识对第一数据标识进行查询得到的结果。索引结果用于表示第一数据标识在索引关系中的排列次序。
步骤740,创建第一数据集对应的基础位图。
位图为Bitmap,是对数据存储的改进方法。采用传统方式对数据进行存储时,需要采用4个字节(Byte)存储一个整数类型数据(int),因此,当存储多个数据时,存储空间的占用量极大。
采用Bitmap对上述存储方式进行变化,基本原理是采用一个比特位(bit)存储一个数据,由于1个Byte对应8个bit,则4个Byte对应32个bit,采用之前存储一个数据的数据量,现在可以至多存储32个数据,大大节省了数据的存储空间。
示意性的,如图8所示,采用一个例子对基础位图(Bitmap)的原理进行简要说明,假设需要表示8个数据,则需要8个bit(1Byte),首先对1Byte的空间进行划分,确定8个bit,并将8个bit位置0,如:比特位分布810所示。之后,若需要将(3,4,5,6,8)数据加入到Bitmap中,即在Bitmap中,将与(3,4,5,6,8)数据对应的位置上的0进行置1操作即可,如:比特位分布820所示。
可选地,在将数据存储至对应的bit位后,在对数据进行数量统计或者检索数据是否存在时,采用遍历的方法,对上述Bitmap中每一个bit位进行依次遍历,当某一个bit位为1时,则视为该数据存在。
在一个可选的实施例中,第一数据集根据指定信息字段分为多个分组,发送至协助方设备的第一数据标识是指定分组中第一数据对应的数据标识。
可选地,根据指定信息字段,对第一数据集中存储的多个第一数据进行分组,得到第一数据集对应的多个分组。其中,第一数据对应的指定信息字段用于指示第一数据所对应的分组信息。
示意性的,如图4所示,为发起方设备所存储的第一数据集示意图。其中,身份标识用于指示第一数据标识;分组字段col用于指示第一数据对应的指定信息字段。根据第一数据对应的指定信息字段,对第一数据集进行分组,从而得到与指定信息字段的种类数量对应的分组数量。
例如:根据第一数据对应的指定信息字段,将第一数据集分为三个分组,包括:“A游戏”对应的分组A、“B游戏”对应的分组B以及“C游戏”对应的分组C等,也即,将第一数据集中相同的指定信息字段对应的第一数据分为一个分组,从而得到多个分组。
示意性的,不同的分组分别对应不同的指定信息字段,其中,同一个分组内的第一数据对应相同的指定信息字段,例如:分组A中的第一数据对应的指定信息字段为“A游戏”,分组B中的第一数据对应的指定信息字段为“B游戏”等。
在一个可选的实施例中,创建多个分组分别对应的基础位图,其中包括指定分组对应的基础位图。
示意性的,在基于指定信息字段对第一数据集中的第一数据进行分组后,针对每一个分组,创建与其对应的基础位图。例如:如图4所示,在获取得到分组A、分组B以及分组C后,对3个分组分别创建对应的基础位图。
可选地,对于分组A创建一个与分组A对应的基础位图A,对于分组B创建一个与分组B对应的基础位图B,对于分组C创建一个与分组C对应的基础位图C。
在一个可选的实施例中,基础位图中比特位的数量与从协助方设备接收到的索引结果相关。示意性的,索引结果为(1,7),则基础位图中比特位的数量最少为7位;或者,索引结果为(3,8),则基础位图中比特位的数量最少为8位等。
基于基础位图中比特位的数量与索引结果相关,在创建多个分组分别对应的基础位图时,首先将基础位图中比特位的数量设置为较大的数值。可选地,采用如下至少一种方式对基础位图中比特位的数量进行确定。
(1)根据第一数据的数量,确定基础位图中比特位的数量。
示意性的,根据第一数据集中第一数据的数量,将基础位图中比特位的数量设置为第一数据集中第一数据的数量;或者,根据该分组中第一数据的数量,将基础位图中比特位的数量设置为该分组中第一数据的数量的倍数,例如:设置基础位图中比特位的数量为该分组中第一数据的数量的32倍,若该分组中第一数据的数量为3时,则基础位图中比特位的数量为96等。
(2)根据接收到的索引结果,对基础位图中比特位的数量进行实时更新。
示意性的,在创建多个分组分别对应的基础位图时,将基础位图创建为比特位数不固定的可扩展位图形式,在接收协助方设备发送的索引结果后,将索引结果中数值最大的结果与基础位图中当前比特位的数量进行比较,若索引结果中数值最大的结果小于基础位图中当前比特位的数量,将基础位图中索引结果中最大数值对应的比特位进行置1操作;若索引结果中数值最大的结果大于基础位图中当前比特位的数量,对基础位图进行更新,即:将基础位图中比特位的数量进行扩展,例如,索引结果中数值最大的结果比基础位图中当前比特位的数量大3,则增加3个基础位图中比特位,从而能够在更新后的基础位图中,对索引结果中数值最大的结果进行存储等。
在一个可选的实施例中,在采用上述固定比特位的基础位图时,若基础位图中排序处于后方的比特位存在未“置1”的比特位时,对排序处于后方且为0的比特位进行删除,从而减少数据占用。
值得注意的是,以上仅为示意性的举例,本申请实施例对此不加以限定。
在一个可选的实施例中,在根据多个分组创建不同分组分别对应的基础位图时,以指定分组为例,响应于指定分组中第一数据的数量达到预设数量阈值,对指定分组中的第一数据进行小组划分,得到指定分组对应的数据小组;创建多个数据小组分别对应的基础位图。
可选地,将预设数量阈值确定为2,也即,当指定分组中第一数据的数量达到2时,对指定分组中的第一数据进行小组划分,得到数据小组。示意性的,如图4所示,以第一数据集中的分组A为例进行说明。由于分组A中包括三个第一数据,分别为第一数据A1、第一数据A2以及第一数据A3。例如:将三个第一数据分为两个小组,分别为小组1和小组2,小组1中包括第一数据A1以及第一数据A2,小组2中包括第一数据A3,对小组1创建一个基础位图,对小组2创建另一个基础位图,从而得到不同分组对应的多个基础位图。
值得注意的是,以上仅为示意性的举例,本申请实施例对此不加以限定。
步骤750,基于索引结果对基础位图进行赋值更新,得到数据位图。
其中,索引结果是协助方设备在索引关系中基于第二数据标识对第一数据标识进行查询得到的结果。
示意性的,协助方设备向发起方设备发送的索引结果为索引数值结果,发起方设备在接收到索引数值结果后,对基础位图进行赋值更新。
在一个可选的实施例中,基于索引结果对指定分组对应的基础位图进行赋值更新,得到指定分组对应的数据位图。
示意性的,进行赋值更新的基础位图是与索引结果相对应的基础位图。例如:索引结果是基于指定分组中第一数据对应的第一数据标识查询得到的结果,则在基于索引结果对基础位图进行赋值更新时,对指定分组对应的基础位图进行更新。
在一个可选的实施例中,赋值更新用于指示对基础位图进行“置1”操作,也即,将基础位图中与索引结果相对应位置的比特位进行“置1”操作,当与索引结果相对应位置的比特位的比特位数值为0时,基于“置1”操作,该比特位的比特位数值变为1。
示意性的,基础位图为A分组中小组1对应的基础位图,该基础位图中包括多个比特位,每个比特位的初始数值均为0。当发起方设备接收到第一个数据小组中第一数据对应的第一数据标识的索引结果后,确定索引结果为(2,4),则将该基础位图中的第2位以及第4位进行“置1”操作,得到进行赋值更新后的数据位图,该数据位图为第一个数据小组对应的数据位图。
可选地,当第一个数据小组再接收到与该小组中第一数据对应的第一数据标识的其他索引结果后,对数据位图继续更新,即:数据位图可以进行多次更新,直至对数据小组中包含的全部第一数据进行分析后,得到第一个数据小组对应的数据位图。
其中,针对索引结果中的重复索引值,对基础位图中与重复索引值对应的比特位进行单次赋值。
示意性的,在发起方设备接收到第一个数据小组中第一数据对应的第一数据标识的索引结果后,确定索引结果为(2,4,2),针对索引结果中的重复索引值2,在对基础位图进行更新的过程中,将与重复索引值2对应的比特位进行单次赋值,即,在对该基础位图中的第2位比特位以及第4位比特位进行“置1”操作时,仅将该基础位图中的第2位比特位进行单次“置1”操作即可。
或者,在发起方设备接收到第一个数据小组中第一数据对应的第一数据标识的索引结果后,确定索引结果为(2,4),则将该基础位图中的第2位以及第4位进行“置1”操作。之后,发起方设备再次接收到第一个数据小组中其他第一数据对应的其他第一数据标识的索引结果为4,基于当前数据位图中第4位比特位的数值已经为1,则无需对当前数据位图中第4位比特位进行再次的“置1”操作等。
值得注意的是,以上仅为示意性的举例,本申请实施例对此不加以限定。
在一个可选的实施例中,基于索引结果对指定分组对应的基础位图进行赋值更新,得到指定分组对应的数据位图。
响应于指定分组中第一数据的数量达到预设数量阈值,对指定分组中的第一数据进行小组划分。
或者,索引结果是基于某一个数据小组对应的第一数据标识查询得到的结果,则在基于索引结果对基础位图进行赋值更新时,还对数据小组对应的基础位图进行更新等。
在一个可选的实施例中,以多个小组中的指定分组为例进行说明。在指定分组内,对多个数据小组分别对应的数据位图进行按位或操作,得到指定分组对应的位图更新结果。
示意性的,基于小组划分,在指定分组内对应有多个数据小组,每一个数据小组对应有一个基础位图,在基于索引结果对每一个基础位图进行更新得到数据位图后,得到与多个数据小组分别对应的数据位图。
例如:指定分组内对应有3个数据小组,分别为数据小组a、数据小组b以及数据小组c,其中,数据小组a对应的第一基础位图x,数据小组b对应的第一基础位图y,数据小组c对应的第一基础位图z,发起方设备在接收到指定分组中第一数据对应的第一数据标识的索引结果后,基于数据小组a中第一数据对应的第一数据标识的索引结果,对第一基础位图x进行赋值更新,得到第一数据位图x’;基于数据小组b中第一数据对应的第一数据标识的索引结果,对第一基础位图y进行赋值更新,得到第一数据位图y’;基于数据小组c中第一数据对应的第一数据标识的索引结果,对第一基础位图c进行赋值更新,得到第一数据位图c’,即:得到与多个数据小组分别对应的数据位图。
可选地,在得到指定分组对应的多个数据位图后,采用按位或操作,对多个数据位图进行合并,从而得到指定分组对应的位图更新结果,该位图更新结果是多个数据位图合并之后得到的唯一数据位图。
其中,按位或操作用于指示对参与运算的两个数值各自对应的二进位的对应位进行“取或”操作,只要对应的两个二进位有一个为1时,结果位即为1。例如:第一个数值对应的二进制为“0001”,第二个数值对应的二进制为“1010”,则对两个数据对应的二进制进行按位或操作后,得到的按位或操作的结果为“1011”,其中,第一位1是第一个数值对应的二进制中的第一位0与第二个数值对应的二进制中的第一位1进行“取或”操作的结果位;第二位0是第一个数值对应的二进制中的第二位0与第二个数值对应的二进制中的第二位0进行“取或”操作的结果位;第三位1是第一个数值对应的二进制中的第三位0与第二个数值对应的二进制中的第三位1进行“取或”操作的结果位;第四位0是第一个数值对应的二进制中的第四位0与第二个数值对应的二进制中的第四位0进行“取或”操作的结果位。
可选地,采用上述按位或操作的计算方法,对多个数据位图进行计算,从而实现对多个数据位图的合并过程。
示意性的,在对多个数据位图进行按位或操作时,存在如下至少一种情形。
1、当多个数据位图的比特位数量相同时,直接对多个数据位图进行按位或操作,得到合并后的位图更新结果。
示意性的,当多个数据位图的比特位相同时,以多个数据位图中任意一个数据位图为目标位图,将目标位图与其余的数据位图依次进行按位或操作,从而实现对多个数据位图进行合并的过程,并将合并后得到的唯一的数据位图作为位图更新结果。
或者,将多个数据位图进行两两分组,对每两个小组的数据位图进行按位或操作得到合并后的数据位图,再对合并后的数据位图进行两两分组,对合并后的数据位图继续进行按位或操作,重复上述过程直至得到唯一的数据位图,并将该唯一的数据位图作为位图更新结果。
或者,对任意两个数据位图进行按位或操作后,将合并后的数据位图再与其他数据位图进行按位或操作,直至得到唯一的数据位图,并将该唯一的数据位图作为位图更新结果。
或者,对多个数据位图中任意两个或者多个数据位图的比特位分别进行分析,例如:首先对多个数据位图中的第一位比特位进行分析,当多个数据位图中对应的多个第一位比特位中存在一个比特位为1,则确定位图更新结果对应的数据位图的第一位比特位为1;之后,对多个数据位图中的其余比特位依照上述比较方式进行比较分析,当某个比特位位置存在一个比特位为1,则确定位图更新结果对应的数据位图中该比特位为1,由此确定一个数据位图,将该数据位图作为位图更新结果。
2、当多个数据位图的比特位数量不同时,首先对数据位图的比特位数量进行处理,之后对处理后的数据位图进行按位或操作,得到合并后的位图更新结果。
示意性的,当多个数据位图的比特位不同时,首先对数据位图的比特位数量进行处理,例如:确定多个数据位图中比特位最多的数据位图,以该数据位图对应的比特位的数量为基础,将其他数据位图的比特位扩展至与该数据位图的比特位的数量,从而使得多个数据位图的比特位的数量一致,以便对数据位图进行按位或操作。
其中,在将其他数据位图的比特位扩展至与该数据位图的比特位的数量相同的过程中,将其他数据位图的比特位的数值确定为0,即,将其他数据位图的比特位的数值确定为初始位,以避免在将数据位图的比特位的数值确定为1时,对最终的位图更新结果产生偏差。
可选地,在对多个数据位图进行处理后,得到处理后的多个数据位图,此时,处理后的多个数据位图具有相同数量的比特位。之后,采用上述对相同数量的比特位进行合并处理的方法,对处理后的多个数据位图进行按位或操作,得到合并后的位图更新结果。
步骤760,对数据位图进行聚合分析,得到第二数据集的数据去重统计结果。
示意性的,在得到数据位图后,对数据位图进行聚合分析。其中,聚合分析是数据集对应的重要功能特性,通常通过对数据集中的数据进行聚合计算,实现对数据集的分析过程,如:找出数据集中的最大值、最小值等。
例如:当对数据位图进行数据量分析时,基于数据位图中比特位的确定情况与第二数据相关,且在对比特位进行更新赋值时,存在单次赋值过程,故根据数据位图对应的赋值情况,可以确定第二数据集中去重后的数据量,将第二数据集中去重后的数据量作为数据去重统计结果。
或者,当对数据位图进行求和分析时,将数据位图发送至协助方设备,由协助方设备辅助确定第二数据值的数据和,将求和结果作为数据去重统计结果。
或者,当对数据位图进行均值分析时,将第二数据集中去重后的数据量作为分子,将第二数据集中的数据和作为分母,从而将第二数据集中的数据和与第二数据集中去重后的数据量之商,作为数据去重统计结果等。
值得注意的是,以上仅为示意性的举例,本申请实施例对此不加以限定。
综上所述,发起方设备将第一数据的第一数据标识发送至协助方设备,协助方设备在索引关系中对第一数据标识进行查询得到索引结果,发起方设备对接收到的索引结果进行聚合分析,得到第二数据集的数据去重统计结果。通过上述方法,发起方设备无需获取协助方设备的对象数据,即可根据协助方设备发送的索引结果,确定第二数据集中第二数据的部分数据信息,实现了发起方设备和协助方设备之间安全、公平的信息共享过程,在避免数据泄露的前提下,实现了数据去重统计过程。
在本申请实施例中,发起方设备通过对第一数据集建立基础位图,并对基础位图进行更新的方法,得到第二数据集的数据去重统计结果。发起方设备基于第一数据集对应的指定字段信息,采用分组方式,得到第一数据集对应的多个分组,以指定分组为例,对指定分组进行小组划分,为同一分组中的不同小组创建对应的基础位图,基于接收到的索引结果,对基础位图进行赋值更新,并最终得到更新后的数据位图,根据数据位图中的比特位,对数据位图进行聚合分析,得到第二数据集的数据去重统计结果。通过上述方法,使用了位图的特殊数据结构,保证了重复的数据只会被统计一次,不仅有效减少了在大数据场景下的通信和存储维护成本,也利用了位图查询和更新的极快速度,保证了程序较高的运行速率。通过多次交互的并行流程,高效完成了数据在分组场景下的隐私去重过程,在大数据场景中有着极高的应用价值。
在一个可选的实施例中,发起方设备采用预设聚合函数,对索引结果进行聚合分析时,从而得到第二数据集的数据去重统计结果。示意性的,如图9所示,上述图3所示出的实施例还可以实现为如下步骤910至步骤940。
步骤910,获取第一数据集。
其中,第一数据集中的第一数据对应有第一数据标识,第一数据标识用于唯一指示第一数据。
步骤920,将第一数据的第一数据标识发送至协助方设备。
其中,协助方设备存储有第二数据集,第二数据集中包括至少一个第二数据的第二数据标识与第一数据标识匹配,第二数据对应有索引关系,索引关系是对第二数据排列得到的顺序关系。
步骤930,接收协助方设备发送的索引结果。
其中,索引结果是协助方设备在索引关系中基于第二数据标识对第一数据标识进行查询得到的结果。索引结果用于表示第一数据标识在索引关系中的排列次序。
步骤940,通过预设聚合函数,对索引结果进行聚合分析,得到第二数据集的数据去重统计结果。
可选地,在对索引结果进行聚合分析时,采用预设聚合函数,对索引结果进行聚合分析。其中,预设聚合函数是基于对数据集进行分析的目的而确定的聚合函数。
示意性的,根据对索引结果进行分析的需求差异,采用不同的聚合函数,对索引结果进行聚合分析,即:确定不同形式的预设聚合函数。预设聚合函数包括数量统计函数、求和函数、求均值函数、求最大值函数以及求最小值函数中的至少一种。
示意性的,若需要确定索引结果中的去重数据量,采用数量统计函数作为预设聚合函数,对索引结果中不重复的数据量进行确定,将不重复的数据量作为第二数据集的数据去重统计结果;或者,若需要确定索引结果中去重数据量的数据和,采用求和函数作为预设聚合函数,对索引结果中不重复数据的数据和进行确定,将不重复数据的数据和作为第二数据集的数据去重统计结果等。
在一个可选的实施例中,响应于预设聚合函数为数量统计函数,根据索引结果中比特位为指定数值的比特位数量,确定数量结果;将数量结果作为数据去重统计结果。
可选地,在发起方设备接收到索引结果后,根据索引结果对发起方设备中第一数据集对应的基础位图进行更新,从而得到第一数据集对应的数据位图,当预设聚合函数为数量统计函数时,对数据位图中比特位为1的比特位数量进行统计。
例如:在根据索引结果对发起方设备中第一数据集对应的基础位图进行更新后,得到第一数据集对应的数据位图为1011010,当预设聚合函数为数量统计函数时,对数据位图中比特位为1的比特位数量进行统计,也即,确定数据位图1011010中比特位为1的比特位数量,为4,则将4作为数量结果,得到第二数据集的数据去重统计结果。
在一个可选的实施例中,响应于预设聚合函数为求和函数、求均值函数、求最大值函数以及求最小值函数中的至少一种,将索引结果发送至协助方设备。
可选地,求和函数用于指示对第二数据集中指定的第二数据进行求和运算;求均值函数用于指示对第二数据集中指定的第二数据进行均值运算;求最大值函数用于指示对第二数据集中指定的第二数据进行最大值比较;求最小值函数用于指示对第二数据集中指定的第二数据进行最小值比较。
其中,指定的第二数据与发起方设备在对协助方设备发送的索引结果进行聚合分析时产生的结果相关,例如:发起方设备在对协助方设备发送的索引结果进行聚合分析时,对发起方设备存储的第一数据集对应的基础位图进行更新后得到数据位图,将数据位图中比特位的数值分布情况作为聚合分析时产生的结果,指定的第二数据与数据位图中比特位的数值分布情况相关等。
可选地,当预设聚合函数为求和函数、求均值函数、求最大值函数或者求最小值函数时,基于对协助方设备对应的第二数据集的保护,发起方设备无法对协助方设备存储的第二数据集进行获取,无法直接得知协助方设备存储的第二数据,若需要对第二数据进行进一步的分析,发起方设备需要基于协助方设备的辅助,在不获取具体的第二数据的前提下,获取第二数据的部分信息,如:第二数据的数据和信息等。
在一个可选的实施例中,发起方设备在获取得到索引结果后,根据索引结果中比特位为指定取值的比特位位置,将第一数据集对应的比特位位置信息发送至协助方设备。
示意性的,发起方设备在获取得到索引结果后,对发起方设备存储的第一数据集对应的基础位图进行更新,得到第一数据集对应的数据位图,并根据数据位图中比特位为1的比特位位置,将第一数据集对应的比特位的位置信息发送至协助方设备。
例如:发起方设备在获取得到索引结果后,对发起方设备存储的第一数据集对应的基础位图进行更新,得到第一数据集对应的数据位图为1011010。之后,发起方设备根据数据位图中比特位为1的比特位位置,确定比特位为1的比特位包括:第1个比特位、第3个比特位、第4个比特位以及第6个比特位,并将比特位为1的比特位位置信息(1,3,4,6)发送至协助方设备。
或者,发起方设备在获取得到索引结果后,对发起方设备存储的第一数据集对应的基础位图进行更新,得到第一数据集对应的数据位图为1011010。之后,发起方设备将数据位图发送至协助方设备,其中包括比特位为1的比特位位置信息。
在一个可选的实施例中,确定通过索引结果分析得到的去重中间结果。
其中,去重中间结果用于指示对索引结果进行汇总分析后的结果。响应于预设聚合函数包括求和函数、求均值函数、求最大值函数以及求最小值函数中的至少一种,将去重中间结果索引结果发送至所述协助方设备;接收协助方设备对去重中间结果索引结果的分析结果,分析结果包括与求和函数对应的求和结果,与求均值函数对应的均值结果,与求最大值函数对应的最大值结果以及与求最小值函数对应的最小值结果中的至少一种;基于数量结果和分析结果中的至少一种,得到第二数据集的数据去重统计结果。
可选地,响应于预设聚合函数为求和函数或者求均值函数,在协助方设备接收到发送方发送的去重中间结果后,协助方设备基于去重中间结果,确定与去重中间结果对应的第二数据,并基于第二数据确定第二数据对应的数据和,作为索引结果对应的分析结果。
示意性的,发送方接收到协助方设备发送的去重中间结果后,基于去重中间结果对多个分组中多个小组分别对应的基础位图进行更新,得到多个分组中多个小组分别对应的数据位图,之后在每个分组中,将该分组中多个小组分别对应的数据位图进行合并,得到该分组对应的数据位图,该数据位图能够体现协助方设备发送的索引结果。
可选地,将数据位图中比特位为1的比特位位置信息发送至协助方设备,从而使得协助方设备根据比特位为1的比特位位置信息,对与比特位位置信息对应的第二数据的数据值进行确定,将第二数据的数据值进行求和运算,确定第二数据对应的数据和。例如:数据位图中比特位为1的比特位位置信息为(1,3,4,6),发送方将该比特位位置信息发送至协助方设备,从而使得协助方设备根据(1,3,4,6),对与第1位、第3位、第4位以及第6位的第二数据的数据值进行确定。其中,比特位位置信息对应第二数据标识对应的数据索引,在确定第1位、第3位、第4位以及第6位的第二数据的数据值时,即:对第一个数据索引对应的第二数据的数据值、第三个数据索引对应的第二数据的数据值、第四个数据索引对应的第二数据的数据值以及第六个数据索引对应的第二数据的数据值进行确定。
示意性的,在确定第二数据的数据值后,将第二数据的数据值进行求和运算,确定第二数据对应的数据和,将第二数据的数据和作为预设聚合函数为求和函数时的分析结果。
可选地,响应于预设聚合函数为求最大值函数或者求最小值函数时,在协助方设备接收到发送方发送的去重中间结果后,协助方设备基于去重中间结果,确定与索引结果对应的第二数据,并确定第二数据对应的最大值或者最小值,将最大值或者最小值作为索引结果对应的分析结果。
示意性的,发送方接收到协助方设备发送的去重中间结果后,基于去重中间结果对多个分组中多个小组分别对应的基础位图进行更新,得到多个分组中多个小组分别对应的数据位图,之后在每个分组中,将该分组中多个小组分别对应的数据位图进行合并,得到该分组对应的数据位图,该数据位图能够体现协助方设备发送的索引结果。
可选地,将数据位图中比特位为1的比特位位置信息发送至协助方设备,从而使得协助方设备根据比特位为1的比特位位置信息,对与比特位位置信息对应的第二数据的数据值进行确定,将第二数据的数据值进行求和运算,确定第二数据对应的数据和。例如:数据位图中比特位为1的比特位位置信息为(1,3,4,6),发送方将该比特位位置信息发送至协助方设备,从而使得协助方设备根据(1,3,4,6),对与第1位、第3位、第4位以及第6位的第二数据的数据值进行确定。其中,比特位位置信息对应第二数据标识的数据索引,在确定第1位、第3位、第4位以及第6位的第二数据的数据值时,即:对第一个数据索引对应的第二数据的数据值、第三个数据索引对应的第二数据的数据值、第四个数据索引对应的第二数据的数据值以及第六个数据索引对应的第二数据的数据值进行确定。
可选地,在确定第二数据的数据值后,将第二数据的数据值进行数值大小比较,确定第二数据对应的排序结果。当预设聚合函数为最大值函数时,将最大的第二数据作为分析结果;当预设聚合函数为最小值函数时,将最小的第二数据作为分析结果。可选地,当预设聚合函数既包括最大值函数,也包括最小值函数时,将最大的第二数据和最小的第二数据作为分析结果。
在一个可选的实施例中,发起方设备基于接收到的索引结果,确定第二数据集对应的数量结果;发起方设备基于接收到分析结果,确定第二数据集对应的数据和结果、最大值结果以及最小值结果;发起方设备基于索引结果以及接收到的分析结果,确定第二数据集对应的均值结果。
可选地,当预设激活函数为数量统计函数时,发起方设备基于接收到的索引结果,将第二数据集对应的数量结果作为第二数据集的数据去重统计结果。
可选地,当预设激活函数为求和函数时,发起方设备基于接收到的索引结果,将第二数据对应位置的数据值进行求和运算后的数据和,作为第二数据集的数据去重统计结果。
可选地,当预设激活函数为求最大值函数时,发起方设备基于接收到的索引结果,将第二数据对应位置的数据值中最大的数据值,作为第二数据集的数据去重统计结果。
可选地,当预设激活函数为求最小值函数时,发起方设备基于接收到的索引结果,将第二数据对应位置的数据值中最小的数据值,作为第二数据集的数据去重统计结果。
可选地,当预设激活函数为均值函数时,发起方设备基于接收到的索引结果,将第二数据集对应的数量结果和第二数据对应位置的数据值的数据和结果进行均值运算,即:将第二数据对应位置的数据值的数据和处于第二数据集对应的数量结果,从而将运算之后的均值结果作为第二数据集的数据去重统计结果。
值得注意的是,以上仅为示意性的举例,本申请实施例对此不加以限定。
综上所述,发起方设备将第一数据的第一数据标识发送至协助方设备,协助方设备在索引关系中对第一数据标识进行查询得到索引结果,发起方设备对接收到的索引结果进行聚合分析,得到第二数据集的数据去重统计结果。通过上述方法,发起方设备无需获取协助方设备的对象数据,即可根据协助方设备发送的索引结果,确定第二数据集中第二数据的部分数据信息,实现了发起方设备和协助方设备之间安全、公平的信息共享过程,在避免数据泄露的前提下,实现了数据去重统计过程。
在本申请实施例中,对通过预设聚合函数对索引结果进行聚合分析的过程进行了介绍。根据对索引结果进行分析的需求差异,采用不同的聚合函数,如:数量统计函数、求和函数、求均值函数、求最大值函数以及求最小值函数等,对索引结果进行分析。同时,为了避免获取到协助方设备的对象数据,在需要对对象数据进行细致分析时,如:需要知悉第二数据的数据值之和、第二数据的最大数据值等情况时,发起方设备向协助方设备发送索引结果,协助方设备根据索引结果,辅助发起方设备继续进行聚合分析,不仅保护了第二数据的安全,还充分利用了协助方设备与发起方设备之间的交互过程,提高数据分析的安全性和效率。
在一个可选的实施例中,对将上述联邦学习中的隐私去重方法应用于协助方设备中的过程进行说明,以该方法应用于服务器为例,如图10所示,该方法包括如下步骤1010至步骤1040。
步骤1010,接收第一数据标识。
其中,第一数据标识用于唯一指示第一数据,第一数据是发起方设备中第一数据集中的数据。
步骤1020,基于协助方设备存储的第二数据集中的第二数据,确定第二数据对应的索引关系。
其中,第二数据集中包括至少一个第二数据的第二数据标识与第一数据标识匹配。
示意性的,协助方设备基于存储的第二数据集,对第二数据集中多个第二数据分别对应的索引关系进行确定。其中,索引关系是对第二数据排列得到的顺序关系。
在一个可选的实施例中,对协助方设备存储的第二数据集中的第二数据进行升序排列,确定第二数据对应的排列顺序。
可选地,在对第二数据集中的第二数据进行升序排列时,基于对第二数据进行去重的考虑,当第二数据集中的存在数据值相同的第二数据时,对数据值进行一次比较即可。
示意性的,如图5所示,为协助方设备所存储的第二数据集示意图。其中,身份标识用于指示第二数据标识;分组字段col用于指示不同的分组信息;数据值用于指示与身份标识和分组字段col对应的数据值情况。以数据值为第二数据、身份标识为与第二数据对应的第二数据标识为例进行说明。
可选地,不考虑第二数据集中不同第二数据对应的分组字段col,根据第二数据对应的数值大小,将第二数据集中的第二数据进行升序排列,确定第二数据对应的排列顺序。示意性的,对图5所示的多个第二数据进行升序排列时,根据多个第二数据对应的数据值,将2、7、2、3、0、9进行升序排列,得到第二数据对应的排列顺序为0、2、3、7、9。可选地,基于对第二数据进行去重操作的考虑,即便数据值2出现过两次,在对数据值进行升序排列时,对数据值进行一次比较即可,即:无需得到排列顺序为0、2、2、3、7、9的序列。
在一个可选的实施例中,根据排列顺序,对第二数据进行索引赋值,确定不同第二数据对应的数据索引。
可选地,在得到第二数据对应的排列顺序后,对不同的第二数据进行索引赋值,在对第二数据进行索引赋值时,相同的数据值对应相同的数据索引。
采用数据索引对第二数据进行索引赋值时,对不同的第二数据赋予不同的数据索引。可选地,在根据排序顺序对第二数据进行索引赋值时,采用自增1的索引赋值方法,进行索引赋值过程,也即,在将一个数据索引赋值于第二数据A后,对数据索引加1,并将加1后的数据索引赋值于第二数据B(第二数据B为排序顺序在第二数据A之后的第一个第二数据),并依次进行上述自增1的索引赋值过程。
示意性的,以自增1的索引赋值方法,对不同的第二数据进行索引赋值。例如:在得到第二数据对应的排列顺序0、2、3、7、9后,在对第二数据对应的排列顺序为0、2、3、7、9进行索引赋值时,首先对第二数据0进行索引赋值,确定第二数据0的数据索引为1;之后,对第二数据2进行索引赋值,第二数据2对应的数据索引为2,该数据索引是对数据索引1进行加1操作后得到的数据索引;同理,对第二数据3进行索引赋值,第二数据3对应的数据索引为3,该数据索引是对数据索引2进行加1操作后得到的数据索引;同理,对第二数据7进行索引赋值,第二数据7对应的数据索引为4,该数据索引是对数据索引4进行加1操作后得到的数据索引;同理,对第二数据9进行索引赋值,第二数据9对应的数据索引为5,该数据索引是对数据索引5进行加1操作后得到的数据索引。
在一个可选的实施例中,基于第二数据和数据索引之间的关系,确定第二数据对应的索引关系。
可选地,在对第二数据进行索引赋值后,确定不同的第二数据对应的数据索引,并根据不同的第二数据分别对应的数据索引,确定第二数据对应的索引关系。
示意性的,如上述对图5所示的第二数据进行索引赋值后,确定与第二数据0、2、3、7、9分别对应的数据索引为1、2、3、4、5。可选地,以数据索引对照表体现第二数据对应的索引关系,例如:数据索引对照表体现为:{0→1,2→2,3→3,7→4,9→5}。
步骤1030,在索引关系中基于第二数据标识对第一数据标识进行查询,得到索引结果。
可选地,协助方设备在接收到第一数据标识后,首先将第一数据标识与第二数据标识进行匹配,当第一数据标识与第二数据标识相匹配后,确定与第一数据标识相匹配的第二数据标识对应的第二数据。基于索引关系,确定第二数据对应的数据索引,并将查询到的数据索引作为索引结果。
在一个可选的实施例中,将接收到的第一数据标识与第二数据标识相匹配;根据与第一数据标识相匹配的第二数据标识,确定与第二数据标识对应的第二数据;响应于在索引关系查询到第二数据,将第二数据对应的数据索引作为索引结果;或者,将接收到的第一数据标识与第二数据标识相匹配;根据与第一数据标识相匹配的第二数据标识,确定与第二数据标识对应的第二数据;响应于在索引关系未查询到第二数据,对索引关系进行更新;基于更新后的索引关系,确定索引结果。
示意性的,以上述数据索引对照表{0→1,2→2,3→3,7→4,9→5}为例进行说明。协助方设备接收到的第一数据标识为1和第一数据标识2,且第一数据标识1和第二数据标识1相匹配,第一数据标识2和第二数据标识2相匹配,则确定第二数据标识1和第二数据标识2分别对应的第二数据,其中,第二数据标识1对应的第二数据为2,第二数据标识2对应的第二数据为7;之后,基于第二数据的数据值为2时,对应的数据索引为2,确定第二数据标识2对应的数据索引为2,基于第二数据的数据值为7时,对应的数据索引为4,确定第二数据标识2对应的数据索引为4,则将数据索引2和数据索引4作为索引结果。
可选地,响应于在索引关系未查询到第二数据,确定第二数据与其余第二数据之间的顺序关系;基于顺序关系,对第二数据进行索引赋值。
示意性的,在索引关系中未查询到的第二数据的数据值为8,确定第二数据的数据值与其余第二数据的数据值之间的数值大小关系,并对第二数据进行索引赋值,即,给第二数据添加数据索引,该数据索引与其他第二数据对应的数据索引不相同。
值得注意的是,以上仅为示意性的举例,本申请实施例对此不加以限定。
步骤1040,将索引结果发送至发起方设备。
协助方设备在确定索引结果后,将索引结果发送至发起方设备。示意性的,如上述过程所示,协助方设备在得到索引结果(数据索引2和数据索引4)后,将数据索引2和数据索引4发送至发起方设备,例如:向发起方设备发送(2,4)。
其中,发起方设备基于索引结果确定第二数据集的数据去重统计结果。
示意性的,发起方设备在接收到索引结果后,采用位图更新方法,对数据索引对应的基础位图进行更新,将基础位图中第2位和第4位进行“置1”操作,得到数据位图;或者,发起方设备在接收到索引结果后,采用位图更新方法,对更新后的基础位图进行更新,并对更新后的基础位图中比特位的第2位和第4位进行“置1”操作,得到数据位图等。
可选地,基于数据位图中比特位为1的比特位分布情况,发起方设备在不获取第二数据的前提下,实现对第二数据集的分析过程,确定第二数据集的数据去重统计结果。例如:将比特位为1的比特位数量,作为第二数据集的数据去重统计结果等。
综上所述,发起方设备将第一数据的第一数据标识发送至协助方设备,协助方设备在索引关系中对第一数据标识进行查询得到索引结果,发起方设备对接收到的索引结果进行聚合分析,得到第二数据集的数据去重统计结果。通过上述方法,发起方设备无需获取协助方设备的对象数据,即可根据协助方设备发送的索引结果,确定第二数据集中第二数据的部分数据信息,实现了发起方设备和协助方设备之间安全、公平的信息共享过程,在避免数据泄露的前提下,实现了数据去重统计过程。
在本申请实施例中,对协助方设备进行索引赋值的过程进行了说明。在协助方设备辅助发起方设备对协助方设备的第二数据集进行分析时,协助方设备基于己方存储的第二数据集中第二数据的数据值排序情况,对不同的数据集赋予不同的数据索引,在向发起方设备发送索引结果时,将数据索引作为索引结果,有效避免了对第二数据的泄露风险,数据索引不仅对应数据值的排序情况,也与和第一数据标识相匹配的第二数据标识相关,从而发起方设备在基于索引结果对第二数据集的数据去重统计结果进行确认时,分析的效率和精准度更高。
在一个可选的实施例中,对采用联邦学习中的隐私去重方法的发起方设备和协助方设备之间的交互过程进行说明,其中,发起方设备欲向协助方设备中重叠的目标对象发送邀请消息,目标对象为活跃度数据符合预设阈值的对象。示意性的,如图11所示,该交互过程包括如下步骤1110至步骤1180。
步骤1110,发起方设备获取第一活跃度数据集。
其中,第一活跃度数据集中的第一活跃度数据对应有第一对象标识,第一对象标识用于区别不同的对象,并唯一指示其对应的第一活跃度数据,第一活跃度数据通过数据值情况进行表示。
示意性的,假设在一次联合计算中,有两个数据相互不可见的参与方,分别为A方(发起方设备)和B方(协助方设备),A方和B方各自拥有一张表,A方拥有的A表用于指示A方存储的第一活跃度数据集,B方拥有的B表用于指示B方存储的第二活跃度数据集。如图4所示,为A方对应的第一活跃度数据集,其中,身份标识用于指示A方的第一对象标识,分组字段col用于指示第一活跃度数据集的分组信息,数据值用于指示第一活跃度数据集中的第一活跃度数据的数值情况。
可选地,A方要求以下计算结果:以A方分组字段(分组字段col)进行分组(如:A方对应的分组包括A游戏应用程序对应的A分组,B游戏应用程序对应的B分组以及C游戏应用程序对应的C分组),确定所有分组中所有B方表值中活跃度数据(去重后)的数量以及活跃度数据对应的数据值相加和。
示意性的,上述计算过程可以写成结构化查询语言(Structured QueryLanguage,SQL),该SQL语句为:select count(distinct b.value),sum(distinctb.value)from a join b on a.id = b.id group by a.col。
其中,count用于指示求数量过程;distinct用于指示去重过程;sum用于指示求和过程;group by用于指示分组过程。
步骤1120,发起方设备将第一活跃度数据的第一对象标识发送至协助方设备。
示意性的,如图4所示,发起方设备将第一活跃度数据的第一对象标识发送至协助方设备,例如:将第一对象标识1、第一对象标识2、第一对象标识3、第一对象标识4、第一对象标识5以及第一对象标识6(也即,身份标识1至身份标识6)发送至协助方设备。
在一个可选的实施例中,在将第一活跃度数据的第一对象标识发送至协助方设备时,根据第一活跃度数据的分组字段,向协助方设备发送第一活跃度数据的第一对象标识。例如:在得到A方对应的3个分组(A分组、B分组以及C分组)后,将A分组中第一活跃度数据对应的第一对象标识作为一个分组,发送至协助方设备,也即,将A分组中第一对象标识1、第一对象标识2以及第一对象标识3发送至协助方设备;之后,将B分组中第一活跃度数据对应的第一对象标识作为一个分组,发送至协助方设备等。
在一个可选的实施例中,在根据第一活跃度数据的分组字段向协助方设备发送第一活跃度数据的第一对象标识时,对不同分组进行小组划分;将不同小组分批次发送至协助方设备。
示意性的,在得到A方对应的3个分组(A分组、B分组以及C分组)后,以A分组为例进行说明。对A分组进行小组划分,得到A分组对应的多个小组。例如:将A分组中的第一对象标识1和第一对象标识2划分为小组1,将第一对象标识3划分为小组2,在将A分组中的第一对象标识发送至协助方设备时,将小组1和小组2中的第一对象标识按照不同批次分别发送至协助方设备。也即,对“A分组”进行小组划分后,第一次发送行号1,2,第二次发送行号3等。
步骤1130,协助方设备接收第一对象标识。
其中,协助方设备存储有第二活跃度数据集。
示意性的,如图5所示,为B方对应的第二活跃度数据集,其中,身份标识用于指示B方的第二对象标识,分组字段col用于指示第二活跃度数据集的分组信息,数据值用于指示第二活跃度数据集中的第二活跃度数据。
可选地,第二活跃度数据集中包括至少一个第二活跃度数据的第二对象标识与第一对象标识匹配。示意性的,结合图4和图5进行说明,身份标识采用数值的方式进行表示,相同的数值对应的相同的标识,基于第一对象标识1和第二对象标识1均采用数值1表示,则第一对象标识1和第二对象标识1相匹配;同理,第一对象标识2和第二对象标识2均采用数值2表示,则第一对象标识2和第二对象标识2相匹配等。
示意性的,图4和图5所示出的第一对象标识和第二对象标识一一对应。A方在对B方的第二活跃度数据集进行聚合分析前首先对A方对应的数据和B方对应的数据进行隐私求交过程。
其中,隐私求交用于指示参与双方在不泄露额外信息的情况下,得到双方持有数据的交集。示意性的,采用基于公钥加密的方案,对参与双方持有的数据进行求交过程;或者,采用基于不经意传输(Oblivious Transfer,OT)的方案,对参与双方持有的数据进行求交过程等。
示意性的,额外信息是参与方持有的、不可分享于其他参与方的数据信息。例如:在进行隐私求交时,不对数据本身进行求交,而对数据对应的数据标识进行隐私求交,从而确定数据的类型等相关信息。
可选地,对数据标识进行隐私求交,根据隐私求交后得到的数据标识交集,确定进行聚合分析的数据集,也即,将A方持有的数据标识和B方持有的数据标识进行求交,得到A方对应的第一活跃度数据集以及B方对应的第二活跃度数据集。
其中,A方对应的第一活跃度数据集和B方对应的第二活跃度数据集中的数据标识相同,故A方对应的第一活跃度数据集中第一活跃度数据对应的第一对象标识与B方对应的第二活跃度数据集中第二活跃度数据对应的第二对象标识一一对应。
值得注意的是,以上仅为示意性的举例,本申请实施例对此不加以限定。
步骤1140,协助方设备基于存储的第二活跃度数据集中的第二活跃度数据,确定第二活跃度数据对应的索引关系。
其中,索引关系是对第二活跃度数据排列得到的顺序关系。
在一个可选的实施例中,在确定第二活跃度数据对应的索引关系时,采用索引赋值的方法,在B方的共享存储中建立一个全局对照表。
其中,全局对照表的功能在于对己方的第二活跃度数据附加数据索引。
示意性的,如图5所示,在B方对应的B表中,存在多个第二活跃度数据(数据值),对相同数值的第二活跃度数据附加相同的数据索引,则首先确定多个第二活跃度数据中的不同数值,也即,确定B表中数值不同的第二活跃度数据,分别为0,2,3,7,9,其中,不同数值的第二活跃度数据按照数值大小进行排序。
可选地,在对第二活跃度数据附加数据索引时,采用数据索引自增1的方式,在将数据索引赋值于一个第二活跃度数据后,对数据索引加一后,赋值于下一个第二活跃度数据。
示意性的,采用数据索引自增1的方式,根据不同数值的第二活跃度数据以及不同数值的第二活跃度数据的顺序关系,建立一个全局对照表,全局对照表用于指示第二活跃度数据对应的索引关系。
例如:建立一个全局对照表Map(Index,Value):1→0,2→2,3→3,4 →7,5→9,也即,对数值为0的第二活跃度数据附加的数据索引为1、对数值为2的第二活跃度数据附加的数据索引为2,对数值为3的第二活跃度数据附加的数据索引为3、对数值为7的第二活跃度数据附加的数据索引为4,对数值为9的第二活跃度数据附加的数据索引为5。其中,Index用于指示数据索引,数据值用于指示第二活跃度数据。
在一个可选的实施例中,协助方设备对应的第二活跃度数据的索引关系存在更新过程。
示意性的,B方在接收到A方的第一对象标识(行号)后,依据对照表统计A方要求的数据(与第一对象标识对应的第二活跃度数据的情况),若接收到的数据未出现过,B方则向己方的共享存储通过spark通信机制发送更新申请,共享存储接收到消息后在对照表中为此数据分配一个索引并返回。
步骤1150,协助方设备在索引关系中基于第二对象标识对第一对象标识进行查询,得到索引结果。
示意性的,协助方设备在接收到发送方发送的第一对象标识后,将第一对象标识与第二对象标识进行匹配,当第一对象标识与第二对象标识相匹配,根据第二对象标识对应的第二活跃度数据以及第二活跃度数据对应的索引关系,确定第二活跃度数据对应的索引结果。
可选地,当第一活跃度数据集和第二活跃度数据集为发起方设备和协助方设备基于隐私求交后确定的数据集时(即,第一活跃度数据集中第一活跃度数据对应的第一对象标识,和第二活跃度数据集中第二活跃度数据对应的第二对象标识一一匹配),协助方设备在接收到发送方发送的第一对象标识后,直接根据第二对象标识对应的第二活跃度数据以及第二活跃度数据对应的索引关系,确定第二活跃度数据对应的索引结果。
示意性的,A方对应的数据集和B方对应的数据集为经过隐私求交后得到数据集,如图5所示,B方在得到接收到的第一对象标识对应的所有索引结果后,将根据第一对象标识查询得到的索引结果发还至A方。例如:B方在收到对方发送的第一对象标识(1,2)后,确定第一对象标识(1,2)分别对应己方的第二活跃度数据值为2,7,根据上述的全局对照表,确定第二活跃度数据值2和7分别对应的数据索引为2和4。
可选地,协助方设备根据第一对象标识和第二对象标识的重叠部分,确定协助方设备和发起方设备共同存储的对象,并确定共同存储对象所各自对应的第二活跃度数据的数据值。第二活跃度数据依据数据值大小进行排序,不同的数据值对应不同的数据索引,基于第二活跃度数据分别对应的数据索引,选择部分数据索引对应第二活跃度数据的第二对象标识作为目标对象对应的标识,将该部分数据索引作为索引结果。其中,部分数据索引对应的第二活跃度数据的数据值大小符合预设阈值。
步骤1160,协助方设备将索引结果发送至发起方设备。
在协助方设备得到索引结果后,将索引结果发送至发起方设备。例如;在B方根据上述的全局对照表,确定第二活跃度数据值2和7分别对应的数据索引为2和4后,将数据索引(2,4)作为索引结果,由B方将索引结果发送至A方。
示意性的,当发起方设备需要向协助方设备中重叠的目标对象发送邀请消息时,协助方设备将上述内容中部分数据索引作为索引结果发送至发起方设备。
步骤1170,发起方设备接收协助方设备发送的索引结果。
示意性的,发起方设备对协助方设备发送的索引结果进行接收,以便根据索引结果,对协助方设备存储的第二活跃度数据集进行分析。
例如:如上述所示,A方接收B方发送的索引结果,即:数据索引(2,4),并根据数据索引对B方存储的第二活跃度数据集进行分析。
步骤1180,发起方设备对索引结果进行聚合分析,得到第二活跃度数据集的数据去重统计结果。
其中,数据去重统计结果是针对索引结果进行去重后统计得到的结果。
示意性的,A方根据己方分组字段进行分组,将己方分成三个分组,分别为A分组、B分组以及C分组,并对每个分组初始化一个空的位图数据结构,也即,使得每个分组对应的基础位图中的比特位为0。
可选地,在确定不同分组分别对应的基础位图后,根据接收到的索引结果,对不同分组分别对应的基础位图进行更新。示意性的,根据索引结果,对基础位图对应的比特位进行“置1”操作,实现为基础位图的更新过程。
例如:A方接收到索引结果后,对己方的基础位图进行更新,找到对应索引的每一位,查看是否已标记为存在,若不存在,则标记。其中,标记的过程用于判断比特位是否为1,若比特位为1,则代表标记为存在,若比特位不为1,则代表标记为不存在。
示意性的,如图12所示,为A方中A分组对应的基础位图更新过程,其中,将A分组划分为小组1和小组2,小组1对应一个基础位图1210,小组2对应一个基础位图1220,基础位图1210和基础位图1220为初始化的位图,其中每一位比特位为0,在对小组1和小组2各自对应的基础位图进行更新时,小组1对应的基础位图基于小组1中第一活跃度数据对应的第一对象标识的索引结果进行更新;小组2对应的基础位图基于小组2中第一活跃度数据对应的第一对象标识的索引结果进行更新。例如:小组1中第一活跃度数据对应的第一对象标识的索引结果为(2,4),则基于索引结果,在对A分组中小组1对应的基础位图进行更新时,将基础位图1210中第二位比特位以及第四位比特位进行“置1”操作,得到更新后的数据位图1211;小组2中第一活跃度数据对应的第一对象标识的索引结果为(4),则基于索引结果,在对A分组中小组2对应的基础位图进行更新时,将基础位图1220中第四位比特位进行“置1”操作,得到更新后的数据位图1221,当小组2再次接收到索引结果(2)后,更新后的数据位图1221基于索引结果1其第一位比特位进行“置1”操作,得到更新后的数据位图1222,也即,基础位图在进行一次更新后,可以再次进行多次更新。
在A方接收到所有索引结果,完成对A分组中小组1和小组2各自对应的基础位图的更新后,将更新后的数据位图1211和更新后的数据位图1222进行合并操作,得到A分组对应的数据位图1230,实现对基础位图的更新过程。
可选地,采用上述位图更新方法对基础位图进行更新的更新方法,对不同小组分别对应的位图进行多次更新。例如:对基础位图更新后,得到更新后的基础位图,基于再次接收到的索引结果,对更新后的基础位图继续进行更新。也即:并行重复多次更新过程,直至该分组不再接收到索引结果后,停止上述位图更新过程,并得到不同分组分别对应的数据位图。
可选地,发起方设备在根据分组确定不同的基础位图时,根据向协助方设备发送第二对象标识时的小组划分,对不同的小组初始化一个基础位图,并根据同一个分组中不同小组对应的基础位图的更新结果,确定不同小组对应的数据位图。之后,将同一个分组中不同小组对应的数据位图进行按位或操作,得到不同分组分别对应的数据位图。
值得注意的是,以上仅为示意性的举例,本申请实施例对此不加以限定。
在一个可选的实施例中,在对索引结果进行聚合分析时,根据数据位图中比特位的分布情况,得到第二活跃度数据集的数据去重统计结果。
可选地,采用预设聚合函数对索引结果进行聚合分析。其中,预设聚合函数为预先设定的聚合函数,包括数量统计函数、求和函数、均值函数等。
在通过预设聚合函数对索引结果进行聚合分析时,既包括采用一种聚合函数对索引结果进行聚合分析,也包括采用多种聚合函数对索引结果同时进行聚合分析。
示意性的,当预设聚合函数为数量统计函数时,根据索引结果,确定第二活跃度数据集中数值不重复的第二活跃度数据的数量,将数值不重复的第二活跃度数据的数量作为第二活跃度数据集的数据去重统计结果;或者,当预设聚合函数为求和函数时,根据索引结果,确定第二活跃度数据集中第二活跃度数据值的总和等。
示意性的,在根据数据位图对索引结果进行聚合分析时,根据数据位图中比特位为1的比特位分布情况,确定第二活跃度数据集的数据去重统计结果。例如:如图11所示,当预设聚合函数为数量统计函数时,根据数据位图中比特位为1的比特位分布情况,确定第二活跃度数据集中比特位为1的比特位数量为2,则将2作为第二活跃度数据集的数据去重统计结果。
在一个可选的实施例中,当预设聚合函数为求和函数、均值函数等聚合函数时,发起方设备将合并后的数据位图发送至协助方设备,由协助方设备根据合并后的数据位图,辅助发起方设备对第二活跃度数据集中第二活跃度数据进行分析。
示意性的,如图11所示,当预设聚合函数为求和函数时,发起方设备将合并后的数据位图中比特位为1的比特位信息发送至协助方设备,协助方设备根据比特位为1的比特位信息,确定比特位为1的位置对应的第二活跃度数据的数据值之和,并将数据值之和发送至发起方设备,则将第二活跃度数据的数据值之和作为第二活跃度数据集的数据去重统计结果;或者,当预设聚合函数为均值函数时,发起方设备首先根据数据位图中比特位为1的比特位分布情况,确定第二活跃度数据集中比特位为1的比特位数量,之后将合并后的数据位图中比特位为1的比特位信息发送至协助方设备,协助方设备根据比特位为1的比特位信息,确定比特位为1的位置对应的第二活跃度数据的数据值之和,并将数据值之和发送至发起方设备,发起方设备根据数据值之和以及比特位为1的比特位信息,确定数据值均值,则将数据值均值作为第二活跃度数据集的数据去重统计结果等。
可选地,当发起方设备欲向协助方设备中重叠的目标对象发送邀请消息时,发起方设备确定协助方设备中去重后的第二活跃度数据,并向第二活跃度数据对应第二对象标识所代表的对象发送邀请消息,例如:邀请消息为“由于您的活跃度较高,故特邀参与XXX举办的内测活动”等。其中,活跃度用于指示第二活跃度数据对应的数据值,也即,当某个或者多个第二活跃度数据对应的数据值符合预设阈值时,该某个或者多个第二活跃度数据对应的第二对象标识所代表的对象即为目标对象。
值得注意的是,以上仅为示意性的举例,本申请实施例对此不加以限定。
综上所述,通过上述方法,发起方设备无需获取协助方设备的第二对象数据,即可根据协助方设备发送的索引结果,确定第二活跃度数据集中不重复的第二对象标识,从而根据不同的第二对象标识,向第二对象标识对应的对象发送推广消息,避免向重复的对象推送消息,提高消息发送效率。
在一个可选的实施例中,对采用联邦学习中的隐私去重方法的发起方设备和协助方设备之间的交互过程进行说明,其中,发起方设备欲确定协助方设备中重叠的目标对象对协助方设备的喜好程度。示意性的,如图13所示,该交互过程包括如下步骤1310至步骤1380。
示意性的,不同的对象可能会使用不同的应用程序,不同的应用程序各自有其对应的数据集,以任意一个应用程序对应的数据持有方为例,该数据持有方只能对自身存储的数据直接进行分析,无法对其他数据持有方的数据进行直接分析。然而,有时,数据持有方之间为了为对象提供更好地服务,有时需要确定其存储对象对其他应用程序的喜好程度,从而对自身的应用程序进行改善。然而,相关技术中,在跨数据持有方进行数据分析时,很容易出现数据泄露的问题。
步骤1310,发起方设备获取第一喜好程度数据集。
其中,第一喜好程度数据集中的第一喜好程度数据对应有第一对象标识,第一对象标识用于区别发起方设备存储的不同对象。第一喜好程度用于指示不同对象对发起方设备所运行的应用程序的喜好程度。示意性的,喜好程度以权重值标识。
步骤1320,发起方设备将第一喜好程度数据的第一对象标识发送至协助方设备。
其中,第一对象标识用于指示发起方设备所对应存储的对象情况,不同的第一对象标识各自对应有第一喜好程度数据。
步骤1330,协助方设备接收第一对象标识。
其中,协助方设备中存储有第二喜好程度数据集,第二喜好程度数据集中包括多个第二喜好程度数据,第二喜好程度数据对应有第二对象标识,第二对象标识用于区别协助方设备存储的不同对象。
可选地,第二对象标识与第一对象标识之间具有重叠关系,其中,重叠部分对应的对象标识指示目标对象。
步骤1340,协助方设备基于存储的第二喜好程度数据集中的第二喜好程度数据,确定第二喜好程度数据对应的索引关系。
其中,索引关系是对第二喜好程度数据排列得到的顺序关系。
示意性的,在得到第二喜好程度数据对应的排序序列后,根据排序序列中第二喜好程度数据的次序,对不同的第二喜好程度数据分别赋予不同的数据索引,将数据索引与第二喜好程度数据之间的对应关系作为第二喜好程度数据对应的索引关系。
步骤1350,协助方设备在索引关系中基于第二对象标识对第一对象标识进行查询,得到索引结果。
示意性的,协助方设备确定接收到的第一对象标识与第二对象标识之间的重叠部分,从而确定待分析的目标对象,根据目标对象对应第二对象标识的第二喜好程度数据,确定第二喜好程度数据对应的数据索引,将该数据索引作为索引结果。
步骤1360,协助方设备将索引结果发送至发起方设备。
示意性的,协助方在得到索引结果后,在索引关系中基于第二数据标识对第一数据标识进行查询得到的索引结果发送至发起方设备。
步骤1370,发起方设备接收协助方设备发送的索引结果。
步骤1380,发起方设备对索引结果进行聚合分析,得到第二喜好程度数据集的数据去重统计结果。
示意性的,发起方设备对索引结果进行聚合分析,得到第二喜好程度数据集的数据去重统计结果。
可选地,发起方设备采用预设聚合函数,对索引结果进行聚合分析。例如:发起方设备确定第二数据集中部分第二数据标识(与第一数据标识向匹配的数据标识)对应的数据值总和,从而确定协助方设备中第一数据标识所代表的对象对于协助方设备应用程序的喜好程度。
综上所述,通过上述方法,发起方设备无需获取协助方设备的第二对象数据,即可根据协助方设备发送的索引结果,确定第二喜好程度数据集中不重复的第二对象标识以及与第二对象标识对应的数据去重统计结果,实现聚合分析过程。有利于发起方设备基于该喜好程度,对自身的应用程序进行改善,在不获取协助方设备存储的第二数据的前提下,对自身的应用程序进行更完善地发展。
在一个可选的实施例中,将上述联邦学习中的隐私去重方法应用于用户重叠但数据不交互的不同数据持有方的交互分析过程中,以数据持有方包括发起方设备和协助方设备为例进行说明。
示意性的,在联合数据分析场景中,常常涉及到联邦分组聚合计算中需要对数据进行去重复的需求。例如:在商业场景的SQL语句中,需要对原始的数据经过分组后,再将其进行去重和聚合计算,在隐私保护的前提下,无法在任何单独一方计算出最终结果。假设一次联邦任务中有两个参与方A方和B方,其中,A方为发起方设备(host),B方为协助方设备(guest),A方需要分组聚合去重结果。
其中,A方拥有A表和分组字段,而聚合列在B方的B表中,则A方与B方的交互计算算法如下所示。
1、A方对己方数据进行分组,并对每一个分组维护一个基础位图,基础位图的初始状态为所有位置0,出现的数据其对应位上置1。之后,A方将每一个分组中的行号分成多个集合并行发送到B方。
2、示意性的,如图14所示,对A方和B方之间的交互过程进行说明。A方根据分组关系,在己方建立基础位图,以任意一个基础位图为例为例,在根据索引结果对基础位图更新的过程中,得到更新后的基础位图1410,该更新后的基础位图1410是基础位图更新至数据位图的中间状态。
B方在共享存储处新建双向对照表(HashTable),该双向对照表表示为(Index,Value)。其中,Index为自增索引,Value为列中值的去重数据。Index和Value为一一对应关系,可以通过Index查询到Value,也可以通过Value查询到Index。
示意性的,B方对应的双向对照表的初始化和更新方法如下:
(1)双向对照表的初始化:声明空表Map和初始索引Index=0;
(2)双向对照表的更新:查询新接收数据Value是否在Map中存在,若已存在,跳过此数据并返回索引Index;若不存在,添加映射Index→Value,Index自增1。其中,如图14所示,双向对照表1420的右侧表示第二数据对应的数据值,左侧表示与不同第二数据分别对应的数据索引。
A方根据第一数据集中第一数据的第一数据标识,即:确定当前的id位置(currentid set),并将id发送至B方。示意性的,在一次id发送过程中,A方向B方发送的id为(11,12,13);B方基于接收到的id,将id与己方存储的第二数据集中第二数据对应的第二数据标识进行匹配,并确定对应的第二数据,其中,与id=11对应的第二数据的数据值为6;与id=12对应的第二数据的数据值为8;与id=13对应的第二数据的数据值为9。
3、B方根据行号查询B表中对应的值,再根据此值查询对照映射中的索引。
示意性的,如图13所示,基于三个第二数据的数据值,从双向对照表中确定与三个第二数据分别对应的数据索引。其中,与6对应的数据索引为4;与8对应的数据索引为6;与9对应的数据索引为7。
可选地,在B方得到数据索引后,将数据索引打包发送给A方。例如:B方向A方发送数据索引(4,6,7),A方基于接收到的数据索引(4,6,7)进行位图更新过程,对数据索引(4,6,7)对应的比特位进行“置1”操作1430,其中,基于上次更新后的基础位图的第4位为1,则在对第4位的比特位进行“置1”操作1430时,无需对第4位的比特位进行重复的“置1”操作,即,保持第4位的比特位为1的状态,并对比特位为0的第6位的比特位以及第7位的比特位进行“置1”操作1430,从而得到再次更新后的基础位图,若此次更新为最后一次更新(数据索引接收完毕),A方将当前的更新后的基础位图通过多次更新与合并后得到数据位图1440,如,对同一分组中的不同小组对应的位图进行合并。
示意性的,对位图进行更新并得到数据位图的过程实现为如下过程。
(1)A方将一个分组中的行号分成多个小组,并行发送给B方。
(2)B方接收到一个行号列表后,调用行号查询己方表中的值,再将每个值作为Value向共享存储申请索引Index。示意性的,如图15所示,对不同的小组(partition)在并行过程中的交互流程进行分析,交互方法包括如下过程。
a.并行过程中每个分片数据建立一个能够提供交互的存储位置1510(LocalActor),将数据存储在此模型体中。
b.需要申请索引的数据首先发送到去重模型1520(Reduce Actor)中,将数据列中重复的数据去除,减少通信消耗。
c.将去重后的分片数据发送到共享存储1530(Aggregate Actor)的邮箱,等待索引列表返回。
d.Aggregate Actor持续接收数据并查看己方对照表中是否存在此数据,若已经存在,直接返回索引;若不存在,更新对照表并返回索引。
e.Local Actor接收到索引后返回索引列表给分片。
可选地,B方向A方发送索引列表。
4、A方接收到数据后,遍历index,将原始位图对应位置1,对每一个小组均进行此更新;当一个分组中的多个小组的数据均得到更新后,对所有小组的位图进行合并,合并方法为:每两个小组的位图进行按位或操作得到一个位图,如此重复直到最后只剩下唯一位图。
5、并行重复上述过程1至4,直到所有分组内容都完成更新与合并,之后计算聚合函数的结果。示意性的,聚合分析的流程如下所示。
(1)A方计算每一分组对应位图中的所有置1的位置数量,记为基数值(cardinality)。
(2)若所求聚合函数为数量统计函数(count),返回cardinality,结束流程,如图13所示,count=5;若所求聚合函数为求和函数(sum),均值函数(avg),最大值函数(max)或最小值函数(min),则进行步骤(3)。
(3)A方将函数名和位图打包发送给B方,B方接收到位图后,对位图进行遍历,对置1的索引查询己方HashTable,得到对应的值,根据聚合函数名进行统计和计算。其中sum和avg为相加,max为取最大值,min为取最小值,如图14所示,sum对应的函数值为27。
(4)B方将计算结果按顺序发送给A方。A方接收到数据后,若聚合函数为sum,max或min,则返回B方发送的结果,若聚合函数为avg,则返回B方结果除以cardinality。
(5)重复步骤(1)至步骤(4),得到所有分组去重聚合结果并汇总成表,返回给主程序。
综上所述,发起方设备将第一数据的第一数据标识发送至协助方设备,协助方设备在索引关系中对第一数据标识进行查询得到索引结果,发起方设备对接收到的索引结果进行聚合分析,得到第二数据集的数据去重统计结果。通过上述方法,发起方设备无需获取协助方设备的对象数据,即可根据协助方设备发送的索引结果,确定第二数据集中第二数据的部分数据信息,实现了发起方设备和协助方设备之间安全、公平的信息共享过程,在避免数据泄露的前提下,实现了数据去重统计过程。
图16是本申请一个示例性实施例提供的联邦学习中的隐私去重的结构框图,如图16所示,该装置包括如下部分:
获取模块1610,用于获取第一数据集,所述第一数据集中的第一数据对应有第一数据标识,所述第一数据标识用于唯一指示所述第一数据;
发送模块1620,用于将所述第一数据的第一数据标识发送至协助方设备,所述协助方设备存储有第二数据集,所述第二数据集中包括至少一个第二数据的第二数据标识与所述第一数据标识匹配,所述第二数据对应有索引关系,所述索引关系是对所述第二数据排列得到的顺序关系;
接收模块1630,用于接收所述协助方设备发送的索引结果,所述索引结果是所述协助方设备在所述索引关系中基于所述第二数据标识对所述第一数据标识进行查询得到的结果,所述索引结果用于表示所述第一数据标识在所述索引关系中的排列次序;
分析模块1640,用于对所述索引结果进行聚合分析,得到所述第二数据集的数据去重统计结果,所述数据去重统计结果是针对所述索引结果进行去重后统计得到的结果。
在一个可选的实施例中,所述发送模块1620还用于根据第一数据对应的指定信息字段对所述第一数据集进行分组,得到多个分组;将指定分组中的第一数据对应的第一数据标识发送至所述协助方设备,所述指定分组是所述多个分组中的分组。
在一个可选的实施例中,所述发送模块1620还用于响应于所述指定分组中第一数据的数量达到预设数量阈值,对所述指定分组中的第一数据进行小组划分,得到多个数据小组;根据多个数据小组分批次向所述协助方设备发送所述第一数据对应的第一数据标识。
在一个可选的实施例中,所述分析模块1640还用于创建所述第一数据集对应的基础位图;基于所述索引结果对所述基础位图进行赋值更新,得到数据位图,其中,针对所述索引结果中的重复索引值,对所述基础位图中与所述重复索引值对应的比特位进行单次赋值;对所述数据位图进行聚合分析,得到所述第二数据集的数据去重统计结果。
在一个可选的实施例中,所述第一数据集根据指定信息字段分为多个分组,发送至所述协助方设备的第一数据标识是指定分组中第一数据的数据标识;
所述分析模块1640还用于创建多个分组分别对应的基础位图,其中包括所述指定分组对应的基础位图;基于所述索引结果对所述指定分组对应的基础位图进行赋值更新,得到所述指定分组对应的数据位图。
在一个可选的实施例中,所述分析模块1640还用于响应于所述指定分组中第一数据的数量达到预设数量阈值,对所述指定分组中的第一数据进行小组划分,得到所述指定分组对应的多个数据小组;创建所述多个数据小组分别对应的基础位图。
在一个可选的实施例中,所述分析模块1640还用于在所述指定分组内,对所述多个数据小组分别对应的数据位图进行按位或操作,得到所述指定分组对应的位图更新结果。
在一个可选的实施例中,所述分析模块1640还用于通过预设聚合函数,对所述索引结果进行聚合分析,得到所述第二数据集的数据去重统计结果。
在一个可选的实施例中,所述分析模块1640还用于在所述预设聚合函数为数量统计函数的情况下,根据所述索引结果中比特位为指定取值的比特位数量,确定数量结果;将所述数量结果作为所述数据去重统计结果。
在一个可选的实施例中,所述分析模块1640还用于确定通过所述索引结果分析得到的去重中间结果,所述去重中间结果用于指示对所述索引结果进行汇总分析后的结果;在所述预设聚合函数包括求和函数、求均值函数、求最大值函数以及求最小值函数中的至少一种的情况下,将所述去重中间结果发送至所述协助方设备;接收所述协助方设备对所述去重中间结果的分析结果,所述分析结果包括与所述求和函数对应的求和结果,与所述求均值函数对应的均值结果,与所述求最大值函数对应的最大值结果以及与所述求最小值函数对应的最小值结果中的至少一种;基于所述分析结果得到所述第二数据集的数据去重统计结果。
图17是本申请一个示例性实施例提供的联邦学习中的隐私去重装置的结构框图,如图17所示,该装置包括如下部分:
接收模块1710,用于接收第一数据标识,所述第一数据标识用于唯一指示第一数据,所述第一数据是发起方设备中第一数据集中的数据;
确定模块1720,用于基于协助方设备存储的第二数据集中的第二数据,确定所述第二数据对应的索引关系,所述第二数据集中包括至少一个第二数据的第二数据标识与所述第一数据标识匹配,所述索引关系是对所述第二数据排列得到的顺序关系;
查询模块1730,用于在所述索引关系中基于所述第二数据标识对所述第一数据标识进行查询,得到索引结果;
发送模块1740,用于将所述索引结果发送至所述发起方设备,所述发起方设备用于基于所述索引结果确定所述第二数据集的数据去重统计结果。
在一个可选的实施例中,所述确定模块1720还用于对所述协助方设备存储的所述第二数据集中的第二数据进行升序排列,确定所述第二数据对应的排列顺序;根据所述排列顺序,对所述第二数据进行索引赋值,确定不同第二数据对应的数据索引;基于所述第二数据和所述数据索引之间的关系,确定所述第二数据对应的索引关系。
在一个可选的实施例中,所述查询模块1730还用于将接收到的所述第一数据标识与所述第二数据标识相匹配;根据与所述第一数据标识相匹配的所述第二数据标识,确定与所述第二数据标识对应的第二数据;响应于在所述索引关系查询到所述第二数据,将所述第二数据对应的数据索引作为所述索引结果;或者,将接收到的所述第一数据标识与所述第二数据标识相匹配;根据与所述第一数据标识相匹配的所述第二数据标识,确定与所述第二数据标识对应的第二数据;响应于在所述索引关系未查询到所述第二数据,对所述索引关系进行更新;基于更新后的索引关系,确定所述索引结果。
在一个可选的实施例中,所述查询模块1730还用于响应于在所述索引关系未查询到所述第二数据,确定所述第二数据与其余第二数据之间的顺序关系;基于所述顺序关系,对所述第二数据进行索引赋值。
需要说明的是:上述实施例提供的联邦学习中的隐私去重装置,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的联邦学习中的隐私去重装置与联邦学习方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
图18示出了本申请一个示例性实施例提供的服务器的结构示意图。该服务器1800包括中央处理单元(Central Processing Unit,CPU)1801、包括随机存取存储器(RandomAccess Memory,RAM)1802和只读存储器(Read Only Memory,ROM)1803的系统存储器1804,以及连接系统存储器1804和中央处理单元1801的系统总线1805。服务器1800还包括用于存储操作系统1813、应用程序1814和其他程序模块1815的大容量存储设备1806。
大容量存储设备1806通过连接到系统总线1805的大容量存储控制器(未示出)连接到中央处理单元1801。大容量存储设备1806及其相关联的计算机可读介质为服务器1800提供非易失性存储。也就是说,大容量存储设备1806可以包括诸如硬盘或者紧凑型光盘只读存储器(Compact Disc Read Only Memory,CD-ROM)驱动器之类的计算机可读介质(未示出)。
不失一般性,计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括RAM、ROM、可擦除可编程只读存储器(Erasable Programmable Read Only Memory,EPROM)、带电可擦可编程只读存储器(Electrically Erasable Programmable Read Only Memory,EEPROM)、闪存或其他固态存储器技术,CD-ROM、数字通用光盘(Digital Versatile Disc,DVD)或其他光学存储、磁带盒、磁带、磁盘存储或其他磁性存储设备。当然,本领域技术人员可知计算机存储介质不局限于上述几种。上述的系统存储器1804和大容量存储设备1806可以统称为存储器。
根据本申请的各种实施例,服务器1800还可以通过诸如因特网等网络连接到网络上的远程计算机运行。也即服务器1800可以通过连接在系统总线1805上的网络接口单元1811连接到网络1812,或者说,也可以使用网络接口单元1811来连接到其他类型的网络或远程计算机系统(未示出)。
上述存储器还包括一个或者一个以上的程序,一个或者一个以上程序存储于存储器中,被配置由CPU执行。
本申请的实施例还提供了一种计算机设备,该计算机设备包括处理器和存储器,该存储器中存储有至少一条指令、至少一段程序、代码集或指令集,至少一条指令、至少一段程序、代码集或指令集由处理器加载并执行以实现上述各方法实施例提供的联邦学习中的隐私去重方法。
本申请的实施例还提供了一种计算机可读存储介质,该计算机可读存储介质上存储有至少一条指令、至少一段程序、代码集或指令集,至少一条指令、至少一段程序、代码集或指令集由处理器加载并执行,以实现上述各方法实施例提供的联邦学习中的隐私去重方法。
本申请的实施例还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述实施例中任一所述的联邦学习中的隐私去重方法。
可选地,该计算机可读存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取记忆体(RAM,Random Access Memory)、固态硬盘(SSD,Solid State Drives)或光盘等。其中,随机存取记忆体可以包括电阻式随机存取记忆体(ReRAM,Resistance RandomAccess Memory)和动态随机存取存储器(DRAM,Dynamic Random Access Memory)。上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (18)
1.一种联邦学习中的隐私去重方法,其特征在于,所述方法包括:
获取第一数据集,所述第一数据集中的第一数据对应有第一数据标识,所述第一数据标识用于唯一指示所述第一数据;
将所述第一数据的第一数据标识发送至协助方设备,所述协助方设备存储有第二数据集,所述第二数据集中包括第二数据,且存在至少一个第二数据的第二数据标识与所述第一数据标识匹配,所述第二数据对应有索引关系,所述索引关系是对所述第二数据排列得到的顺序关系;
接收所述协助方设备发送的索引结果,所述索引结果是所述协助方设备在所述索引关系中基于所述第二数据标识对所述第一数据标识进行查询得到的结果,所述索引结果用于表示所述第一数据标识在所述索引关系中的排列次序;
对所述索引结果进行聚合分析,得到所述第二数据集的数据去重统计结果,所述数据去重统计结果是针对所述索引结果进行去重后统计得到的结果。
2.根据权利要求1所述的方法,其特征在于,所述对所述索引结果进行聚合分析,得到所述第二数据集的数据去重统计结果,包括:
创建所述第一数据集对应的基础位图;
基于所述索引结果对所述基础位图进行赋值更新,得到数据位图,其中,针对所述索引结果中的重复索引值,对所述基础位图中与所述重复索引值对应的比特位进行单次赋值;
对所述数据位图进行聚合分析,得到所述第二数据集的数据去重统计结果。
3.根据权利要求2所述的方法,其特征在于,所述第一数据集根据指定信息字段分为多个分组,发送至所述协助方设备的第一数据标识是指定分组中第一数据的数据标识;
所述创建所述第一数据集对应的基础位图,包括:
创建多个分组分别对应的基础位图,其中包括所述指定分组对应的基础位图;
所述基于所述索引结果对所述基础位图进行赋值更新,得到数据位图,包括:
基于所述索引结果对所述指定分组对应的基础位图进行赋值更新,得到所述指定分组对应的数据位图。
4.根据权利要求3所述的方法,其特征在于,所述创建多个分组分别对应的基础位图,包括:
响应于所述指定分组中第一数据的数量达到预设数量阈值,对所述指定分组中的第一数据进行小组划分,得到所述指定分组对应的多个数据小组;
创建所述多个数据小组分别对应的基础位图。
5.根据权利要求4所述的方法,其特征在于,所述基于所述索引结果对所述指定分组对应的基础位图进行赋值更新,得到所述指定分组对应的数据位图之后,还包括:
在所述指定分组内,对多个数据小组分别对应的数据位图进行按位或操作,得到所述指定分组对应的位图更新结果。
6.根据权利要求1至5任一所述的方法,其特征在于,所述将所述第一数据的第一数据标识发送至协助方设备,包括:
根据第一数据对应的指定信息字段对所述第一数据集进行分组,得到多个分组;
将指定分组中的第一数据对应的第一数据标识发送至所述协助方设备,所述指定分组是所述多个分组中的分组。
7.根据权利要求6所述的方法,其特征在于,所述将指定分组中的第一数据对应的第一数据标识发送至所述协助方设备,包括:
响应于所述指定分组中第一数据的数量达到预设数量阈值,对所述指定分组中的第一数据进行小组划分,得到多个数据小组;
根据所述多个数据小组分批次向所述协助方设备发送所述第一数据对应的第一数据标识。
8.根据权利要求1至5任一所述的方法,其特征在于,所述对所述索引结果进行聚合分析,得到所述第二数据集的数据去重统计结果,包括:
通过预设聚合函数,对所述索引结果进行聚合分析,得到所述第二数据集的数据去重统计结果。
9.根据权利要求8所述的方法,其特征在于,所述通过预设聚合函数,对所述索引结果进行聚合分析,得到所述第二数据集的数据去重统计结果,包括:
在所述预设聚合函数包括数量统计函数的情况下,根据所述索引结果中比特位为指定取值的比特位数量,确定数量结果;
将所述数量结果作为所述数据去重统计结果。
10.根据权利要求9所述的方法,其特征在于,所述通过预设聚合函数,对所述索引结果进行聚合分析,得到所述第二数据集的数据去重统计结果,还包括:
确定通过所述索引结果分析得到的去重中间结果,所述去重中间结果用于指示对所述索引结果进行汇总分析后的结果;
在所述预设聚合函数包括求和函数、求均值函数、求最大值函数以及求最小值函数中的至少一种情况下,将所述去重中间结果发送至所述协助方设备;
接收所述协助方设备对所述去重中间结果的分析结果,所述分析结果包括与所述求和函数对应的求和结果,与所述求均值函数对应的均值结果,与所述求最大值函数对应的最大值结果以及与所述求最小值函数对应的最小值结果中的至少一种;
基于所述分析结果得到所述第二数据集的数据去重统计结果。
11.一种联邦学习中的隐私去重方法,其特征在于,所述方法包括:
接收第一数据标识,所述第一数据标识用于唯一指示第一数据,所述第一数据是发起方设备中第一数据集中的数据;
基于协助方设备存储的第二数据集中的第二数据,确定所述第二数据对应的索引关系,所述第二数据集中包括第二数据,且存在至少一个第二数据的第二数据标识与所述第一数据标识匹配,所述索引关系是对所述第二数据排列得到的顺序关系;
在所述索引关系中基于所述第二数据标识对所述第一数据标识进行查询,得到索引结果;
将所述索引结果发送至所述发起方设备,所述发起方设备用于基于所述索引结果确定所述第二数据集的数据去重统计结果。
12.根据权利要求11所述的方法,其特征在于,所述基于协助方设备存储的第二数据集中的第二数据,确定所述第二数据对应的索引关系,包括:
对所述协助方设备存储的所述第二数据集中的第二数据进行升序排列,确定所述第二数据对应的排列顺序;
根据所述排列顺序,对所述第二数据进行索引赋值,确定不同第二数据对应的数据索引,得到所述索引关系。
13.根据权利要求11或12所述的方法,其特征在于,所述在所述索引关系中基于所述第二数据标识对所述第一数据标识进行查询,得到索引结果,包括:
将接收到的所述第一数据标识与所述第二数据标识相匹配;根据与所述第一数据标识相匹配的所述第二数据标识,确定与所述第二数据标识对应的第二数据;响应于在所述索引关系查询到所述第二数据,将所述第二数据对应的数据索引作为所述索引结果;
或者,
将接收到的所述第一数据标识与所述第二数据标识相匹配;根据与所述第一数据标识相匹配的所述第二数据标识,确定与所述第二数据标识对应的第二数据;响应于在所述索引关系未查询到所述第二数据,对所述索引关系进行更新;基于更新后的索引关系,确定所述索引结果。
14.根据权利要求13所述的方法,其特征在于,所述响应于在所述索引关系未查询到所述第二数据,对所述索引关系进行更新,包括:
响应于在所述索引关系未查询到所述第二数据,确定所述第二数据与其余第二数据之间的顺序关系;
基于所述顺序关系,对所述第二数据进行索引赋值。
15.一种联邦学习中的隐私去重装置,其特征在于,所述装置包括:
获取模块,用于获取第一数据集,所述第一数据集中的第一数据对应有第一数据标识,所述第一数据标识用于唯一指示所述第一数据;
发送模块,用于将所述第一数据的第一数据标识发送至协助方设备,所述协助方设备存储有第二数据集,所述第二数据集中包括第二数据,且存在至少一个第二数据的第二数据标识与所述第一数据标识匹配,所述第二数据对应有索引关系,所述索引关系是对所述第二数据排列得到的顺序关系;
接收模块,用于接收所述协助方设备发送的索引结果,所述索引结果是所述协助方设备在所述索引关系中基于所述第二数据标识对所述第一数据标识进行查询得到的结果,所述索引结果用于表示所述第一数据标识在所述索引关系中的排列次序;
分析模块,用于对所述索引结果进行聚合分析,得到所述第二数据集的数据去重统计结果,所述数据去重统计结果是针对所述索引结果进行去重后统计得到的结果。
16.一种联邦学习中的隐私去重装置,其特征在于,所述装置包括:
接收模块,用于接收第一数据标识,所述第一数据标识用于唯一指示第一数据,所述第一数据是发起方设备中第一数据集中的数据;
确定模块,用于基于协助方设备存储的第二数据集中的第二数据,确定所述第二数据对应的索引关系,所述第二数据集中包括至少一个第二数据,且存在至少一个第二数据的第二数据标识与所述第一数据标识匹配,所述索引关系是对所述第二数据排列得到的顺序关系;
查询模块,用于在所述索引关系中基于所述第二数据标识对所述第一数据标识进行查询,得到索引结果;
发送模块,用于将所述索引结果发送至所述发起方设备,所述发起方设备用于基于所述索引结果确定所述第二数据集的数据去重统计结果。
17.一种计算机设备,其特征在于,所述计算机设备包括处理器和存储器,所述存储器中存储有至少一段程序,所述至少一段程序由所述处理器加载并执行以实现如权利要求1至14任一所述的联邦学习中的隐私去重方法。
18.一种计算机可读存储介质,其特征在于,所述存储介质中存储有至少一段程序,所述至少一段程序由处理器加载并执行以实现如权利要求1至14任一所述的联邦学习中的隐私去重方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210634395.5A CN114722427B (zh) | 2022-06-07 | 2022-06-07 | 联邦学习中的隐私去重方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210634395.5A CN114722427B (zh) | 2022-06-07 | 2022-06-07 | 联邦学习中的隐私去重方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114722427A CN114722427A (zh) | 2022-07-08 |
CN114722427B true CN114722427B (zh) | 2022-09-09 |
Family
ID=82232390
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210634395.5A Active CN114722427B (zh) | 2022-06-07 | 2022-06-07 | 联邦学习中的隐私去重方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114722427B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115276952A (zh) * | 2022-07-29 | 2022-11-01 | 蚂蚁区块链科技(上海)有限公司 | 一种隐私数据处理方法及装置 |
CN115329032B (zh) * | 2022-10-14 | 2023-03-24 | 杭州海康威视数字技术股份有限公司 | 基于联邦字典学习数据传输方法、装置、设备及存储介质 |
CN116821559B (zh) * | 2023-07-07 | 2024-02-23 | 中国人民解放军海军工程大学 | 用于快速获取一组大数据集中趋势的方法、系统及终端 |
CN117010002B (zh) * | 2023-09-28 | 2024-01-05 | 腾讯科技(深圳)有限公司 | 样本标识的对齐方法、装置、电子设备及存储介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112231308A (zh) * | 2020-10-14 | 2021-01-15 | 深圳前海微众银行股份有限公司 | 横向联邦建模样本数据的去重方法、装置、设备及介质 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112416912B (zh) * | 2020-10-14 | 2024-05-07 | 深圳前海微众银行股份有限公司 | 纵向联邦数据统计的去重方法、装置、终端设备及介质 |
CN112231309B (zh) * | 2020-10-14 | 2024-05-07 | 深圳前海微众银行股份有限公司 | 纵向联邦数据统计的去重方法、装置、终端设备及介质 |
CN113806458A (zh) * | 2020-11-17 | 2021-12-17 | 京东城市(北京)数字科技有限公司 | 时空关联数据的查询方法、装置、电子设备和存储介质 |
CN112685395B (zh) * | 2020-12-28 | 2024-05-31 | 深圳前海微众银行股份有限公司 | 纵向联邦统计中的无序数据去重方法、装置、设备及介质 |
-
2022
- 2022-06-07 CN CN202210634395.5A patent/CN114722427B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112231308A (zh) * | 2020-10-14 | 2021-01-15 | 深圳前海微众银行股份有限公司 | 横向联邦建模样本数据的去重方法、装置、设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN114722427A (zh) | 2022-07-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114722427B (zh) | 联邦学习中的隐私去重方法、装置、设备及存储介质 | |
US8463739B2 (en) | Systems and methods for generating multi-population statistical measures using middleware | |
US8495007B2 (en) | Systems and methods for hierarchical aggregation of multi-dimensional data sources | |
WO2018149292A1 (zh) | 一种对象聚类方法和装置 | |
CN111382174A (zh) | 多方数据联合查询方法、装置、服务器和存储介质 | |
US11288274B1 (en) | System and method for storing data for, and providing, rapid database join functions and aggregation statistics | |
CN105824868A (zh) | 一种分布式数据库数据处理方法和分布式数据库系统 | |
CN104809130A (zh) | 数据查询的方法、设备及系统 | |
CN104468107A (zh) | 校验数据处理方法及装置 | |
CN113315811A (zh) | 基于联盟区块链的标识解析方法、装置、存储介质及服务器 | |
CN108154024B (zh) | 一种数据检索方法、装置及电子设备 | |
US9465854B2 (en) | In-database connectivity components analysis of data | |
US9384238B2 (en) | Block partitioning for efficient record processing in parallel computing environment | |
CN114090530A (zh) | 分布式架构下的日志汇总查询方法及装置 | |
CN105978744A (zh) | 一种资源分配方法、装置及系统 | |
CN110942345B (zh) | 种子用户的选取方法、装置、设备及存储介质 | |
CN117331975A (zh) | 数据处理任务执行方法、装置、计算机设备和存储介质 | |
CN112527813A (zh) | 业务系统的数据处理方法及装置、电子设备、存储介质 | |
CN104050264A (zh) | 一种生成sql语句的方法和装置 | |
CN116975018A (zh) | 一种数据处理方法、装置、计算机设备以及可读存储介质 | |
CN113590348B (zh) | 基于树状结构的参数传递方法、装置、设备及介质 | |
KR101183768B1 (ko) | 통합 뷰 제공 시스템 및 방법 그리고 이에 적용되는 뷰 생성 기능을 가지는 서버 | |
KR102136222B1 (ko) | 그래프 데이터 클러스터링 시스템 및 방법과, 이를 위한 컴퓨터 프로그램 | |
CN108256083A (zh) | 基于深度学习的内容推荐方法 | |
US11501020B2 (en) | Method for anonymizing personal information in big data and combining anonymized data |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40070810 Country of ref document: HK |