A data processing method and device, computer equipment and readable storage medium

CN116975017BActive Publication Date: 2026-09-22TENCENT TECHNOLOGY (SHENZHEN) CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202310581602.X
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2023-05-22
Publication Date
2026-09-22
Estimated Expiration
2043-05-22

AI Technical Summary

Technical Problem

[0003]然而,第一业务样本标识和第二业务样本标识可能为隐私数据(例如,手机号),直接使用隐私数据(例如,手机号)生成决策树的过程不可避免地会暴露这些隐私数据(例如,将第一参与方的第一业务样本标识暴露至第二参与方),从而降低了纵向联邦学习算法的参与方所拥有的数据的安全性

Benefits of technology

[0060]由此可见,本申请实施例可以无需获取第一业务样本标识和第二业务样本标识之间的交集业务样本标识,而是获取指示第一业务样本标识针对第二业务样本标识的交集状态的第一布尔交集向量,以及指示第二业务样本标识针对第一业务样本标识的交集状态的第二布尔交集向量,其中,第一布尔交集向量和第二布尔交集向量均是以分片的方式保存在第一参与方和第二参与方,从而可以无需直接对第一业务样本标识和第二业务样本标识进行比较,保证第一业务样本标识和第二业务样本标识的安全性。进一步地,若待划分业务特征属于第二业务样本标识对应的业务特征,则本申请实施例可以通过第一随机布尔划分分片和第一同步布尔划分分片来表示基于待划分业务特征所生成的第一特征布尔划分向量,第一特征布尔划分向量可以表示针对待划分业务特征的划分方式。这样,第一参与方可以持有第一同步布尔划分分片,第二参与方可以持有第一随机布尔划分分片,从而可以保证第一参与方在无法直接获取到待划分业务特征和待划分业务特征的划分方式时,第一参与方和第二参与方可以同步对第一决策树和第二决策树进行划分,得到第一决策树和第二决策树中的子节点,从而可以在实现通过收敛后的第一决策树和收敛后的第二决策树共同对业务数据进行业务处理的同时,提高第一参与方和第二参与方所分别拥有的数据的安全性。

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN116975017B_ABST
    Figure CN116975017B_ABST
Patent Text Reader

Abstract

Embodiments of the present application provide a data processing method and device, computer equipment and a readable storage medium. The method comprises: obtaining a partition gain of Q service features for a first decision tree of a first participant, and determining a service feature corresponding to an optimal partition gain in the partition gain as a to-be-partitioned service feature; if the to-be-partitioned service feature belongs to a service feature corresponding to a second service sample identifier, obtaining a first synchronous Boolean partition slice for the to-be-partitioned service feature; wherein the first synchronous Boolean partition slice is obtained by synchronously partitioning a first random Boolean partition slice in a second participant and a first feature Boolean partition vector generated based on the to-be-partitioned service feature through an inadvertent programmable pseudo-random function. By using the present application, the security of data owned by the participants can be improved.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the field of Internet technology, and in particular to a data processing method, apparatus, computer equipment, and readable storage medium. Background Technology

[0002] The vertical federated learning algorithm obtains the first business sample identifier of the first participant and the second business sample identifier of the second participant. It directly compares the first and second business sample identifiers (for example, the first participant sends the first business sample identifier to the second participant, and the second participant compares the first and second business sample identifiers) to generate the intersection business sample identifier between the first and second business sample identifiers. Then, based on the business features of the intersection business sample identifiers in the first and second participants, it determines the optimal splitting result for the first and second business features, and generates a decision tree for business processing of business data based on the optimal splitting result.

[0003] However, the first business sample identifier and the second business sample identifier may be private data (e.g., mobile phone numbers). The process of directly using private data (e.g., mobile phone numbers) to generate a decision tree will inevitably expose this private data (e.g., exposing the first business sample identifier of the first participant to the second participant), thereby reducing the security of the data owned by the participants in the longitudinal federated learning algorithm. Summary of the Invention

[0004] This application provides a data processing method, apparatus, computer equipment, and readable storage medium, which can improve the security of data owned by participating parties.

[0005] This application provides a data processing method, executed by a first participant in vertical federated learning, comprising:

[0006] Obtain the partitioning gains of Q business features for the nodes to be partitioned in the first decision tree of the first participant, and determine the business feature corresponding to the optimal partitioning gain among the partitioning gains as the business feature to be partitioned; the Q business features are the business features jointly included by the first business sample identifier of the first participant and the second business sample identifier of the second participant participating in the vertical federated learning; Q is a positive integer greater than 1;

[0007] If the business feature to be segmented belongs to the business feature corresponding to the second business sample identifier, then the first synchronous Boolean partitioning segment for the business feature to be segmented is obtained; the first synchronous Boolean partitioning segment and the first random Boolean partitioning segment held by the second participant are used together to perform Boolean partitioning on the first Boolean intersection vector to obtain the first partitioning result; the first partitioning result is used to determine the child nodes of the node to be segmented in the first decision tree; the first Boolean intersection vector is used to indicate the intersection state of the first business sample identifier with respect to the second business sample identifier;

[0008] The first synchronous Boolean partitioning is obtained by using an unintentionally programmable pseudo-random function to synchronize the first random Boolean partitioning in the second participant with the first feature Boolean partitioning vector generated based on the business features to be partitioned. The first feature Boolean partitioning vector is used to perform Boolean partitioning on the second Boolean intersection vector to obtain the second partitioning result. The second Boolean intersection vector is used to indicate the intersection state of the second business sample identifier with respect to the first business sample identifier. The second partitioning result is used to determine the child nodes of the second decision tree of the second participant. The converged first decision tree and the converged second decision tree are used together to process the business data.

[0009] One embodiment of this application provides a data processing apparatus, which operates on a first participant in vertical federated learning, including:

[0010] The feature determination module is used to obtain the partitioning gains of Q business features for the nodes to be partitioned in the first decision tree of the first participant, and determine the business feature corresponding to the optimal partitioning gain among the partitioning gains as the business feature to be partitioned; the Q business features are the business features jointly included by the first business sample identifier of the first participant and the second business sample identifier of the second participant participating in the vertical federated learning; Q is a positive integer greater than 1.

[0011] The first acquisition module is used to acquire a first synchronous Boolean partitioning segment for the business feature to be partitioned if the business feature to be partitioned belongs to the business feature corresponding to the second business sample identifier; the first synchronous Boolean partitioning segment and the first random Boolean partitioning segment held by the second participant are used together to perform Boolean partitioning on the first Boolean intersection vector to obtain a first partitioning result; the first partitioning result is used to determine the child nodes of the node to be partitioned in the first decision tree; the first Boolean intersection vector is used to indicate the intersection state of the first business sample identifier with respect to the second business sample identifier;

[0012] The first synchronous Boolean partitioning is obtained by using an unintentionally programmable pseudo-random function to synchronize the first random Boolean partitioning in the second participant with the first feature Boolean partitioning vector generated based on the business features to be partitioned. The first feature Boolean partitioning vector is used to perform Boolean partitioning on the second Boolean intersection vector to obtain the second partitioning result. The second Boolean intersection vector is used to indicate the intersection state of the second business sample identifier with respect to the first business sample identifier. The second partitioning result is used to determine the child nodes of the second decision tree of the second participant. The converged first decision tree and the converged second decision tree are used together to process the business data.

[0013] The second acquisition module is used to perform a cuckoo hash mapping on the first business sample identifier of the first participant to obtain the first hash table corresponding to the first business sample identifier.

[0014] The second acquisition module is used to acquire a first Boolean intersection fragment associated with the first hash table and the second hash table; the first hash table and the second hash table are used to perform hash table matching through an unintentionally programmable pseudo-random function to generate the first Boolean intersection fragment and the second Boolean intersection fragment held by the second participant; the first Boolean intersection fragment and the second Boolean intersection fragment are fragments of the first Boolean intersection vector; the second hash table is obtained by the second participant in the vertical federated learning performing a hash mapping on the second business sample identifier of the second participant.

[0015] The first hash table and the second hash table have the same hash table dimension; the first hash table includes a first hash mapping bucket, and the second hash table includes a second hash mapping bucket with the same hash table dimension as the first hash mapping bucket;

[0016] Wherein, if the first hash mapping bucket includes the first business sample identifier, the first random number corresponding to the first business sample identifier in the first hash mapping bucket is obtained by randomly processing the first business sample identifier in the first hash mapping bucket based on an unintentionally programmable pseudo-random function;

[0017] Wherein, if the second hash mapping bucket includes the second business sample identifier, the second random number corresponding to the second business sample identifier in the second hash mapping bucket is obtained by randomly processing the second business sample identifier in the second hash mapping bucket based on an unintentionally programmable pseudo-random function; the first random number and the second random number are used to perform random number matching between the first participant and the second participant to generate the first Boolean intersection parameter corresponding to the first hash mapping bucket and the second Boolean intersection parameter corresponding to the second hash mapping bucket; the first Boolean intersection parameter and the second Boolean intersection parameter are the fragments of the merged Boolean intersection parameter; the merged Boolean intersection parameter is used to indicate the Boolean matching result of the first hash mapping bucket and the second hash mapping bucket; the first Boolean intersection parameter corresponding to each hash table dimension in the first hash table is used to form the first Boolean intersection fragment corresponding to the first business sample identifier, and the second Boolean intersection parameter corresponding to each hash table dimension in the second hash table is used to form the second Boolean intersection fragment corresponding to the first business sample identifier.

[0018] Among them, the Q business features include the Q1 business features of the first business sample identifier and the Q2 business features of the second business sample identifier; Q1 is a positive integer less than Q, Q2 is a positive integer less than Q, and the sum of Q1 and Q2 equals Q;

[0019] The feature determination module includes:

[0020] The first determining unit is used to obtain the first stochastic gradient parameter for each of the Q1 business features, and based on the first stochastic gradient parameter and the first blinding gradient parameter of each of the Q1 business features, determine the partitioning gain of each of the Q1 business features for the node to be partitioned in the first decision tree of the first participant; the first blinding gradient parameter is held by the second participant for each of the Q1 business features.

[0021] The second determining unit is used to obtain the second blinding gradient parameter for each of the Q2 business features, and based on the second blinding gradient parameter and the second stochastic gradient parameter of each of the Q2 business features, determine the partitioning gain of each of the Q2 business features for the node to be partitioned in the first decision tree of the first participant; the second stochastic gradient parameter is held by the second participant for each of the Q2 business features.

[0022] The feature determination unit is used to obtain the optimal partitioning gain from the information gains corresponding to the Q1 business features and the information gains corresponding to the Q2 business features, and to determine the business features corresponding to the optimal partitioning gain as the business features to be partitioned.

[0023] Among them, Q1 business characteristics include business characteristic Sd d is a positive integer less than or equal to Q1;

[0024] The feature determination module also includes:

[0025] The first interaction unit is used to obtain the first gradient fragment corresponding to the first Boolean intersection vector and receive the homomorphically encrypted second gradient fragment sent by the second participant. The homomorphically encrypted second gradient fragment is generated by the second participant encrypting the second gradient fragment corresponding to the first Boolean intersection vector. The first gradient fragment and the second gradient fragment are fragments of the first gradient vector. The first gradient vector is used to characterize the sample gradient of the first business sample identifier.

[0026] The first interaction unit is used to homomorphically add the first gradient slice and the homomorphically encrypted second gradient slice to generate the homomorphically added first gradient vector.

[0027] The first interaction unit is used to obtain the business feature S corresponding to the first business sample identifier. d , will business feature S d The feature data is mapped to the first feature vector that matches the first Boolean intersection vector;

[0028] The first interaction unit is used to divide the feature data in the first feature vector into intervals and generate a feature S for business features. d The Boolean vector that divides the interval;

[0029] The first interaction unit is used to determine the business characteristic S. d The Boolean vector that divides the interval is used to perform homomorphic summation on the first gradient vector after homomorphic addition, to generate a vector tailored to the business feature S. d The business gradient parameters after homomorphic summation;

[0030] The first interaction unit is used to generate data for business feature S. d The first stochastic gradient parameter, based on the business feature S d The first stochastic gradient parameter, for business feature S d The business gradient parameters after homomorphic summation are blinded to generate a model tailored to business features S. d The blinded encryption of the business gradient parameters will be targeted at business feature S. d The blinded and encrypted business gradient parameters are sent to the second participant; the second participant is used to analyze the business feature S. d The blinded encryption of the business gradient parameters is decrypted to generate a value for business feature S. d The blinded business gradient parameters; the second participant is also used to target business feature S d The blinded business gradient parameters are determined for business feature S.d The first blinded gradient parameter.

[0031] Among them, Q2 business characteristics include business characteristic S e e is a positive integer less than or equal to Q2;

[0032] The second interaction unit is used to encrypt the third gradient slice corresponding to the second Boolean intersection vector and generate the homomorphically encrypted third gradient slice.

[0033] The second interaction unit is used to send the homomorphically encrypted third gradient fragment to the second participant; the second participant is used to homomorphically add the fourth gradient fragment corresponding to the second Boolean intersection vector and the homomorphically encrypted second gradient fragment to generate the homomorphically added second gradient vector; the second participant is also used to divide the feature data in the second feature vector that matches the second Boolean intersection vector into intervals to generate a feature vector S for business features. e The first feature vector is the Boolean vector that divides the intervals; the second feature vector is the business feature S corresponding to the second business sample identifier. e The feature data is obtained through mapping; the second participant also uses it to determine the business feature S. e The Boolean vector for dividing the interval is used to perform homomorphic summation on the second gradient vector obtained by homomorphic addition, to generate a vector for business feature S. e The business gradient parameters are obtained by homomorphic summation; the third and fourth gradient slices are slices of the second gradient vector; the second gradient vector is used to characterize the sample gradient of the second business sample identifier;

[0034] The second interaction unit is used to receive information about business characteristics S sent by the second participant. e The blinded encryption of the business gradient parameters, for business feature S e The blinded encryption of the business gradient parameters is decrypted to generate a value for business feature S. e The blinded business gradient parameters will be tailored to business feature S. e The blinded business gradient parameters are determined for business feature S. e The second blinding gradient parameter; for business feature S e The blinded encryption of the business gradient parameters is determined by the second participant based on the business characteristics S. e The second stochastic gradient parameter, for business feature S e The business gradient parameters generated by homomorphically summing are then blinded.

[0035] The device also includes:

[0036] The vector determination module is used to obtain the partitioning Boolean vector of the partitioning interval for the business feature to be partitioned if the business feature to be partitioned belongs to the business feature corresponding to the first business sample identifier, and determine the partitioning Boolean vector of the partitioning interval for the business feature to be partitioned as the second feature Boolean partitioning vector generated based on the business feature to be partitioned.

[0037] Specifically, the unintentionally programmable pseudo-random function, the second random Boolean partitioning segment, and the second feature Boolean partitioning vector are used to generate the second synchronous Boolean partitioning segment for the business features to be partitioned; the second synchronous Boolean partitioning segment and the second random Boolean partitioning segment are used together to perform Boolean partitioning on the second Boolean intersection vector to obtain the third partitioning result; the third partitioning result is used to determine the child nodes of the second decision tree; the second feature Boolean partitioning vector is used to perform Boolean partitioning on the first Boolean intersection vector to obtain the fourth partitioning result; the fourth partitioning result is used to determine the child nodes of the node to be partitioned.

[0038] The device also includes:

[0039] The set generation module is used to perform a first inverse mapping on the second feature Boolean partition vector to obtain an inverse mapping Boolean vector associated with the number of first business sample identifiers;

[0040] The set generation module is used to perform a second inverse mapping on the inverse mapping Boolean vector to obtain a set of inverse mapping Boolean vectors associated with the number of the second Boolean intersection vectors;

[0041] The set generation module is used to generate a second random Boolean partition for the inverse mapping Boolean vector set, and to perform an XOR operation on the second random Boolean partition and the inverse mapping Boolean vector set to generate an XOR Boolean vector set associated with the number of the second Boolean intersection vectors.

[0042] Among them, the inadvertently programmable pseudo-random function, the XOR Boolean vector set, the third hash table, and the fourth hash table are used to generate the second synchronous Boolean partitioning fragments for the business characteristics to be partitioned; the third hash table is obtained by the second participant performing a cuckoo hash mapping on the second business sample identifier; and the fourth hash table is obtained by the first participant performing a hash mapping on the first business sample identifier.

[0043] The second random Boolean partition and the inverse mapping Boolean vector set have the same dimension; the second random Boolean partition includes random Boolean parameters, and the inverse mapping Boolean vector set includes inverse mapping Boolean vectors with the same dimension as the random Boolean parameters.

[0044] The set generation module is specifically used to perform XOR processing on the random Boolean parameters in the second random Boolean partition and the inverse mapping Boolean parameters in the inverse mapping Boolean vector of the inverse mapping Boolean vector set, generating XOR Boolean parameters corresponding to the inverse mapping Boolean parameters; the XOR Boolean parameters corresponding to each inverse mapping Boolean parameter in the inverse mapping Boolean vector are used to construct the XOR Boolean vector corresponding to the inverse mapping Boolean vector; the XOR Boolean vectors corresponding to the inverse mapping Boolean vectors of each dimension in the inverse mapping Boolean vector set are used to construct the XOR Boolean vector set associated with the number of the second Boolean intersection vectors.

[0045] The third and fourth hash tables have the same hash table dimension. The third hash table includes a third hash mapping bucket, and the fourth hash table includes a fourth hash mapping bucket with the same hash table dimension as the third hash mapping bucket. An inadvertently programmable pseudo-random function is used to obtain XOR Boolean vectors that match the third and fourth hash mapping buckets from the XOR Boolean vector set. If the fourth hash mapping bucket includes a first business sample identifier, the inadvertently programmable pseudo-random function is used to perform relational combination on the first business sample identifier in the fourth hash mapping bucket and the XOR Boolean parameter in the XOR Boolean vector to generate a combined data pair associated with the first business sample identifier in the fourth hash mapping bucket and the XOR Boolean parameter in the XOR Boolean vector. If the third hash mapping bucket includes a second business sample identifier, the inadvertently programmable pseudo-random function is used to perform data matching on the third hash mapping bucket and the combined data pair to generate synchronous Boolean parameters for the business features to be partitioned. The synchronous Boolean parameters are used to construct a second synchronous Boolean partitioning shard for the business features to be partitioned.

[0046] The first partitioning result includes the first node Boolean partition, the second node Boolean partition, the third node Boolean partition, and the fourth node Boolean partition;

[0047] The device also includes:

[0048] The third acquisition module is used to acquire the first node Boolean partition of the first child node of the node to be partitioned in the first decision tree, and the second node Boolean partition of the second child node of the node to be partitioned; the first node Boolean partition and the third node Boolean partition held by the second participant are partitions of the first node Boolean vector; the second node Boolean partition and the fourth node Boolean partition held by the second participant are partitions of the second node Boolean vector; the first node Boolean vector is used to represent the partitioning state of the first child node obtained by the node to be partitioned, and the second node Boolean vector is used to represent the partitioning state of the second child node obtained by the node to be partitioned.

[0049] The device also includes:

[0050] The fourth acquisition module is used to acquire the first node gradient slice of the first child node and the second node gradient slice of the second child node; the first node gradient slice and the third node gradient slice held by the second participant are slices of the first node gradient vector; the second node gradient slice and the fourth node gradient slice held by the second participant are slices of the second node gradient vector; the first node gradient vector is used to represent the sample gradient of the first child node, and the second node gradient vector is used to represent the sample gradient of the second child node;

[0051] The gradient partitioning of the first node and the gradient partitioning of the third node are both obtained by partitioning the first gradient partitioning and the second gradient partitioning by the Boolean vector of the first node; the gradient partitioning of the second node and the gradient partitioning of the fourth node are both obtained by partitioning the first gradient partitioning and the second gradient partitioning by the Boolean vector of the second node.

[0052] The device also includes:

[0053] The weight update module is used to obtain the node gradient partition and node Boolean partition of the leaf nodes in the converged first decision tree when the first decision tree converges.

[0054] The weight update module is used to determine the first child node weight partition of a leaf node based on the node gradient partition and node boolean partition of the leaf node; the first child node weight partition and the second child node weight partition held by the second participant are partitions of the child node weight vector; the child node weight vector is used to characterize the weight parameters of the leaf node.

[0055] The first child node weight shard is used to update the first cumulative sample prediction shard of the first business sample identifier, and the second child node weight shard is used to update the second cumulative sample prediction shard of the first business sample identifier; the updated first cumulative sample prediction shard and the updated second cumulative sample prediction shard are used to generate the next decision tree of the first decision tree.

[0056] One embodiment of this application provides a computer device, including: a processor and a memory;

[0057] The processor is connected to a memory, which stores a computer program. When the computer program is executed by the processor, it causes the computer device to perform the method provided in the embodiments of this application.

[0058] One aspect of this application provides a computer-readable storage medium storing a computer program adapted to be loaded and executed by a processor, so that a computer device having the processor performs the method provided in this application.

[0059] One embodiment of this application provides a computer program product comprising a computer program stored in a computer-readable storage medium. A processor of a computer device reads the computer program from the computer-readable storage medium and executes the computer program, causing the computer device to perform the method provided in this application embodiment.

[0060] Therefore, this embodiment of the application can obtain a first Boolean intersection vector indicating the intersection state of the first business sample identifier with respect to the second business sample identifier, and a second Boolean intersection vector indicating the intersection state of the second business sample identifier with respect to the first business sample identifier, instead of obtaining the intersection business sample identifier between the first and second business sample identifiers. Both the first and second Boolean intersection vectors are stored in a fragmented manner by the first and second participants, respectively. This eliminates the need for direct comparison between the first and second business sample identifiers, ensuring their security. Furthermore, if the business feature to be divided belongs to the business feature corresponding to the second business sample identifier, this embodiment of the application can represent the first feature Boolean partition vector generated based on the business feature to be divided using a first random Boolean partition fragment and a first synchronous Boolean partition fragment. The first feature Boolean partition vector can represent the partitioning method for the business feature to be divided. In this way, the first participant can hold the first synchronous Boolean partition shard, and the second participant can hold the first random Boolean partition shard. This ensures that even when the first participant cannot directly obtain the business features to be partitioned and the partitioning method of the business features to be partitioned, the first and second participants can simultaneously partition the first and second decision trees to obtain the child nodes in the first and second decision trees. This improves the security of the data held by the first and second participants while enabling business data to be processed jointly through the converged first and second decision trees. Attached Figure Description

[0061] To more clearly illustrate the technical solutions in the embodiments or related technologies of this application, the accompanying drawings used in the description of the embodiments or related technologies will be briefly introduced below. Obviously, the accompanying drawings described below are only some embodiments of this application. For those skilled in the art, other drawings can be obtained based on these drawings without creative effort.

[0062] Figure 1 This is a schematic diagram of a network architecture provided in an embodiment of this application;

[0063] Figure 2 This is a schematic diagram of a data interaction scenario provided in an embodiment of this application;

[0064] Figure 3 This is a flowchart illustrating a data processing method provided in an embodiment of this application;

[0065] Figure 4 This is a schematic diagram illustrating a scenario for hash mapping provided in an embodiment of this application;

[0066] Figure 5 This is a schematic diagram of a scenario for federated training provided in an embodiment of this application;

[0067] Figure 6 This is a flowchart illustrating a data processing method provided in an embodiment of this application;

[0068] Figure 7 This is a schematic diagram of a synchronization vector scenario provided in an embodiment of this application;

[0069] Figure 8 This is a flowchart illustrating a data processing method provided in an embodiment of this application;

[0070] Figure 9 This is a schematic diagram of a stealth training process provided in an embodiment of this application;

[0071] Figure 10 This is a schematic diagram of the structure of a data processing device provided in an embodiment of this application;

[0072] Figure 11 This is a schematic diagram of the structure of a computer device provided in an embodiment of this application. Detailed Implementation

[0073] The technical solutions of the embodiments of this application will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only some embodiments of this application, and not all embodiments. Based on the embodiments of this application, all other embodiments obtained by those of ordinary skill in the art without creative effort are within the scope of protection of this application.

[0074] For details, please see Figure 1 , Figure 1 This is a schematic diagram of a network architecture provided in an embodiment of this application. Figure 1 As shown, the network architecture may include service server 2000, service server 5000, terminal device cluster 3000, and terminal device cluster 4000. Specifically, terminal device cluster 3000 may include one or more terminal devices; the number of terminal devices in terminal device cluster 3000 is not limited here. Figure 1As shown, the multiple terminal devices may specifically include terminal device 3000a, terminal device 3000b, terminal device 3000c, ..., terminal device 3000n; terminal device 3000a, terminal device 3000b, terminal device 3000c, ..., terminal device 3000n can be directly or indirectly connected to the business server 2000 via wired or wireless communication, so that each terminal device can interact with the business server 2000 through the network connection.

[0075] Specifically, the terminal device cluster 4000 may include one or more terminal devices; the number of terminal devices in the terminal device cluster 4000 will not be limited here. For example... Figure 1 As shown, the multiple terminal devices may specifically include terminal device 4000a, terminal device 4000b, terminal device 4000c, ..., terminal device 4000n; terminal device 4000a, terminal device 4000b, terminal device 4000c, ..., terminal device 4000n can be directly or indirectly connected to the business server 5000 via wired or wireless communication, so that each terminal device can interact with the business server 5000 through the network connection.

[0076] Each terminal device in terminal device clusters 3000 and 4000 can include: smartphones, tablets, laptops, desktop computers, intelligent voice interaction devices, smart home appliances (e.g., smart TVs), wearable devices, vehicle terminals, aircraft, and other intelligent terminals with data processing capabilities. For ease of understanding, embodiments of this application can... Figure 1 From the cluster of 3000 terminal devices shown, one terminal device is selected as the first terminal device. The first terminal device can be a terminal device participating in vertical federated learning (i.e., the first participant). Figure 1 From the terminal device cluster 4000 shown, one terminal device is selected as the second terminal device. The second terminal device can be a terminal device participating in vertical federated learning (i.e., a second participant). For example, in the embodiments of this application, a terminal device can be selected as the second terminal device. Figure 1 The terminal device 3000c shown is used as the first terminal device, and will Figure 1 The terminal device 4000n shown serves as the second terminal device. The first terminal device and the second terminal device can be directly or indirectly connected to the network via wired or wireless communication to facilitate data interaction.

[0077] Specifically, business server 2000 can be a standalone physical server, a server cluster or distributed system composed of multiple physical servers, or a cloud server providing basic cloud computing services such as cloud services, cloud databases, cloud computing, cloud functions, cloud storage, network services, cloud communication, middleware services, domain name services, security services, CDN (Content Delivery Network), and big data and artificial intelligence platforms. Business server 5000 can also be a standalone physical server, a server cluster or distributed system composed of multiple physical servers, or a cloud server providing basic cloud computing services such as cloud services, cloud databases, cloud computing, cloud functions, cloud storage, network services, cloud communication, middleware services, domain name services, security services, CDN, and big data and artificial intelligence platforms.

[0078] In this embodiment, the first terminal device can obtain a first service sample identifier and feature data of a first service feature specific to the first service sample identifier from the service server 2000. The first service sample identifier can be an identifier (Identity Document, ID) that uniquely identifies a sample in the first terminal device. The second terminal device can obtain a second service sample identifier and feature data of a second service feature specific to the second service sample identifier from the service server 5000. The second service sample identifier can be an identifier that uniquely identifies a sample in the second terminal device. For ease of understanding, this embodiment uses the example of the first terminal device being the tag holder (i.e., the first terminal device may also include a service tag of the first service sample identifier) ​​and the second terminal device being a non-tag holder. In this embodiment, the tag holder can be referred to as Guest, and the non-tag holder as Host. Guest has a tag and feature data, and Host has feature data. Furthermore, the number of second terminal devices can be one or more, that is, the number of second participants can be one or more.

[0079] Federated Learning (FL) is a privacy-preserving distributed machine learning technique that addresses the problem of how to collaboratively train a global model on virtually "aggregated" data when sensitive data is held by multiple independent institutions, groups, or individuals (e.g., first and second participants) while protecting data privacy. Federated Learning can be categorized into Vertical Federated Learning and Horizontal Federated Learning.

[0080] Vertical federated learning can include anonymous vertical federated learning. Anonymous vertical federated learning refers to training a vertical federated learning model without exposing the ID set after intersection. In other words, the sample alignment process is information-free, and feature data is used indiscriminately to train model parameters. In federated learning practice, the vertical federated XGBoost (eXtreme Gradient Boosting) algorithm (i.e., the anonymous vertical federated XGBoost training algorithm) is the most widely used federated machine learning algorithm (i.e., the vertical federated learning model training algorithm). XGBoost is an enhanced version of gradient boosting decision trees. XGBoost uses classification trees or regression trees as the base classifier, offering higher scalability and faster, more efficient performance.

[0081] SMPC (Secure Multi-party Computation) is a technique for securely solving a global problem when a secret is distributed among multiple parties (e.g., a first party and a second party). SS (Secret Sharing) works by distributing the secret among the parties, each receiving a portion of the secret, known as a share. Only when a certain number of parties aggregate the shares can the secret be recovered.

[0082] Secret sharing can include arithmetic secret sharing and Boolean secret sharing. Secret sharing can be used to generate secret slices, arithmetic secret sharing can be used to generate arithmetic slices, and Boolean secret sharing can be used to generate Boolean slices. Arithmetic secret sharing: This involves sharing the integer ring Z... p (p(i.e. 2) λ () is the modulus, for example, p equals 2 128 (i.e., modulo 2) 128 Adding ), indicates that the maximum value of the integer is 2. 128 -1, at this time, the addition operation refers to Z. p The addition and subtraction operations on the Z-axis refer to the Z-axis. p The number x in the subtraction problem is split into two parts (i.e., arithmetic parts). and It is held by two parties, namely Similarly, it can be seen that Arithmetic piecewise partitioning has an additive homomorphism, i.e. Boolean Secret Sharing: Splitting a Boolean value x into two parts (i.e., Boolean partitioning) based on XOR. and It is held by two parties, namely In other words, if the random number is secretly shared using XOR, the result is called a Boolean slice; if it is secretly shared using arithmetic addition, the result is called an arithmetic slice. Boolean slices and arithmetic slices can be collectively referred to as secret slices (or simply slices).

[0083] It should be understood that, for the first participant (i.e., P0) and the second participant (i.e., P1), the embodiments of this application can use <·> to represent fragmentation, where the fragment superscript A represents an arithmetic fragment, the fragment superscript B represents a Boolean fragment, the fragment subscript 0 indicates that the fragment is held by the first participant, and the fragment subscript 1 indicates that the fragment is held by the second participant; when the fragment subscript is omitted, it indicates that both the first and second participants need to perform the calculation. In other words, <x> A This represents an arithmetic partition of x, where each participant has a random value, and these two random values ​​are in Z. p The addition on is x; <x> B This represents a Boolean partition of x, where each of the two participating parties has a random bit, and the XOR of these two random bits is x.

[0084] Multi-party secure computation operators: (1) Two-party piecewise addition (ADD), here using " <x> A + <y> A "Indicates: Input <x> A and <y> A Output<x+y> A (2) Partial multiplication (MUL), here we use " <x> A · <y> A "Indicates: Input <x> A and <y> A Output<x·y> A If the input is two matrix partitions, this is also represented as element-wise multiplication, that is, multiplying the partition elements of the same row and column of the two matrices to obtain a matrix partition of the same size. (3) Two-way partition division (DIV), here using " <x> A / <y> A "Indicates: Input <x> A and <y> A Output <x y> A (4) Compare the two-part segments, here using "( <x> A , <y> A ")" indicates: Input <x> A and <y> A Output<x≤y> B That is, if x ≤ y is true, output 1; otherwise, output 0. <x> A and v, output<x≤v> B If x≤v is true, output 1; otherwise, output 0. (5) Maximum value of two-sided partition (MAX), here we use "Max( <x> A ")" means: Input a set of numbers <x> A Output the index / subscript of the largest number in this sequence. A (6) AND operation on both sides, here we use "AND ( <x> B , <y> B ")" indicates: Input <x> B and <y> B Output<x&y> B Another way is to input <x> B and y, output<x&y> B When x and y are vectors, it means that the components are ANDed. (7) Two-way piecewise XOR, here we use "XOR( <x> B , <y> B ")" indicates: Input <x> B and <y> B Output<x⊕y> B (8) Multiplex (two-way selection), here we use "MUX" <x> B , <y> A ")" indicates: Input <x> B and <y> A Output<x·y> A That is, if x = 0, output the y corresponding to the slice; otherwise, output 0 corresponding to the slice. When both x and y are vectors, it means that the component performs multiplexing. When x is a vector and y is a scalar, it means that each element of x and y performs multiplexing. (9) Two-way slice subtraction (SUB), here we use " <x> A - <y> A "Indicates: Input <x> A and <y> A Output <x-y> A (10) Two-sided Sigmoid: Input <x> A Output<sigmoid(x)> A Here, Sigmoid(x) = 1 / (1+exp(-x)).

[0085] Understandably, the aforementioned network framework can be applied to various business scenarios, including finance (e.g., improving credit risk control), healthcare (e.g., multinational medical research), autonomous driving (e.g., improving the driving experience), and multimedia data recommendation (e.g., video recommendation). For example, in the healthcare context, rare diseases are frequently encountered in medical research. Currently, practical difficulties exist, such as samples being scattered across different hospitals, which significantly hinders diagnosis and treatment. Vertical federated learning can integrate samples from different hospitals, enabling the diagnosis and treatment of rare diseases. In the financial context, for example, credit risk control for micro and small enterprises can utilize federated transfer learning. This leverages existing models from previous applications by financial institutions (e.g., credit models for medium and large enterprises or marketing models for micro and small enterprises) to improve application effectiveness. In the autonomous driving scenario, the interaction between the vehicle and its system environment can be learned, supplemented by other urban information (e.g., city cameras, traffic lights, and future smart roads). Vertical federation can better integrate information from different sources while protecting privacy, improving the autonomous driving experience. Finally, in the multimedia data recommendation scenario, data from different platforms can interact and learn, thereby improving the accuracy of multimedia data recommendations.

[0086] For better understanding, please refer to [link / reference]. Figure 2 , Figure 2 This is a schematic diagram illustrating a data interaction scenario provided in an embodiment of this application. For example... Figure 2 The terminal device 20a shown can be the above-mentioned Figure 1 The first participant in the corresponding embodiment, such as Figure 2 The terminal device 20b shown can be the one described above. Figure 1 In the corresponding embodiment, the second participant, the first participant, and the second participant can jointly participate in vertical federated learning. Terminal device 20a may include a first service sample identifier and feature data of the first service sample identifier in a first service feature, while terminal device 20b may include a second service sample identifier and feature data of the second service sample identifier in a second service feature.

[0087] like Figure 2 As shown, terminal device 20a can acquire a first Boolean intersection fragment corresponding to a first service sample identifier and a third Boolean intersection fragment corresponding to a second service sample identifier. Terminal device 20b can acquire a second Boolean intersection fragment corresponding to a first service sample identifier and a fourth Boolean intersection fragment corresponding to a second service sample identifier. The first and second Boolean intersection fragments are fragments of a first Boolean intersection vector, which indicates the intersection state of the first service sample identifier with respect to the second service sample identifier. The third and fourth Boolean intersection fragments are fragments of a second Boolean intersection vector, which indicates the intersection state of the second service sample identifier with respect to the first service sample identifier.

[0088] Here, the first and second Boolean intersection vectors represent whether a business sample identifier is in the intersection after the intersection is calculated; that is, whether a business sample identifier belongs to the intersection business sample identifiers. Therefore, the first and second Boolean intersection slices represent whether the first business sample identifier is in the secret sharing state of the intersection business sample identifiers, and the third and fourth Boolean intersection slices represent whether the second business sample identifier is in the secret sharing state of the intersection business sample identifiers. This achieves automatic filtering of non-matching feature data during training, meaning that the update of model parameters only depends on the feature data corresponding to the matching ID (i.e., the intersection business sample identifier), and the contribution of the feature data corresponding to the non-matching ID (business sample identifiers other than the intersection business sample identifier among the first and second business sample identifiers) is zero.

[0089] like Figure 2 The first and second business sample identifiers shown together include Q business features belonging to different business dimensions. Thus, terminal devices 20a and 20b can obtain the partitioning gain (i.e., information gain) of each of the Q business features for the node to be partitioned in the first decision tree of the first participant (or the node to be partitioned in the second decision tree of the second participant), and determine the business feature corresponding to the optimal partitioning gain (i.e., optimal information gain) as the business feature to be partitioned. The business feature to be partitioned can belong to either the first business feature (i.e., the business feature corresponding to the first business sample identifier) ​​or the second business feature (i.e., the business feature corresponding to the second business sample identifier).

[0090] like Figure 2 As shown, if the service feature to be divided belongs to the second service feature, then terminal device 20a can obtain the first synchronous Boolean partitioning segment for the service feature to be divided; terminal device 20b can obtain the first feature Boolean partitioning vector for the service feature to be divided, and randomly generate the first random Boolean partitioning segment. The first synchronous Boolean partitioning segment is obtained by using an unintentionally programmable pseudo-random function to synchronize the first random Boolean partitioning segment and the first feature Boolean partitioning vector.

[0091] like Figure 2 As shown, the first synchronous Boolean partition and the first random Boolean partition are used together to perform Boolean partitioning on the first Boolean intersection vector to obtain the first partitioning result. That is, the first synchronous Boolean partition and the first random Boolean partition are used together to perform Boolean partitioning on the first Boolean intersection vector and the second Boolean intersection vector to obtain the first partitioning result. The first characteristic Boolean partition vector is used to perform Boolean partitioning on the second Boolean intersection vector to obtain the second partitioning result. That is, the first characteristic Boolean partition vector is used to perform Boolean partitioning on the third Boolean intersection vector and the fourth Boolean intersection vector to obtain the second partitioning result.

[0092] Understandably, the first partitioning result can be used to determine the child nodes of the first decision tree, i.e., the child nodes of the node to be partitioned (i.e., the node to be partitioned in the first decision tree) within the first decision tree (e.g., the first child node and the second child node); the second partitioning result can be used to determine the child nodes of the second decision tree, i.e., the child nodes of the node to be partitioned (i.e., the node to be partitioned in the second decision tree) within the second decision tree (e.g., the third child node and the fourth child node). The child nodes in the first decision tree (i.e., the first child node) and the child nodes in the second decision tree (i.e., the third and fourth child nodes) are symmetrical; the business sample identifier contained in the first child node is the same as that contained in the third child node, and the business sample identifier contained in the second child node is the same as that contained in the fourth child node.

[0093] Optionally, if the service feature to be divided belongs to the first service feature, terminal device 20a can obtain a second feature Boolean partition vector for the service feature to be divided, and randomly generate a second random Boolean partition fragment; terminal device 20b can obtain a second synchronous Boolean partition fragment for the service feature to be divided. The second synchronous Boolean partition fragment is obtained by using an unintentionally programmable pseudo-random function to synchronize the partitioning of the second random Boolean partition fragment and the second feature Boolean partition vector. Further, the second synchronous Boolean partition fragment and the second random Boolean partition fragment are used together to perform Boolean partitioning on the second Boolean intersection vector to obtain a third partitioning result; that is, the second synchronous Boolean partition fragment and the second random Boolean partition fragment are used together to perform Boolean partitioning on the third Boolean intersection fragment and the fourth Boolean intersection fragment to obtain a third partitioning result; the second feature Boolean partition vector is used to perform Boolean partitioning on the first Boolean intersection vector to obtain a fourth partitioning result; that is, the second feature Boolean partition vector is used to perform Boolean partitioning on the first Boolean intersection fragment and the second Boolean intersection fragment to obtain a fourth partitioning result. Understandably, the third partitioning result can be used to determine the child nodes of the second decision tree, that is, the child nodes of the node to be partitioned (i.e., the node to be partitioned in the second decision tree) in the second decision tree; the fourth partitioning result can be used to determine the child nodes of the first decision tree, that is, the child nodes of the node to be partitioned (i.e., the node to be partitioned in the first decision tree) in the first decision tree.

[0094] The converged first and second decision trees are used together to process business data. For example, business data could be symptom information in a medical scenario. The converged first and second decision trees can process this symptom information, and the result can be auxiliary suggestions corresponding to the symptom information, which can be provided to doctors to help them diagnose and treat diseases. Similarly, business data could be vehicle driving data in an autonomous driving scenario. The converged first and second decision trees can process this vehicle driving data (e.g., vehicle driving status analysis), and the result can be the driving status corresponding to the vehicle driving data, thus enabling autonomous driving. Furthermore, business data could be operational data in a multimedia data recommendation scenario. The converged first and second decision trees can process this operational data (e.g., classification label recognition), and the result can be the classification label corresponding to the operational data, thus enabling multimedia data recommendations based on that classification label.

[0095] For ease of understanding, this application uses a multimedia data recommendation scenario as an example. For instance, the first and second business sample identifiers can be object identifiers (i.e., user identifiers). The first business feature can be the video business features of the object identifier in the video client (i.e., the first participant) (e.g., hobbies, video viewing time), and the second business feature can be the news business features of the object identifier in the news client (i.e., the second participant) (e.g., number of comments). By performing longitudinal federated learning on the feature data of the object identifier in the video client and the feature data in the news client, a converged first decision tree and a converged second decision tree can be generated. Thus, by inputting operation data containing video business features and news business features, classification labels for the business data can be determined, thereby achieving multimedia data recommendation for the business objects corresponding to the business data. In the specific embodiments of this application, the video business features and news business features involved, when applied to specific products or technologies, require user permission or consent, and the collection, use, and processing of related data must comply with the relevant laws, regulations, and standards of the relevant countries and regions.

[0096] Therefore, this embodiment of the application can synchronize the partitioning method (i.e., the first feature Boolean partition vector) of the business feature to be partitioned when it belongs to the second participant. In this way, the first participant can hold the first synchronized Boolean partitioning slice, and the second participant can hold the first random Boolean partitioning slice. This achieves synchronization of the partitioning methods of the first and second participants for the decision tree through the first random Boolean partitioning slice and the first synchronized Boolean partitioning slice. It is understood that the first feature Boolean partition vector, the first random Boolean partitioning slice, and the first synchronized Boolean partitioning slice can be used to partition the intersection state of the first business sample identifier and the second business sample identifier, obtaining the child nodes of the first and second decision trees. This eliminates the need for direct comparison of the first and second business sample identifiers, improving the security of the data held by the first and second participants respectively.

[0097] Further, please see Figure 3 , Figure 3 This is a flowchart illustrating a data processing method provided in an embodiment of this application. The method can be executed by a first terminal device (i.e., a first participant), by a second terminal device (i.e., a second participant), or by both the first and second terminal devices. The first terminal device can be one of the aforementioned... Figure 2 The terminal device 20a in the corresponding embodiment can be the second terminal device described above. Figure 2 The corresponding embodiment is terminal device 20b. For ease of understanding, this application embodiment is described using the method executed by a first terminal device as an example. The data processing method may include the following steps S101-S102:

[0098] Step S101: Obtain the partitioning gain of Q business features for the nodes to be partitioned in the first decision tree of the first participant, and determine the business feature corresponding to the optimal partitioning gain among the partitioning gains as the business feature to be partitioned.

[0099] Specifically, the first participant can obtain a first stochastic gradient parameter for each of the Q1 business features. Based on the first stochastic gradient parameter and the first blinding gradient parameter of each business feature, the first participant determines the partition gain (i.e., the partition gain for the second participant's second decision tree) for each of the Q1 business features, specifically for the node to be partitioned in the first participant's first decision tree. The first blinding gradient parameter is held by the second participant for each of the Q1 business features. Further, the first participant can obtain a second blinding gradient parameter for each of the Q2 business features. Based on the second blinding gradient parameter and the second stochastic gradient parameter of each business feature, the first participant determines the partition gain (i.e., the partition gain for the second participant's second decision tree) for each of the Q2 business features, specifically for the node to be partitioned in the first participant's first decision tree. The second stochastic gradient parameter is held by the second participant for each of the Q2 business features. Furthermore, the first participant can obtain the optimal partitioning gain from the information gains corresponding to the Q1 business features and the information gains corresponding to the Q2 business features, and determine the business features corresponding to the optimal partitioning gain as the business features to be partitioned.

[0100] The first business sample identifier and the second business sample identifier together include Q business features belonging to different business dimensions (i.e., the Q business features are the business features jointly included by the first business sample identifier of the first participant and the second business sample identifier of the second participant), where Q can be a positive integer greater than 1. The Q business features can include Q1 business features of the first business sample identifier (i.e., the number of first business features is Q1) and Q2 business features of the second business sample identifier (i.e., the number of second business features is Q2); where Q1 can be a positive integer less than Q, Q2 can be a positive integer less than Q, and the sum of Q1 and Q2 equals Q.

[0101] Specifically, the first participant can determine the first information gain slice of the node to be partitioned in the first decision tree for each of the Q1 business features based on the first stochastic gradient parameter for each of the Q1 business features; the second participant can determine the second information gain slice of the node to be partitioned in the first decision tree for each of the Q1 business features based on the first blinding gradient parameter for each of the Q1 business features. Similarly, the first participant can determine the first information gain slice of the node to be partitioned in the second decision tree for each of the Q2 business features based on the second blinding gradient parameter for each of the Q2 business features; the second participant can determine the second information gain slice of the node to be partitioned in the second decision tree for each of the Q2 business features based on the second stochastic gradient parameter for each of the Q2 business features. The first information gain slice owned by the first participant and the second information gain slice owned by the second participant can be used to determine the partitioning gain of each of the Q business features for the partitioning node of the first participant's first decision tree (i.e., the partitioning gain for the partitioning node of the second participant's second decision tree).

[0102] In other words, the first and second participants can determine the composition of the gradient based on the first stochastic gradient parameter, the first blinded gradient parameter, the second stochastic gradient parameter, and the second blinded gradient parameter (i.e., the arithmetic partitioning of the gradient histogram). <G k,v > A and <H k,v > A For each split point s of each business feature k,v Calculate the corresponding score (e.g., The algorithm first divides the data into arithmetic partitions (i.e., first information gain partitions and second information gain partitions), then determines the score (i.e., partition gain) based on the partitions, and further determines the optimal splitting feature and optimal splitting value (i.e., splitting point location and optimal splitting point) based on the partition gain. The calculation process for the optimal splitting feature and optimal splitting value does not disclose the first, second, third, and fourth gradient partitions, enhancing the privacy protection of the feature data. Therefore, it prevents any participant from inferring the distribution of another participant's feature data.

[0103] Among them, Q1 business characteristics include business characteristic S d Here, d can be a positive integer less than or equal to Q1. It should be understood that the first participant can obtain the first gradient slice corresponding to the first Boolean intersection vector and receive the homomorphically encrypted second gradient slice sent by the second participant. The homomorphically encrypted second gradient slice (i.e., (Enc( <g 0,i > A ),Enc( <h 0,i > A The second gradient partitioning (i.e., the partitioning of the first Boolean intersection vector by the second participant) is the second gradient partitioning of the first Boolean intersection vector by the second participant. <g 0,i > A , <h 0,i > A )or The first gradient slice and the second gradient slice are slices of the first gradient vector, which is used to represent the sample gradient of the first business sample identifier. Further, the first participant can process the first gradient slice (i.e.,...) <g 0,i > A , <h 0,i > A )or The first gradient vector (i.e., Enc(g)) is homomorphically added to the second gradient fragment after homomorphic encryption to generate the first gradient vector after homomorphic addition (i.e., Enc(g)). 0,i ) and Enc(h 0,i Furthermore, the first participant can obtain the business feature S corresponding to the first business sample identifier. d , will business feature S d The feature data is mapped to a first feature vector that matches the first Boolean intersection vector. Here, the first feature vector represents the mapping of business feature S. d The feature data are arranged in the order of the first Boolean intersection vector. Furthermore, the first participant can divide the feature data in the first feature vector into intervals to generate a feature S specific to the business. d The Boolean vector for dividing the interval (i.e., ss) k Furthermore, the first participant can, based on the business characteristics S d The Boolean vector that divides the interval is used to perform homomorphic summation on the first gradient vector after homomorphic addition, to generate a vector tailored to the business feature S. d The business gradient parameters after homomorphic summation ( and That is (G) k,v H k,v (corresponding ciphertext). Furthermore, the first participant can generate a ciphertext targeting business characteristics S. d The first stochastic gradient parameter (i.e. According to the business characteristics S d The first stochastic gradient parameter, for business feature S d The business gradient parameters after homomorphic summation are blinded to generate a model tailored to business features S. d The blinded encryption of the business gradient parameters will be targeted at business feature S. d The blinded and encrypted business gradient parameters are sent to the second participant. The second participant is used to analyze the business feature S. d The blinded encryption of the business gradient parameters is decrypted to generate a value for business feature S. d The blinded business gradient parameters (i.e., the blinded (G) k,v H k,v The second participant is also used to target business characteristics S d The blinded business gradient parameters are determined for business feature S. d The first blinded gradient parameter (i.e. Among them, the first participating party can, according to ( <g0> A , <h0> A (i.e., first gradient partitioning and second gradient partitioning) and ss k The gradient histogram slices of local features are computed, and the first stochastic gradient parameter and the first blinded gradient parameter can represent the gradient histogram slices. <G k,v > A and <H k,v > A .

[0104] It should be understood that the first participant can maintain the first decision tree, based on the first Boolean intersection vector (i.e. <q0> B ) and the first gradient vector (i.e. <g0> A and <h0> A Update the first decision tree. The first gradient vector can represent the sample gradient indicated by the first Boolean intersection vector.

[0105] The first participant and the second participant can calculate the first gradient vector (i.e., the first gradient shard and the second gradient shard) based on the first business tag vector. The first participant can hold the first gradient shard (i.e.,... and The second participant can hold the second-tier shard (i.e., and ).

[0106] Among them, for business characteristic S d The Boolean vector representing the partitioning intervals can be used to indicate which samples belong to the business feature S. d The division interval. In other words, for the k-th feature of the first participant (e.g., business feature S) d Based on l characteristic split points ({s) k,1 ,s k,2 ,…,s k,l }) and local features Calculate s k,v ≥x i,k >s k,1 This yields the Boolean vector ss. k (i.e., targeting business characteristic S) d The Boolean vector representing the partition interval indicates which samples are at the feature split point s. k,v The corresponding interval (s) k,1 ,s k,v In the middle, s k,l It can represent {s k,1 ,s k,2 ,…,s k,l The minimum value in}, {s k,1 ,s k,2 ,…,s k,l } can represent the l-th feature data of the k-th feature. Among the Q1 business features, different business features can have the same number of feature split points or different numbers of feature split points, which is not limited in this application.

[0107] Here, l feature split points indicate that the k-th feature can include l partition intervals, and each l partition interval includes partition intervals with less than or equal to l feature split points. For example, the first feature vector can be (1,2,3,0,0,5), and the business feature S obtained by partitioning the feature data in the first feature vector into intervals is... d The partitioning intervals can include (1,1], (1,2], (1,3], and (1,5]. The Boolean vector for partitioning interval (1,1] can be (1,0,0,0,0,0), for partitioning interval (1,2] it can be (1,1,0,0,0,0), for partitioning interval (1,3] it can be (1,1,1,0,0,0), and for partitioning interval (1,5] it can be (1,1,1,0,0,1). In this case, the feature data in the first feature vector can include 1 hour, 2 hours, 3 hours, and 5 hours. When the business characteristic is video viewing duration, the interval (1,2) can represent samples with a video viewing duration greater than 1 hour and less than or equal to 2 hours. The Boolean vector (1,1,0,0,0,0) can be used to indicate that the video viewing duration of the first sample is greater than 1 hour and less than or equal to 2 hours, and the video viewing duration of the second sample is greater than 1 hour and less than or equal to 2 hours. Optionally, in this embodiment, z feature splitting points can be selected from l feature splitting points to generate a partition interval for the z feature splitting points. Here, l can be a positive integer, and z can be a positive integer less than l.

[0108] Among them, for business characteristic S d The dimension of the Boolean vector used to divide the interval is the same as the dimension of the first gradient vector after homomorphic addition. Therefore, the first participant, based on the business feature S... d The specific process of performing homomorphic summation on the first gradient vector after homomorphic addition of the partitioned interval Boolean vector can be described as follows: The first participant can obtain the business feature S d The partitioning Boolean parameter (i.e., ss) in the partitioning Boolean vector of the partitioning interval. k,i If the partitioning Boolean parameter is true, then the homomorphic gradient parameters with the same dimension as the partitioning Boolean parameter in the first gradient vector after homomorphic summation are determined to participate in the homomorphic summation. Optionally, if the partitioning Boolean parameter is false, then the homomorphic gradient parameters with the same dimension as the partitioning Boolean parameter in the first gradient vector after homomorphic summation are determined not to participate in the homomorphic summation. Further, the first participant can perform homomorphic summation on the homomorphic gradient parameters participating in the homomorphic summation in the first gradient vector after homomorphic summation to obtain the result for the business feature S. d The business gradient parameters after homomorphic summation. For example, the first gradient vector after homomorphic summation can be (Enc(3),Enc(4),Enc(7)), where Enc represents the ciphertext. If the Boolean parameter is (1,0,0), the homomorphic gradient parameters participating in the homomorphic summation can include Enc(3), and the business gradient parameters after homomorphic summation can be Enc(3); if the Boolean parameter is (1,0,1), the homomorphic gradient parameters participating in the homomorphic summation can include Enc(3) and Enc(7), and the business gradient parameters after homomorphic summation can be Enc(3)+Enc(7)=Enc(10). In this embodiment of the application, the first gradient vector after homomorphic addition is encrypted data. Homomorphic summation can be used to sum the encrypted data (i.e., the homomorphic gradient parameters in the first gradient vector after homomorphic addition) to obtain the homomorphically summed business gradient parameters. At this time, the homomorphically summed business gradient parameters are ciphertext. The first participant cannot obtain the plaintext of the business gradient parameters, but obtains the ciphertext of the business gradient parameters (i.e., the homomorphically summed business gradient parameters).

[0109] Among them, Q2 business characteristics include business characteristic S e Here, e can be a positive integer less than or equal to Q2. It should be understood that the first participant can encrypt the third gradient slice corresponding to the second Boolean intersection vector to generate a homomorphically encrypted third gradient slice. Further, the first participant can send the homomorphically encrypted third gradient slice to the second participant. The second participant is used to homomorphically add the fourth gradient slice corresponding to the second Boolean intersection vector and the homomorphically encrypted second gradient slice to generate a homomorphically added second gradient vector; the second participant is also used to partition the feature data in the second feature vector matching the second Boolean intersection vector into intervals to generate a feature vector S specific to the business feature. e The first feature vector is the Boolean vector that divides the intervals; the second feature vector is the business feature S corresponding to the second business sample identifier. e The second feature vector is obtained by mapping the feature data, and it represents the business feature S. e The feature data is arranged in the order of the second Boolean intersection vector; the second participant is also used to determine the business feature S. e The Boolean vector for dividing the interval is used to perform homomorphic summation on the second gradient vector obtained by homomorphic addition, to generate a vector for business feature S. e The service gradient parameters are obtained by homomorphic summation; the third and fourth gradient slices are slices of the second gradient vector; the second gradient vector is used to characterize the sample gradient of the second service sample identifier. Further, the first participant can receive the service feature S sent by the second participant. e The blinded encryption of the business gradient parameters, for business feature S e The blinded encryption of the business gradient parameters is decrypted to generate a value for business feature S. e The blinded business gradient parameters will be tailored to business feature S. e The blinded business gradient parameters are determined for business feature S. e The second blinding gradient parameter. Wherein, for business feature S... e The blinded encryption of the business gradient parameters is determined by the second participant based on the business characteristics S. e The second stochastic gradient parameter, for business feature S e The business gradient parameters generated by homomorphically summing are then blinded. The second participant can then... <g1> A , <h1> A (i.e., third gradient partitioning and fourth gradient partitioning) and ss k The gradient histogram slices of local features are computed, and the second stochastic gradient parameter and the second blinding gradient parameter can represent the gradient histogram slices. <G k,v > A and <H k,v > A .

[0110] It should be understood that the second participant can maintain a second decision tree, based on the second Boolean intersection vector (i.e., <q1> B ) and the second gradient vector (i.e. <g1> A and <h1> A Update the second decision tree. The second gradient vector can represent the sample gradient indicated by the second Boolean intersection vector.

[0111] The first and second participants can calculate the second gradient vector (i.e., the third and fourth gradient shards) based on the first and second business tag shards. The first participant can hold the third gradient shard (i.e.,... and The second participant can hold the fourth-tier shard (i.e., and ).

[0112] Among them, for business characteristic S e The Boolean vector representing the partitioning intervals can be used to indicate which samples belong to the business feature S. e The division interval. In other words, for the k-th feature of the second participant (e.g., business feature S) e Based on l characteristic split points ({s) k,1 ,s k,2 ,…,s k,l }) and local features Calculate s k,v ≥x i,k >s k,1 This yields the Boolean vector ss. k (i.e., targeting business characteristic S) e The Boolean vector representing the partition interval indicates which samples are at the feature split point s. k,v The corresponding interval (s) k,1 ,s k,v In the middle, s k,1 It can represent {s k,1 ,s k,2 ,…,s k,l The minimum value in}, {s k,1 ,s k,2 ,…,s k,l } can represent the l-th feature data of the k-th feature. Among the Q2 business features, different business features can have the same number of feature split points or different numbers of feature split points, which is not limited in this application.

[0113] It is understandable that the first gradient vector and the second gradient vector are different, but they are equivalent, that is, the first gradient vector is the same as the second gradient vector. <g0> A Second gradient vector <g1> A They are equivalent, the first gradient vector. <h0> A Second gradient vector <h1> A They are equivalent. First gradient vector <g0> A The plaintext values ​​and second gradient vectors corresponding to the arithmetic fragments obtained after summation <f1> A The plaintext values ​​corresponding to the arithmetic fragments obtained after summation are the same, and the first gradient vector is... <h0> A The plaintext values ​​and second gradient vectors corresponding to the arithmetic fragments obtained after summation <h1> A The plaintext values ​​corresponding to the arithmetic fragments obtained after summation are the same.

[0114] Among them, homomorphic encryption (e.g., homomorphic addition, which can also be called homomorphic addition) means that the encryption algorithm has homomorphic properties. Homomorphic addition means that the encryption function performs an addition operation on the plaintext and then encrypts it. This is equivalent to performing the corresponding operation on the ciphertext after encryption. That is, after homomorphically adding two ciphertexts Enc(x) and Enc(y), we get the ciphertext Enc(x+y) (that is, the ciphertext corresponding to the plaintext (x+y)). Or, after homomorphically adding ciphertext Enc(x) and plaintext y, we get the ciphertext Enc(x+y) (that is, the ciphertext corresponding to the plaintext (x+y)). For example, plaintext y can be the first gradient slice, ciphertext Enc(x) can be the second gradient slice after homomorphic encryption (i.e., the second gradient slice encrypted by the encryption algorithm), and ciphertext Enc(x+y) can be the first gradient vector after homomorphic addition (representing the homomorphic addition of parameters of the same dimension in the first gradient slice and the second gradient slice after homomorphic encryption). Since the second gradient slice after homomorphic encryption is generated by the second participant through the encryption algorithm, the first participant cannot decrypt the second gradient slice after homomorphic encryption, nor can it decrypt the first gradient vector after homomorphic addition.

[0115] Therefore, in the embodiments of this application, homomorphic addition can represent adding parameters of the same dimension in two vectors of the same dimension to obtain a vector with the same dimension as the input data; in the embodiments of this application, homomorphic summation can be performed by dividing Boolean vectors to sum the parameters participating in homomorphic summation in the same vector to obtain a one-dimensional parameter.

[0116] It should be understood that the first gradient partition, second gradient partition, third gradient partition, and fourth gradient partition in the embodiments of this application can all include a first-order derivative gradient (i.e., g) and a second-order derivative gradient (i.e., h). The first-order derivative gradient can be the first derivative of the loss function, and the second-order derivative gradient can be the second derivative of the loss function. The embodiments of this application do not limit the specific form of the loss function. For example, the loss function can be the binary classification cross-entropy loss function: (Right now in, This indicates that when the loss function is cross-entropy loss, the first child node weight partition and the second child node weight partition need to execute the partitioning sigmoid function, where y can represent the label value. This can represent the predicted value, the first derivative gradient: Second derivative gradient: For example, the loss function can be squared loss: y can represent the label value. This can represent the predicted value, the first derivative gradient: Second derivative gradient:

[0117] in, x represents i The predicted value, where K represents the number of decision trees, x i y represents the vector formed by all feature data of the sample from both the first and second participants. i This represents the label value corresponding to the sample. It should be understood that, according to... and y i The sample gradient (i.e., g) for each sample can be determined. t,i and h t,i ), Represents the function l(y) i The first-order partial derivative of X) in The value at; Represents the function l(y) i The second-order partial derivative of (X) in The value at that location, It equals the sum of the predicted values ​​of the t-1 decision trees (i.e., the cumulative historical sample predicted values). At this point, the first decision tree and the second decision tree are the t-th decision tree.

[0118] Step S102: If the business feature to be divided belongs to the business feature corresponding to the second business sample identifier, then obtain the first synchronous Boolean partitioning fragment for the business feature to be divided.

[0119] The first synchronous Boolean partitioning slice and the first random Boolean partitioning slice held by the second participant are used together to perform Boolean partitioning on the first Boolean intersection vector to obtain the first partitioning result; the first partitioning result is used to determine the child nodes of the node to be partitioned in the first decision tree. The first synchronous Boolean partitioning slice (i.e....) ) is achieved by using an unintentionally programmable pseudo-random function to partition the first random Boolean segment of the second participant (i.e. The partitioning is synchronized with the first feature Boolean partition vector generated based on the business features to be partitioned (i.e., the second participant secretly shares the first feature Boolean partition vector with the first participant through an unintentionally programmable pseudo-random function; the first random Boolean partition and the first synchronized Boolean partition can be equivalent Boolean partitions corresponding to the first feature Boolean partition vector). <r> B ); wherein the first feature Boolean partition vector is configured to perform Boolean partitioning on the second Boolean intersection vector to obtain a second partitioning result; the second Boolean intersection vector is configured to indicate an intersection state of the second service sample identifier with respect to the first service sample identifier (that is, whether the feature data of the second participant is in the intersection), and the first Boolean intersection vector is configured to indicate an intersection state of the first service sample identifier with respect to the second service sample identifier (that is, whether the feature data of the first participant is in the intersection); the second partitioning result is configured to determine child nodes of a second decision tree of the second participant; and the converged first decision tree and the converged second decision tree are jointly configured to perform service processing on service data.

[0120] It should be understood that the specific process for the first participant to obtain the first Boolean intersection fragment may be described as follows: the first participant may perform Cuckoo hash mapping on first service sample identifiers to obtain a first hash table corresponding to the first service sample identifiers. Further, the first participant may obtain the first Boolean intersection fragment associated with the first hash table and a second hash table. The first hash table and the second hash table are configured to perform hash table matching through an oblivious programmable pseudorandom function to generate the first Boolean intersection fragment and a second Boolean intersection fragment held by the second participant, and the second hash table is obtained by performing hash mapping on second service sample identifiers of the second participant by the second participant participating in vertical federated learning. The first Boolean intersection fragment and the second Boolean intersection fragment held by the second participant participating in vertical federated learning are fragments of the first Boolean intersection vector, and the first Boolean intersection fragment and the second Boolean intersection fragment may be Boolean fragments indicating whether a sample of the first participant is in the intersection.

[0121] Wherein, Cuckoo Hash mapping (Cuckoo Hash) refers to a method of mapping m elements (namely service sample identifiers) to n positions through k hash functions (namely k hash functions), which requires that different elements are mapped to different positions. To put it simply, if the i-th element has been mapped to the s-th position under the action of the t-th (t<k) hash, and when the j-th (j>i) element is also mapped to the s-th position, a conflict occurs at the s-th position, then the j-th element is mapped to the s-th position, and the i-th element is re-mapped to a new position under the action of the (t+1)-th hash. If a position conflict occurs, this process is repeated.

[0122] In this embodiment, the hash mapping can be a simple hash mapping. A simple hash mapping (SimpleHash, or simply hash mapping) represents a method of mapping m elements (i.e., business sample identifiers) to n locations using k hashes (i.e., k hash functions). Location collisions are possible, meaning different elements can be mapped to the same location. Simple hash mapping allows different data to be mapped to the same location, and by using at least two hash functions to map the same data to at least two locations. This eliminates the need for additional processing (i.e., resolving hash collisions) when hash collisions occur, thus improving the efficiency of hash mapping. It should be understood that this embodiment does not limit the number of hash functions. For ease of understanding, this embodiment uses two hash functions as an example, meaning each business sample identifier can be mapped to two locations.

[0123] The first hash table and the second hash table have the same hash table dimension. The first hash table includes a first hash mapping bucket, and the second hash table includes a second hash mapping bucket with the same hash table dimension as the first hash mapping bucket. If the first hash mapping bucket includes a first business sample identifier, the first random number corresponding to the first business sample identifier in the first hash mapping bucket is obtained by randomly processing the first business sample identifier in the first hash mapping bucket using an unintentionally programmable pseudo-random function. Similarly, if the second hash mapping bucket includes a second business sample identifier, the second random number corresponding to the second business sample identifier in the second hash mapping bucket is obtained by randomly processing the second business sample identifier in the second hash mapping bucket using an unintentionally programmable pseudo-random function. Specifically, the first and second random numbers are used to perform random number matching between the first and second participants to generate the first Boolean intersection parameter corresponding to the first hash mapping bucket and the second Boolean intersection parameter corresponding to the second hash mapping bucket. The first and second Boolean intersection parameters are fragments of the merged Boolean intersection parameters, which are used to indicate the Boolean matching result of the first and second hash mapping buckets (i.e., the first and second Boolean intersection parameters can be fragments indicating whether the first business sample identifier is in the intersection). The third and fourth Boolean intersection fragments can be Boolean fragments indicating whether the sample of the second participant is in the intersection. The first Boolean intersection parameters corresponding to each hash table dimension in the first hash table are used to form the first Boolean intersection fragment corresponding to the first business sample identifier, and the second Boolean intersection parameters corresponding to each hash table dimension in the second hash table are used to form the second Boolean intersection fragment corresponding to the first business sample identifier.

[0124] It should be understood that an oblivious programmable pseudo-random function can be an OPPRF protocol. An OPPRF protocol represents a set of inputs X = {(x1,y1),(x2,y2),…,(x...}}. n ,y n )}, the other party inputs x, and after executing the protocol, the other party obtains the value y corresponding to x, satisfying the condition that when x = x i When, y = y i Otherwise, y is a random number. Optionally, embodiments of this application may also use an Oblivious Pseudo-Random Function (OPRF) to randomly process the service sample identifiers (including the first service sample identifier and the second service sample identifier).

[0125] If the first random number and the second random number are the same, then in this embodiment of the application, the successful matching parameter (for example, the successful matching parameter can be 1) can be determined as the merged Boolean intersection parameter corresponding to the first hash mapping bucket and the second hash mapping bucket; optionally, if the first random number and the second random number are different, then in this embodiment of the application, the unsuccessful matching parameter (for example, the unsuccessful matching parameter can be 0) can be determined as the merged Boolean intersection parameter corresponding to the first hash mapping bucket and the second hash mapping bucket.

[0126] Similarly, the first participant can perform a hash mapping on the first business sample identifier to obtain a fourth hash table, and the second participant can perform a cuckoo hash mapping on the second business sample identifier to obtain a third hash table. Further, embodiments of this application can generate a third Boolean intersection fragment held by the first participant and a fourth Boolean intersection fragment held by the second participant based on the third and fourth hash tables. The third and fourth Boolean intersection fragments are fragments of the second Boolean intersection vector, which indicates the intersection status of the second business sample identifier with respect to the first business sample identifier (i.e., whether the feature data of the second participant is in the intersection).

[0127] For easier understanding, please refer to Figure 4 , Figure 4 This is a schematic diagram illustrating a scenario for hash mapping provided in an embodiment of this application. For example... Figure 4 The diagram illustrates how PSI-Circuit (Circuit-PSI, Private Set Intersection Circuit) anonymizes service sample identifiers. The protocol includes a first participant and a second participant, both of whom can act as initiators. The private set intersection means that both participants input a set of service sample identifiers, and ultimately, they only receive fragment information about the intersection (i.e., the intersection service sample identifiers). Specifically, they receive a Boolean fragment value indicating whether the initiator's data (i.e., the service sample identifier) ​​is within the intersection; neither intersection data nor non-intersection data is obtained. When a service sample identifier is within the intersection, the initiator has a hash mapping bucket containing that identifier, and the corresponding hash mapping bucket on the receiver also contains that service sample identifier.

[0128] like Figure 4 As shown, the first participant can act as the initiator to perform circuit privacy set intersection. In this case, the second participant inserts its own data (i.e., the second business sample identifier 40b) into the ordinary hash table (i.e., the second hash table 41b), and the first participant fills its own data (i.e., the first business sample identifier 40a) into the cuckoo hash table (i.e., the first hash table 41a). Similarly, the second participant can act as the initiator to perform circuit privacy set intersection. In this case, the first participant inserts its own data (i.e., the first business sample identifier 40a) into the ordinary hash table (i.e., the fourth hash table 42b), and the second participant fills its own data (i.e., the second business sample identifier 40b) into the cuckoo hash table (i.e., the third hash table 42a).

[0129] like Figure 4 As shown, for ease of understanding, we will take an example where the number of first business sample identifiers is 4, such as 2, 3, 7, and 10; for ease of understanding, we will take an example where the number of second business sample identifiers is 6, such as 2, 4, 5, 6, 7, and 9.

[0130] like Figure 4 As shown, the first hash table 41a and the second hash table 41b have the same hash table dimension. The first hash table 41a may include a first hash mapping bucket, and the second hash table 41b may include a second hash mapping bucket. For ease of understanding, this embodiment of the application uses a hash table dimension of 6 for both the first hash table 41a and the second hash table 41b as an example. In this embodiment, "*" can be filled into hash mapping buckets (bins) that are not filled with data (i.e., business sample identifiers). "*" represents a random number, indicating an empty sample, and the feature data and label corresponding to "*" can be 0.

[0131] like Figure 4 As shown, for example, the first hash mapping bucket can be the second hash mapping bucket in the first hash table 41a, and the second hash mapping bucket can be the second hash mapping bucket in the second hash table 41b. The first hash mapping bucket can include 7, and the second hash mapping bucket can include 4 and 7. In this case, the first random number corresponding to 7 can be 17, the second random number corresponding to 4 can be 14, and the second random number corresponding to 7 can be 17. When the first random number and the second random number are matched, the first random number 17 is equal to the second random number 17. In this embodiment, the successful matching parameter can be determined as the merged Boolean intersection parameter corresponding to the first hash mapping bucket and the second hash mapping bucket, that is, the successful matching parameter can be determined as the merged Boolean intersection parameter corresponding to the second hash mapping bucket. Similarly, in this embodiment, the successful matching parameter can be determined as the merged Boolean intersection parameter corresponding to the fourth hash mapping bucket, and the unsuccessful matching parameter can be determined as the merged Boolean intersection parameters corresponding to the first hash mapping bucket, the third hash mapping bucket, the fifth hash mapping bucket, and the sixth hash mapping bucket, respectively.

[0132] like Figure 4 As shown, the first Boolean intersection vector (i.e., q0) can be {0,1,0,1,0,0}, and its dimension is related to the number of first business sample identifiers 40a. Correspondingly, the first Boolean intersection partition can include 6 first Boolean intersection parameters, and the second Boolean intersection partition can include 6 second Boolean intersection parameters. The first Boolean intersection parameter can be... <0> The first and second Boolean intersection parameters can be <0> The XOR result of the first Boolean intersection parameter and the first Boolean intersection parameter is the merged Boolean intersection parameter (i.e., 0). For example, the first Boolean intersection parameter can be 0, and the first Boolean intersection parameter can be 1.

[0133] Similarly, such as Figure 4 As shown, a second Boolean intersection vector (i.e., q1) can be generated based on the third hash table 42a and the fourth hash table 42b. The second Boolean intersection vector can be {0,0,0,0,0,1,0,0,1}, and its dimension is related to the number of second business sample identifiers 40b. The specific process of generating the second Boolean intersection vector based on the third hash table 42a and the fourth hash table 42b can be found in the description above of generating the first Boolean intersection vector based on the first hash table 41a and the second hash table 41b, and will not be repeated here.

[0134] Furthermore, when the first participant performs the Cuckoo Hash Map, it needs to map the business sample label of the first business sample identifier to the first business label vector; similarly, when the first participant performs the Simple Hash Map, it needs to map the business sample label of the first business sample identifier to the second business label vector, and then the first participant and the second participant store the shards for the second business label vector (for example, the first business label shard and the second business label shard are shards of the second business label vector, the first participant can hold the first business label shard, and the second participant can hold the second business label shard).

[0135] For easier understanding, please refer to Figure 5 , Figure 5 This is a schematic diagram illustrating a scenario for federated training provided in an embodiment of this application. For example... Figure 5 As shown, the embodiments of this application can perform encrypted training in a multi-party (e.g., two-party) secure computation manner. The two parties may include a first participant 50a (i.e., Guest) and a second participant 50b (i.e., Host). The first participant 50a and the second participant 50b can jointly perform two Circuit Privacy Set Intersections (Circuit-PSI) to obtain two equivalent masks (i.e., the first Boolean intersection vector and the Boolean intersection vector).

[0136] like Figure 5 As shown, in the first intersection of the circuit privacy set, the first participant 50a can act as the initiator, and the second participant 50b can act as the receiver, resulting in Boolean fragmentation. <q0> B When the business sample identifier of the i-th sample of the first participant 50a matches the business sample identifier of a sample of the second participant 50b, q 0,i =1; otherwise q 0,i =0. Where, q 0,i This can represent the i-th merged Boolean intersection parameter in the first Boolean intersection vector. At this point, the first participant 50a performs a cuckoo hash, and the second participant 50b performs a simple hash. Both parties maintain a List(bin) of length n0 (i.e., ...). <q0> B The length of q0 is related to the number of input samples of the first participant 50a. The number of bins (i.e., the length of q0) is denoted as m0, and the sample set is denoted as I0. Here, n0 is the number of first business sample identifiers, m0 is the dimension of the first Boolean intersection vector corresponding to the root node, and I0 and... <q0> B It can be used to generate the tree maintained by the first participant (i.e., the first decision tree), for example, m0 = 1.27 * n0.

[0137] like Figure 5 As shown, in the second intersection of the circuit privacy set, the second participant 50b can act as the initiator, and the first participant 50a can act as the receiver, resulting in Boolean fragments. <q1> B When the business sample identifier of the j-th sample of the second participant 50b matches the business sample identifier of a sample of the first participant 50a, q 1,j =1; otherwise q 1,j =0. Where, q 1,j This can represent the j-th merged Boolean intersection parameter in the second Boolean intersection vector. At this point, the second participant 50b performs a cuckoo hash, and the first participant 50a performs a simple hash. Both parties maintain a List(bin) of length n1 (i.e., >q1> B The length of q1 is related to the number of input samples of the second participant 50b, the number of bins (i.e., the length of q1) is denoted as m1, and the sample set is denoted as I1. Here, n1 is the number of second business sample identifiers, m1 is the dimension of the second Boolean intersection vector corresponding to the root node, and I1 and <q1> B It can be used to generate a tree maintained by a second participant (i.e., a second decision tree).

[0138] It is understandable that the first and second Boolean intersection vectors are different (i.e., q0 ≠ q1), but they are equivalent. A Boolean value of true indicates that the sample is an element in the intersection (i.e., the first Boolean intersection vector indicates whether the sample of the first participant is in the intersection, and the second Boolean intersection vector indicates whether the sample of the second participant is in the intersection), otherwise it indicates that the sample is not an element in the intersection. The order of true values ​​in the first and second Boolean intersection vectors is different. Similarly, sample sets I0 and I1 are different, but the samples in the intersection are the same. The first participant 50a can perform federated training based on sample set I0, and the second participant 50b can perform federated training based on sample set I1.

[0139] like Figure 5 As shown, the sender of the circuit privacy set intersection can also use the feature data corresponding to the service sample identifier as input (when the first participant 50a is the sender, the first participant 50a can use the feature data corresponding to the first service sample identifier as input, according to...). <q0> B The location is indicated, and the feature data corresponding to the first service sample identifier is arranged; when the second participant 50b acts as the sender, the second participant 50b can use the feature data corresponding to the second service sample identifier as input, according to... <q1> B (Indicating the location, arranging the feature data corresponding to the second business sample identifier), then after performing the intersection of the privacy set of the execution circuit, in addition to obtaining the fragments of the first Boolean intersection vector and the second Boolean intersection vector, we can also obtain the arithmetic fragments of the corresponding feature data. <x> A (This partition has the same length as the first Boolean intersection vector (or the second Boolean intersection vector). When the value of the first Boolean intersection vector in the i-th bin is true, <x> A The value of this bin is the data fragment corresponding to the business sample identifier contained in this bin; otherwise... <x> A (The fragments in this bin with a value of 0).

[0140] Therefore, this embodiment of the application can obtain a first Boolean intersection vector indicating the intersection state of the first business sample identifier with respect to the second business sample identifier, and a second Boolean intersection vector indicating the intersection state of the second business sample identifier with respect to the first business sample identifier, instead of obtaining the intersection business sample identifier between the first and second business sample identifiers. Both the first and second Boolean intersection vectors are stored in a fragmented manner by the first and second participants, respectively. This eliminates the need for direct comparison between the first and second business sample identifiers, ensuring their security. Furthermore, if the business feature to be divided belongs to the business feature corresponding to the second business sample identifier, this embodiment of the application can represent the first feature Boolean partition vector generated based on the business feature to be divided using a first random Boolean partition fragment and a first synchronous Boolean partition fragment. The first feature Boolean partition vector can represent the partitioning method for the business feature to be divided. In this way, the first participant can hold the first synchronous Boolean partition shard, and the second participant can hold the first random Boolean partition shard. This ensures that even when the first participant cannot directly obtain the business features to be partitioned and the partitioning method of the business features to be partitioned, the first and second participants can simultaneously partition the first and second decision trees to obtain the child nodes in the first and second decision trees. This improves the security of the data held by the first and second participants while enabling business data to be processed jointly through the converged first and second decision trees.

[0141] Further, please see Figure 6 , Figure 6 This is a flowchart illustrating a data processing method provided in an embodiment of this application. The method can be executed by a first terminal device (i.e., a first participant), by a second terminal device (i.e., a second participant), or by both the first and second terminal devices. The first terminal device can be one of the aforementioned... Figure 2 The terminal device 20a in the corresponding embodiment can be the second terminal device described above. Figure 2 The corresponding embodiment is terminal device 20b. For ease of understanding, this application embodiment is described using the method executed by a first terminal device as an example. The data processing method may include the following steps S201-S204:

[0142] Step S201: If the business feature to be divided belongs to the business feature corresponding to the first business sample identifier, then obtain the Boolean vector of the division interval for the business feature to be divided, and determine the Boolean vector of the division interval for the business feature to be divided as the second feature Boolean division vector generated based on the business feature to be divided.

[0143] Among them, the inadvertently programmable pseudo-random function, the second random Boolean partitioning, and the second characteristic Boolean partitioning vector (i.e., ss) k This is used to generate a second synchronous Boolean partitioning slice for the business features to be partitioned (i.e., the first participant secretly shares the second feature Boolean partitioning vector with the second participant through an unintentionally programmable pseudo-random function; the second random Boolean partitioning slice and the second synchronous Boolean partitioning slice can be equivalent Boolean slices corresponding to the second feature Boolean partitioning vector). <r> B The second synchronous Boolean partition and the second random Boolean partition are used together to perform Boolean partitioning on the second Boolean intersection vector to obtain the third partitioning result; the third partitioning result is used to determine the child nodes of the second decision tree; the second feature Boolean partition vector is used to perform Boolean partitioning on the first Boolean intersection vector to obtain the fourth partitioning result; the fourth partitioning result is used to determine the child nodes of the node to be partitioned.

[0144] Specifically, the partitioning interval for the business feature to be partitioned can be the partitioning interval corresponding to the optimal split point of the business feature to be partitioned (i.e., the optimal splitting feature). In this case, the second feature Boolean partitioning vector can be used to indicate the partitioning status of the first business sample identifier for the business feature to be partitioned relative to the optimal split point. If the feature data of the first business sample identifier for the business feature to be partitioned is less than or equal to the optimal split point, then the parameter corresponding to the first business sample identifier in the second feature Boolean partitioning vector is the first parameter (for example, the first parameter can be equal to 1); optionally, if the feature data of the first business sample identifier for the business feature to be partitioned is greater than the optimal split point, then the parameter corresponding to the first business sample identifier in the second feature Boolean partitioning vector is the second parameter (for example, the second parameter can be equal to 0).

[0145] It should be understood that the first participant can split the root node I0 into the left subtree I. 0,L and right subtree I 0,R (That is, the left subtree corresponding to the fourth partition result can be I) 0,L The right subtree corresponding to the fourth partition result can be I. 0,R The second participant can split the root node I1 into the left subtree I. 1,L and right subtree I 1,R (That is, the left subtree corresponding to the third partition result can be I) 1,L The right subtree corresponding to the third partition result can be I. 1,R Since each I has a Boolean vector indicator (the root node of the first decision tree is indicated by Boolean vector q0, and the root node of the second decision tree is indicated by Boolean vector q1), to avoid information leakage caused by feature-based splitting, this embodiment of the application can calculate the Boolean vector fragments corresponding to the child nodes. <q> B .

[0146] Among them, I 0,L The corresponding Boolean vector partitioning is: 0,L > B =And( <q0> B ,ss k ), I 0,R The corresponding Boolean vector partitioning is: 0,R > B =Xor( <q0> B , 0,L > B );I 1,L The corresponding Boolean vector partitioning is: 1,L > B =And( <q1> B , <r> B (At this point, the Boolean value of the non-intersecting part can be set to false), I 1,R The corresponding Boolean vector partitioning is: 1,R > B =Xor( <q1> B , 1,L > B ).

[0147] Step S202: Perform a first inverse mapping on the second feature Boolean partition vector to obtain an inverse mapping Boolean vector associated with the number of first business sample identifiers;

[0148] The first inverse mapping can reverse the second feature Boolean partition vector according to the corresponding mapping of the cuckoo hash, and obtain the inverse mapping Boolean vector (i.e. the first inverse mapping Boolean vector).

[0149] Step S203: Perform a second inverse mapping on the inverse mapping Boolean vector to obtain a set of inverse mapping Boolean vectors associated with the number of the second Boolean intersection vectors;

[0150] The second inverse mapping rearranges the inverse mapping Boolean vectors to the order in which the first participant performs simple hashing, resulting in a set of inverse mapping Boolean vectors (i.e., the first inverse mapping Boolean vector set).

[0151] Step S204: Generate a second random Boolean partition for the inverse mapping Boolean vector set, and perform an XOR operation on the second random Boolean partition and the inverse mapping Boolean vector set to generate an XOR Boolean vector set associated with the number of the second Boolean intersection vectors.

[0152] Specifically, the first participant can generate a second random Boolean partition of the inverse mapping Boolean vector set (i.e., The second random Boolean partition and the inverse mapping Boolean vector set have the same dimension. The second random Boolean partition includes random Boolean parameters, and the inverse mapping Boolean vector set includes inverse mapping Boolean vectors with the same dimension as the random Boolean parameters. That is, the first participant can assign a random Boolean parameter (i.e., a random Boolean variable) to each inverse mapping Boolean vector in the inverse mapping Boolean vector set. Further, the first participant can perform an XOR operation on the random Boolean parameters (i.e., the first random Boolean parameters) in the second random Boolean partition and the inverse mapping Boolean parameters (i.e., the first inverse mapping Boolean parameters) in the inverse mapping Boolean vector set to generate the XOR Boolean parameters corresponding to the inverse mapping Boolean parameters. The XOR Boolean parameters corresponding to each inverse mapping Boolean parameter in the inverse mapping Boolean vector set are used to construct the XOR Boolean vector corresponding to the inverse mapping Boolean vector; the XOR Boolean vectors corresponding to the inverse mapping Boolean vectors of each dimension in the inverse mapping Boolean vector set are used to construct the XOR Boolean vector set (i.e., the first XOR Boolean vector set) associated with the number of the second Boolean intersection vectors.

[0153] ​The specific process of XORing the random Boolean parameter and the inverse mapping Boolean parameter can be described as follows: if the random Boolean parameter and the inverse mapping Boolean parameter are the same, then the same parameter (for example, the same parameter can be 0) is determined as the XOR Boolean parameter corresponding to the inverse mapping Boolean parameter; optionally, if the random Boolean parameter and the inverse mapping Boolean parameter are different, then the dissimilar parameter (for example, the dissimilar parameter can be 1) is determined as the XOR Boolean parameter corresponding to the inverse mapping Boolean parameter.

[0154] Among them, the inadvertently programmable pseudo-random function, the XOR Boolean vector set, the third hash table, and the fourth hash table are used to generate the second synchronous Boolean partitioning shards (i.e., ...) based on the business characteristics to be partitioned. In this case, the first participant can act as the sender and the second participant as the receiver to execute an unintentionally programmable pseudo-random function; the third hash table is obtained by the second participant performing a cuckoo hash mapping on the second business sample identifier, and the fourth hash table is obtained by the first participant performing a hash mapping on the first business sample identifier.

[0155] The third and fourth hash tables have the same hash table dimension. The third hash table includes a third hash mapping bucket, and the fourth hash table includes a fourth hash mapping bucket with the same hash table dimension as the third hash mapping bucket. An inadvertently programmable pseudo-random function is used to obtain XOR Boolean vectors that match the third and fourth hash mapping buckets from the XOR Boolean vector set. Understandably, if the fourth hash mapping bucket includes a first business sample identifier, the inadvertently programmable pseudo-random function is used to perform relational combination between the first business sample identifier in the fourth hash mapping bucket and the XOR Boolean parameter in the XOR Boolean vector, generating a combined data pair associated with the first business sample identifier in the fourth hash mapping bucket and the XOR Boolean parameter in the XOR Boolean vector. Further, if the third hash mapping bucket includes a second business sample identifier, the inadvertently programmable pseudo-random function is used to perform data matching between the third hash mapping bucket and the combined data pair, generating synchronous Boolean parameters for the business features to be partitioned. These synchronous Boolean parameters are used to construct a second synchronous Boolean partitioning shard for the business features to be partitioned.

[0156] In other words, the second participant can use the third hash table as input, and the first participant can use the blinded boolean array (i.e., the set of XOR boolean vectors) and the fourth hash table as input. By inadvertently programmable pseudo-random functions, the second participant can obtain random boolean vectors (i.e., the second synchronous boolean partitioning shards).

[0157] The combined data pair includes a first business sample identifier and an XOR Boolean parameter. If the second business sample identifier in the third hash mapping bucket is the same as the first business sample identifier in the combined data pair, then the XOR Boolean parameter corresponding to the first business sample identifier in the combined data pair is determined as the synchronization Boolean parameter for the business feature to be divided. Optionally, if the second business sample identifier in the third hash mapping bucket is different from the first business sample identifier in the combined data pair, then a random number is determined as the synchronization Boolean parameter for the business feature to be divided. Optionally, the first business sample identifier and the second business sample identifier in the combined data pair can be represented by random numbers. The same business sample identifier can correspond to the same random number, thereby enabling the generation of synchronization Boolean parameters without exposing the first and second business sample identifiers.

[0158] Optionally, if the business feature to be segmented belongs to the business feature corresponding to the second business sample identifier, the second participant can obtain the segmentation Boolean vector of the segmentation interval for the business feature to be segmented, and determine the segmentation Boolean vector of the segmentation interval for the business feature to be segmented as the first feature Boolean segmentation vector generated based on the business feature to be segmented. Further, the second participant can perform a first inverse mapping on the first feature Boolean segmentation vector to obtain an inverse mapping Boolean vector associated with the number of second business sample identifiers (i.e., a second inverse mapping Boolean vector), and then perform a second inverse mapping on the second inverse mapping Boolean vector to obtain a set of inverse mapping Boolean vectors associated with the number of first Boolean intersection vectors (i.e., a second inverse mapping Boolean vector set). Further, the second participant can generate a first random Boolean segmentation piece for the second inverse mapping Boolean vector set, and perform an XOR operation on the first random Boolean segmentation piece and the second inverse mapping Boolean vector set to generate an XOR Boolean vector set associated with the number of first Boolean intersection vectors (i.e., a second XOR Boolean vector set). Here, the inadvertently programmable pseudo-random function, the second XOR Boolean vector set, the first hash table, and the second hash table are used to generate the first synchronous Boolean segmentation piece for the business feature to be segmented.

[0159] For ease of understanding, the specific process of generating the first synchronous Boolean partition based on the first random Boolean partition and the first feature Boolean partition vector can be found in [link to documentation]. Figure 7 , Figure 7 This is a schematic diagram of a synchronization vector scenario provided in an embodiment of this application. For example... Figure 7 As shown, the first business sample identifier corresponding to the first participant can be the first business sample identifier 70a, the second business sample identifier corresponding to the second participant can be the second business sample identifier 70b, the hash table obtained by performing a cuckoo hash mapping on the first business sample identifier 70a can be the first hash table 71a, the hash table obtained by performing a simple hash mapping on the second business sample identifier 70b can be the second hash table 71b, and the hash table obtained by performing a cuckoo hash mapping on the second business sample identifier 70b can be the third hash table 71c.

[0160] like Figure 7 As shown, the second participant can obtain the first feature Boolean partition vector 72a (for example, the first feature Boolean partition vector 72a can be (0,1,0,1,0,1,0,0,1), where 1 in the first feature Boolean partition vector 72a indicates that the feature data of the sample in the optimal split feature is less than or equal to the optimal split point, and 0 in the first feature Boolean partition vector 72a indicates that the feature data of the sample in the optimal split feature is greater than the optimal split point), and perform a first inverse mapping on the first feature Boolean partition vector 72a to obtain an inverse mapping Boolean vector 72b (i.e., the second inverse mapping Boolean vector 72b) associated with the number of second business sample identifiers 70b. The first inverse mapping can inversely map the first feature Boolean partition vector 72a according to the Cuckoo Hash mapping (i.e., the mapping from the second business sample identifier 70b to the third hash table 71c).

[0161] like Figure 7 As shown, the second participant can perform a second inverse mapping on the inverse mapping Boolean vector 72b to obtain a set of inverse mapping Boolean vectors 72c (i.e., the second inverse mapping Boolean vector set 72c) associated with the number of the first Boolean intersection vectors. The second inverse mapping can rearrange the inverse mapping Boolean vectors 72b in the order in which the second participant performs simple hashing (i.e., the order from the second business sample identifier 70b to the second hash table 71b).

[0162] like Figure 7 As shown, the second participant can generate a first random Boolean partition slice for the inverse mapping Boolean vector set 72c (i.e. For example, the first random Boolean partition can be (0,1,1,1,0,1). The random Boolean parameter (i.e. the second random Boolean parameter) in the first random Boolean partition and the inverse Boolean parameter (i.e. the second inverse Boolean parameter) in the inverse Boolean vector of the inverse mapping Boolean vector set 72c are XORed to generate the XOR Boolean parameter corresponding to the inverse mapping Boolean parameter, thereby obtaining the XOR Boolean vector set 72d (i.e. the second XOR Boolean vector set 72d).

[0163] like Figure 7 As shown, the second participant can use the XOR Boolean vector set 72d and the second hash table 71b as input, and the first participant can use the first hash table 71a as input. Through an unintentionally programmable pseudo-random function, the first participant obtains the first synchronized Boolean partition (i.e., ...). For example, the second hash table 71b may include hash mapping buckets (4,7,9), the XOR Boolean vector set 72d may include XOR Boolean vectors (0,0,1), and the first hash table 71a may include hash mapping buckets (3). Combined data pairs {(4,0), (7,0), (9,1)} can be generated by an inadvertently programmable pseudo-random function. By matching the hash mapping buckets (3) and the combined data pairs {(4,0), (7,0), (9,1)}, the random number can be determined as the synchronization Boolean parameter. For example, the second hash table 71b may include hash mapping buckets (4,7), the XOR Boolean vector set 72d may include XOR Boolean vector (0,0), and the first hash table 71a may include hash mapping buckets (7). By using an inadvertently programmable pseudo-random function, combined data pairs {(4,0), (7,0)} can be generated. By matching the hash mapping buckets (7) and the combined data pairs {(4,0), (7,0)}, 0 can be determined as the synchronization Boolean parameter.

[0164] Therefore, the embodiments of this application can achieve local calculation of gradient histogram by intersecting the circuit privacy sets twice, so that the communication overhead is only related to the sample size; furthermore, based on the unintentional programmable pseudo-random function, the intersection of the two circuit privacy sets is connected to realize the synchronization of node splitting. That is, in the process of node splitting of the decision tree, the first participant and the second participant use the unintentional programmable pseudo-random function to synchronize the splitting information and generate decision trees respectively, keeping the decision trees trained by both parties equivalent.

[0165] Further, please see Figure 8 , Figure 8 This is a flowchart illustrating a data processing method provided in an embodiment of this application. The method can be executed by a first terminal device (i.e., a first participant), by a second terminal device (i.e., a second participant), or by both the first and second terminal devices. The first terminal device can be one of the aforementioned... Figure 2 The terminal device 20a in the corresponding embodiment can be the second terminal device described above. Figure 2 The corresponding embodiment is terminal device 20b. For ease of understanding, this application embodiment is described using the method executed by a first terminal device as an example. The data processing method may include the following steps S301-S304:

[0166] Step S301: Obtain the first node Boolean partition of the first child node of the node to be partitioned in the first decision tree, and the second node Boolean partition of the second child node of the node to be partitioned.

[0167] The first partitioning result includes a first node Boolean partition, a second node Boolean partition, a third node Boolean partition, and a fourth node Boolean partition. The first node Boolean partition held by the first participant and the third node Boolean partition held by the second participant are the first node Boolean vectors (i.e.,...) 0,L > B The partitioning of the second node by the first participant and the fourth node by the second participant are the second node's boolean vectors (i.e., 0,R > B The first node Boolean vector is used to represent the partitioning state of the first child node obtained by the node to be partitioned, and the second node Boolean vector is used to represent the partitioning state of the second child node obtained by the node to be partitioned. Thus, by using the first node Boolean vector and the second node Boolean vector, it can be ensured that the information of sample allocation to child nodes caused by node partitioning is not leaked during the training of the tree.

[0168] The first child node can be the left subtree of the node to be split in the first decision tree, and the second child node can be the right subtree of the node to be split in the first decision tree. I0 can be divided into the left subtree and the right subtree by the Boolean vector of the first node and the Boolean vector of the second node, thereby realizing the dense state split node.

[0169] For example, the first intersection Boolean vector can be (0,1,0,1,0,0), the first node Boolean vector can be (0,1,0,0,0,0), and the second node Boolean vector can be (0,0,0,1,0,0). This means that the node to be divided can include 2 and 7, the first child node can include 7, and the second child node can include 2. Or, for another example, the first intersection Boolean vector can be (0,1,0,1,0,0), the first node Boolean vector can be (0,0,0,1,0,0), and the second node Boolean vector can be (0,1,0,0,0,0). This means that the node to be divided can include 2 and 7, the first child node can include 2, and the second child node can include 7.

[0170] Similarly, the second partitioning result includes the Boolean partitions of the fifth, sixth, seventh, and eighth nodes. Among these, the Boolean partition of the fifth node held by the first participant and the Boolean partition of the seventh node held by the second participant are the Boolean vectors of the third node (i.e.,...). 1,L > B ​​​The Boolean partition of the sixth node held by the first participant and the Boolean partition of the eighth node held by the second participant are the Boolean vector of the fourth node (i.e., 1,R > B The partitioning of the node to be partitioned; the Boolean vector of the third node is used to represent the partitioning state of the third child node obtained by the partitioning of the node to be partitioned, and the Boolean vector of the fourth node is used to represent the partitioning state of the fourth child node obtained by the partitioning of the node to be partitioned.

[0171] The third child node can be the left subtree of the node to be split in the second decision tree, and the fourth child node can be the right subtree of the node to be split in the second decision tree. I1 can be split into the left and right subtrees through the Boolean vectors of the third and fourth nodes, thus realizing the dense state split node.

[0172] Step S302: Obtain the first node gradient slice of the first child node and the second node gradient slice of the second child node;

[0173] Among them, the first node gradient slice held by the first participant and the third node gradient slice held by the second participant are slices of the first node gradient vector, and the second node gradient slice held by the first participant and the fourth node gradient slice held by the second participant are slices of the second node gradient vector; the first node gradient vector is used to characterize the sample gradient of the first child node (thereby realizing the gradient update of the left subtree), and the second node gradient vector is used to characterize the sample gradient of the second child node (thereby realizing the gradient update of the right subtree).

[0174] The gradient partitioning at the first node and the gradient partitioning at the third node are both obtained by partitioning the first gradient partitioning and the second gradient partitioning using the Boolean vector at the first node (i.e., ...). <g 0,L > A =Multiplex( 0,L > B , <g0> A ),<h 0,L > A =Multiplex(<q 0,L > B , <h0> A The gradient partitioning at the second and fourth nodes is obtained by partitioning the first and second gradient partitions using the Boolean vector at the second node (i.e., ...). <g 0,R > A =Multiplex( 0,R > B , <g0> A ), <h 0,R > A =Multiplex( 0,R > B , <h0> A )).

[0175] It should be understood that the first child node can represent the left subtree of the first decision tree (i.e., I). 0,L The second child node can represent the right subtree of the first decision tree (i.e., I). 0,R Similarly, embodiments of this application can generate the left subtree of the second decision tree (i.e., I). 1,L (i.e., the third child node) and the right subtree of the second decision tree (i.e., I) 1,R (i.e., the fourth child node), corresponding calculation <g 1,L > A , <h 1,L > A , <g 1,R > A and <h 1,R > A .

[0176] Step S303: When the first decision tree converges, obtain the node gradient partition and node Boolean partition of the leaf nodes in the converged first decision tree.

[0177] Wherein, if the first child node and the second child node are leaf nodes in the converged first decision tree, then the node Boolean partition of the leaf node may include the first node Boolean partition (i.e., the node Boolean partition of the first child node) and the second node Boolean partition (i.e., the node Boolean partition of the second child node), and the node gradient partition of the leaf node may include the first node gradient partition (i.e., the node gradient partition of the first child node) and the second node gradient partition (i.e., the node gradient partition of the second child node). Optionally, if the first child node and the second child node are not leaf nodes in the converged first decision tree, then in this embodiment, the node partitioning of the first child node and the second child node may continue (i.e., recursively partitioning the first child node and the second child node) until the first decision tree converges.

[0178] Understandably, when the first decision tree converges, both the first and second participants can access all nodes in the converged first decision tree (for a tree of depth d, the converged first decision tree requires traversing 2...). d -1 node) of the indicator mask fragment (i.e. <s> B The indicator mask fragment can be used to indicate the samples contained in a node, where the sample order follows the order of the initiators of the circuit privacy intersection. For example, the indicator mask fragment of the root node can be... <q0> B This indicates that the root node contains all samples in the intersection (i.e., the samples corresponding to the intersection business sample identifiers).

[0179] It is understood that, in this embodiment of the application, the convergence of the first decision tree can be determined when the level (i.e., depth) of the first decision tree reaches a level threshold, thus obtaining the converged first decision tree. However, this embodiment of the application does not limit the specific value of the level threshold; for example, the level threshold can be equal to 4 (i.e., the convergence of the first decision tree is determined when the first decision tree has 4 levels).

[0180] Similarly, when the first decision tree converges, the second decision tree also converges, and the second participant can obtain the node gradient partitions and node Boolean partitions of the leaf nodes in the converged second decision tree. Likewise, when the first decision tree converges, the second participant can obtain the node gradient partitions and node Boolean partitions of the leaf nodes in the converged first decision tree; when the second decision tree converges, the first participant can obtain the node gradient partitions and node Boolean partitions of the leaf nodes in the converged second decision tree.

[0181] It should be understood that the intermediate nodes (i.e., non-leaf nodes) of the first and second decision trees can include the optimal splitting feature (i.e., k). opt ) and optimal split value (i.e. When k opt On the Guest side (i.e., the first participant), only the Guest knows the optimal splitting characteristics and the optimal splitting value; when k opt On the Host side (i.e., the second participant), only the Host knows the optimal splitting characteristics and the optimal splitting value.

[0182] The leaf node of the first participant can be denoted as I. 0,1 ,I 0,2 ,…,I 0,T The Boolean vector partition (i.e., node Boolean partition) corresponding to each leaf node is: 0,j > B Gradient partitioning (i.e., node gradient partitioning) is ( <g 0,j > A , <h 0,j > A ),in 0,j > B Indicates which samples are in that leaf node. 0,j > B This represents the Boolean partition of a leaf node in the first decision tree jointly held by the first and second participants (i.e., the partition held by the first participant). The second party holds ), ( <g 0,j > A ​​​, <h 0,j > A This represents the node gradient shards (i.e., those held by the first participant) for the leaf nodes in the first decision tree, jointly held by the first and second participants. The second party holds ).

[0183] The leaf node of the second participant can be denoted as I. 1,1 ,I 1,2 ,…,I 1,T Each leaf node corresponds to a Boolean vector partition (i.e., node Boolean partition). 1,j > B Gradient partitioning (i.e., node gradient partitioning) is ( <g 1,j > A , <h 1,j > A ),in 1,j > B Indicates which samples are in that leaf node. 1,j > B This represents the Boolean partition of a leaf node in the second decision tree jointly held by the first and second participants (i.e., the partition held by the first participant). The second party holds ), ( <g 1,j > A , <h 1,j > A This represents the node gradient shards (i.e., those held by the first participant) for the leaf nodes in the second decision tree, jointly held by the first and second participants. The second party holds ).

[0184] Step S304: Determine the weight partition of the first child node of the leaf node based on the node gradient partition and node Boolean partition of the leaf node.

[0185] In this context, the first child node weight slice and the second child node weight slice held by the second participant are slices of the child node weight vector. The child node weight vector is used to represent the weight parameters of the leaf node. The first child node weight slice is the weight slice of the second child node, which is also the weight slice of the leaf node. The second child node weight slice is determined by the second participant based on the node gradient slice and node Boolean slice of the leaf node.

[0186] For each leaf node I j (For example, I) 0,j According to the weighting formula: We can calculate the weighted sharding of leaf nodes. ​​​The weight formula requires calling ADD and DIV to perform piecewise calculations. Specifically, I... j This represents the subset corresponding to the j-th leaf node.

[0187] For ease of understanding, this explanation will use the determination of the weight shards of the first and second child nodes of a leaf node in the first decision tree as an example. The specific process for determining the weight shards of the child nodes of a leaf node in the second decision tree can be found in the description of determining the weight shards of the child nodes of a leaf node in the first decision tree; it will not be repeated here. The first and second decision trees are equivalent; the weights corresponding to the leaf nodes of the first and second decision trees are equal.

[0188] It should be understood that the first and second participating parties can respectively, according to 0,1 > B , 0,2 > B ,…, 0,T > B and weighted sharding Calculate the first decision tree f for each sample t Arithmetic slices of the values ​​obtained below. Among them, T calls... Summing the results gives us the first decision tree f. t Arithmetic partitioning of the values ​​taken under each sample, denoted as Similarly, for the T leaf nodes I of the second decision tree 1,1 ,I 1,2 ,…,I 1,T The second decision tree f can be calculated using the same method. t Arithmetic partitioning of the values ​​taken under each sample, denoted as at this time, and They are equivalent.

[0189] Specifically, the first child node weight shard is used to update the first cumulative sample prediction shard of the first business sample identifier, and the second child node weight shard is used to update the second cumulative sample prediction shard of the first business sample identifier. That is, for the first decision tree, [the weight shard is used to update the first cumulative sample prediction shard of the first business sample identifier]. (i.e., the weight sharding of the first child node and the weight sharding of the second child node) are accumulated to (i.e., the first cumulative sample prediction partition and the second cumulative sample prediction partition) (soon) Accumulated to Will Accumulated to Similarly, for the second decision tree, Accumulated to in, and​​​ The initial values ​​are all zero vectors, that is, when the first decision tree and the second decision tree are the first decision tree, and This is the initial value.

[0190] Among them, the first cumulative sample prediction slice and the second cumulative sample prediction slice held by the second participant are slices of the cumulative sample prediction vector, which is used to represent the historical cumulative sample prediction values ​​when generating the first decision tree.

[0191] It should be understood that the updated first cumulative sample prediction slice and the updated second cumulative sample prediction slice are used to generate the next decision tree of the first decision tree. The updated first cumulative sample prediction slice can be used as the first cumulative sample prediction slice when generating the next decision tree of the first decision tree, and the updated second cumulative sample prediction slice can be used as the second cumulative sample prediction slice when generating the next decision tree of the first decision tree. The first cumulative sample prediction slice and the second cumulative sample prediction slice used when generating the next decision tree of the first decision tree can be used to generate the first gradient slice and the second gradient slice corresponding to the next decision tree of the first decision tree. Therefore, the updated first cumulative sample prediction slice and the updated second cumulative sample prediction slice can be used to update ( <g> A , <h> A (For example, first gradient partitioning and second gradient partitioning).

[0192] Among them, the updated first cumulative sample prediction slice and the updated second cumulative sample prediction slice are used to update ( <g0> A , <h0> A When updating the first cumulative sample prediction shard, the updated second cumulative sample prediction shard, and the first business label vector, the first gradient shard held by the first participant and the second gradient shard held by the second participant can be determined. Optionally, the updated first cumulative sample prediction shard and the updated second cumulative sample prediction shard are used to update ( <g1> A , <h1> A When the updated first cumulative sample prediction shard, the updated second cumulative sample prediction shard, the first business label shard, and the second business label shard are used, the third gradient shard held by the first participant and the fourth gradient shard held by the second participant can be determined.

[0193] It should be understood that the first participant stores the converged first decision tree, and the second participant stores the converged second decision tree. Optionally, the second participant can store the first decision subtree corresponding to the converged first decision tree, where nodes at the same position in the first decision subtree and the first decision tree have a one-to-one correspondence (i.e., a node in the first decision subtree can correspond to a node in the first decision tree). Similarly, the first participant can store the second decision subtree corresponding to the converged second decision tree, where nodes at the same position in the second decision subtree and the second decision tree have a one-to-one correspondence (i.e., a node in the second decision subtree can correspond to a node in the second decision tree). Likewise, the converged first decision tree maintained by the first participant and the converged second decision tree maintained by the second participant have a one-to-one correspondence. The converged first decision tree and the converged second decision tree are complementary and can be used together to process business data.

[0194] It should be understood that the number of decision trees (e.g., regression trees, classification trees) can be set in this application embodiment, so that from the generation of the first decision tree to the generation of the last decision tree, the converged first decision tree and the converged second decision tree can be any decision tree from the first decision tree to the last decision tree. Each pair of corresponding decision trees can be jointly stored by the first participant and the second participant. When performing business processing on business data, for example, in this application embodiment, the feature data of the business data (which can include feature data of the business data in the first business feature (i.e., the Q1 business feature) or feature data of the business data in the second business feature (i.e., the Q2 business feature) can be simultaneously input into the converged first decision tree and the converged second decision tree to obtain the outputs of the converged first decision tree and the converged second decision tree, thereby realizing business processing of the business data (e.g., classifying the business data) based on the outputs of the decision trees.

[0195] For easier understanding, please refer to Figure 9 , Figure 9 This is a schematic diagram of a stealth training process provided in an embodiment of this application. Figure 9 As shown, embodiments of this application can perform dense-state training using a multi-party (e.g., two-party) secure computation method. The two parties may include a first participant 90a and a second participant 90b, which are symmetrical. The first participant 90a can execute steps S11-S21, and the second participant 90b can execute steps S31-S41. The first participant 90a and the second participant 90b can jointly generate a first decision tree and a second decision tree.

[0196] like Figure 9 As shown, in steps S11-S21, the process begins, and the first participant 90a can execute step S11, which involves finding the intersection of the circuit privacy sets. That is, the first participant 90a can act as the initiator to find the intersection of the circuit privacy sets. Further, the first participant 90a can execute step S12, which initializes the dense state gradient, i.e., it initializes the gradient using an all-zero vector. (i.e., the first cumulative sample prediction slice held by the first participant 90a and the second cumulative sample prediction slice held by the second participant 90b), and then determine the first gradient slice held by the first participant 90a and the second gradient slice held by the second participant 90b through the first cumulative sample prediction slice and the second cumulative sample prediction slice. Further, the first participant 90a can execute step S13 to initialize a new tree, that is, initialize the nodes to be partitioned in the first decision tree. Further, the first participant 90a can execute step 14 to determine whether all nodes (i.e., nodes) have been traversed, that is, to determine whether the level of the first decision tree has reached the level threshold; wherein, if the level of the first decision tree has reached the level threshold, it is determined that all nodes have been traversed, and then step S19 is executed; optionally, if the level of the first decision tree has not reached the level threshold, it is determined that not all nodes have been traversed, and then step S15 is executed. Further, the first participant 90a can determine whether the current node is a leaf node through step S15; wherein, if the current node is a leaf node, then step S21 is executed, and the weights are calculated in a dense state through step S21, that is, the node gradient slices of the leaf nodes of the first decision tree are obtained, until all nodes have been traversed; optionally, if the current node is not a leaf node, then step S16 is executed, and the histogram (i.e., gradient histogram) is calculated in a dense state through step S16, that is, the second stochastic gradient parameters and the first blinding gradient parameters are obtained. Further, the first participant 90a can execute step S17, and find the optimal split point through step S17, that is, determine the optimal splitting feature and the optimal splitting point for the node to be split. Further, the first participant 90a can execute step S18, and synchronize the splitting information through step S18, that is, when the optimal splitting feature belongs to the business feature corresponding to the first business sample identifier, the second feature Boolean partition vector is synchronized through the second synchronized Boolean partition slice and the second stochastic Boolean partition slice. Furthermore, the first participant 90a can determine whether all trees have been established through step S19. If not all trees have been established, then step S20 is executed to update the dense gradient, that is, to update the first gradient partition and the second gradient partition. Optionally, if all trees have been established, then the process ends.

[0197] like Figure 9 As shown, in steps S31-S41, the process begins, and the second participant 90b can execute step S31, which involves finding the intersection of the circuit privacy sets. That is, the second participant 90b can act as the initiator to find the intersection of the circuit privacy sets. Further, the second participant 90b can execute step S32, which initializes the dense state gradient, i.e., it initializes the gradient using an all-zero vector. Then, the third gradient shard held by the first participant 90a and the fourth gradient shard held by the second participant 90b are determined. Further, the second participant 90b can execute step S33, which initializes the new tree, i.e., initializes the nodes to be partitioned in the second decision tree. Further, the second participant 90b can execute step 34, which determines whether all nodes have been traversed, i.e., whether the level of the second decision tree has reached the level threshold; wherein, if the level of the second decision tree has reached the level threshold, it is determined that all nodes have been traversed, and then step S39 is executed; optionally, if the level of the first decision tree has not reached the level threshold, it is determined that not all nodes have been traversed, and then step S35 is executed. Further, the second participant 90b can determine whether the current node is a leaf node through step S35; wherein, if the current node is a leaf node, then step S41 is executed, and the weights are calculated in a dense state through step S41, that is, the node gradient slices of the leaf nodes of the second decision tree are obtained, until all nodes have been traversed; optionally, if the current node is not a leaf node, then step S36 is executed, and the histogram (i.e., gradient histogram) is calculated in a dense state through step S36, that is, the first stochastic gradient parameter and the second blinded gradient parameter. Further, the second participant 90b can execute step S37, and find the optimal split point through step S37, that is, determine the optimal splitting feature and the optimal splitting point for the node to be split. Further, the second participant 90b can execute step S38, and synchronize the splitting information through step S38, that is, when the optimal splitting feature belongs to the business feature corresponding to the second business sample identifier, the first feature Boolean partition vector is synchronized through the first synchronized Boolean partition slice and the first random Boolean partition slice. Furthermore, the second participant 90b can determine whether all trees have been established through step S39. If not all trees have been established, then step S40 is executed to update the dense gradient, that is, to update the third gradient partition and the fourth gradient partition. Optionally, if all trees have been established, then the process ends.

[0198] like Figure 9 As shown, in steps S11 and S31, the first participant 90a and the second participant 90b can respectively act as initiators to perform circuit privacy set intersection. At this time, the embodiment of this application can generate Boolean intersection vectors corresponding to the two circuit privacy set intersections (i.e., the first Boolean intersection vector generated by the first participant 90a as the initiator and the second Boolean intersection vector generated by the second participant 90b as the initiator), so that the first participant 90a and the second participant 90b respectively hold a fragment of the first Boolean intersection vector, and the first participant 90a and the second participant 90b respectively hold a fragment of the second Boolean intersection vector; in steps S16 and S36, the first Participant 90a can provide the first gradient shard and the third gradient shard, and participant 90b can provide the second gradient shard and the fourth gradient shard, thereby obtaining the second stochastic gradient parameters and the first blinded gradient parameters held by the first participant 90a, and the first stochastic gradient parameters and the second blinded gradient parameters held by the second participant 90b; in steps S21 and S41, the first participant 90a and the second participant 90b can jointly obtain the node gradient shards of the leaf nodes in the first decision tree, and the first participant 90a and the second participant 90b can jointly obtain the node gradient shards of the leaf nodes in the second decision tree; in steps S17 and S37, First participant 90a can provide the second stochastic gradient parameter and the first blinding gradient parameter, and second participant 90b can provide the first stochastic gradient parameter and the second blinding gradient parameter, thereby determining the optimal splitting feature and the optimal splitting point for the node to be partitioned. The optimal splitting feature can belong to either the first business feature or the second business feature. In steps S18 and S38, the first participant 90a and the second participant 90b can synchronize the first feature Boolean partition vector and the second feature Boolean partition vector. At this time, the first participant 90a can hold the first synchronized Boolean partition fragment, and the second participant 90b can hold the first stochastic Boolean partition fragment, thereby realizing... The synchronization of the first feature Boolean partition vector is achieved; the second participant 90b can hold the second synchronized Boolean partition slice, and the first participant 90a can hold the second random Boolean partition slice, thereby realizing the synchronization of the second feature Boolean partition vector; in steps S20 and S40, the first participant 90a and the second participant 90b can jointly update the first gradient slice, the second gradient slice, the third gradient slice and the fourth gradient slice. The updated first gradient slice and the updated second gradient slice can be used to generate the next decision tree of the first decision tree, and the updated third gradient slice and the updated fourth gradient slice can be used to generate the next decision tree of the second decision tree.

[0199] For example, the optimal splitting feature could be a video service feature (e.g., video viewing duration) in a multimedia data recommendation scenario, with the optimal split point being 60 minutes. In this case, the left subtree could identify objects with a video viewing duration of less than or equal to 60 minutes, and the right subtree could identify objects with a video viewing duration greater than 60 minutes. As another example, the optimal splitting feature could be a news service feature (e.g., number of comments) in a multimedia data recommendation scenario, with the optimal split point being 5 comments. In this case, the left subtree could identify objects with a number of comments less than or equal to 5, and the right subtree could identify objects with a number of comments greater than 5.

[0200] Therefore, the embodiments of this application can combine circuit privacy set intersection and unintentionally programmable pseudo-random functions to design an efficient method for training a concealed two-party longitudinal federated XGBoost model. This not only avoids leaking the identifiers of the intersection business samples, enhancing security, but also ensures that both computational and communication complexity are linearly related only to the number of samples, and independent of the feature dimension. This makes the algorithm's computational and communication complexity meet the needs of practical applications and business security requirements, facilitating its use in real-world business scenarios.

[0201] Further, please see Figure 10 , Figure 10 This is a schematic diagram of the structure of a data processing device provided in an embodiment of this application. The data processing device 1 runs on a first participant in vertical federated learning. The data processing device 1 may include: a feature determination module 11 and a first acquisition module 12; further, the data processing device 1 may also include: a second acquisition module 13, a vector determination module 14, a set generation module 15, a third acquisition module 16, a fourth acquisition module 17, and a weight update module 18.

[0202] The feature determination module 11 is used to obtain the partitioning gain of Q business features for the nodes to be partitioned in the first decision tree of the first participant, and determine the business feature corresponding to the optimal partitioning gain among the partitioning gains as the business feature to be partitioned; the Q business features are the business features jointly included by the first business sample identifier of the first participant and the second business sample identifier of the second participant participating in the vertical federated learning; Q is a positive integer greater than 1.

[0203] Among them, the Q business features include the Q1 business features of the first business sample identifier and the Q2 business features of the second business sample identifier; Q1 is a positive integer less than Q, Q2 is a positive integer less than Q, and the sum of Q1 and Q2 equals Q;

[0204] The feature determination module 11 includes: a first determination unit 111, a second determination unit 112, a feature determination unit 113, a first interaction unit 114, and a second interaction unit 115;

[0205] The first determining unit 111 is used to obtain the first stochastic gradient parameter for each of the Q1 business features, and based on the first stochastic gradient parameter and the first blinding gradient parameter of each of the Q1 business features, determine the partitioning gain of each of the Q1 business features for the node to be partitioned in the first decision tree of the first participant; the first blinding gradient parameter is held by the second participant for each of the Q1 business features.

[0206] The second determining unit 112 is used to obtain the second blinding gradient parameter for each of the Q2 business features, and based on the second blinding gradient parameter and the second stochastic gradient parameter of each of the Q2 business features, determine the partitioning gain of each of the Q2 business features for the node to be partitioned in the first decision tree of the first participant; the second stochastic gradient parameter is held by the second participant for each of the Q2 business features.

[0207] The feature determination unit 113 is used to obtain the optimal partitioning gain from the information gains corresponding to the Q1 business features and the information gains corresponding to the Q2 business features, and to determine the business features corresponding to the optimal partitioning gain as the business features to be partitioned.

[0208] Optionally, Q1 business features include business feature S. d d is a positive integer less than or equal to Q1;

[0209] The first interaction unit 114 is used to obtain the first gradient fragment corresponding to the first Boolean intersection vector and receive the homomorphically encrypted second gradient fragment sent by the second participant. The homomorphically encrypted second gradient fragment is generated by the second participant encrypting the second gradient fragment corresponding to the first Boolean intersection vector. The first gradient fragment and the second gradient fragment are fragments of the first gradient vector. The first gradient vector is used to characterize the sample gradient of the first business sample identifier.

[0210] The first interaction unit 114 is used to perform homomorphic addition on the first gradient slice and the homomorphically encrypted second gradient slice to generate the first gradient vector after homomorphic addition.

[0211] The first interaction unit 114 is used to obtain the business feature S corresponding to the first business sample identifier. d , will business feature S d The feature data is mapped to the first feature vector that matches the first Boolean intersection vector;

[0212] The first interaction unit 114 is used to divide the feature data in the first feature vector into intervals and generate a feature vector S for business features. d The Boolean vector that divides the interval;

[0213] The first interaction unit 114 is used to determine the business feature S. d The Boolean vector that divides the interval is used to perform homomorphic summation on the first gradient vector after homomorphic addition, to generate a vector tailored to the business feature S. d The business gradient parameters after homomorphic summation;

[0214] The first interaction unit 114 is used to generate a response to business feature S. d The first stochastic gradient parameter, based on the business feature S d The first stochastic gradient parameter, for business feature S d The business gradient parameters after homomorphic summation are blinded to generate a model targeting business feature S. d The blinded encryption of the business gradient parameters will be targeted at business feature S. d The blinded and encrypted business gradient parameters are sent to the second participant; the second participant is used to analyze the business feature S. d The blinded encryption of the business gradient parameters is decrypted to generate a value for business feature S. d The blinded business gradient parameters; the second participant is also used to target business feature S d The blinded business gradient parameters are determined for business feature S. d The first blinded gradient parameter.

[0215] Optionally, the Q2 business features include business feature S. e e is a positive integer less than or equal to Q2;

[0216] The second interaction unit 115 is used to encrypt the third gradient slice corresponding to the second Boolean intersection vector to generate the homomorphically encrypted third gradient slice.

[0217] The second interaction unit 115 is used to send the homomorphically encrypted third gradient fragment to the second participant; the second participant is used to homomorphically add the fourth gradient fragment corresponding to the second Boolean intersection vector and the homomorphically encrypted second gradient fragment to generate the homomorphically added second gradient vector; the second participant is also used to divide the feature data in the second feature vector that matches the second Boolean intersection vector into intervals to generate a feature vector S for business features. e The first feature vector is the Boolean vector that divides the intervals; the second feature vector is the business feature S corresponding to the second business sample identifier. e The feature data is obtained through mapping; the second participant also uses it to determine the business feature S. e The Boolean vector for dividing the interval is used to perform homomorphic summation on the second gradient vector obtained by homomorphic addition, to generate a vector for business feature S. e The business gradient parameters are obtained by homomorphic summation; the third and fourth gradient slices are slices of the second gradient vector; the second gradient vector is used to characterize the sample gradient of the second business sample identifier;

[0218] The second interaction unit 115 is used to receive information about business feature S sent by the second participant. e The blinded encryption of the business gradient parameters, for business feature S e The blinded encryption of the business gradient parameters is decrypted to generate a value for business feature S. e The blinded business gradient parameters will be tailored to business feature S. e The blinded business gradient parameters are determined for business feature S. e The second blinding gradient parameter; for business feature S e The blinded encryption of the business gradient parameters is determined by the second participant based on the business characteristics S. e The second stochastic gradient parameter, for business feature S e The business gradient parameters generated by homomorphically summing are then blinded.

[0219] The specific implementation methods of the first determining unit 111, the second determining unit 112, the feature determining unit 113, the first interaction unit 114, and the second interaction unit 115 can be found in the above description. Figure 3 The description of step S101 in the corresponding embodiments will not be repeated here.

[0220] The first acquisition module 12 is used to acquire a first synchronous Boolean partitioning segment for the business feature to be partitioned if the business feature to be partitioned belongs to the business feature corresponding to the second business sample identifier; the first synchronous Boolean partitioning segment and the first random Boolean partitioning segment held by the second participant are used together to perform Boolean partitioning on the first Boolean intersection vector to obtain a first partitioning result; the first partitioning result is used to determine the child nodes of the node to be partitioned in the first decision tree; the first Boolean intersection vector is used to indicate the intersection state of the first business sample identifier with respect to the second business sample identifier;

[0221] The first synchronous Boolean partitioning is obtained by using an unintentionally programmable pseudo-random function to synchronize the first random Boolean partitioning in the second participant with the first feature Boolean partitioning vector generated based on the business features to be partitioned. The first feature Boolean partitioning vector is used to perform Boolean partitioning on the second Boolean intersection vector to obtain the second partitioning result. The second Boolean intersection vector is used to indicate the intersection state of the second business sample identifier with respect to the first business sample identifier. The second partitioning result is used to determine the child nodes of the second decision tree of the second participant. The converged first decision tree and the converged second decision tree are used together to process the business data.

[0222] Optionally, the second acquisition module 13 is used to perform a cuckoo hash mapping on the first business sample identifier of the first participant to obtain the first hash table corresponding to the first business sample identifier;

[0223] The second acquisition module 13 is used to acquire a first Boolean intersection fragment associated with the first hash table and the second hash table; the first hash table and the second hash table are used to perform hash table matching through an unintentionally programmable pseudo-random function to generate the first Boolean intersection fragment and the second Boolean intersection fragment held by the second participant; the first Boolean intersection fragment and the second Boolean intersection fragment are fragments of the first Boolean intersection vector; the second hash table is obtained by the second participant in the vertical federated learning performing a hash mapping on the second business sample identifier of the second participant.

[0224] The first hash table and the second hash table have the same hash table dimension; the first hash table includes a first hash mapping bucket, and the second hash table includes a second hash mapping bucket with the same hash table dimension as the first hash mapping bucket;

[0225] Wherein, if the first hash mapping bucket includes the first business sample identifier, the first random number corresponding to the first business sample identifier in the first hash mapping bucket is obtained by randomly processing the first business sample identifier in the first hash mapping bucket based on an unintentionally programmable pseudo-random function;

[0226] Wherein, if the second hash mapping bucket includes the second business sample identifier, the second random number corresponding to the second business sample identifier in the second hash mapping bucket is obtained by randomly processing the second business sample identifier in the second hash mapping bucket based on an unintentionally programmable pseudo-random function; the first random number and the second random number are used to perform random number matching between the first participant and the second participant to generate the first Boolean intersection parameter corresponding to the first hash mapping bucket and the second Boolean intersection parameter corresponding to the second hash mapping bucket; the first Boolean intersection parameter and the second Boolean intersection parameter are the fragments of the merged Boolean intersection parameter; the merged Boolean intersection parameter is used to indicate the Boolean matching result of the first hash mapping bucket and the second hash mapping bucket; the first Boolean intersection parameter corresponding to each hash table dimension in the first hash table is used to form the first Boolean intersection fragment corresponding to the first business sample identifier, and the second Boolean intersection parameter corresponding to each hash table dimension in the second hash table is used to form the second Boolean intersection fragment corresponding to the first business sample identifier.

[0227] Optionally, the vector determination module 14 is used to obtain the partitioning Boolean vector of the partitioning interval for the business feature to be partitioned if the business feature to be partitioned belongs to the business feature corresponding to the first business sample identifier, and determine the partitioning Boolean vector of the partitioning interval for the business feature to be partitioned as the second feature Boolean partitioning vector generated based on the business feature to be partitioned.

[0228] Specifically, the unintentionally programmable pseudo-random function, the second random Boolean partitioning segment, and the second feature Boolean partitioning vector are used to generate the second synchronous Boolean partitioning segment for the business features to be partitioned; the second synchronous Boolean partitioning segment and the second random Boolean partitioning segment are used together to perform Boolean partitioning on the second Boolean intersection vector to obtain the third partitioning result; the third partitioning result is used to determine the child nodes of the second decision tree; the second feature Boolean partitioning vector is used to perform Boolean partitioning on the first Boolean intersection vector to obtain the fourth partitioning result; the fourth partitioning result is used to determine the child nodes of the node to be partitioned.

[0229] Optionally, the set generation module 15 is used to perform a first inverse mapping on the second feature Boolean partition vector to obtain an inverse mapping Boolean vector associated with the number of first business sample identifiers;

[0230] Set generation module 15 is used to perform a second inverse mapping on the inverse mapping Boolean vector to obtain a set of inverse mapping Boolean vectors associated with the number of second Boolean intersection vectors;

[0231] The set generation module 15 is used to generate a second random Boolean partition for the inverse mapping Boolean vector set, and to perform an XOR operation on the second random Boolean partition and the inverse mapping Boolean vector set to generate an XOR Boolean vector set associated with the number of the second Boolean intersection vectors.

[0232] Among them, the inadvertently programmable pseudo-random function, the XOR Boolean vector set, the third hash table, and the fourth hash table are used to generate the second synchronous Boolean partitioning fragments for the business characteristics to be partitioned; the third hash table is obtained by the second participant performing a cuckoo hash mapping on the second business sample identifier; and the fourth hash table is obtained by the first participant performing a hash mapping on the first business sample identifier.

[0233] The second random Boolean partition and the inverse mapping Boolean vector set have the same dimension; the second random Boolean partition includes random Boolean parameters, and the inverse mapping Boolean vector set includes inverse mapping Boolean vectors with the same dimension as the random Boolean parameters.

[0234] The set generation module 15 is specifically used to perform XOR processing on the random Boolean parameters in the second random Boolean partition and the inverse mapping Boolean parameters in the inverse mapping Boolean vector of the inverse mapping Boolean vector set, to generate the XOR Boolean parameters corresponding to the inverse mapping Boolean parameters; the XOR Boolean parameters corresponding to each inverse mapping Boolean parameter in the inverse mapping Boolean vector are used to form the XOR Boolean vector corresponding to the inverse mapping Boolean vector; the XOR Boolean vectors corresponding to the inverse mapping Boolean vectors of each dimension in the inverse mapping Boolean vector set are used to form the XOR Boolean vector set associated with the number of the second Boolean intersection vectors.

[0235] The third and fourth hash tables have the same hash table dimension. The third hash table includes a third hash mapping bucket, and the fourth hash table includes a fourth hash mapping bucket with the same hash table dimension as the third hash mapping bucket. An inadvertently programmable pseudo-random function is used to obtain XOR Boolean vectors that match the third and fourth hash mapping buckets from the XOR Boolean vector set. If the fourth hash mapping bucket includes a first business sample identifier, the inadvertently programmable pseudo-random function is used to perform relational combination on the first business sample identifier in the fourth hash mapping bucket and the XOR Boolean parameter in the XOR Boolean vector to generate a combined data pair associated with the first business sample identifier in the fourth hash mapping bucket and the XOR Boolean parameter in the XOR Boolean vector. If the third hash mapping bucket includes a second business sample identifier, the inadvertently programmable pseudo-random function is used to perform data matching on the third hash mapping bucket and the combined data pair to generate synchronous Boolean parameters for the business features to be partitioned. The synchronous Boolean parameters are used to construct a second synchronous Boolean partitioning shard for the business features to be partitioned.

[0236] Optionally, the first partitioning result includes the first node Boolean partition, the second node Boolean partition, the third node Boolean partition, and the fourth node Boolean partition;

[0237] The third acquisition module 16 is used to acquire the first node Boolean partition of the first child node of the node to be partitioned in the first decision tree, and the second node Boolean partition of the second child node of the node to be partitioned; the first node Boolean partition and the third node Boolean partition held by the second participant are partitions of the first node Boolean vector; the second node Boolean partition and the fourth node Boolean partition held by the second participant are partitions of the second node Boolean vector; the first node Boolean vector is used to represent the partitioning state of the first child node obtained by the node to be partitioned, and the second node Boolean vector is used to represent the partitioning state of the second child node obtained by the node to be partitioned.

[0238] Optionally, the fourth acquisition module 17 is used to acquire the first node gradient slice of the first child node and the second node gradient slice of the second child node; the first node gradient slice and the third node gradient slice held by the second participant are slices of the first node gradient vector; the second node gradient slice and the fourth node gradient slice held by the second participant are slices of the second node gradient vector; the first node gradient vector is used to characterize the sample gradient of the first child node, and the second node gradient vector is used to characterize the sample gradient of the second child node;

[0239] The gradient partitioning of the first node and the gradient partitioning of the third node are both obtained by partitioning the first gradient partitioning and the second gradient partitioning by the Boolean vector of the first node; the gradient partitioning of the second node and the gradient partitioning of the fourth node are both obtained by partitioning the first gradient partitioning and the second gradient partitioning by the Boolean vector of the second node.

[0240] Optionally, the weight update module 18 is used to obtain the node gradient slice and node Boolean slice of the leaf nodes in the converged first decision tree when the first decision tree converges.

[0241] The weight update module 18 is used to determine the first child node weight partition of the leaf node based on the node gradient partition and node boolean partition of the leaf node; the first child node weight partition and the second child node weight partition held by the second participant are partitions of the child node weight vector; the child node weight vector is used to characterize the weight parameters of the leaf node.

[0242] The first child node weight shard is used to update the first cumulative sample prediction shard of the first business sample identifier, and the second child node weight shard is used to update the second cumulative sample prediction shard of the first business sample identifier; the updated first cumulative sample prediction shard and the updated second cumulative sample prediction shard are used to generate the next decision tree of the first decision tree.

[0243] The specific implementation methods of the feature determination module 11, the first acquisition module 12, the second acquisition module 13, the vector determination module 14, the set generation module 15, the third acquisition module 16, the fourth acquisition module 17, and the weight update module 18 can be found above. Figure 3 In the corresponding embodiment, steps S101-S102, Figure 6 In the corresponding embodiments, steps S201-S204, and Figure 8 The descriptions of steps S301-S303 in the corresponding embodiments will not be repeated here. Furthermore, the beneficial effects of using the same method will also not be repeated.

[0244] Further, please see Figure 11 , Figure 11 This is a schematic diagram of the structure of a computer device provided in an embodiment of this application. The computer device may be a terminal device or a server. Figure 11 As shown, the computer device 1000 may include a processor 1001, a network interface 1004, and a memory 1005. Furthermore, the computer device 1000 may also include a user interface 1003 and at least one communication bus 1002. The communication bus 1002 is used to enable communication between these components. In some embodiments, the user interface 1003 may include a display screen and a keyboard; optionally, the user interface 1003 may also include a standard wired interface or a wireless interface. Optionally, the network interface 1004 may include a standard wired interface or a wireless interface (such as a Wi-Fi interface). The memory 1005 may be high-speed RAM or non-volatile memory, such as at least one disk storage device. Optionally, the memory 1005 may also be at least one storage device located remotely from the processor 1001. Figure 11 As shown, the memory 1005, which is a computer-readable storage medium, may include an operating system, a network communication module, a user interface module, and a device control application.

[0245] In such Figure 11 In the computer device 1000 shown, the network interface 1004 provides network communication functionality; the user interface 1003 is mainly used to provide an input interface for the user; and the processor 1001 can be used to call the device control application stored in the memory 1005 to achieve:

[0246] Obtain the partitioning gains of Q business features for the nodes to be partitioned in the first decision tree of the first participant, and determine the business feature corresponding to the optimal partitioning gain among the partitioning gains as the business feature to be partitioned; the Q business features are the business features jointly included by the first business sample identifier of the first participant and the second business sample identifier of the second participant participating in the vertical federated learning; Q is a positive integer greater than 1;

[0247] If the business feature to be segmented belongs to the business feature corresponding to the second business sample identifier, then the first synchronous Boolean partitioning segment for the business feature to be segmented is obtained; the first synchronous Boolean partitioning segment and the first random Boolean partitioning segment held by the second participant are used together to perform Boolean partitioning on the first Boolean intersection vector to obtain the first partitioning result; the first partitioning result is used to determine the child nodes of the node to be segmented in the first decision tree; the first Boolean intersection vector is used to indicate the intersection state of the first business sample identifier with respect to the second business sample identifier;

[0248] The first synchronous Boolean partitioning is obtained by using an unintentionally programmable pseudo-random function to synchronize the first random Boolean partitioning in the second participant with the first feature Boolean partitioning vector generated based on the business features to be partitioned. The first feature Boolean partitioning vector is used to perform Boolean partitioning on the second Boolean intersection vector to obtain the second partitioning result. The second Boolean intersection vector is used to indicate the intersection state of the second business sample identifier with respect to the first business sample identifier. The second partitioning result is used to determine the child nodes of the second decision tree of the second participant. The converged first decision tree and the converged second decision tree are used together to process the business data.

[0249] It should be understood that the computer device 1000 described in the embodiments of this application can execute the foregoing text. Figure 3 , Figure 6 and Figure 8 The description of the data processing method in the corresponding embodiments can also be performed as described above. Figure 10 The description of the data processing device 1 in the corresponding embodiments will not be repeated here. Furthermore, the beneficial effects of using the same method will also not be repeated here.

[0250] Furthermore, it should be noted that this application embodiment also provides a computer-readable storage medium, which stores a computer program executed by the aforementioned data processing device 1. When the processor executes the computer program, it can execute the aforementioned... Figure 3 , Figure 6 and Figure 8 The description of the data processing method in the corresponding embodiments is already provided and will not be repeated here. Furthermore, the beneficial effects of using the same method will also not be repeated. For technical details not disclosed in the computer-readable storage medium embodiments related to this application, please refer to the description of the method embodiments of this application.

[0251] Furthermore, it should be noted that this application also provides a computer program product, which may include a computer program that can be stored in a computer-readable storage medium. The processor of a computer device reads the computer program from the computer-readable storage medium, and the processor can execute the computer program, causing the computer device to perform the aforementioned... Figure 3 , Figure 6 and Figure 8 The description of the data processing method in the corresponding embodiments is already provided and will not be repeated here. Furthermore, the beneficial effects of using the same method will also not be repeated. For technical details not disclosed in the computer program product embodiments related to this application, please refer to the description of the method embodiments of this application.

[0252] Those skilled in the art will understand that all or part of the processes in the above embodiments can be implemented by a computer program instructing related hardware. The computer program can be stored in a computer-readable storage medium, and when executed, it can include the processes of the embodiments of the above methods. The storage medium can be a magnetic disk, optical disk, read-only memory (ROM), or random access memory (RAM), etc.

[0253] The above-disclosed embodiments are merely preferred embodiments of this application and should not be construed as limiting the scope of this application. Therefore, any equivalent variations made in accordance with the claims of this application shall still fall within the scope of this application.< / h1> < / g1> < / g0> < / h> < / g> < / s> ​ ​ ​​ ​< / r> < / q1> ​​ ​ ​< / q> < / r> < / x> < / x> < / x> < / r> < / h1> < / h1> < / h1> < / h1> < / g1> < / g0> < / x> < / y> < / x> < / y> < / x> < / y> < / x> < / y> < / x> < / y> < / x> < / y> < / x> < / x> < / y> < / x> < / y> < / x> < / x> < / x> < / x> < / y> < / x> < / y> < / x> < / x> < / y> < / x> < / y> < / x> < / y> < / x> < / y> < / x> < / y> < / x> < / y> < / x> < / x> < / x>

Claims

1. A data processing method, characterized in that, The method is performed by the first participant in the longitudinal federated learning and includes: Obtain the partitioning gains of Q business features for the nodes to be partitioned in the first decision tree of the first participant, and determine the business feature corresponding to the optimal partitioning gain among the partitioning gains as the business feature to be partitioned; the Q business features are business features jointly included by the first business sample identifier of the first participant and the second business sample identifier of the second participant participating in the vertical federated learning; Q is a positive integer greater than 1; If the business feature to be divided belongs to the business feature corresponding to the second business sample identifier, then a first synchronous Boolean partitioning segment is obtained for the business feature to be divided; the first synchronous Boolean partitioning segment and the first random Boolean partitioning segment held by the second participant are used together to perform Boolean partitioning on the first Boolean intersection vector to obtain a first partitioning result; the first partitioning result is used to determine the child nodes of the node to be divided in the first decision tree; the first Boolean intersection vector is used to indicate the intersection state of the first business sample identifier with respect to the second business sample identifier; The first synchronized Boolean partitioning is obtained by using an unintentionally programmable pseudo-random function to synchronize the first random Boolean partitioning in the second participant with the first feature Boolean partitioning vector generated based on the business features to be partitioned. The first feature Boolean partitioning vector is used to perform Boolean partitioning on the second Boolean intersection vector to obtain the second partitioning result. The second Boolean intersection vector is used to indicate the intersection state of the second business sample identifier with respect to the first business sample identifier. The second partitioning result is used to determine the child nodes of the second decision tree of the second participant. The converged first decision tree and the converged second decision tree are used together to process the business data.

2. The method according to claim 1, characterized in that, The method further includes: Perform a cuckoo hash mapping on the first business sample identifier of the first participant to obtain the first hash table corresponding to the first business sample identifier; Obtain a first Boolean intersection fragment associated with the first hash table and the second hash table; the first hash table and the second hash table are used to perform hash table matching through an unintentionally programmable pseudo-random function to generate the first Boolean intersection fragment and the second Boolean intersection fragment held by the second participant; the first Boolean intersection fragment and the second Boolean intersection fragment are fragments of the first Boolean intersection vector; the second hash table is obtained by the second participant in the vertical federated learning performing a hash mapping on the second business sample identifier of the second participant.

3. The method according to claim 2, characterized in that, The first hash table and the second hash table have the same hash table dimension; the first hash table includes a first hash mapping bucket, and the second hash table includes a second hash mapping bucket with the same hash table dimension as the first hash mapping bucket; Wherein, if the first hash mapping bucket includes the first business sample identifier, the first random number corresponding to the first business sample identifier in the first hash mapping bucket is obtained by randomly processing the first business sample identifier in the first hash mapping bucket based on an unintentionally programmable pseudo-random function; Wherein, if the second hash mapping bucket includes a second business sample identifier, the second random number corresponding to the second business sample identifier in the second hash mapping bucket is obtained by randomly processing the second business sample identifier in the second hash mapping bucket based on the unintentionally programmable pseudo-random function; the first random number and the second random number are used to perform random number matching between the first participant and the second participant to generate a first Boolean intersection parameter corresponding to the first hash mapping bucket and a second Boolean intersection parameter corresponding to the second hash mapping bucket; the first Boolean intersection parameter and the second Boolean intersection parameter are fragments of merged Boolean intersection parameters; the merged Boolean intersection parameter is used to indicate the Boolean matching result of the first hash mapping bucket and the second hash mapping bucket; the first Boolean intersection parameter corresponding to each hash table dimension in the first hash table is used to form a first Boolean intersection fragment corresponding to the first business sample identifier, and the second Boolean intersection parameter corresponding to each hash table dimension in the second hash table is used to form a second Boolean intersection fragment corresponding to the first business sample identifier.

4. The method according to claim 1, characterized in that, The Q service features include the Q1 service features identified by the first service sample and the Q2 service features identified by the second service sample; Q1 is a positive integer less than Q, Q2 is a positive integer less than Q, and the sum of Q1 and Q2 is equal to Q; The step of obtaining Q business features, each based on the partition gain of the node to be partitioned in the first decision tree of the first participant, and determining the business feature corresponding to the optimal partition gain among the partition gains as the business feature to be partitioned, includes: Obtain the first stochastic gradient parameter for each of the Q1 business features. Based on the first stochastic gradient parameter and the first blinding gradient parameter of each of the Q1 business features, determine the partitioning gain of each of the Q1 business features for the node to be partitioned in the first decision tree of the first participant. The first blinding gradient parameter is held by the second participant for each of the Q1 business features. Obtain the second blinding gradient parameter for each of the Q2 business features. Based on the second blinding gradient parameter and the second stochastic gradient parameter of each of the Q2 business features, determine the partitioning gain of each of the Q2 business features for the node to be partitioned in the first decision tree of the first participant. The second stochastic gradient parameter is held by the second participant for each of the Q2 business features. The optimal partitioning gain is obtained from the information gains corresponding to the Q1 business features and the information gains corresponding to the Q2 business features, and the business feature corresponding to the optimal partitioning gain is determined as the business feature to be partitioned.

5. The method according to claim 4, characterized in that, Q1 includes business feature S. d d is a positive integer less than or equal to Q1; The method further includes: Obtain the first gradient fragment corresponding to the first Boolean intersection vector, and receive the homomorphically encrypted second gradient fragment sent by the second participant; the homomorphically encrypted second gradient fragment is generated by the second participant encrypting the second gradient fragment corresponding to the first Boolean intersection vector; the first gradient fragment and the second gradient fragment are fragments of the first gradient vector; the first gradient vector is used to characterize the sample gradient of the first service sample identifier; The first gradient slice and the homomorphically encrypted second gradient slice are homomorphically added to generate the first gradient vector after homomorphic addition; Obtain the business feature S corresponding to the first business sample identifier. d The business feature S d The feature data is mapped to a first feature vector that matches the first Boolean intersection vector; The feature data in the first feature vector is divided into intervals to generate a feature S for the business feature. d The Boolean vector that divides the interval; Based on the business characteristic S d The Boolean vector for dividing the interval is used to perform homomorphic summation on the first gradient vector after homomorphic addition, to generate a vector for the business feature S. d The business gradient parameters after homomorphic summation; Generate a service feature S d The first stochastic gradient parameter, based on the business feature S d The first stochastic gradient parameter, for the business feature S d The business gradient parameters after homomorphic summation are blinded to generate a parameter specific to the business feature S. d The blinded encryption of the service gradient parameters will be applied to the service feature S. d The blinded and encrypted service gradient parameters are sent to the second participant; the second participant is used to target the service feature S. d The blinded encrypted service gradient parameters are decrypted to generate a service feature S. d The blinded business gradient parameters; the second participant is also used to apply the business feature S to the... d The blinded service gradient parameters are determined for the service feature S. d The first blinded gradient parameter.

6. The method according to claim 4, characterized in that, Q2 includes business feature S. e The term e is a positive integer less than or equal to Q2; The method further includes: The third gradient slice corresponding to the second Boolean intersection vector is encrypted to generate a homomorphically encrypted third gradient slice. The homomorphically encrypted third gradient fragment is sent to the second participant; the second participant is used to homomorphically add the fourth gradient fragment corresponding to the second Boolean intersection vector and the homomorphically encrypted second gradient fragment to generate a homomorphically added second gradient vector; the second participant is also used to divide the feature data in the second feature vector that matches the second Boolean intersection vector into intervals to generate a feature vector for the business feature S. e The first feature vector is the Boolean vector that divides the intervals; the second feature vector is the business feature S corresponding to the second business sample identifier. e The feature data is obtained through mapping; the second participant is also used to determine the business feature S based on the feature data. e The Boolean vector for dividing the interval is used to perform homomorphic summation on the second gradient vector obtained by the homomorphic addition, to generate a vector for the business feature S. e The business gradient parameters after homomorphic summation; the third gradient slice and the fourth gradient slice are slices of the second gradient vector; the second gradient vector is used to characterize the sample gradient of the second business sample identifier; Receive the service feature S sent by the second participant. e The blinded encryption of the service gradient parameters, for the service feature S e The blinded encrypted service gradient parameters are decrypted to generate a service feature S. e The blinded service gradient parameters will be applied to the service feature S. e The blinded service gradient parameters are determined for the service feature S. e The second blinding gradient parameter; for the business feature S e The blinded encryption service gradient parameters are determined by the second participant based on the service feature S. e The second stochastic gradient parameter, for the business feature S e The business gradient parameters generated by homomorphically summing are then blinded.

7. The method according to claim 1, characterized in that, The method further includes: If the business feature to be divided belongs to the business feature corresponding to the first business sample identifier, then obtain the Boolean vector of the division interval for the business feature to be divided, and determine the Boolean vector of the division interval for the business feature to be divided as the second feature Boolean division vector generated based on the business feature to be divided. Specifically, the unintentionally programmable pseudo-random function, the second random Boolean partitioning segment, and the second feature Boolean partitioning vector are used to generate a second synchronous Boolean partitioning segment for the business features to be partitioned; the second synchronous Boolean partitioning segment and the second random Boolean partitioning segment are used together to perform Boolean partitioning on the second Boolean intersection vector to obtain a third partitioning result; the third partitioning result is used to determine the child nodes of the second decision tree; the second feature Boolean partitioning vector is used to perform Boolean partitioning on the first Boolean intersection vector to obtain a fourth partitioning result; the fourth partitioning result is used to determine the child nodes of the node to be partitioned.

8. The method according to claim 7, characterized in that, The method further includes: Perform a first inverse mapping on the second feature Boolean partition vector to obtain an inverse mapped Boolean vector associated with the number of the first business sample identifiers; Perform a second inverse mapping on the inverse mapping Boolean vector to obtain a set of inverse mapping Boolean vectors associated with the number of the second Boolean intersection vectors; Generate a second random Boolean partition for the inverse mapping Boolean vector set, and perform an XOR operation on the second random Boolean partition and the inverse mapping Boolean vector set to generate an XOR Boolean vector set associated with the number of the second Boolean intersection vectors; The unintentionally programmable pseudo-random function, the XOR Boolean vector set, the third hash table, and the fourth hash table are used to generate a second synchronous Boolean partitioning shard for the business characteristics to be partitioned; the third hash table is obtained by the second participant performing a cuckoo hash mapping on the second business sample identifier; and the fourth hash table is obtained by the first participant performing a hash mapping on the first business sample identifier.

9. The method according to claim 8, characterized in that, The second random Boolean partition and the inverse mapping Boolean vector set have the same dimension; the second random Boolean partition includes random Boolean parameters, and the inverse mapping Boolean vector set includes inverse mapping Boolean vectors with the same dimension as the random Boolean parameters; The step of XORing the second random Boolean partition and the inverse mapping Boolean vector set to generate an XOR Boolean vector set associated with the number of the second Boolean intersection vectors includes: The random Boolean parameters in the second random Boolean partition and the inverse mapping Boolean parameters in the inverse mapping Boolean vector set are XORed to generate the XOR Boolean parameters corresponding to the inverse mapping Boolean parameters; the XOR Boolean parameters corresponding to each inverse mapping Boolean parameter in the inverse mapping Boolean vector are used to form the XOR Boolean vector corresponding to the inverse mapping Boolean vector; the XOR Boolean vectors corresponding to each dimension of the inverse mapping Boolean vector set are used to form the XOR Boolean vector set associated with the number of the second Boolean intersection vectors.

10. The method according to claim 8, characterized in that, The third hash table and the fourth hash table have the same hash table dimension; the third hash table includes a third hash mapping bucket, and the fourth hash table includes a fourth hash mapping bucket with the same hash table dimension as the third hash mapping bucket; the unintentionally programmable pseudo-random function is used to obtain an XOR Boolean vector that matches the third hash mapping bucket and the fourth hash mapping bucket from the XOR Boolean vector set; if the fourth hash mapping bucket includes a first business sample identifier, the unintentionally programmable pseudo-random function is used to perform relational combination on the first business sample identifier in the fourth hash mapping bucket and the XOR Boolean parameter in the XOR Boolean vector to generate a combined data pair associated with the first business sample identifier in the fourth hash mapping bucket and the XOR Boolean parameter in the XOR Boolean vector; if the third hash mapping bucket includes a second business sample identifier, the unintentionally programmable pseudo-random function is used to perform data matching on the third hash mapping bucket and the combined data pair to generate a synchronous Boolean parameter for the business feature to be partitioned; the synchronous Boolean parameter is used to constitute a second synchronous Boolean partitioning shard for the business feature to be partitioned.

11. The method according to claim 1, characterized in that, The first partitioning result includes the first node Boolean partition, the second node Boolean partition, the third node Boolean partition, and the fourth node Boolean partition; The method further includes: Obtain the first node Boolean fragment for the first child node of the node to be partitioned in the first decision tree, and the second node Boolean fragment for the second child node of the node to be partitioned; the first node Boolean fragment and the third node Boolean fragment held by the second participant are fragments of the first node Boolean vector; the second node Boolean fragment and the fourth node Boolean fragment held by the second participant are fragments of the second node Boolean vector; the first node Boolean vector is used to characterize the partitioning state of the first child node obtained by the node to be partitioned, and the second node Boolean vector is used to characterize the partitioning state of the second child node obtained by the node to be partitioned.

12. The method according to claim 11, characterized in that, The method further includes: Obtain the first node gradient slice of the first child node and the second node gradient slice of the second child node; the first node gradient slice and the third node gradient slice held by the second participant are slices of the first node gradient vector; the second node gradient slice and the fourth node gradient slice held by the second participant are slices of the second node gradient vector; the first node gradient vector is used to characterize the sample gradient of the first child node, and the second node gradient vector is used to characterize the sample gradient of the second child node; The first node gradient partition and the third node gradient partition are both obtained by partitioning the first gradient partition and the second gradient partition using the first node Boolean vector; the second node gradient partition and the fourth node gradient partition are both obtained by partitioning the first gradient partition and the second gradient partition using the second node Boolean vector.

13. The method according to claim 12, characterized in that, The method further includes: When the first decision tree converges, obtain the node gradient partition and node Boolean partition of the leaf nodes in the converged first decision tree; Based on the node gradient sharding and node Boolean sharding of the leaf node, the first child node weight sharding of the leaf node is determined; the first child node weight sharding and the second child node weight sharding held by the second participant are shardings of the child node weight vector; the child node weight vector is used to characterize the weight parameters of the leaf node; Wherein, the first child node weight shard is used to update the first cumulative sample prediction shard of the first business sample identifier, and the second child node weight shard is used to update the second cumulative sample prediction shard of the first business sample identifier; the updated first cumulative sample prediction shard and the updated second cumulative sample prediction shard are used to generate the next decision tree of the first decision tree.

14. A data processing apparatus, characterized in that, The device operates on the first participant in the vertical federated learning process and includes: The feature determination module is used to obtain the partitioning gains of Q business features for the nodes to be partitioned in the first decision tree of the first participant, and determine the business feature corresponding to the optimal partitioning gain among the partitioning gains as the business feature to be partitioned; the Q business features are business features jointly included by the first business sample identifier of the first participant and the second business sample identifier of the second participant participating in the vertical federated learning; Q is a positive integer greater than 1. The first acquisition module is used to acquire a first synchronous Boolean partitioning segment for the business feature to be partitioned if the business feature to be partitioned belongs to the business feature corresponding to the second business sample identifier; the first synchronous Boolean partitioning segment and the first random Boolean partitioning segment held by the second participant are used together to perform Boolean partitioning on the first Boolean intersection vector to obtain a first partitioning result; the first partitioning result is used to determine the child node of the node to be partitioned in the first decision tree; the first Boolean intersection vector is used to indicate the intersection state of the first business sample identifier with respect to the second business sample identifier; The first synchronized Boolean partitioning is obtained by using an unintentionally programmable pseudo-random function to synchronize the first random Boolean partitioning in the second participant with the first feature Boolean partitioning vector generated based on the business features to be partitioned. The first feature Boolean partitioning vector is used to perform Boolean partitioning on the second Boolean intersection vector to obtain the second partitioning result. The second Boolean intersection vector is used to indicate the intersection state of the second business sample identifier with respect to the first business sample identifier. The second partitioning result is used to determine the child nodes of the second decision tree of the second participant. The converged first decision tree and the converged second decision tree are used together to process the business data.

15. A computer device, characterized in that, include: Processor and memory; The processor is connected to the memory, wherein the memory is used to store a computer program, and the processor is used to invoke the computer program to cause the computer device to perform the method according to any one of claims 1-13.

16. A computer-readable storage medium, characterized in that, The computer-readable storage medium stores a computer program adapted to be loaded and executed by a processor to cause a computer device having the processor to perform the method of any one of claims 1-13.

17. A computer program product, characterized in that, The computer program product includes a computer program stored in a computer-readable storage medium and adapted to be read and executed by a processor to cause a computer device having the processor to perform the method of any one of claims 1-13.

Citation Information

Patent Citations

  • Security auditing device, method and system for federated learning and medium

    CN115150050A

  • Feature screening method and device in federal feature engineering, equipment and storage medium

    CN116049909A