CN116186782B - 联邦图计算方法、装置及电子设备 - Google Patents
联邦图计算方法、装置及电子设备 Download PDFInfo
- Publication number
- CN116186782B CN116186782B CN202310404070.2A CN202310404070A CN116186782B CN 116186782 B CN116186782 B CN 116186782B CN 202310404070 A CN202310404070 A CN 202310404070A CN 116186782 B CN116186782 B CN 116186782B
- Authority
- CN
- China
- Prior art keywords
- vector
- graph
- node
- update
- edge
- 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
- 238000004364 calculation method Methods 0.000 title abstract description 105
- 239000013598 vector Substances 0.000 claims abstract description 570
- 238000000034 method Methods 0.000 claims description 62
- 230000002776 aggregation Effects 0.000 claims description 34
- 238000004220 aggregation Methods 0.000 claims description 34
- 239000012634 fragment Substances 0.000 claims description 23
- 238000004590 computer program Methods 0.000 claims description 12
- 238000012545 processing Methods 0.000 claims description 11
- 230000035515 penetration Effects 0.000 claims description 6
- 238000012163 sequencing technique Methods 0.000 claims description 4
- 238000010586 diagram Methods 0.000 abstract description 29
- 230000004224 protection Effects 0.000 abstract description 13
- 238000004422 calculation algorithm Methods 0.000 description 36
- 238000013507 mapping Methods 0.000 description 28
- 238000007781 pre-processing Methods 0.000 description 17
- 230000008569 process Effects 0.000 description 16
- 230000005540 biological transmission Effects 0.000 description 9
- 238000012546 transfer Methods 0.000 description 9
- 230000003993 interaction Effects 0.000 description 5
- 238000004458 analytical method Methods 0.000 description 4
- 238000013528 artificial neural network Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000002452 interceptive effect Effects 0.000 description 3
- 230000008520 organization Effects 0.000 description 3
- 239000007787 solid Substances 0.000 description 3
- 238000007792 addition Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012946 outsourcing Methods 0.000 description 2
- 238000006116 polymerization reaction Methods 0.000 description 2
- 108010015780 Viral Core Proteins Proteins 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 239000000306 component Substances 0.000 description 1
- 239000008358 core component Substances 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000012804 iterative process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000005065 mining Methods 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001360 synchronised effect Effects 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
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/50—Information retrieval; Database structures therefor; File system structures therefor of still image data
- G06F16/51—Indexing; Data structures therefor; Storage structures
-
- 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/602—Providing cryptographic facilities or services
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Databases & Information Systems (AREA)
- Medical Informatics (AREA)
- Data Mining & Analysis (AREA)
- Storage Device Security (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种联邦图计算方法、装置及电子设备,方法包括:获取第一参与方持有的子图的第一节点向量和第一边向量;对第一节点向量依据第一边向量进行转换,获得第一源节点向量,第一源节点向量中节点的索引顺序与第一边向量的源节点索引顺序相同;基于第一边向量和第一源节点向量执行预设的第一运算,获得第二边向量和第一更新向量,第一更新向量是对第二边向量中目标节点的更新向量;基于第二边向量和第一更新向量执行预设的第二运算,获得第一节点向量的更新向量。通过利用第一参与方持有的子图的第一节点向量和第一边向量进行第一运算和第二运算,并采用运算结果对第一节点向量进行更新,可在强隐私保护的前提下完成联邦图计算。
Description
技术领域
本申请属于信息安全技术领域,尤其涉及一种联邦图计算方法、装置及电子设备。
背景技术
作为当下部署最为广泛的大数据计算技术之一,图计算在反金融欺诈、知识图谱分析、虚假社交账户检测等领域发挥着重要作用。所谓图计算,即以图数据(由节点和节点之间的边组成的数据)为输入,执行各类图分析算法。传统图分析算法有广度优先搜索、最短路径、网络流算法等,近年来流行的图模式挖掘和图神经网络也可归类为图分析算法。在现实场景中,图数据常分布于不同机构之间且相互关联,因此各机构有合作进行图计算的需求。例如,各个银行内部有自己的转账图,而又通过跨银行转账联结成一张全局的转账图。银行之间合作进行全局转账图上的图计算对于反非法资金转移、反欺诈交易等活动具有重要意义。然而,在用户数据隐私保护法案的限制下,机构之间无法直接共享图数据,这给机构之间合作开展图计算带来挑战。
该问题可以被定义为联邦图计算问题。具体而言,联邦图计算假设有若干参与方合作执行图计算,各参与方均提供一个子图,各子图通过跨子图的边进行连接,各子图之间可能存在公共节点。联邦图计算的目标是在子图数据隐私保护的前提下对各参与方的子图进行拼接(拼接基于跨子图的边和公共节点),在拼接之后的全局图上执行各类图计算任务,获取在分离的子图中无法得到的图计算结果。所谓保护子图数据隐私,即不泄露各子图中存储的节点相关数据和边相关数据,包含公共节点在各子图中存储的数据。除此之外,跨子图的边数据对于相关的参与方是公开的。例如,银行A和银行B之间的转账记录对于两家银行都是可见的。
基于此,目前亟需一种联邦图计算方法,以在执行图计算的情况下保护子图数据不被泄露。
发明内容
本申请实施例提供一种联邦图计算方法、装置及电子设备,能够在执行图计算的情况下保护子图数据不被泄露。
第一方面,本申请实施例提供一种联邦图计算方法,应用于第一参与方,联邦图计算系统包括多个参与方,每个参与方持有图结构中的一部分子图,所述方法包括:
获取所述第一参与方持有的子图的第一节点向量和第一边向量;
对所述第一节点向量依据所述第一边向量进行转换,获得第一源节点向量,所述第一源节点向量中节点的索引顺序与所述第一边向量的源节点索引顺序相同;
基于所述第一边向量和所述第一源节点向量执行预设的第一运算,获得第二边向量和第一更新向量,所述第一更新向量是对所述第二边向量中目标节点的更新向量;
基于所述第二边向量和所述第一更新向量执行预设的第二运算,获得所述第一节点向量的更新向量。
第二方面,本申请实施例提供了一种联邦图计算装置,应用于第一参与方,联邦图计算系统包括多个参与方,每个参与方持有图结构中的一部分子图,所述装置包括:
第一获取模块,用于获取所述第一参与方持有的子图的第一节点向量和第一边向量;
第二获取模块,用于对所述第一节点向量依据所述第一边向量进行转换,获得第一源节点向量,所述第一源节点向量中节点的索引顺序与所述第一边向量的源节点索引顺序相同;
第一运算模块,用于基于所述第一边向量和所述第一源节点向量执行预设的第一运算,获得第二边向量和第一更新向量,所述第一更新向量是对所述第二边向量中目标节点的更新向量;
第二运算模块,用于基于所述第二边向量和所述第一更新向量执行预设的第二运算,获得所述第一节点向量的更新向量。
第三方面,本申请实施例提供了一种电子设备,设备包括:处理器以及存储有计算机程序指令的存储器;
所述处理器执行所述计算机程序指令时实现如第一方面所述的方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序指令,所述计算机程序指令被处理器执行时实现如第一方面所述的方法。
第五方面,本申请实施例提供了一种计算机程序产品,所述计算机程序产品中的指令由电子设备的处理器执行时,使得所述电子设备执行如第一方面所述的方法。
本申请实施例的联邦图计算方法、装置及电子设备,其中方法包括:获取所述第一参与方持有的子图的第一节点向量和第一边向量;对所述第一节点向量依据所述第一边向量进行转换,获得第一源节点向量,所述第一源节点向量中节点的索引顺序与所述第一边向量的源节点索引顺序相同;基于所述第一边向量和所述第一源节点向量执行预设的第一运算,获得第二边向量和第一更新向量,所述第一更新向量是对所述第二边向量中目标节点的更新向量;基于所述第二边向量和所述第一更新向量执行预设的第二运算,获得所述第一节点向量的更新向量。通过上述步骤,可利用第一参与方持有的子图的第一节点向量和第一边向量进行第一运算和第二运算,并采用运算结果对第一节点向量进行更新,这个过程中仅泄露子图的节点数量和边数量,不泄露其他任何子图信息,可保证不通过参与方之间交互的中间数据泄露各自的子图数据隐私,在强隐私保护的前提下完成联邦图计算。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单的介绍,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请一个实施例提供的联邦图计算方法的一流程示意图;
图2-1是本申请一个实施例提供的联邦图计算系统的结构示意图;
图2-2是本申请一个实施例提供的联邦图计算方法的另一流程示意图;
图2-3是本申请一个实施例提供的多个参与方之间的关系示意图;
图2-4是本申请一个实施例提供的在线计算阶段的流程示意图;
图2-5是本申请一个实施例提供的多个参与方之间的信息交互示意图;
图3是本申请一个实施例提供的联邦图计算装置的结构示意图;
图4是本申请又一个实施例提供的电子设备的结构示意图。、
具体实施方式
下面将详细描述本申请的各个方面的特征和示例性实施例,为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及具体实施例,对本申请进行进一步详细描述。应理解,此处所描述的具体实施例仅意在解释本申请,而不是限定本申请。对于本领域技术人员来说,本申请可以在不需要这些具体细节中的一些细节的情况下实施。下面对实施例的描述仅仅是为了通过示出本申请的示例来提供对本申请更好的理解。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以下对本申请可能使用到的名词进行如下解释:
联邦图计算:将各个参与方持有的分离的子图通过跨子图的边和公共节点拼接成一张全局图,并运行图算法,同时保护各参与方的子图数据隐私。
Gather:汇集图中各个节点的入边产生的更新数据,用于更新节点数据。
同态加密:支持基于密文进行运算的公钥加密技术。
外包图计算:图数据的所有者将图计算任务外包给云计算服务器,该过程一般要求保护图数据所有者的数据隐私。
秘密共享:将某数据x拆分成若干秘密碎片(secret share),每个碎片的值的分布是随机的,但是相加等于x。
隐私求交:多个参与方之间运行的密码学协议,输入是每个参与方手中持有的一个集合,输出是所有集合的交集,能够不泄露交集之外的任意集合元素的信息。
GAS模型:即Gather-Apply-Scatter,该模型将图算法的执行表达为以节点为中心的计算,且由Gather-Apply-Scatter三个操作的若干轮迭代组成图算法的执行过程。GAS模型是分布式图计算领域使用最为广泛的一种图算法的抽象模型。
本申请实施例提供了一种联邦图计算方法、装置、电子设备、介质及产品。下面首先对本申请实施例所提供的联邦图计算方法进行介绍。
图1示出了本申请一个实施例提供的联邦图计算方法的流程示意图。如图1所示,本申请实施例提供的联邦图计算方法,应用于第一参与方,联邦图计算系统包括多个参与方,每个参与方持有图结构中的一部分子图,所述方法包括如下步骤:
步骤101、获取所述第一参与方持有的子图的第一节点向量和第一边向量。
需要说明的是,在本申请中, 第一参与方为多个参与方中的任意一个参与方,第二参与方所持有的子图与第一参与方持有的子图之间有边连接;对多个参与方进行顺序编号,编号依据在此不做限定。第三参与方为排序位置与第一参与方相邻且在第一参与方之后的参与方。
第一节点向量包括第一参与方持有的子图的节点信息,节点信息可包括节点的标识,或者节点标识的索引,第一边向量包括第一参与方持有的子图的边信息,边信息包括边对应的源节点的标识或索引,以及目标节点的标识或索引。
步骤102、对所述第一节点向量依据所述第一边向量进行转换,获得第一源节点向量,所述第一源节点向量中节点的索引顺序与所述第一边向量的源节点索引顺序相同。
步骤103、基于所述第一边向量和所述第一源节点向量执行预设的第一运算,获得第二边向量和第一更新向量,所述第一更新向量是对所述第二边向量中目标节点的更新向量。
第一运算可根据实际需求进行设置,在此不做限定,第一运算可以是一个图算法。
第一运算由第一参与方、第三参与方协作完成,即,第二边向量和第二更新向量由第一参与方和第三参与方协作获得。
第一更新向量包括边对应的源节点的标识或索引,以及目标节点的标识或索引。
步骤104、基于所述第二边向量和所述第一更新向量执行预设的第二运算,获得所述第一节点向量的更新向量。
第二运算可根据实际需求进行设置,在此不做限定,第一运算也可以是一个图算法。在获得第一节点向量的更新向量之后,可以采用该更新向量对第一节点向量进行更新。第一节点向量的更新向量可以理解为本次计算的计算结果。
上述步骤101-步骤104可以是一次迭代过程,若当前迭代次数小于预设次数,则采用该更新向量对第一节点向量进行更新,转步骤101执行,直到当前迭代次数大于或等于预设次数;若当前迭代次数大于或等于所述预设次数,则从各参与方获得秘密共享的图数据,并合并获取到的图数据,获得运算执行结果。
本实施例中,获取所述第一参与方持有的子图的第一节点向量和第一边向量;对所述第一节点向量依据所述第一边向量进行转换,获得第一源节点向量,所述第一源节点向量中节点的索引顺序与所述第一边向量的源节点索引顺序相同;基于所述第一边向量和所述第一源节点向量执行预设的第一运算,获得第二边向量和第一更新向量,所述第一更新向量是对所述第二边向量中目标节点的更新向量;基于所述第二边向量和所述第一更新向量执行预设的第二运算,获得所述第一节点向量的更新向量。通过上述步骤,可利用第一参与方持有的子图的第一节点向量和第一边向量进行第一运算和第二运算,并采用运算结果对第一节点向量进行更新,这个过程中仅泄露子图的节点数量和边数量,不泄露其他任何子图信息,可保证不通过参与方之间交互的中间数据泄露各自的子图数据隐私,在强隐私保护的前提下完成联邦图计算。
在本申请一些实施例中,步骤104,包括:
第一步:对所述第一更新向量中的元素进行预聚合处理,将所述第一更新向量中目标节点索引相同的所有更新变量合并为单个更新变量,获得第一聚合向量。
第一更新向量包括边对应的源节点的标识或索引,以及目标节点的标识或索引,如图2-4中所示的即为第一更新向量。对所述第一更新向量中的元素进行预聚合处理,以将所述第一更新向量中目标节点索引相同的所有更新变量合并为单个更新变量,获得第一聚合向量,如图2-4中所示的即为第一聚合向量,用实线矩形框表示聚合后的更新变量存放的位置。
第二步:根据所述第一节点向量中各节点的顺序,对所述第一聚合向量中的元素进行排序,获得第二更新向量,所述第二更新向量中目标节点的顺序与所述第一节点向量中各节点的顺序相同。如图2-4中所示的即为第二更新向量。
具体地,本步骤可包括如下两个步骤:
1.与第三参与方联合基于所述第二更新向量和所述第一节点向量执行所述第二运算,获得第一向量;
2.基于所述第一向量和第二向量执行所述第二运算,获得所述第一节点向量的更新向量,其中,所述第二向量由所述第二参与方提供。
例如,与第二参与方联合基于所述第一向量和第二向量执行所述第二运算,获得所述第一节点向量的更新向量;或者,
将所述第一向量和所述第二向量发送给第四参与方,由所述第四参与方代理所述第一参与方执行所述第二运算,获得所述第一节点向量的更新向量,所述第四参与方是所述多个参与方中不同于所述第一参与方和所述第二参与方的参与方。
需要说明的是,第二参与方获取第二向量的过程为:
第二参与方获取所述第二参与方持有的子图与第一参与方持有的子图之间的跨子图的跨子图边向量;
第二参与方根据跨子图边向量中的源节点,获得源节点向量,源节点向量中节点的索引顺序与跨子图边向量的源节点索引顺序相同;
第二参与方基于跨子图边向量和源节点向量执行所述第一运算,获得边向量和更新向量,更新向量是边向量中目标节点的更新向量;
第二参与方对更新向量中的元素进行预聚合处理,将更新向量中目标节点索引相同的所有更新变量合并为单个更新变量,获得聚合向量,该聚合向量即为第二向量。
同样地,第一参与方也需要向第二参与方提供第二向量,即,所述方法还包括:
获取所述第一参与方持有的子图与第二参与方持有的子图之间的跨子图的跨子图边向量;
根据所述跨子图边向量中的源节点向量,获得第二源节点向量,所述第二源节点向量中节点的索引顺序与所述跨子图边向量的源节点索引顺序相同;
基于所述跨子图边向量和所述第二源节点向量执行所述第一运算,获得第三边向量和第三更新向量,所述第三更新向量是对所述第三边向量中目标节点进行更新的更新向量;
对所述第三更新向量中的元素进行预聚合处理,将所述第三更新向量中目标节点索引相同的所有更新变量合并为单个更新变量,获得第二聚合向量,所述第二聚合向量用于提供给所述第二参与方执行所述第二运算。
其中,第二聚合向量即第一参与方向第二参与方提供的第二向量,用于第二参与方执行第二运算,获得第二参与方的节点向量的更新向量。
在本申请一些实施例中,所述获取所述第一参与方持有的子图的第一节点向量和第一边向量,包括:
读取所述第一参与方持有的第一子图的数据;
与所述多个参与方中的第五参与方建立信道,生成同态加密密钥对,并共享公钥给所述第五参与方,所述第五参与方为所述多个参与方中除所述第一参与方之外的其他参与方;
获取所述第一子图的初始节点向量;
对所述初始节点向量中各节点按照每个节点的入度进行降序排序,获得第一节点向量;
为所述子图中入度不为0的节点插入冗余边,获得初始边向量,其中,所述初始边向量中入度不为0的每个节点的入度为2次幂,所述初始边向量中目标节点相同的边位于相邻位置,
将所述初始边向量中相同的目标节点视为一组,并以组为单位根据所述目标节点的入度从大到小或从小到大进行组排序,获得第一边向量。
本实施例中,第一参与方输入图数据,即读取第一参与方所持有的第一子图的数据,为便于说明,将第一参与方持有的子图称为第一子图。第一参与方还读取联邦计算配置文件。
预处理阶段包括:
建立秘钥:即第一参与方与第五参与方建立信道,本地生成同态加密密钥对,并共享公钥给第五参与方。
对齐公共节点:参与方两两运行隐私求交协议,即第一参与方与第五参与方确定每一对子图之间的公共节点;确定节点映射,即确定各节点所属的参与方。此处的假设是各参与方采用相同的节点索引方案。
重组织向量:第一参与方根据节点入度对节点向量进行排序,并给节点增加最少量的冗余入边,使得节点入度为2的幂次或者0,并据此重新组织边向量,将目标节点相同的边放在相邻位置,令目标节点相同的边为一组,依据目标节点入度大小(也即组中边的数量)对各组进行降序排序。
生成关联随机数:基于同态加密生成关联随机数。
秘密共享图数据:对边向量和节点向量进行秘密共享。仅仅共享边和节点上存储的数据,而不共享节点索引。具体地,秘密共享方式可以包括如下步骤:
根据所述第一节点向量确定所述第一节点向量的第一碎片和第二碎片;
根据所述第一边向量确定所述第一边向量的第三碎片和第四碎片;
获取所述第一参与方持有的子图与第二参与方持有的子图之间的跨子图的跨子图边向量;
根据所述跨子图边向量确定所述跨子图边向量的第五碎片和第六碎片;
将所述第一碎片存储在所述第一参与方中,并将所述第二碎片发送给所述多个参与方中除所述第一参与方之外的其他参与方;
将所述第三碎片存储在所述第一参与方中,并将所述第四碎片发送给第三参与方;
将所述第五碎片存储在所述第一参与方中,并将所述第六碎片发送给第二参与方。
上述中,采用秘密共享的方式共享第一节点向量、第一边向量和跨子图边向量,可以有效保障数据安全,避免信息泄露。
以下对本申请提供的联邦图计算方法进行如下举例说明。
在本申请所给出的联邦图计算框架中,各参与方需首先在本地服务器中部署一套联邦图计算系统,该系统的架构如图2-1所示:
系统中主要包含两大核心组件,即联邦图计算引擎和安全计算后端。前者管控联邦图计算的执行流程、加载图计算任务配置和图数据、定义图算法细节且支撑参与方之间的数据交互;后者提供各种安全多方计算底层协议支持,包含同态加密、两方安全计算及隐私求交。下面将介绍联邦图计算引擎的各子模块。
1.存储模块:加载并存储图数据、联邦图计算配置信息、计算任务数据。其中图数据包含边数据、节点数据、节点映射(各节点所属的参与方)、中间更新数据,图数据可能为明文或者秘密共享状态;联邦图计算配置信息即参与方数量、各参与方通信信息、联邦计算的图算法等;计算任务数据为联邦图计算中产生的具体计算任务。
2.控制模块:控制模块是联邦图计算引擎的核心,负责整体计算与交互流程的控制,集中管控其他模块。具体地,控制模块通过存储模块读取图数据及联邦计算配置信息,控制传输模块完成与各参与方的信道建立与后续数据交互,通过算法模块获取联邦图计算中涉及的具体计算任务,并调用计算引擎模块完成基于秘密共享或明文数据的任务计算。
3.传输模块:负责维护和其他参与方之间的信道,中间数据发送与接收。需要注意的是,各参与方之间交互的图计算中间数据均为秘密共享数据或同态加密的密态数据,且接收方无法直接解密。此外,安全计算后端可使用其特定的底层网络组件完成协议执行的中间数据传输,不必使用传输模块。
4.算法模块:定义图算法特定的数据结构,包含边数据结构、节点数据结构、更新数据结构。此外,算法模块定义特定的图算法所涉及的计算,并可基于图数据封装具体的计算任务,提供给控制模块,并定义计算任务写回图数据的规则。各算法模块具有统一的接口,使得控制模块无需处理具体的图算法细节。
基于上述联邦图计算系统,图2-2是本申请所给出的联邦图计算方法执行流程。
该流程分为四大阶段,即输入图数据、预处理、在线计算和终止。具体地,各阶段完成的任务如下:
1.输入图数据:使用存储模块读入参与方本地图数据和联邦计算配置文件。
2.预处理:
a.建议秘钥:各参与方建立信道,本地生成同态加密密钥对,并共享公钥给其他参与方。
b.对齐公共节点:参与方两两运行隐私求交协议,确定每一对子图之间的公共节点。进一步确定节点映射,即各节点所属的参与方。此处的假设是各参与方采用相同的节点索引方案。
c.重组织向量:各参与方根据节点入度对节点向量进行排序,并给节点增加最少量的冗余入边,使得节点入度为2的幂次或者0,并据此重新组织边向量,将目标节点相同的边放在相邻位置。令目标节点相同的边为一组,依据目标节点入度大小(也即组中边的数量)对各组进行降序排序。
d.生成关联随机数:基于同态加密生成关联随机数,生成方法和使用细节将在下文中介绍。
e.秘密共享图数据:对边向量和节点向量进行秘密共享。仅仅共享边和节点上存储的数据,而不共享节点索引。
3.在线计算。本申请示例中将GAS模型中的Apply涉及的计算包含于Gather中,因此图算法的执行转换为Scatter和Gather的多轮迭代。
a.在Scatter阶段, 两两参与方之间协作运行隐私保护的向量元素映射协议(将在下文简要介绍),基于已经秘密共享的节点向量生成和边向量对应的源节点向量。随后,该源节点向量被用于和边向量执行向量化的Scatter计算。Scatter计算通过安全计算后端的两方计算模块完成,其涉及的具体计算内容是算法特定的。Scatter计算将输出对边向量的目标节点的更新向量及新的边向量,二者均为秘密共享状态。
b.在Gather阶段,两两参与方首先运行隐私保护的向量元素预聚合协议(将在下文简要介绍)对更新向量进行预聚合,即将目标节点相同的更新变量合并为一个更新变量。然后,两两参与方调用向量元素映射协议将预聚合后的更新变量转换为和目标节点向量相同的顺序,并进一步结合目标节点向量进行向量化的Gather计算。
4.终止:判定是否达到图算法迭代的终止条件,该终止条件可以是固定的迭代次数或算法特定的收敛条件。如果未达到终止条件,则回到在线计算阶段,继续执行算法迭代;如果达到终止条件,则合并已经秘密共享的图数据,揭露图算法执行的结果。
本节将介绍本申请的具体实现方案,即对前述联邦图计算执行流程中的关键步骤进行具体阐释。 首先介绍预处理阶段如下:
预处理 – 重组织向量及生成关联随机数
本申请所给出的联邦图计算框架中所运用的两个关键协议是隐私保护的向量元素映射协议和向量元素预聚合协议。向量元素映射协议用于对节点向量、边向量、更新向量做变换,以支持向量化的Scatter计算(第一运算可以是Scatter计算)和Gather计算(即第二运算可以是Gather计算);向量元素预聚合协议用于对更新向量中目标节点相同的更新变量进行合并,从而降低Gather计算的开销。这里仅对二者做功能性介绍。
隐私保护的向量元素映射协议的输入分为两部分:1. 在两个参与方之间秘密共享的旧向量;2. 其中一个参与方掌握的映射关系。其计算目标是基于秘密共享的旧向量和映射关系构造一个同样为秘密共享的新向量,其中映射关系将新向量中的一个元素的索引映射到旧向量中的一个索引,该元素的明文值应该与旧向量中的对应元素相等。隐私保护指计算过程不能公开新旧向量中任意元素的明文值,也不能泄露其中一个参与方所掌握的映射关系给另一个参与方,两参与方通过交互的中间数据所获取的唯一信息是新旧向量的长度(元素个数)。
向量元素映射协议的执行分为预处理阶段和在线计算阶段,预处理阶段为在线计算阶段准备关联随机数,在线计算结合关联随机数进行计算,无需密码学操作,且具有较小的传输开销。前述联邦图计算执行流程图中的生成关联随机数的目的即执行向量元素映射协议的预处理阶段,为在线计算中所涉及的各种向量元素映射操作做准备。向量元素映射协议的预处理和在线计算复杂度均线性于新旧向量的长度(元素个数)。
隐私保护的向量元素预聚合协议的输入分为两部分:1. 在两个参与方之间秘密共享的更新向量;2. 其中一个参与方掌握的更新向量中每个元素的目标节点索引。其计算目标是合并目标节点索引相同的所有更新变量为单个更新变量,即完成向量元素预聚合操作。输出的预聚合后的向量也应为秘密共享状态,其中存放有聚合值的元素的索引为其中一个参与方掌握(即掌握了元素目标节点索引的参与方)。隐私保护的要求指的是,计算过程不能公开原向量和预聚合之后的向量的任意元素的明文值,也不能将其中一个参与方掌握的目标节点索引信息泄露给另一个参与方,双方通过交互过程获取的唯一信息是向量的长度(元素个数)。
向量元素预聚合协议的执行同样分为预处理阶段和在线计算阶段。预处理阶段将计算更新向量所需的边向量和节点向量重组织(排序和插入冗余边)为特定的形式,并基于此生成掩码向量,以支持在线计算;在线计算可并行度高(支持向量元素层次的并行),且具有线性复杂度(线性于向量的长度)。前述联邦图计算执行流程图中的重组织向量的目的即执行向量元素预聚合协议的预处理阶段,为在线阶段做准备。
预处理 – 秘密共享图数据:
在该阶段,任意参与方将其掌握的节点向量和边向量均拆分成两方秘密共享的形式,分享给其他参与方。特别地,如图2-3所示,为所掌握的子图节点向量,在预处理阶段,所有其余参与方接收到相同的秘密碎片,即;为所掌握的子图内部边向量,仅参与方收到秘密碎片;为和之间的跨子图边向量,仅参与方收到秘密碎片。
图2-4是在线计算阶段中每个参与方涉及的计算流程的示意图,该流程的说明如下:
秘密共享的输入:在线计算由若干轮算法迭代组成,其中每一轮迭代的输入均为秘密共享的图数据。如图2-4所示,第一节点向量和第一边向量分别为第一参与方所持有的子图内部的节点向量和边向量,跨子图的边向量为第一参与方第二参与方和的子图之间的跨子图的边向量。
准备边向量的源节点向量:调用隐私保护的向量元素映射协议,将节点向量转换为和边向量中所存储的源节点索引顺序一致的源节点向量。在图2-4中,用表示向量元素映射协议,表示协议中使用的映射关系,表示源节点向量。需要注意的是,第一源节点向量对应第一边向量的源节点索引,由第一参与方和第三参与方合作执行向量元素映射协议生成;第二源节点向量对应跨子图的边向量的源节点索引,由第一参与方和第二参与方合作执行向量元素映射协议生成。
向量化的Scatter计算:在得到了分别和与等长的与之后,将()与()的对应元素执行第一运算,例如Scatter计算,得到第二边向量()及对目标节点的更新向量即第一更新向量()。在图2-4中,用表示Scatter计算,该计算是图算法特定的,本申请不做限定。其中第二边向量,第一更新向量的获取由第一参与方和第三参与方协作完成,第三边向量,第三更新向量的获取由第一参与方和第二参与方协作完成。
预聚合更新向量:和()调用隐私保护的向量元素预聚合协议对第一更新向量(第三更新向量)进行预聚合,得到第一聚合向量(第二聚合向量)。在图2-4中,用表示向量元素预聚合协议,用表示第一参与方所提供的掩码向量集合。在()中,用实线矩形框表示聚合后的更新变量存放的位置。
准备节点向量的更新向量:预聚合后的更新向量需要先变换为和目标节点向量(即待更新的节点向量)一致的顺序,之后才能进行第二运算,第二运算可以是向量化的Gather计算(和向量化的Scatter计算类似)。在本框架中,该操作同样通过隐私保护的向量元素映射协议完成。需要注意的是,前面计算中得到的后续用于更新参与方的向量,其映射关系应该由提供,因此没有呈现在图中;而相应的,在图中呈现了,该向量后续会用于更新的向量。用表示本阶段用到的映射关系,用和分别表示映射后的第二更新向量和第二向量。
向量化的Gather计算:该计算分为两步完成:1. 第一参与方和第三参与方对第二更新向量和第一节点向量执行向量化的Gather计算,得到第一向量;2.第一参与方和第二参与方对第二向量和第一向量执行向量化的Gather计算,得到第一节点向量的更新向量。最终作为本轮算法迭代得到的更新后的节点向量。在图中,用表示Gather计算,该计算同样是图算法特定的。
需要注意的是,在多方场景中,由于每个参与方和其他任意参与方之间都可能存在跨子图的边,因此上述向量化的Gather计算中的第2步可能发生于任意两个参与方之间。由于输入均以秘密共享的形式存在,为了避免复杂的数据同步或使用昂贵的多方(超过两方)安全计算技术,可采用Gather计算委托机制,如图2-5所示:
上述中,预处理阶段的大多数计算均基于明文完成,相比密码学操作具有较小的开销,因此预处理阶段的主要开销来源是生成关联随机数时的同态加密计算开销,该开销的量级决定于图中边向量、节点向量的规模(长度)以及向量元素映射协议的预处理部分的复杂度,而本框架所调用的向量元素映射协议的预处理开销本身是线性复杂度的,这使得本框架的预处理阶段也具有线性复杂度;对于在线计算阶段,我们注意到向量元素映射协议的在线计算并不涉及密码学操作,其开销可以忽略,因此在线计算的开销主要来源有三部分,即向量化的Scatter操作,Gather操作以及向量元素预聚合的在线阶段。向量化的Scatter操作和Gather操作显然具有线性复杂度,而本框架所使用的向量元素预聚合的在线阶段也具有线性复杂度,因此联邦图计算的在线计算阶段整体也具有线性复杂度(线性于图规模,即边向量和节点向量的长度)。
本申请提供的联邦图计算方法,具有以下效果:
本申请的核心在于依托硬件无关的密码学技术实现一套通用且高效的联邦图计算框架,可支持任意参与方数量。总体来看,本申请采用以节点为中心的GAS模型(Gather,Apply,Scatter)抽象各种图算法,在每一对参与方之间秘密共享各自的子图数据,利用各参与方掌握的子图拓扑信息设计基于秘密共享的安全多方计算协议,实现对GAS模型各阶段的高效计算,最终保证整体计算和传输复杂度线性于全局图规模)。在本申请下,任意数量参与方的联邦图计算任务均被转换为两方安全多方计算问题。本申请能保证半诚实(semi-honest)和无共谋(honest majority)假设下的密码学可证明安全。
本申请作为硬件无关的通用联邦图计算框架,为不同的图联邦场景(即各种图算法、不同参与方数量)提供了统一高效的联邦计算解决方案。具体地,本申请相比现有技术具有以下优势:
1.线性复杂度。本申请基于两个重要子协议(即隐私保护的向量元素映射和向量元素预聚合)设计联邦图计算方案,使得所给出的联邦图计算框架的计算和传输复杂度线性于全局图规模(即边的数量和节点的数量),且常数较小,这意味着较小的密码学操作计算开销和传输开销,对大规模图数据的联邦计算的可行性具有重要意义。相比之下,直接应用硬件无关的外包图计算技术解决联邦图计算问题的复杂度仅仅是拟线性于全局图规模,对大规模图的可扩展性差。
2.可支持各种图算法的联邦计算。相比现有的联邦图神经网络计算技术,本申请不局限于单一的图算法计算场景,可以很容易地集成与支持新的图算法的联邦计算,因此在图算法支持性上具有通用性。
3.可支持任意参与方数量。本申请支持对任意数量参与方提供的子图进行拼接,并进一步基于此进行联邦图计算,不限定参与方的数量,因此在联邦参与方数量上具有通用性。
4.隐私保护性可证明。在假设所使用的同态加密、两方安全计算、隐私求交等计算后端安全的前提下,本申请对联邦图计算过程的隐私保护性为可证明安全。具体而言,本申请仅仅泄露各子图的节点数量和边数量,不泄露其他任何子图信息。在半诚实和无共谋的假设下,本申请能从密码学理论上保证不通过参与方之间交互的中间数据泄露各自的子图数据隐私,在强隐私保护的前提下完成联邦图计算。
5.端到端的联邦图计算流程定义。本申请首个定义了硬件无关的端到端的联邦图计算协作与计算流程,完整涵盖了联邦图计算的数据输入、预处理、在线计算和终止四大阶段。
线性复杂度带来的较小计算和传输开销使得本申请具有良好的联邦计算性能;支持各种图算法和任意的参与方数量使得本申请具有通用性;隐私保护性可证明使得本申请具有高安全性和隐私保护性;端到端的联邦图计算流程定义则使得本申请成为首个完整高效的、硬件无关的创新联邦图计算框架。
如图3所示,本申请实施例还提供一种联邦图计算装置,应用于第一参与方,联邦图计算系统包括多个参与方,每个参与方持有图结构中的一部分子图,所述装置300包括:
第一获取模块301,用于获取所述第一参与方持有的子图的第一节点向量和第一边向量;
第二获取模块302,用于对所述第一节点向量依据所述第一边向量进行转换,获得第一源节点向量,所述第一源节点向量中节点的索引顺序与所述第一边向量的源节点索引顺序相同;
第一运算模块303,用于基于所述第一边向量和所述第一源节点向量执行预设的第一运算,获得第二边向量和第一更新向量,所述第一更新向量是对所述第二边向量中目标节点的更新向量;
第二运算模块304,用于基于所述第二边向量和所述第一更新向量执行预设的第二运算,获得所述第一节点向量的更新向量。
可选地,所述第二运算模块304,包括:
预聚合子模块,用于对所述第一更新向量中的元素进行预聚合处理,将所述第一更新向量中目标节点索引相同的所有更新变量合并为单个更新变量,获得第一聚合向量;
第一排序子模块,用于根据所述第一节点向量中各节点的顺序,对所述第一聚合向量中的元素进行排序,获得第二更新向量,所述第二更新向量中目标节点的顺序与所述第一节点向量中各节点的顺序相同;
第一获取子模块,用于基于所述第二更新向量和所述第一节点向量执行所述第二运算,获得所述第一节点向量的更新向量。
可选地,第一获取子模块,包括:
第一获取单元,用于与第三参与方联合基于所述第二更新向量和所述第一节点向量执行所述第二运算,获得第一向量,所述第三参与方为所述多个参与方中排序在所述第一参与方之后且与所述第一参与方相邻的参与方;
第二获取单元,用于基于所述第一向量和第二向量执行所述第二运算,获得所述第一节点向量的更新向量,其中,所述第二向量由所述第二参与方提供,所述第二参与方持有的子图与所述第一参与方持有的子图之间具有跨子图的边。
可选地,所述第二获取单元,包括:
第一获取子单元,用于与第二参与方联合基于所述第一向量和第二向量执行所述第二运算,获得所述第一节点向量的更新向量;
或者,
第二获取子单元,用于将所述第一向量和所述第二向量发送给第四参与方,由所述第四参与方代理所述第一参与方执行所述第二运算,获得所述第一节点向量的更新向量,所述第四参与方是所述多个参与方中不同于所述第一参与方和所述第二参与方的参与方。
可选地,所述装置第二发送模块,用于还包括:
第三获取模块,用于获取所述第一参与方持有的子图与第二参与方持有的子图之间的跨子图的跨子图边向量;
第四获取模块,用于根据所述跨子图边向量中的源节点向量,获得第二源节点向量,所述第二源节点向量中节点的索引顺序与所述跨子图边向量的源节点索引顺序相同;
第五获取模块,用于基于所述跨子图边向量和所述第二源节点向量执行所述第一运算,获得第三边向量和第三更新向量,所述第三更新向量是对所述第三边向量中目标节点进行更新的更新向量;
预聚合模块,用于对所述第三更新向量中的元素进行预聚合处理,将所述第三更新向量中目标节点索引相同的所有更新变量合并为单个更新变量,获得第二聚合向量,所述第二聚合向量用于提供给所述第二参与方执行所述第二运算。
可选地,第一获取模块301,包括:
读取子模块,用于读取所述第一参与方持有的第一子图的数据;
共享子模块,用于与所述多个参与方中的第五参与方建立信道,生成同态加密密钥对,并共享公钥给所述第五参与方,所述第五参与方为所述多个参与方中除所述第一参与方之外的其他参与方;
第二获取子模块,用于获取所述第一子图的初始节点向量;
第二排序子模块,用于对所述初始节点向量中各节点按照每个节点的入度进行降序排序,获得第一节点向量;
第三获取子模块,用于为所述子图中入度不为0的节点插入冗余边,获得初始边向量,其中,所述初始边向量中入度不为0的每个节点的入度为2次幂,所述初始边向量中目标节点相同的边位于相邻位置,
第三排序子模块,用于将所述初始边向量中相同的目标节点视为一组,并以组为单位根据目标节点的入度从大到小或从小到大进行组排序,获得第一边向量,所述第一边向量中目标节点的顺序与目标节点在所述第一节点向量中的顺序相同。
可选地,所述装置第二发送模块,用于还包括:
第一确定模块,用于根据所述第一节点向量确定所述第一节点向量的第一碎片和第二碎片;
第二确定模块,用于获取所述第一参与方持有的子图与第二参与方持有的子图之间的跨子图的跨子图边向量;
第三确定模块,用于根据所述跨子图边向量确定所述跨子图边向量的第五碎片和第六碎片;
第一发送模块,用于将所述第一碎片存储在所述第一参与方中,并将所述第二碎片发送给所述多个参与方中除所述第一参与方之外的其他参与方;
第二发送模块,用于将所述第三碎片存储在所述第一参与方中,并将所述第四碎片发送给第三参与方,其中,所述第三参与方为所述多个参与方中排序在所述第一参与方之后且与所述第一参与方相邻的参与方;
第三发送模块,用于将所述第五碎片存储在所述第一参与方中,并将所述第六碎片发送给第二参与方。
可选地,所述装置第二发送模块,用于还包括:
迭代模块,用于若当前迭代次数小于预设次数,则执行所述基于所述第一边向量和所述第一源节点向量执行预设的第一运算,获得第二边向量和第一更新向量的步骤,直到当前迭代次数大于或等于预设次数;
合并模块,用于若当前迭代次数大于或等于所述预设次数,则从各参与方获得秘密共享的图数据,并合并获取到的图数据,获得运算执行结果。
本申请实施例提供的联邦图计算装置能够实现前述第一参与方执行的联邦图计算方法实施例实现的各个过程,并达到相同的技术效果,为避免重复,这里不再赘述。
图4示出了本申请实施例提供的联邦图计算方法的硬件结构示意图。
在电子设备可以包括处理器601以及存储有计算机程序指令的存储器602。
具体地,上述处理器601可以包括中央处理器(CPU),或者特定集成电路(Application Specific Integrated Circuit ,ASIC),或者可以被配置成实施本申请实施例的一个或多个集成电路。
存储器602可以包括用于数据或指令的大容量存储器。举例来说而非限制,存储器602可包括硬盘驱动器(Hard Disk Drive,HDD)、软盘驱动器、闪存、光盘、磁光盘、磁带或通用串行总线(Universal Serial Bus,USB)驱动器或者两个或更多个以上这些的组合。在合适的情况下,存储器602可包括可移除或不可移除(或固定)的介质。在合适的情况下,存储器602可在综合网关容灾设备的内部或外部。在特定实施例中,存储器602是非易失性固态存储器。
存储器可包括只读存储器(ROM),随机存取存储器(RAM),磁盘存储介质设备,光存储介质设备,闪存设备,电气、光学或其他物理/有形的存储器存储设备。因此,通常,存储器包括一个或多个编码有包括计算机可执行指令的软件的有形(非暂态)计算机可读存储介质(例如,存储器设备),并且当该软件被执行(例如,由一个或多个处理器)时,其可操作来执行参考根据本公开的第一方面的方法所描述的操作。
处理器601通过读取并执行存储器602中存储的计算机程序指令,以实现上述实施例中的任意一种联邦图计算方法。
另外,结合上述实施例中的联邦图计算方法,本申请实施例可提供一种计算机可读存储介质来实现。该计算机可读存储介质上存储有计算机程序指令;该计算机程序指令被处理器执行时实现上述实施例中的任意一种联邦图计算方法。
需要明确的是,本申请并不局限于上文所描述并在图中示出的特定配置和处理。为了简明起见,这里省略了对已知方法的详细描述。在上述实施例中,描述和示出了若干具体的步骤作为示例。但是,本申请的方法过程并不限于所描述和示出的具体步骤,本领域的技术人员可以在领会本申请的精神后,作出各种改变、修改和添加,或者改变步骤之间的顺序。
以上所述的结构框图中所示的功能块可以实现为硬件、软件、固件或者它们的组合。当以硬件方式实现时,其可以例如是电子电路、专用集成电路(ASIC)、适当的固件、插件、功能卡等等。当以软件方式实现时,本申请的元素是被用于执行所需任务的程序或者代码段。程序或者代码段可以存储在机器可读介质中,或者通过载波中携带的数据信号在传输介质或者通信链路上传送。“机器可读介质”可以包括能够存储或传输信息的任何介质。机器可读介质的例子包括电子电路、半导体存储器设备、ROM、闪存、可擦除ROM(EROM)、软盘、CD-ROM、光盘、硬盘、光纤介质、射频(RF)链路,等等。代码段可以经由诸如因特网、内联网等的计算机网络被下载。
还需要说明的是,本申请中提及的示例性实施例,基于一系列的步骤或者装置描述一些方法或系统。但是,本申请不局限于上述步骤的顺序,也就是说,可以按照实施例中提及的顺序执行步骤,也可以不同于实施例中的顺序,或者若干步骤同时执行。
上面参考根据本公开的实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本公开的各方面。应当理解,流程图和/或框图中的每个方框以及流程图和/或框图中各方框的组合可以由计算机程序指令实现。这些计算机程序指令可被提供给通用计算机、专用计算机、或其它可编程数据处理装置的处理器,以产生一种机器,使得经由计算机或其它可编程数据处理装置的处理器执行的这些指令使能对流程图和/或框图的一个或多个方框中指定的功能/动作的实现。这种处理器可以是但不限于是通用处理器、专用处理器、特殊应用处理器或者现场可编程逻辑电路。还可理解,框图和/或流程图中的每个方框以及框图和/或流程图中的方框的组合,也可以由执行指定的功能或动作的专用硬件来实现,或可由专用硬件和计算机指令的组合来实现。以上所述,仅为本申请的具体实施方式,所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系统、模块和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。应理解,本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本申请的保护范围之内。
Claims (9)
1.一种联邦图计算方法,其特征在于,应用于第一参与方,联邦图计算系统包括多个参与方,每个参与方持有图结构中的一部分子图,所述方法包括:
获取所述第一参与方持有的子图的第一节点向量和第一边向量;
对所述第一节点向量依据所述第一边向量进行转换,获得第一源节点向量,所述第一源节点向量中节点的索引顺序与所述第一边向量的源节点索引顺序相同;
基于所述第一边向量和所述第一源节点向量执行预设的第一运算,获得第二边向量和第一更新向量,所述第一更新向量是对所述第二边向量中目标节点的更新向量;
基于所述第二边向量和所述第一更新向量执行预设的第二运算,获得所述第一节点向量的更新向量;
所述方法还包括:
获取所述第一参与方持有的子图与第二参与方持有的子图之间的跨子图的跨子图边向量;
根据所述跨子图边向量中的源节点向量,获得第二源节点向量,所述第二源节点向量中节点的索引顺序与所述跨子图边向量的源节点索引顺序相同;
基于所述跨子图边向量和所述第二源节点向量执行所述第一运算,获得第三边向量和第三更新向量,所述第三更新向量是对所述第三边向量中目标节点进行更新的更新向量;
对所述第三更新向量中的元素进行预聚合处理,将所述第三更新向量中目标节点索引相同的所有更新变量合并为单个更新变量,获得第二聚合向量,所述第二聚合向量用于提供给所述第二参与方执行所述第二运算。
2.根据权利要求1所述的方法,其特征在于,所述基于所述第二边向量和所述第一更新向量执行预设的第二运算,获得所述第一节点向量的更新向量的步骤,包括:
对所述第一更新向量中的元素进行预聚合处理,将所述第一更新向量中目标节点索引相同的所有更新变量合并为单个更新变量,获得第一聚合向量;
根据所述第一节点向量中各节点的顺序,对所述第一聚合向量中的元素进行排序,获得第二更新向量,所述第二更新向量中目标节点的顺序与所述第一节点向量中各节点的顺序相同;
基于所述第二更新向量和所述第一节点向量执行所述第二运算,获得所述第一节点向量的更新向量。
3.根据权利要求2所述的方法,其特征在于,基于所述第二更新向量和所述第一节点向量执行所述第二运算,获得所述第一节点向量的更新向量,包括:
与第三参与方联合基于所述第二更新向量和所述第一节点向量执行所述第二运算,获得第一向量,所述第三参与方为所述多个参与方中排序在所述第一参与方之后且与所述第一参与方相邻的参与方;
基于所述第一向量和第二向量执行所述第二运算,获得所述第一节点向量的更新向量,其中,所述第二向量由第二参与方提供,所述第二参与方持有的子图与所述第一参与方持有的子图之间具有跨子图的边。
4.根据权利要求3所述的方法,其特征在于,所述基于所述第一向量和第二向量执行所述第二运算,获得所述第一节点向量的更新向量,包括:
与第二参与方联合基于所述第一向量和第二向量执行所述第二运算,获得所述第一节点向量的更新向量;
或者,
将所述第一向量和所述第二向量发送给第四参与方,由所述第四参与方代理所述第一参与方执行所述第二运算,获得所述第一节点向量的更新向量,所述第四参与方是所述多个参与方中不同于所述第一参与方和所述第二参与方的参与方。
5.根据权利要求1所述的方法,其特征在于,所述获取所述第一参与方持有的子图的第一节点向量和第一边向量,包括:
读取所述第一参与方持有的第一子图的数据;
与所述多个参与方中的第五参与方建立信道,生成同态加密密钥对,并共享公钥给所述第五参与方,所述第五参与方为所述多个参与方中除所述第一参与方之外的其他参与方;
获取所述第一子图的初始节点向量;
对所述初始节点向量中各节点按照每个节点的入度进行降序排序,获得第一节点向量;
为所述子图中入度不为0的节点插入冗余边,获得初始边向量,其中,所述初始边向量中入度不为0的每个节点的入度为2次幂,所述初始边向量中目标节点相同的边位于相邻位置,
将所述初始边向量中相同的目标节点视为一组,并以组为单位根据目标节点的入度从大到小或从小到大进行组排序,获得第一边向量,所述第一边向量中目标节点的顺序与目标节点在所述第一节点向量中的顺序相同。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
根据所述第一节点向量确定所述第一节点向量的第一碎片和第二碎片;
根据所述第一边向量确定所述第一边向量的第三碎片和第四碎片;
获取所述第一参与方持有的子图与第二参与方持有的子图之间的跨子图的跨子图边向量;
根据所述跨子图边向量确定所述跨子图边向量的第五碎片和第六碎片;
将所述第一碎片存储在所述第一参与方中,并将所述第二碎片发送给所述多个参与方中除所述第一参与方之外的其他参与方;
将所述第三碎片存储在所述第一参与方中,并将所述第四碎片发送给第三参与方,其中,所述第三参与方为所述多个参与方中排序在所述第一参与方之后且与所述第一参与方相邻的参与方;
将所述第五碎片存储在所述第一参与方中,并将所述第六碎片发送给第二参与方。
7.根据权利要求1所述的方法,其特征在于,所述基于所述第二边向量和所述第一更新向量执行预设的第二运算,获得所述第一节点向量的更新向量之后,所述方法还包括:
若当前迭代次数小于预设次数,则执行所述基于所述第一边向量和所述第一源节点向量执行预设的第一运算,获得第二边向量和第一更新向量的步骤,直到当前迭代次数大于或等于预设次数;
若当前迭代次数大于或等于所述预设次数,则从各参与方获得秘密共享的图数据,并合并获取到的图数据,获得运算执行结果。
8.一种联邦图计算装置,其特征在于,应用于第一参与方,联邦图计算系统包括多个参与方,每个参与方持有图结构中的一部分子图,所述装置包括:
第一获取模块,用于获取所述第一参与方持有的子图的第一节点向量和第一边向量;
第二获取模块,用于对所述第一节点向量依据所述第一边向量进行转换,获得第一源节点向量,所述第一源节点向量中节点的索引顺序与所述第一边向量的源节点索引顺序相同;
第一运算模块,用于基于所述第一边向量和所述第一源节点向量执行预设的第一运算,获得第二边向量和第一更新向量,所述第一更新向量是对所述第二边向量中目标节点的更新向量;
第二运算模块,用于基于所述第二边向量和所述第一更新向量执行预设的第二运算,获得所述第一节点向量的更新向量;
所述装置还包括:
第三获取模块,用于获取所述第一参与方持有的子图与第二参与方持有的子图之间的跨子图的跨子图边向量;
第四获取模块,用于根据所述跨子图边向量中的源节点向量,获得第二源节点向量,所述第二源节点向量中节点的索引顺序与所述跨子图边向量的源节点索引顺序相同;
第五获取模块,用于基于所述跨子图边向量和所述第二源节点向量执行所述第一运算,获得第三边向量和第三更新向量,所述第三更新向量是对所述第三边向量中目标节点进行更新的更新向量;
预聚合模块,用于对所述第三更新向量中的元素进行预聚合处理,将所述第三更新向量中目标节点索引相同的所有更新变量合并为单个更新变量,获得第二聚合向量,所述第二聚合向量用于提供给所述第二参与方执行所述第二运算。
9.一种电子设备,其特征在于,所述设备包括:处理器以及存储有计算机程序指令的存储器,所述处理器执行所述计算机程序指令时实现如权利要求1-7中任意一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310404070.2A CN116186782B (zh) | 2023-04-17 | 2023-04-17 | 联邦图计算方法、装置及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310404070.2A CN116186782B (zh) | 2023-04-17 | 2023-04-17 | 联邦图计算方法、装置及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116186782A CN116186782A (zh) | 2023-05-30 |
CN116186782B true CN116186782B (zh) | 2023-07-14 |
Family
ID=86434720
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310404070.2A Active CN116186782B (zh) | 2023-04-17 | 2023-04-17 | 联邦图计算方法、装置及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116186782B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116527824B (zh) * | 2023-07-03 | 2023-08-25 | 北京数牍科技有限公司 | 图卷积神经网络训练方法、装置及设备 |
CN116633704B (zh) * | 2023-07-25 | 2023-10-31 | 北京数牍科技有限公司 | 图计算方法和装置 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11836576B2 (en) * | 2018-04-13 | 2023-12-05 | International Business Machines Corporation | Distributed machine learning at edge nodes |
CN113011603A (zh) * | 2021-03-17 | 2021-06-22 | 深圳前海微众银行股份有限公司 | 模型参数更新方法、装置、设备、存储介质及程序产品 |
CN113361658B (zh) * | 2021-07-15 | 2022-06-14 | 支付宝(杭州)信息技术有限公司 | 一种基于隐私保护的图模型训练方法、装置及设备 |
CN113656802B (zh) * | 2021-07-19 | 2024-05-14 | 同盾科技有限公司 | 基于知识联邦无向图联邦环检测方法、系统、设备和介质 |
CN115344753A (zh) * | 2022-08-17 | 2022-11-15 | 中国建设银行股份有限公司 | 联邦图计算方法、联邦图计算配置方法、装置及电子设备 |
-
2023
- 2023-04-17 CN CN202310404070.2A patent/CN116186782B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN116186782A (zh) | 2023-05-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN116186782B (zh) | 联邦图计算方法、装置及电子设备 | |
Wang et al. | Authenticated garbling and efficient maliciously secure two-party computation | |
CN109617699A (zh) | 一种密钥生成方法、区块链网络服务平台及存储介质 | |
CN110971390A (zh) | 一种用于智能合约隐私保护的全同态加密方法 | |
CN110224808A (zh) | 基于区块链的银行数据共享方法及相关设备 | |
CN116204909B (zh) | 向量元素映射方法、电子设备及计算机可读存储介质 | |
CN116150810B (zh) | 向量元素预聚合方法、电子设备及计算机可读存储介质 | |
WO2020199785A1 (zh) | 私有数据的处理方法、计算方法及所适用的设备 | |
CN112784823B (zh) | 人脸图像识别方法、装置、计算设备和介质 | |
CN110149323A (zh) | 一种具有千万级tps合约处理能力的处理装置 | |
Tang et al. | Pile: Robust privacy-preserving federated learning via verifiable perturbations | |
CN114255037A (zh) | 隐私保护下的多方联合排序方法和数据处理方法 | |
Wolfe et al. | Secret sharing MPC on FPGAs in the datacenter | |
Shi | Quantum sealed-bid auction without a trusted third party | |
CN116527824B (zh) | 图卷积神经网络训练方法、装置及设备 | |
CN117171779B (zh) | 基于交集保护的数据处理装置 | |
CN107196918A (zh) | 一种匹配数据的方法和装置 | |
Wang et al. | zkfl: Zero-knowledge proof-based gradient aggregation for federated learning | |
Wei et al. | Efficient multi-party private set intersection protocols for large participants and small sets | |
Peng et al. | A novel quantum scheme for secure two-party distance computation | |
LaVigne et al. | Topology-hiding computation for networks with unknown delays | |
CN115085918B (zh) | 安全认证方法、装置、电子设备及计算机存储介质 | |
EP3696670A1 (en) | Distributed computation system and method of operation thereof | |
Mishra | Cloud of Things and Blockchain Integration: Architecture, Applications, and Challenges | |
CN116633704B (zh) | 图计算方法和装置 |
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 |