WO2021204268A1 - 基于隐私数据进行模型训练 - Google Patents

基于隐私数据进行模型训练 Download PDF

Info

Publication number
WO2021204268A1
WO2021204268A1 PCT/CN2021/086267 CN2021086267W WO2021204268A1 WO 2021204268 A1 WO2021204268 A1 WO 2021204268A1 CN 2021086267 W CN2021086267 W CN 2021086267W WO 2021204268 A1 WO2021204268 A1 WO 2021204268A1
Authority
WO
WIPO (PCT)
Prior art keywords
encryption
data
mask
terminal
gradient
Prior art date
Application number
PCT/CN2021/086267
Other languages
English (en)
French (fr)
Inventor
陈超超
王力
周俊
Original Assignee
支付宝(杭州)信息技术有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 支付宝(杭州)信息技术有限公司 filed Critical 支付宝(杭州)信息技术有限公司
Publication of WO2021204268A1 publication Critical patent/WO2021204268A1/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6245Protecting personal data, e.g. for financial or medical purposes

Definitions

  • One or more embodiments of this specification relate to multi-party data cooperation, and in particular to a method and system for model training based on private data.
  • One aspect of the embodiments of this specification provides a method for model training based on private data.
  • the method includes: a first terminal holds first private data; a second terminal holds second private data, sample labels, and The encryption loss value of the model jointly trained by the private data and the second private data; the second terminal participates in the calculation of the second decryption gradient based on the encryption loss value and its own first mask; the second terminal is based on the encryption loss Value and its own second mask to determine the mask encryption loss value; the second terminal receives the encrypted first feature from the first terminal, and determines the encryption based on its own second mask and the encrypted first feature Mask data; the mask encryption loss value and the encryption mask data participate in the calculation of the first decryption gradient; the first decryption gradient and the second decryption gradient are respectively the same as the first privacy data and the second privacy Data correspondence; the first decryption gradient and the second decryption gradient are used to update the joint training model; wherein, the encryption is homomorphic encryption; the first private data and the second private data
  • the system includes: a first data receiving module configured to receive an encrypted first feature from a first terminal; and a mask encryption loss
  • the value determination module is configured to determine the mask encryption loss value based on the encryption loss value and the second mask
  • the encryption mask data determination module is configured to determine the encryption mask based on the second mask and the encrypted first feature Code data
  • a model parameter update module for calculating a first decryption gradient based on the mask encryption loss value and the encryption mask data; for participating in the second decryption gradient based on the encryption loss value and the first mask Calculation;
  • the first decryption gradient and the second decryption gradient correspond to the first private data and the second private data, respectively;
  • the first decryption gradient and the second decryption gradient are used to update the joint training model;
  • One terminal holds the first private data;
  • the second terminal holds the second private data, the sample label, and the encryption loss value of the model jointly trained based on the first private data and the second private data;
  • the apparatus includes a processor and a memory; the memory is used to store instructions, and the processor is used to execute the instructions to achieve all The operation corresponding to the model training method based on private data is described.
  • Another aspect of the embodiments of this specification provides a method for model training based on private data.
  • the method includes: a first terminal receives a mask encryption loss value from a second terminal; and the mask encryption loss value is determined by the second terminal.
  • the terminal determines based on the encryption loss value and its own second mask; calculates the first operation result based on the mask encryption loss value and the first feature, and transmits the first operation result to the second terminal; the first The calculation result is determined by the first encryption gradient and the encryption mask data; the first encryption gradient from the second terminal is received, and the first decryption gradient is determined based on the first encryption gradient.
  • Another aspect of the embodiments of this specification provides a system for model training based on private data.
  • the system includes: a mask encryption loss value receiving module, configured to receive a mask encryption loss value from a second terminal; the mask The code encryption loss value is determined by the second terminal based on the encryption loss value and its own second mask; the first calculation result calculation module is used to calculate the first calculation result based on the mask encryption loss value and the first feature, and The first operation result is transmitted to the second terminal; the first operation result is determined by the first encryption gradient and the encryption mask data; the first decryption gradient determination module is configured to receive the first encryption gradient from the second terminal, And a first decryption gradient is determined based on the first encryption gradient.
  • the apparatus includes a processor and a memory; the memory is used to store instructions, and the processor is used to execute the instructions to achieve all The operation corresponding to the model training method based on private data is described.
  • Fig. 1 is an exemplary application scenario diagram of a model training system based on private data according to some embodiments of this specification;
  • Fig. 2 is an exemplary flowchart of a method for model training based on private data according to some embodiments of this specification.
  • Fig. 3 is an exemplary flowchart of a method for model training based on private data according to some other embodiments of this specification.
  • the “system”, “device”, “unit” and/or “module” used in this specification is a method for distinguishing different components, elements, parts, parts, or assemblies of different levels. However, if other words can achieve the same purpose, the words can be replaced by other expressions. As shown in this specification and claims, unless the context clearly indicates exceptions, the words “a”, “an”, “an” and/or “the” do not specifically refer to the singular, but may also include the plural. Generally speaking, the terms “include” and “include” only suggest that the clearly identified steps and elements are included, and these steps and elements do not constitute an exclusive list, and the method or device may also include other steps or elements.
  • Data processing such as data analysis, data mining, and trend prediction is widely used in more and more scenarios for the large amount of information data that is flooded in various industries such as economy, culture, education, medical treatment, and public management.
  • data cooperation can enable multiple data owners to obtain better data processing results.
  • more accurate model parameters can be obtained through joint training of multi-party data.
  • a joint training system for models based on private data can be applied to scenarios where all parties cooperate to train a machine learning model for use by multiple parties while ensuring the security of the data of all parties.
  • multiple data parties have their own data, and they want to use each other's data for unified modeling (for example, linear regression models, logistic regression models, etc.), but they do not want their own data (especially private data) Was leaked.
  • Internet savings institution A has a batch of user data
  • government bank B has another batch of user data.
  • the training sample set determined based on the user data of A and B can train a better machine learning model. Both A and B are willing to participate in model training through each other's user data, but for some reasons, A and B are unwilling to have their user data information leaked, or at least they are unwilling to let the other party know their user data information.
  • the model training system based on private data can make the private data of multiple parties obtain a commonly used machine learning model through joint training of multi-party data without being leaked, so as to achieve a win-win cooperation state.
  • a garbage circuit or secret sharing method may be used.
  • the feature dimension is large, the calculation efficiency of the garbage circuit or the secret sharing scheme is not high.
  • the way of secret sharing requires multiple data parties to use their own data to participate in calculations at the same time.
  • the private data of all parties can also be homomorphically encrypted, and then the private data of all parties can participate in the calculation of the model training in the encrypted state.
  • homomorphic encryption only supports product operations and/or sum operations. In the process of use, the corresponding calculation formulas need to be converted accordingly. In some scenarios with large feature dimensions, the homomorphic encryption scheme has high computational efficiency.
  • Fig. 1 is an exemplary application scenario diagram of a model training system based on private data according to some embodiments of the present specification.
  • the model training system 100 based on private data includes a first terminal 110, a second terminal 120, and a network 130.
  • the first terminal 110 can be understood as the first-party data owner, including the processing device 110-1 and the storage device 110-2;
  • the second terminal 120 can be understood as the second-party data owner, including the processing device 120-1, Storage device 120-2.
  • the data held by the first-party data owner and the second-party data owner relate to user-related information in different fields.
  • the data held by both parties can include the amount of bank accounts that users deposit each year; it can also include information such as gender, age, income, and address of the user group involved in a certain investment and wealth management project or a certain insurance brand.
  • the number of data owners in FIG. 1 is two. In other embodiments, third-party data owners and fourth-party data owners may also be included.
  • the first terminal 110 and the second terminal 120 may be devices with data acquisition, storage, and/or sending functions.
  • the first terminal 110 and the second terminal 120 may include, but are not limited to, a mobile device, a tablet computer, a notebook computer, a desktop computer, etc., or any combination thereof.
  • the first terminal 110 and the second terminal 120 may send related data to or receive related data from each other.
  • the first terminal 110 may send its own encrypted first privacy data to the second terminal 120.
  • the first terminal 110 may also receive the masked encryption loss function from the second terminal 120.
  • the processing devices 110-1 and 120-1 of the first terminal and the second terminal may perform data and/or instruction processing.
  • the processing devices 110-1 and 120-1 can encrypt data, and can also execute related algorithms and/or instructions.
  • the processing device 110-1 of the first terminal 110 may encrypt the first private data, and may also use the mask encryption loss value to participate in the joint training of the model.
  • the processing device 120-1 of the second terminal 120 may encrypt the second private data, and may also calculate the encryption loss value based on related algorithm instructions.
  • the storage devices 110-2 and 120-2 of the first terminal and the second terminal can store data and/or instructions used by the corresponding processing devices 110-1 and 120-1, and the processing devices 110-1 and 120-1 can execute Or use the data and/or instructions to implement the exemplary methods in this specification.
  • the storage devices 110-2 and 120-2 can be used to store the first privacy data and the second privacy data, respectively; and can also store related instructions instructing the first terminal and the second terminal to perform operations.
  • the storage devices 110-2 and 120-2 may also store data processed by the processing devices 110-1 and 120-1, respectively.
  • the storage devices 110-2 and 120-2 may also store the model parameters of the features corresponding to the first private data and the model parameters of the features corresponding to the second private data, respectively.
  • the storage device 110-2 and the storage device 120-2 may also be a storage device, where the first terminal and the second terminal can only obtain data stored by themselves from the storage device.
  • the storage device may include mass memory, removable memory, volatile read-write memory, read-only memory (ROM), etc., or any combination thereof.
  • the network 130 may facilitate the exchange of information and/or data.
  • the system 100 for model training based on private data for example, the first terminal 110 (processing device 110-1 and storage device 110-2) and the second terminal 120 (processing device 120-1 and storage device 120) -2)
  • One or more components can send information and/or data to other components in the system 100 via the network 130.
  • the processing device 110-2 of the second terminal 120 may obtain the first privacy data from the first terminal 110 via the network 130.
  • the processing device 110-1 of the first terminal 110 may obtain the first privacy data from the storage device 110-2 of the first terminal 110 through the network 130.
  • the network 140 may be any form of wired or wireless network, or any combination thereof.
  • the system in one or more embodiments of this specification may be composed of a data receiving module and several data processing modules.
  • the data receiving module includes a first data receiving module; the data processing module may include an encryption result determination module, an encryption loss value determination module, and model parameters. Update the module.
  • the above-mentioned modules are all executed in the computing system introduced in the application scenario, and each module includes its own instructions.
  • the instructions can be stored on a storage medium, and the instructions can be executed in a processor. Different modules can be located on the same device or on different devices. Data can be transmitted between them through a program interface, a network, etc., and data can be read from or written to a storage device.
  • the first data receiving module may be used to receive the encrypted first private data from the first terminal. In some embodiments, the first data receiving module may also be used to receive the first private data encrypted with the public key of the first terminal. In some embodiments, the first data receiving module may also be used to receive the encrypted first feature from the first terminal.
  • the encryption loss value determination module is configured to determine the encryption loss value of the jointly trained model based on the first private data and the second private data; the first private data is determined by the first feature and the first model parameter corresponding to the first private data; The second privacy data is determined by the corresponding second feature and the second model parameter.
  • the encryption loss value determination module is further configured to: based on receiving the encrypted first private data from the first terminal; and calculating it with the encrypted data of the second private data of the second terminal, Obtain the encrypted result; based on the encrypted result and the sample label, obtain the encryption loss value of the model based on the joint training of the first private data and the second private data; wherein, the first private data and the second private data
  • the encryption public key of the private data is the public key of the first terminal.
  • the mask encryption loss value determination module is used to determine the mask encryption loss value based on the encryption loss value and the second mask.
  • the encryption mask data determination module is used to determine the encryption mask data based on the second mask and the encrypted first feature.
  • the model parameter update module is used for calculating a first decryption gradient based on the mask encryption loss value and the encryption mask data; used for participating in the calculation of the second decryption gradient based on the encryption loss value and the first mask;
  • the joint training model is updated based on the first decryption gradient and the second decryption gradient; the first decryption gradient and the second decryption gradient correspond to the first private data and the second private data, respectively.
  • the model parameter update module may be used to: transmit the mask encryption loss value to the first terminal; receive the first terminal determined based on the first encryption gradient and the encryption mask data from the first terminal An operation result; determine a first encryption gradient based on the first operation result and the encryption mask data, and transmit it to the first terminal.
  • the model parameter update template may also be used to: determine a second encryption gradient based on the encryption loss value and characteristics corresponding to the second privacy data; determine based on the second encryption gradient and the first mask Corresponding to the first mask gradient, and transmit the first mask gradient to the first terminal; receive a first decoding result from the first terminal, where the first decoding result corresponds to the first mask gradient ; Based on the first decoding result and the first mask, determine a second decryption gradient.
  • the data receiving module includes a mask encryption loss value receiving module; the data processing module may include a model parameter update module.
  • the mask encryption loss value receiving module may be configured to receive a mask encryption loss value from the second terminal, and the mask encryption loss value is determined by the second terminal based on the encryption loss value and the second mask.
  • the model parameter update module may be used to participate the mask encryption loss value in the calculation of the first decryption gradient; the first decryption gradient corresponds to the first private data, and is used to update the first private data and the second private data. Joint training model determined by private data.
  • the model parameter update module may include a first calculation result calculation module, configured to determine the first feature based on the received mask encryption loss value and the first feature corresponding to the first privacy data.
  • the model parameter update module may further include a first decryption gradient determining module, configured to receive a first encryption gradient from a second terminal; the first encryption gradient is determined by the second terminal based on the encryption The subsequent first feature, the second mask, and the first operation result are determined; based on the first encryption gradient, the first decryption gradient is determined.
  • system and its modules in one or more implementations of this specification can be implemented in various ways.
  • the system and its modules may be implemented by hardware, software, or a combination of software and hardware.
  • the hardware part can be implemented using dedicated logic;
  • the software part can be stored in a memory and executed by an appropriate instruction execution system, such as a microprocessor or dedicated design hardware.
  • processor control codes for example on a carrier medium such as a disk, CD or DVD-ROM, such as a read-only memory (firmware Such codes are provided on a programmable memory or a data carrier such as an optical or electronic signal carrier.
  • the system and its modules of this application can not only be implemented by hardware circuits such as very large-scale integrated circuits or gate arrays, semiconductors such as logic chips, transistors, etc., or programmable hardware devices such as field programmable gate arrays, programmable logic devices, etc. It may also be implemented by software executed by various types of processors, or may be implemented by a combination of the above hardware circuit and software (for example, firmware).
  • Fig. 2 is an exemplary flowchart of a method for model training based on private data according to some embodiments of the present specification.
  • variable names and formulas in this manual are only for better understanding of the methods described in this manual.
  • various non-substantial transformations can be made to the following processes, variable names, and formulas, such as changing the order of rows or columns, and transforming to when matrix multiplication, etc. Price form, expressing the same calculation in other forms of calculation, etc.
  • the training data of the joint training model includes m data samples, and each sample data includes n-dimensional features.
  • the n-dimensional feature data of the m samples are held by at least the first-party data owner and the second-party data owner, that is, at least two data owners hold different characteristics of the same sample.
  • some embodiments of this specification take two-party data owners as examples for detailed description, and use A and B to represent the first-party data owner and the second-party data owner, respectively.
  • the first-party data owner may also be referred to as the first terminal or the first party
  • the second-party data owner may also be referred to as the second terminal or the second party.
  • the first-party data owner A owns the data (Xa) corresponding to the p-dimensional features in the m samples, and the model parameters (Wa) corresponding to the p-dimensional features;
  • the second-party data owns Person B has data (Xb) corresponding to another q-dimensional feature in the m samples, and model parameters (Wb) corresponding to the q-dimensional feature.
  • Xa is a matrix composed of m samples, and each sample is a row vector with 1 row and p columns, that is, Xa is a matrix with m rows and p columns.
  • Wa is a parameter matrix of p-dimensional features corresponding to A, and Wa is a matrix with p rows and 1 column.
  • Xb is a matrix with m rows and q columns.
  • model parameters can also be referred to simply as models.
  • Label y is held by one of A and B, but holding by the other party will not have a substantial impact.
  • the label y is held by B, and y is a column vector with m rows and 1 column.
  • N and n+1 at time This simplification has no substantial effect on the method described in this specification.
  • the first-party data owner A also owns his own public key PKa and private key SKa.
  • A's public key PKa and private key SKa may also be referred to as the first terminal public key and the first terminal private key.
  • [X]a means to encrypt X with Pka.
  • X is a matrix, it means to encrypt each element of the matrix. If there is no further explanation, encryption can refer to any asymmetric encryption method.
  • variable names, formulas and other expressions appearing in this manual are only for a better understanding of the methods described in this manual.
  • various insubstantial transformations can be made to the representation method, variable names, formulas, calculation methods, etc., without affecting its essence and corresponding technical effects . For example, but not limited to changing the order of rows or columns, transforming to an equivalent form during matrix multiplication, or expressing the same calculation in other calculation forms.
  • Step 210 A gives B its own public key.
  • the data owner gives their public key to the other party, that is, the first party gives their public key to the second party for subsequent use in data encryption.
  • A can transmit his public key to B via the network.
  • A gives B his public key PKa.
  • Step 220 Both parties calculate the first power, second power, and third power of Ua and Ub respectively, and encrypt them with A's public key.
  • Both parties perform product operations of the model parameters and feature data they hold, and encrypt the results of their product operations with the public key PKa of the first party.
  • the first party sends the ciphertext data to the second party.
  • the resulting Ua, [Ua]a, Ua ⁇ 2, [Ua ⁇ 2]a, Ua ⁇ 3, and [Ua ⁇ 3]a are all a matrix with m rows and 1 column.
  • the encryption algorithm used is a homomorphic encryption algorithm.
  • the homomorphic encryption algorithm means that for the encryption function f, for any A, B,
  • Step 230 B calculates the encryption loss value.
  • the second party who owns the encrypted data of both parties adds the encrypted data of the two parties by addition. Since the encryption algorithm is a homomorphic encryption algorithm, the summed value is equal to the encrypted value of the sum of the unencrypted data of both parties.
  • the second party calculates the loss value based on the added ciphertext data.
  • the Taylor expansion can be used to approximate the Sigmoid function. Since Taylor's expansion is the addition and multiplication of polynomials and can support homomorphic encryption, the Taylor expansion can be used to calculate the approximate loss value in the encrypted state. In some embodiments, the Taylor expansion may be an n-th order Taylor expansion.
  • a Taylor expansion of a certain order is often used for approximate calculation. It should be noted that the more the order of the Taylor expansion used, the higher the accuracy of the approximate calculation, but the more complex the calculation process, the slower the calculation speed.
  • the third-order Taylor expansion is taken as an example for exemplification. The following detailed disclosure is only an example and does not constitute a limitation to the application.
  • Party B participates in the calculation based on the [Ua]a, [Ua ⁇ 2]a, and [Ua ⁇ 3]a obtained in step 220.
  • [z ⁇ 3]a [Ua ⁇ 3]a++[Ub ⁇ 3]a+3[Ua ⁇ 2]a*Ub+3[Ua]a*Ub ⁇ 2.
  • the calculated encryption loss value [d]a is a matrix with m rows and 1 column.
  • Step 240 B calculates the second encryption gradient value.
  • the second party substitutes the encryption loss value into the gradient descent formula, that is, performs a product operation on the encryption loss value and the data corresponding to its own characteristics, and calculates the second encryption gradient value.
  • Party B uses the gradient calculation formula in Figure 2 to calculate:
  • B obtains the second encrypted gradient value [Gb]a encrypted with Pka according to the homomorphic multiplication.
  • the second gradient value Gb thus obtained is a matrix with q rows and 1 column.
  • Step 242 B adds the second encryption gradient value to the first mask, and sends it to A for decryption.
  • the second party adds the first mask encrypted with the public key of the first party to the second encryption gradient value, and sends it to the first party.
  • the first party decrypts the received encrypted data with its private key.
  • the first mask is a value set by the second party, and the main purpose is to prevent A from knowing the second gradient value after decryption. This specification does not limit the setting range of the specific numerical value of the first mask, as long as the above purpose can be met.
  • Party B calculates [Gb]a+[mask1]a and sends it to Party A.
  • mask1 is the first mask, which has the same dimension as the second gradient value Gb, so Gb+mask1 is also a matrix with q rows and 1 column.
  • Step 244 B receives the data of the second gradient value returned by A plus the first mask.
  • the first party sends the second gradient value with the first mask to the second party, and the second party receives the data and removes the first mask to obtain the second gradient value of the second party.
  • the second gradient value Gb is a matrix with q rows and 1 column.
  • Step 246 B updates the model based on the second gradient value.
  • the second party calculates the second gradient value of its own party, and performs a product operation on the second gradient value and the leaning rate to update the model.
  • learning_rate represents a hyperparameter that affects the degree of descent in the gradient descent method.
  • step 250 B adds the encryption loss value to the second mask, and sends it to A.
  • the second party adds the encryption loss value to the second mask to obtain the mask encryption loss value and sends it to the first party.
  • the second mask is a value set by the second party, and the main purpose is to prevent A from knowing the loss value after decryption.
  • the setting range of the specific value of the second mask this specification does not limit it, as long as the above purpose can be met.
  • the values of the second mask and the first mask may be the same or different.
  • Step 252 A performs a product calculation on the received data and the first feature, and sends the calculation result to B.
  • the first party substitutes the mask encryption loss value into the gradient descent formula, that is, performs a product operation on the mask encryption loss value and its own feature data, that is, the first feature Xa.
  • the result of the product operation includes the first encryption gradient value and the first feature data.
  • the result of the operation of the second mask is the mask encryption loss value into the gradient descent formula, that is, performs a product operation on the mask encryption loss value and its own feature data, that is, the first feature Xa.
  • A substitutes the received mask encryption loss value [d+mask2]a into the gradient calculation formula to calculate:
  • [d ⁇ Xa]a is the first encryption gradient value [Ga]a
  • [mask2 ⁇ Xa]a can be regarded as encryption mask data, which is determined by the product of the second mask mask2 and the first feature Xa.
  • A has the calculation result of [d+mask2]a ⁇ Xa, which means that A has the calculation result of [Ga]a+[mask2 ⁇ Xa]a, and then it can be obtained:
  • A can be obtained in the following way
  • Step 254 A sends the encrypted first feature to B, and B calculates the first encrypted gradient value.
  • step 252 it can be known that the first encryption gradient value [d ⁇ Xa]a needs to be determined according to the encryption mask data [mask2 ⁇ Xa]a and [d+mask2]a ⁇ Xa, namely
  • B In order to determine the value of [mask2 ⁇ Xa]a, B needs to acquire the first feature Xa. In order to ensure the privacy of the first feature Xa, A first encrypts the first feature with its own public key, and then sends it to B, that is, sends [Xa]a to B.
  • B After receiving [Xa]a, B performs the product operation mask2*[Xa]a with the second mask mask2 to obtain the encrypted mask data [mask2*Xa]a.
  • B can be obtained from A, that is, A sends the calculation result [d+mask2]a ⁇ Xa with the encrypted public key to B. Since the calculation result sent by A is encrypted with the public key of party A, the privacy of the data can be ensured.
  • Step 256 A receives the calculation result returned by B, determines the first gradient value, and updates the model.
  • Wa Wa-learning_rate ⁇ Ga
  • the above process illustrates a gradient descent process, this process can be iterated until convergence, and the training of the model is completed. In this process, neither party can obtain the data held by the other party.
  • Fig. 3 is an exemplary flowchart of a method for processing dialog information according to some embodiments of the present specification.
  • one or more steps in the method 300 may be implemented in the system 100 shown in FIG. 1.
  • one or more steps in the method 300 may be stored in a storage device in the form of instructions, and called and/or executed by the processing device.
  • the first terminal holds the first private data; the second terminal holds the second private data, sample labels, and joint training based on the first private data and the second private data
  • the encryption loss value of the model is held by each data terminal and are not disclosed to other data owners.
  • the sample label corresponds to a training sample composed of the first private data and the second private data.
  • Steps 310 to 330 illustrate the process of obtaining the encryption loss value of the jointly trained model based on the first private data and the second private data.
  • the first terminal may transmit the encrypted first private data to the second terminal.
  • the second terminal may calculate the encryption loss value based on the encrypted first privacy data, the second privacy data stored by itself, and the sample tag it holds. Specifically, the second terminal obtains the encrypted first privacy data (such as [Ua]a, [Ua ⁇ 3]a, [Ua ⁇ 5]a, etc.); the second terminal is based on the encrypted first privacy data and the first privacy data.
  • the encryption loss value of the jointly trained model can be obtained by calculating based on the sample label and predicted value For more information about obtaining the encryption loss value, see the related descriptions of steps 310 to 330.
  • Step 310 The first terminal transmits the encrypted first privacy data to the second terminal. In some embodiments, step 310 may be performed by an encryption loss value determination module.
  • the first private data may be determined by the product Ua of the first feature and the first model parameter.
  • the first private data is Wa*Xa.
  • the second privacy data can be determined by the product Ub of the second feature and the second model parameter, that is, Wb*Xb.
  • the first private data may refer to the power of the product Ua and/or Ua.
  • the first private data may be Ua, Ua ⁇ 3, Ua ⁇ 5, etc.
  • the second private data may refer to the power of the product Ub and/or Ub.
  • the first private data may be Ub, Ub ⁇ 3, Ub ⁇ 5, and so on.
  • the first terminal, the second terminal; Ua, Ub; Wa, Xa; Ua ⁇ 3, Ub ⁇ 3 and Wb, Xb can refer to the relevant description of FIG. 2.
  • the first terminal may send the public key PKa of the first terminal to the second terminal.
  • Both the private data of the first terminal and the second terminal can be encrypted by the public key PKa of the first terminal.
  • the first private data may also be Wa and Xa, and in some embodiments, the second private data may also include Wb and Xb.
  • the second terminal may use the same encryption public key as the first private data to encrypt the second private data.
  • the first terminal uses the public key PKa of the first terminal to encrypt the first private data
  • the second terminal also uses PKa to encrypt the second private data.
  • the specific encryption process description can refer to step 220 in FIG. 2.
  • the sample data held by the data owner may be user attribute information in at least one of the fields of insurance, banking, and medical care.
  • the bank owns the identity information, flow information, and credit information of the bank’s customers
  • the insurance company owns the company’s customer identity information, historical purchase insurance information, historical claims information, health information, vehicle status information, etc.
  • medical institutions own the institution Patient identification information, historical medical records, etc.
  • the user attribute information includes images, text, or voice.
  • the model owned by the data owner can make predictions based on the characteristics of the sample data. For example, the bank can predict the annual deposit growth rate of the bank based on the characteristics of user growth in the first and second quarters, increasing user identities, and new bank policies.
  • the model may also be used to confirm the user's identity information, and the user's identity information may include, but is not limited to, the user's credit evaluation.
  • the private data in one or more embodiments of this specification may include private data related to the entity.
  • an entity can be understood as a visualized subject, which can include, but is not limited to, users, merchants, and so on.
  • the privacy data may include image data, text data, or sound data.
  • the image data in the privacy data may be a user's face image, a merchant's logo image, a two-dimensional code image that can reflect user or merchant information, and so on.
  • the text data in the privacy data may be text data such as the user's gender, age, education background, income, etc., or text data such as the type of merchandise traded by the merchant, the time when the merchant conducts the merchandise transaction, and the price range of the merchandise.
  • the voice data of the privacy data may be related voice content including user personal information or user feedback, and corresponding user personal information or user feedback information can be obtained by parsing the voice content.
  • Step 320 The second terminal receives the encrypted first private data and calculates it with the encrypted data of the second private data to obtain the encrypted result.
  • step 320 may be performed by the encryption loss value determination module.
  • the encrypted result can be understood as the result obtained by calculating the first private data and the second private data in an encrypted state.
  • the encrypted data of the first private data and the encrypted data of the second private data may be subjected to a sum operation to obtain the encrypted result.
  • the encrypted data of the first private data Ua is [Ua]a
  • the encrypted data of the second private data Ub is [Ub]a
  • the encrypted result obtained by the sum operation is [Ua]a+[Ub]a, That is [Ua+Ub]a.
  • the encrypted result can also be understood as the result of the exponentiation of the sum of the first private data and the second private data in the encrypted state.
  • the encrypted result may be a result obtained by exponentiation of the sum of the first private data and the second private data.
  • the encrypted result may also be a result obtained by exponentiation of the sum of a plurality of first private data and second private data.
  • the encrypted result may include multiple items such as [z]a, [z ⁇ 3]a, and [z ⁇ 5]a.
  • the number of items in the encrypted calculation result depends on the formula used. It should be noted that the higher the order of [z]a used, the higher the accuracy of the calculation result, but the more complex the calculation process, the slower the calculation speed. For the specific encryption process, refer to step 230 in FIG. 2.
  • step 330 the second terminal obtains the encryption loss value of the model based on the joint training of the first private data and the second private data based on the encrypted result and the sample label.
  • step 330 may be performed by the encryption loss value determination module.
  • the loss value can be used to reflect the difference between the predicted value of the training model and the actual sample data. In some embodiments, the loss value can reflect the difference between the preset value and the real value by participating in the calculation.
  • the related calculation formulas of different training models are different, and the calculation formulas corresponding to different parameter optimization algorithms are also different when the same training model is used.
  • the calculation formula for the loss value is However, one or more embodiments of this specification do not limit the calculation formula for determining the loss value.
  • the second terminal may calculate the encryption loss value [d]a of the joint training model based on the encrypted result [Ua+Ub]a and the sample label y.
  • the tag y can be held by either the first terminal or the second terminal.
  • the jointly trained model may include a linear regression model; it may also include a logistic regression model.
  • the Sigmoid function when the joint training model includes a logistic regression model, the Sigmoid function needs to be used to calculate the loss value d. Since the homomorphic encryption algorithm only supports product operations and sum operations, the Sigmoid function can be replaced with an approximate function that can support product operations and sum operations as needed. For example, in some embodiments, it can be expanded by multi-order Taylor The formula expands the Sigmoid formula, and then calculates the encryption loss value based on the Taylor expansion formula of Sigmoid. For a detailed description, please refer to step 230 in FIG. 2.
  • the jointly trained model is a linear regression model
  • a linear function can be used to calculate the predicted value y ⁇ .
  • the homomorphic encryption algorithm can be used directly when calculating the linear function, and the Taylor expansion may not be used.
  • the second terminal can calculate the loss value based on the sum z of the first privacy data and the second privacy data
  • Step 340 The second terminal participates in the calculation of the second decryption gradient based on the encryption loss value and its own first mask.
  • step 340 may be performed by a model parameter update module.
  • the second terminal determines the second encryption gradient [Gb]a based on the encryption loss value [d]a and the feature Xb corresponding to the second privacy data.
  • the specific process of determining the second encryption gradient [Gb]a reference may be made to step 240 in FIG. 2.
  • the second terminal may obtain the corresponding second decryption gradient based on the second encryption gradient by adding the first mask. Specifically, in some embodiments, the second terminal obtains the corresponding first mask gradient determined based on the second encryption gradient and the first mask, and transmits the first mask gradient to the holder of the second encryption The first terminal of the gradient encryption key; the first terminal decodes the received first mask gradient, and transmits the corresponding first decoding result to the second terminal; the second terminal is based on the received After the first decoding result and the first mask are obtained, the first mask is removed to obtain a second decryption gradient.
  • the first mask gradient [Gb+mask1]a can be understood as an operation result of the second encryption gradient [Gb]a and the first mask mask1.
  • the operation may include a product operation or a sum operation; the first mask may also include one value or multiple values.
  • the first mask mask1 is a value, and the operation is a sum operation, then the corresponding first mask gradient may be [Gb]a+[mask1]a, or [Gb+mask1 ]a.
  • the first mask gradient when the first mask is added by the product operation method, the first mask gradient may be [Gb]a*[mask1]a.
  • the second terminal updates the joint training model based on the second decryption gradient Gb. For a specific description, refer to step 246 in FIG. 2.
  • the second terminal after the second terminal determines the encryption loss value, it needs to transmit the determined encryption loss function to the first terminal in a way that does not leak the second private data to the first terminal.
  • the second terminal will add a second mask mask2 to the encryption loss value [d]a, determine the mask encryption loss value, for example, [d+mask2]a, and encrypt the mask The loss value is sent to the first terminal. For details, refer to step 250 in FIG. 2.
  • Step 350 The second terminal participates in the calculation of the first decryption gradient based on the encryption loss value, the encrypted first feature, and its own second mask.
  • step 350 may be performed by a model parameter update module.
  • the second terminal determines the mask encryption loss value based on the encryption loss value and its own second mask, for example, [d]a+mask2; the second terminal receives the encrypted first terminal from the first terminal A feature, and determine the encryption mask data based on its own second mask and the encrypted first feature, for example, [mask2*Xa]a; the second terminal encrypts the mask with the loss value and the encryption mask The data participates in the calculation of the first decryption gradient.
  • the second terminal may send the mask encryption loss value, that is [d]a+mask2, or [d+mask2]a, to the first terminal, and the first terminal encrypts the loss value based on the received mask Calculate the product of the mask encryption loss value and the feature Xa corresponding to the first private data to obtain the first operation result [d+mask2]a*Xa, or [(d+mask2)*Xa]a, or [d*Xa ]a+[mask2*Xa]a, and send the first operation result to the second terminal.
  • the mask encryption loss value that is [d]a+mask2, or [d+mask2]a
  • the first operation result includes the operation result of the first encryption gradient [d*Xa]a and the encryption mask data [mask2*Xa]a.
  • the first operation result may be the first encryption gradient and the encryption mask. The result of the data operation and the sum.
  • the first privacy data received by the second terminal in step 310 is a power of Ua and/or Ua (Ua is the product of Xa and Wa).
  • the first terminal can encrypt the first feature with its own public key, and send the encrypted first feature to the second terminal, thereby obtaining the encryption mask data [mask2*Xa]a .
  • the second terminal can calculate the encryption mask data mask2*[Xa]a (ie [mask2*Xa]a), and based on the first operation result [(d+mask2 )*Xa]a Get the first encryption gradient [d*Xa]a.
  • the first terminal decrypts the first encryption gradient [d*Xa]a, can determine the first decryption gradient Ga, and then update the model parameters. For the corresponding detailed description, refer to step 252 to step 256 in FIG. 2.
  • the first privacy data received by the second terminal in step 310 includes Xa and Wa.
  • the second terminal may directly calculate the encryption mask data [mask2*Xa]a according to Xa in the first private data.
  • the encryption loss value is involved in the calculation of the first decryption gradient (and/or the second decryption gradient), which can be understood as using the encryption loss function to participate in the encryption calculation, and finally obtain the ability to perform the decryption The decryption gradient of the model parameter update, and then the model that completes a parameter update is obtained.
  • a gradient descent method can be used to obtain a model that completes a parameter update.
  • the obtained encryption loss value can be calculated to obtain the encryption gradient value to participate in the model training, and the above process is repeated until the number of iterations reaches the upper limit of the predefined number of iterations or the error calculated after the encryption loss value is added is less than the predefined Numerical value, that is, the trained model is obtained.
  • a gradient descent method may be used to minimize the loss value d.
  • the first encryption gradient [Ga]a of the first terminal may be determined based on the encryption loss value [d]a and the characteristics Xa and Xb corresponding to the first private data and the second private data.
  • the second encryption gradient [Gb]a of the second terminal may be used to minimize the loss value d.
  • the first terminal and the second terminal may determine the corresponding first decryption gradient Ga and the second decryption gradient Gb based on the first encryption gradient [Ga]a and the second encryption gradient [Gb]a, respectively, and The model parameters are updated based on the first decryption gradient Ga and the second decryption gradient Gb respectively, and a model that completes a parameter update is obtained.
  • the possible beneficial effects of the embodiments of the present application include, but are not limited to: (1) Using homomorphic encryption to enable private data to participate in operations in an encrypted state, and to have higher characteristics when the training data has a higher feature dimension. Operational efficiency; (2) Based on the encryption feature of one side, the mask data of the other side participates in the gradient value calculation of the other side, which simplifies the algorithm flow and improves the operation efficiency; (3) Multi-party data joint training improves data utilization and improves The accuracy of the prediction model; (4) Improve the security of joint training with multi-party data. It should be noted that different embodiments may have different beneficial effects. In different embodiments, the possible beneficial effects may be any one or a combination of the above, or any other beneficial effects that may be obtained.
  • this application uses specific words to describe the embodiments of the application.
  • “one embodiment”, “an embodiment”, and/or “some embodiments” mean a certain feature, structure, or characteristic related to at least one embodiment of the present application. Therefore, it should be emphasized and noted that “one embodiment” or “one embodiment” or “an alternative embodiment” mentioned twice or more in different positions in this specification does not necessarily refer to the same embodiment. .
  • some features, structures, or characteristics in one or more embodiments of the present application can be appropriately combined.
  • the computer storage medium may contain a propagated data signal containing a computer program code, for example on a baseband or as part of a carrier wave.
  • the propagated signal may have multiple manifestations, including electromagnetic forms, optical forms, etc., or a suitable combination.
  • the computer storage medium may be any computer readable medium other than the computer readable storage medium, and the medium may be connected to an instruction execution system, device, or device to realize communication, propagation, or transmission of the program for use.
  • the program code located on the computer storage medium can be transmitted through any suitable medium, including radio, cable, fiber optic cable, RF, or similar medium, or any combination of the above medium.
  • the computer program codes required for the operation of each part of this application can be written in any one or more programming languages, including object-oriented programming languages such as Java, Scala, Smalltalk, Eiffel, JADE, Emerald, C++, C#, VB.NET, Python Etc., conventional programming languages such as C language, VisualBasic, Fortran2003, Perl, COBOL2002, PHP, ABAP, dynamic programming languages such as Python, Ruby and Groovy, or other programming languages.
  • the program code can run entirely on the user's computer, or run as an independent software package on the user's computer, or partly run on the user's computer and partly run on a remote computer, or run entirely on the remote computer or processing equipment.
  • the remote computer can be connected to the user's computer through any network form, such as a local area network (LAN) or a wide area network (WAN), or connected to an external computer (for example, via the Internet), or in a cloud computing environment, or as a service Use software as a service (SaaS).
  • LAN local area network
  • WAN wide area network
  • SaaS service Use software as a service
  • numbers describing the number of ingredients and attributes are used. It should be understood that such numbers used in the description of the embodiments use the modifier "about”, “approximately” or “substantially” in some examples. Retouch. Unless otherwise stated, “approximately”, “approximately” or “substantially” indicates that the number is allowed to vary by ⁇ 20%.
  • the numerical parameters used in the specification and claims are approximate values, and the approximate values can be changed according to the required characteristics of individual embodiments. In some embodiments, the numerical parameter should consider the prescribed effective digits and adopt the method of general digit retention. Although the numerical ranges and parameters used to confirm the breadth of the range in some embodiments of the present application are approximate values, in specific embodiments, the setting of such numerical values is as accurate as possible within the feasible range.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Medical Informatics (AREA)
  • Artificial Intelligence (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Databases & Information Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本说明书一个或多个实施例涉及一种基于隐私数据进行模型训练的方法及系统。所述的方法包括:第一终端持有第一隐私数据;第二终端持有第二隐私数据、样本标签以及基于第一隐私数据和所述第二隐私数据联合训练的模型的加密损失值;第二终端基于所述加密损失值以及自身的第一掩码,参与第二解密梯度的计算;第二终端基于所述加密损失值、自身的第二掩码以及加密后的第一特征,参与第一解密梯度的计算;所述第一解密梯度和第二解密梯度用于更新所述联合训练的模型;其中,所述加密为同态加密;所述第一隐私数据和所述第二隐私数据对应于相同的训练样本,所述训练样本为与实体相关的图像数据、文本数据或声音数据

Description

基于隐私数据进行模型训练 技术领域
本说明书一个或多个实施例涉及多方数据合作,特别涉及一种基于隐私数据进行模型训练的方法和系统。
背景技术
在数据分析、数据挖掘、经济预测等领域,机器学习模型可被用来分析、发现潜在的数据价值。由于单个数据拥有方持有的数据可能是不完整的,由此难以准确地刻画目标,为了得到更好的模型预测结果,通过多个数据拥有方的数据合作,来进行模型的联合训练的方式得到了广泛的使用。但是在多方数据合作的过程中,涉及到数据安全和模型安全等问题。因此,有必要提出一种安全的基于多方数据进行联合建模的方案。
发明内容
本说明书实施例的一个方面提供一种基于隐私数据进行模型训练的方法,所述方法包括:第一终端持有第一隐私数据;第二终端持有第二隐私数据、样本标签以及基于第一隐私数据和所述第二隐私数据联合训练的模型的加密损失值;第二终端基于所述加密损失值以及自身的第一掩码参与第二解密梯度的计算;第二终端基于所述加密损失值以及自身的第二掩码,确定掩码加密损失值;第二终端接收来自第一终端的加密后的第一特征,并基于自身的第二掩码以及加密后的第一特征,确定加密掩码数据;将所述掩码加密损失值以及所述加密掩码数据参与第一解密梯度的计算;所述第一解密梯度和第二解密梯度分别与所述第一隐私数据和第二隐私数据对应;所述第一解密梯度和第二解密梯度用于更新所述联合训练的模型;其中,所述加密为同态加密;所述第一隐私数据和所述第二隐私数据对应于相同的训练样本,所述训练样本为与实体相关的图像数据、文本数据或声音数据。
本说明书实施例的另一方面提供一种基于隐私数据进行模型训练的系统,所述系统包括:第一数据接收模块,用于接收来自第一终端的加密后的第一特征;掩码加密损失值确定模块,用于基于所述加密损失值以及第二掩码,确定掩码加密损失值;加密掩码数据确定模块,用于基于第二掩码以及加密后的第一特征,确定加密掩码数据;模型参数更新模块,用于基于所述掩码加密损失值以及所述加密掩码数据计算第一解密梯度; 用于基于所述加密损失值以及第一掩码参与第二解密梯度的计算;所述第一解密梯度和第二解密梯度分别与所述第一隐私数据和第二隐私数据对应;所述第一解密梯度和第二解密梯度用于更新所述联合训练的模型;第一终端持有第一隐私数据;第二终端持有第二隐私数据、样本标签以及基于第一隐私数据和所述第二隐私数据联合训练的模型的加密损失值;其中,所述加密为同态加密;所述第一隐私数据和所述第二隐私数据对应于相同的训练样本,所述训练样本为与实体相关的图像数据、文本数据或声音数据。
本说明书实施例的另一方面提供一种基于隐私数据进行模型训练的装置,所述装置包括处理器以及存储器;所述存储器用于存储指令,所述处理器用于执行所述指令,以实现所述基于隐私数据进行模型训练方法对应的操作。
本说明书实施例的另一方面提供一种基于隐私数据进行模型训练的方法,所述方法包括:第一终端接收来自第二终端的掩码加密损失值;所述掩码加密损失值由第二终端基于加密损失值以及自身的第二掩码确定;基于所述掩码加密损失值以及第一特征计算第一运算结果,并将所述第一运算结果传输给第二终端;所述第一运算结果由第一加密梯度以及加密掩码数据确定;接收来自第二终端的第一加密梯度,并基于所述第一加密梯度确定第一解密梯度。本说明书实施例的另一方面提供一种基于隐私数据进行模型训练的系统,所述系统包括:掩码加密损失值接收模块,用于接收来自第二终端的掩码加密损失值;所述掩码加密损失值由第二终端基于加密损失值以及自身的第二掩码确定;第一运算结果计算模块,用于基于所述掩码加密损失值以及第一特征计算第一运算结果,并将所述第一运算结果传输给第二终端;所述第一运算结果由第一加密梯度以及加密掩码数据确定;第一解密梯度确定模块,用于接收来自第二终端的第一加密梯度,并基于所述第一加密梯度确定第一解密梯度。
本说明书实施例的另一方面提供一种基于隐私数据进行模型训练的装置,所述装置包括处理器以及存储器;所述存储器用于存储指令,所述处理器用于执行所述指令,以实现所述基于隐私数据进行模型训练方法对应的操作。
附图说明
本说明书将以示例性实施例的方式进一步描述,这些示例性实施例将通过附图进行详细描述。这些实施例并非限制性的,在这些实施例中,相同的编号表示相同的结构。
图1是根据本说明书一些实施例所示的基于隐私数据进行模型训练系统的示例性应用场景图;
图2是根据本说明书一些实施例所示的基于隐私数据进行模型训练方法的示例性流程图;以及
图3是根据本说明书的另外一些实施例所示的基于隐私数据进行模型训练方法的示例性流程图。
具体实施方式
为了更清楚地说明本申请实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单的介绍。显而易见地,下面描述中的附图仅仅是本申请的一些示例或实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图将本申请应用于其它类似情景。除非从语言环境中显而易见或另做说明,图中相同标号代表相同结构或操作。
应当理解,本说明书中所使用的“系统”、“装置”、“单元”和/或“模组”是用于区分不同级别的不同组件、元件、部件、部分或装配的一种方法。然而,如果其他词语可实现相同的目的,则可通过其他表达来替换所述词语。如本说明书和权利要求书中所示,除非上下文明确提示例外情形,“一”、“一个”、“一种”和/或“该”等词并非特指单数,也可包括复数。一般说来,术语“包括”与“包含”仅提示包括已明确标识的步骤和元素,而这些步骤和元素不构成一个排它性的罗列,方法或者设备也可能包含其它的步骤或元素。
本说明书中使用了流程图用来说明根据本说明书的实施例的系统所执行的操作。应当理解的是,前面或后面操作不一定按照顺序来精确地执行。相反,可以按照倒序或同时处理各个步骤。同时,也可以将其他操作添加到这些过程中,或从这些过程移除某一步或数步操作。
在经济、文化、教育、医疗、公共管理等各行各业充斥的大量信息数据,对其进行例如数据分析、数据挖掘、以及趋势预测等的数据处理在越来越多场景中广泛应用。其中,通过数据合作的方式可以使多个数据拥有方获得更好的数据处理结果。例如,可以通过多方数据的联合训练来获得更为准确的模型参数。
在一些实施例中,基于隐私数据进行模型的联合训练系统可以应用于在保证各方数据安全的情况下,各方协同训练机器学习模型供多方使用的场景。在这个场景中,多个数据方拥有自己的数据,他们想共同使用彼此的数据来统一建模(例如,线性回归模型、 逻辑回归模型等),但并不想各自的数据(尤其是隐私数据)被泄露。例如,互联网储蓄机构A拥有一批用户数据,政府银行B拥有另一批用户数据,基于A和B的用户数据确定的训练样本集可以训练得到比较好的机器学习模型。A和B都愿意通过彼此的用户数据共同参与模型训练,但因为一些原因A和B不愿意自己的用户数据信息遭到泄露,或者至少不愿意让对方知道自己的用户数据信息。
基于隐私数据进行模型训练系统可以使多方的隐私数据在不受到泄露的情况下,通过多方数据的联合训练来得到共同使用的机器学习模型,达到一种共赢的合作状态。
在一些实施例中,基于多方数据进行的联合训练中,为了防止隐私数据的泄露,可以采用混淆电路(garbled circuit)或秘密分享的方式来进行。其中,在特征维度较大时,混淆电路(garbled circuit)或秘密分享方案的运算效率不高。而且,秘密分享的方式需要多个数据方在在同一时间利用自身的数据参与运算。在一些实施例中,也可以对各方的隐私数据进行同态加密,然后让各方的隐私数据在加密的状态参与模型训练的运算。其中,同态加密仅支持积运算和/或和运算,在使用的过程中,需要把对应的运算公式根据需要进行相应的转换。在一些特征维度较大的场景中,同态加密方案的运算效率高。
图1为根据本说明书的一些实施例所示的基于隐私数据进行模型训练系统的示例性应用场景图。
在一些实施例中,基于隐私数据进行模型训练系统100包括第一终端110、第二终端120以及网络130。其中,第一终端110可以理解为第一方数据拥有者,包括处理设备110-1,存储设备110-2;第二终端120可以理解为第二方数据拥有者,包括处理设备120-1,存储设备120-2。在一些实施例中,第一方数据拥有者和第二方数据拥有者所持有的数据涉及到不同领域中的用户相关信息。例如,双方持有的数据可以包括用户每年存入的银行账户的金额;也可以某一投资理财项目或某一保险品牌所涉及用户群体的性别、年龄、收入、住址等信息。需要注意的是,仅作为示例性的,图1中数据拥有者的数量为两方,在其他实施例中,还可以包括第三方数据拥有者以及第四方数据拥有者等。
第一终端110和第二终端120可以是带有数据获取、存储和/或发送功能的设备。在一些实施例中,第一终端110和第二终端120可以包括但不限于移动设备、平板电脑、笔记本电脑、台式电脑等或其任意组合。在一些实施例中,第一终端110和第二终端120可以将相关数据发送给对方或从对方接收相关数据。例如,第一终端110可以将自身的加密后的第一隐私数据发送给第二终端120。第一终端110也可以接收来自第二终端120的掩码加密损失函数。
第一终端和第二终端的处理设备110-1和120-1可以进行数据和/或指令处理。处理设备110-1和120-1可以对数据进行加密,也可以执行相关算法和/或指令。例如,第一终端110的处理设备110-1可以对第一隐私数据进行加密,也可以利用掩码加密损失值参与模型的联合训练。例如,第二终端120的处理设备120-1可以对第二隐私数据进行加密,也可以基于相关算法指令计算加密损失值。
第一终端和第二终端的存储设备110-2和120-2可以存储对应处理设备110-1和120-1执行使用的数据和/或指令,处理设备110-1和120-1可以通过执行或使用所述数据和/或指令以实现本说明书中的示例性方法。存储设备110-2和120-2可以分别用于存储第一隐私数据和第二隐私数据;也可以存储指示第一终端和第二终端执行操作的相关指令。存储设备110-2和120-2还可以分别存储经处理设备110-1和120-1处理后数据。例如,存储设备110-2和120-2还可以分别存储第一隐私数据对应的特征的模型参数以及第二隐私数据对应的特征的模型参数。在一些实施例中,存储设备110-2和存储设备120-2也可以是一个存储设备,其中,第一终端和第二终端只能从该存储设备中获取自己存储的数据。在一些实施例中,存储设备可包括大容量存储器、可移动存储器、易失性读写存储器、只读存储器(ROM)等或其任意组合。
网络130可以促进信息和/或数据的交换。在一些实施例中,基于隐私数据进行模型训练的系统100(例如,第一终端110(处理设备110-1和存储设备110-2)和第二终端120(处理设备120-1和存储设备120-2))的一个或以上部件可以经由网络130向所述系统100中的其他部件发送信息和/或数据。例如,第二终端120的处理设备110-2可以经由网络130从第一终端110中获得第一隐私数据。又例如,第一终端110的处理设备110-1可以通过网络130从第一终端110的存储设备110-2中获取第一隐私数据。在一些实施例中,网络140可以为任意形式的有线或无线网络,或其任意组合。
本说明书一个或多个实施例中的系统,可由数据接收模块及若干数据处理模块组成。
在一些实施例中,在以第二终端作为执行主体的系统中,所述数据接收模块包括第一数据接收模块;所述数据处理模块可以包括加密结果确定模块、加密损失值确定模块、模型参数更新模块。上述模块均在应用场景所介绍的计算系统中执行,各模块包括各自的指令,指令可存储在存储介质上,指令可在处理器中执行。不同的模块可以位于相同的设备上,也可以位于不同的设备上。它们之间可以通过程序接口、网络等进行数据的传输,可以从存储设备中读取数据或者将数据写入到存储设备中。
第一数据接收模块,可以用于接收来自第一终端的加密后的第一隐私数据。在一些 实施例中,所述第一数据接收模块还可用于接收用第一终端的公钥进行加密的第一隐私数据。在一些实施例中,所述第一数据接收模块还可以用于接收来自第一终端的加密后的第一特征。加密损失值确定模块,用于基于第一隐私数据和第二隐私数据确定联合训练的模型的加密损失值;所述第一隐私数据由与其对应的第一特征和第一模型参数确定;所述第二隐私数据由与其对应的第二特征和第二模型参数确定。在一些实施例中,所述加密损失值确定模块还用于:基于接收来自第一终端的加密后的第一隐私数据;并将其与第二终端的第二隐私数据的加密数据进行计算,得到加密后的结果;基于所述加密后的结果以及样本标签,得到基于所述第一隐私数据和所述第二隐私数据联合训练的模型的加密损失值;其中,第一隐私数据和第二隐私数据的加密公钥均为第一终端的公钥。
掩码加密损失值确定模块用于基于所述加密损失值及第二掩码,确定掩码加密损失值。
加密掩码数据确定模块用于基于第二掩码及加密后的第一特征,确定加密掩码数据。
模型参数更新模块,用于基于所述掩码加密损失值以及所述加密掩码数据计算第一解密梯度;用于基于所述加密损失值及第一掩码参与第二解密梯度的计算;用于基于所述第一解密梯度和第二解密梯度更新所述联合训练的模型;所述第一解密梯度和第二解密梯度分别与所述第一隐私数据和第二隐私数据对应。在一些实施例中,所述模型参数更新模块,可以用于:将所述掩码加密损失值传输给第一终端;接收来自第一终端的基于第一加密梯度与加密掩码数据确定的第一运算结果;基于所述第一运算结果以及所述加密掩码数据确定第一加密梯度,并将其传输给第一终端。在一些实施例中,所述模型参数更新模板还可以用于:基于所述加密损失值以及第二隐私数据对应的特征确定第二加密梯度;基于所述第二加密梯度和第一掩码确定对应的第一掩码梯度,并将所述第一掩码梯度传输给所述第一终端;接收来自第一终端的第一解码结果,所述第一解码结果对应所述第一掩码梯度;基于所述第一解码结果以及所述第一掩码,确定第二解密梯度。
在一些实施例中,在以第一终端作为执行主体的系统中,所述数据接收模块包括掩码加密损失值接收模块;所述数据处理模块可以包括模型参数更新模块。其中,掩码加密损失值接收模块可以用于接收来自第二终端的掩码加密损失值,所述掩码加密损失值由第二终端基于所述加密损失值以及第二掩码确定。所述模型参数更新模块可以用于将所述掩码加密损失值参与第一解密梯度的计算;所述第一解密梯度与第一隐私数据对应,且用于更新由第一隐私数据和第二隐私数据确定的联合训练的模型。在一些实施例中,所述模型参数更新模块可以包括第一运算结果计算模块,用于基于接收到的所述掩码加 密损失值以及所述第一隐私数据对应的第一特征,确定第一加密梯度与加密掩码数据的第一运算结果;所述加密掩码数据由所述第二掩码与所述加密后的第一特征确定;将所述第一运算结果发送给第二终端。在一些实施例中,所述模型参数更新模块还可以包括第一解密梯度确定模块,用于接收来自第二终端的第一加密梯度;所述第一加密梯度是由第二终端基于所述加密后的第一特征、第二掩码以及第一运算结果确定;基于所述第一加密梯度,确定第一解密梯度。
应当理解,本说明书一个或多个实施中的所述系统及其模块可以利用各种方式来实现。例如,在一些实施例中,系统及其模块可以通过硬件、软件或者软件和硬件的结合来实现。其中,硬件部分可以利用专用逻辑来实现;软件部分则可以存储在存储器中,由适当的指令执行系统,例如微处理器或者专用设计硬件来执行。本领域技术人员可以理解上述的方法和系统可以使用计算机可执行指令和/或包含在处理器控制代码中来实现,例如在诸如磁盘、CD或DVD-ROM的载体介质、诸如只读存储器(固件)的可编程的存储器或者诸如光学或电子信号载体的数据载体上提供了这样的代码。本申请的系统及其模块不仅可以有诸如超大规模集成电路或门阵列、诸如逻辑芯片、晶体管等的半导体、或者诸如现场可编程门阵列、可编程逻辑设备等的可编程硬件设备的硬件电路实现,也可以用例如由各种类型的处理器所执行的软件实现,还可以由上述硬件电路和软件的结合(例如,固件)来实现。
以上对于处理设备及其模块的描述,仅为描述方便,并不能把本申请限制在所举实施例范围之内。对于本领域的技术人员来说,在了解该系统的原理后,可在不背离这一原理的情况下,对各个模块进行任意组合,或者构成子系统与其他模块连接。
图2是根据本说明书的一些实施例所示的基于隐私数据进行模型训练方法的示例性流程图。
本说明书中的变量名称、公式仅为更好地理解本说明书所述的方法。在应用本说明书时,基于常见的运算原理和机器学习原理,可以对下述过程、变量名称、公式做各种非实质性的变换,例如调换行或列的次序、在矩阵乘法时变换为等价形式、以其他计算形式来表示同一计算等。
在本说明书中,约定按以下方式表示:
对于联合训练模型的训练数据,包括m个数据样本,每个样本数据包括n维特征。其中,m个样本的n维特征数据至少由第一方数据拥有者以及第二方数据拥有者持有, 也就是说,至少两方数据拥有者持有相同样本的不同特征。为方便说明,本说明书的一些实施例,以两方数据拥有者为例进行详细说明,并且分别用A和B来表示第一方数据拥有者和第二方数据拥有者。其中,第一方数据拥有者也可以称之为第一终端或第一方,第二方数据拥有者也可以称之为第二终端或第二方。
在本说明书的表示中,第一方数据拥有者A拥有m个样本中的p维特征对应的数据(Xa),及与所述p维特征对应的模型参数(Wa);第二方数据拥有者B拥有m个样本中另外q维特征对应的数据(Xb),及与所述q维特征对应的模型参数(Wb)。Xa是m个样本组成的矩阵,每个样本是1行p列的行向量,即Xa是个m行p列的矩阵。Wa是A所对应的p维特征的参数矩阵,Wa是个p行1列的矩阵。Xb是个m行q列的矩阵。Wb是B所对应的q个特征的参数矩阵,Wb是个q行1列的矩阵,且p+q=n。在本说明书中,模型参数亦可简称为模型。
标签y由A和B的其中一方持有,但另一方持有不会产生实质的影响。在本说明书的表示中,标签y由B持有,y是一个m行1列的列向量。在本说明书中,为简便起见,未对在线性回归或逻辑回归计算中对样本数据中增加的恒值为1的数据列,以及在标签中增加的常量1进行特别说明,也未区分矩阵计算时的n与n+1。此简化对本说明书所说明的方法没有实质影响。
在一些实施例中,第一方数据拥有者A还拥有自己方的公钥PKa和私钥SKa。在本说明书的一个或多个实施例中,A的公钥PKa和私钥SKa也可以称之为第一终端公钥以及第一终端私钥。
对任一变量X,[X]a表示对X用Pka加密。当X是一个矩阵时,表示对矩阵的每个元素加密。如无进一步说明,加密可指任何非对称加密方法。
以上约定的表示方法、变量名称,以及本说明书中出现的公式及其他表达方式,仅为更好地理解本说明书所述的方法。在应用本说明书时,基于常见的运算原理、技术原理、技术方法,可以对表示方法、变量名称、公式、计算方法等做各种非实质性的变换,而不影响其实质和相应的技术效果。例如但不限于调换行或列的次序、在矩阵乘法时变换为等价形式、以其他计算形式来表示同一计算等。
步骤210,A将自方公钥给B。
数据拥有者将各自的公钥给到对方,即第一方将自方的公钥给第二方,以备后续进行数据加密时使用。例如,A可以通过网络把自己的公钥传输给B。在本说明书约定的 表示中,A将自方的公钥PKa给B。
步骤220,双方分别计算Ua、Ub的一次幂、二次幂、三次幂,并用A的公钥加密。
双方分别进行所持有的模型参数与特征数据的积运算,并用第一方的公钥PKa对各自的积运算结果加密。第一方将密文数据发送给第二方。在本说明书约定的表示中,A方计算Ua,Ua^2,Ua^3(其中,Ua=Xa×Wa),并用Pka加密,得到[Ua]a,[Ua^2]a,[Ua^3]a,并将计算结果发送给B。由此得到的Ua、[Ua]a、Ua^2、[Ua^2]a、Ua^3、[Ua^3]a都是一个m行1列的矩阵。
同理,B方计算Ub,Ub^3(其中,Ub=Xb×Wb)。将Ub,Ub^2,Ub^3用PKa加密,得到[Ub]a,[Ub^2]a,[Ub^3]a。由此得到的Ub、[Ub]a、Ub^2、[Ub^2]a、Ub^3、[Ub^3]a都是一个m行1列的矩阵。
在本说明书的一个或多个实施例中,所用加密算法为同态加密算法。同态加密算法是指对于加密函数f,对任意的A、B,
f(A)+f(B)=f(A+B)=f(B)+f(A),
f(A)×f(B)=f(A×B)。
对应到本实施例,即:
[Ua]a+[Ub]a=[Ua+Ub]a=[Ub]a+[Ua]a。
步骤230,B计算加密损失值。
拥有两方加密数据的第二方将两方加密数据利用加法加和。由于加密算法是同态加密算法,因此加和后的值等于双方未加密数据求和后的加密值。
进一步第二方根据加和后的密文数据计算损失值。在计算损失值时,可以使用Taylor展开式来近似计算Sigmoid函数。由于Taylor展开式是多项式的加法和乘法运算,可以支持同态加密,因此可以通过Taylor展开式,在加密状态下计算得到近似的损失值。在一些实施例中,所述Taylor展开式可以是n阶的Taylor展开。
Figure PCTCN2021086267-appb-000001
为简化计算,在一些实施例中,常常使用一定阶数的Taylor展开式进行近似计算。 需要说明的是,使用的Taylor展开式的阶数越多,其近似计算的精度越高,但计算过程越复杂,计算速度越慢。为进行说明,在图2所示的一个或多个实施例中,以三阶泰勒展开式为例进行示例性说明,以下详细披露仅仅作为示例,并不构成对本申请的限定。
在本说明书约定的表示中,B方基于步骤220中获得的[Ua]a,[Ua^2]a,[Ua^3]a参与计算。
B方计算
[z]a=[Ua]a+[Ub]a=[Ua+Ub]a;
[z^3]a=[Ua^3]a++[Ub^3]a+3[Ua^2]a*Ub+3[Ua]a*Ub^2。
进一步地,B方计算加密损失值
Figure PCTCN2021086267-appb-000002
其中,[z]=[Ua+Ub];
Figure PCTCN2021086267-appb-000003
表示模型预测值;y表示与所述样本数据对应的标签。由此计算得到的加密损失值[d]a是一个m行1列的矩阵。
步骤240,B计算第二加密梯度值。
第二方将加密损失值代入梯度下降公式,即将加密损失值与自方的特征对应的数据做积运算,计算得到第二加密梯度值。
在本说明书约定的表示中,B方利用图2中的梯度计算公式计算:
Figure PCTCN2021086267-appb-000004
其中,
Figure PCTCN2021086267-appb-000005
B根据同态乘法得到了用Pka加密的第二加密梯度值[Gb]a。由此得到的第二梯度值Gb是一个q行1列的矩阵。
步骤242,B将第二加密梯度值加上第一掩码,发给A解密。
第二方在第二加密梯度值加上用第一方公钥加密的第一掩码,并发给第一方,第一方对所接收的加密数据用己方私钥解密。其中,第一掩码是第二方设定的数值,主要目的是防止A获知解密后的第二梯度值。对于第一掩码具体数值的设定范围,本说明书不做限定,只要能满足上述目的即可。
在本说明书约定的表示中,B方计算[Gb]a+[mask1]a,并发给A方。
在本实施例中,mask1为第一掩码,与第二梯度值Gb维度相同,因此Gb+mask1也是一个q行1列的矩阵。
A方获得[Gb]a+[mask1]a。由于加密算法为同态加密,因此 [Gb]a+[mask1]a=[Gb+mask1]a。A方用Ska解密获得Gb+mask1。由于A方不知道mask1的值,所以A方无法获知Gb的值。
步骤244,B接收A返回的第二梯度值加上第一掩码的数据。
第一方将带有第一掩码的第二梯度值发送给第二方,第二方接收到所述数据,并去除第一掩码,得到第二方的第二梯度值。
在本说明书约定的表示中,B方接收到Gb+mask1,并去除mask1,计算第二梯度值Gb=Gb+mask 1–mask1。由此得到第二梯度值Gb是一个q行1列的矩阵。
步骤246,B基于第二梯度值更新模型。
第二方计算得到自方的第二梯度值,并将第二梯度值与leaning rate做积运算,更新模型。
在本说明书约定的表示中,B方计算更新Wb=Wb-learning_rate×Gb。在本说明书中,learning_rate表示在梯度下降法中的影响下降幅度的超参数。
步骤250,B将加密损失值加上第二掩码,发送给A。
第二方使将加密损失值加上第二掩码后得到掩码加密损失值并发送给第一方。其中,第二掩码是第二方设定的数值,主要目的是防止A获知解密后的损失值。对于第二掩码具体数值的设定范围,本说明书亦不做限定,只要能满足上述目的即可。在一些实施例中,第二掩码与第一掩码的数值可以相同,也可以不同。
在本说明书约定的表示中,B将[d]a加上第二掩码mask2,得到[d]a+[mask2]a,发送给A。由于加密算法为同态加密,所以[d]a+mask2=[d+mask2]a。
步骤252,A将接收到的数据与第一特征进行乘积计算,并将计算结果发送给B。
第一方将掩码加密损失值代入梯度下降公式,即将掩码加密损失值与自方的特征数据,即第一特征Xa做积运算,所述积运算的结果包括第一加密梯度值与第二掩码的运算结果。
在本说明书约定的表示中,A将接收到的掩码加密损失值[d+mask2]a代入梯度计算公式计算得:
[d+mask2]a×Xa=[d×Xa]a+[mask2×Xa]a,
其中,[d×Xa]a为第一加密梯度值[Ga]a,[mask2×Xa]a可以视为加密掩码数据,由 第二掩码mask2与第一特征Xa的乘积确定。A具有[d+mask2]a×Xa的计算结果,即表示A具有[Ga]a+[mask2×Xa]a的计算结果,进而可得:A可以通过如下方式来获得
[Ga]a=[d+mask2]a×Xa-[mask2×Xa]a。
步骤254,A将加密后的第一特征发送给B,B计算第一加密梯度值。
根据步骤252可知,需要根据加密掩码数据[mask2×Xa]a以及[d+mask2]a×Xa来确定第一加密梯度值[d×Xa]a,即
[Ga]a=[d+mask2]a×Xa-[mask2×Xa]a。
为了确定[mask2×Xa]a的值,B需要获取第一特征Xa。为了保证第一特征Xa的隐私性,A首先用自身的公钥将第一特征进行加密,然后发送给B,即将[Xa]a发送给B。
B接收到[Xa]a后,将其与第二掩码mask2进行乘积运算mask2*[Xa]a,即得到了加密掩码数据[mask2*Xa]a。
对于[d+mask2]a×Xa,B可以从A处获取,即A将带有加密公钥的计算结果[d+mask2]a×Xa发送给B即可。由于A发送的计算结果用A方公钥加密,可以确保数据的隐私性。
然后,得到[mask2*Xa]a和[d+mask2]a×Xa数据后,B通过计算[(d+mask2)*Xa]a-[mask2*Xa]a=[Ga]a,所得[Ga]a即为第一加密梯度值(即带有A方公钥的第一梯度值)。B将第一加密梯度值发送给A解密。
步骤256,A接收B返回的计算结果,确定第一梯度值,并更新模型。
A基于B返回的第一加密梯度[Ga]a,以及自身的私钥Ska,进而可以通过解密来确定步骤254中的第一梯度值Ga=d*Xa。
A计算得第一梯度值Ga后,将所述第一梯度值与leaning rate做积运算,更新模型。
在本说明书约定的表示中,A方计算
Wa=Wa-learning_rate×Ga
上述过程说明了一次梯度下降过程,可迭代这一过程直至收敛,完成模型的训练。在这一过程中,双方均无法获知另一方所持有的数据。
通过上述计算A方第一梯度值Ga的过程可以发现,当确定加密损失值[d]a后,只要基于A方加密后的第一特征[Xa]a以及B方的第二掩码数据,便可以A、B的计算来 确定第一梯度值Ga。此过程中,只需要进行一次解码,使算法更加简单,提高了通讯效率,进而提高了计算机的计算速度和运行效率。
图3为根据本说明书的一些实施例所示的对话信息的处理方法的示例性流程图。
在一些实施例中,方法300中的一个或以上步骤可以在图1所示的系统100中实现。例如,方法300中的一个或以上步骤可以作为指令的形式存储在存储设备中,并被处理设备调用和/或执行。
在本申请涉及的一个或多个实施例中,第一终端持有第一隐私数据;第二终端持有第二隐私数据、样本标签以及基于第一隐私数据和所述第二隐私数据联合训练的模型的加密损失值。所述第一隐私数据、第二隐私数据由各数据终端持有并不对其他数据所有方公开。所述样本标签对应于第一隐私数据和第二隐私数据共同组成的训练样本。
步骤310至步骤330阐述了基于第一隐私数据和所述第二隐私数据获取联合训练的模型的加密损失值的过程。在一些实施例中,如步骤310所述,第一终端可将加密后的第一隐私数据传输给第二终端。第二终端可以基于加密后的第一隐私数据和自身所存储的第二隐私数据以及其持有的样本标签计算加密损失值。具体地,第二终端获取加密后的第一隐私数据(如[Ua]a、[Ua^3]a、[Ua^5]a等);第二终端基于加密后的第一隐私数据和第二隐私数据得到两者的加密计算结果(如[z]a=[Ua+Ub]a);第二终端基于所述加密计算结果进行计算,得到预测值
Figure PCTCN2021086267-appb-000006
基于样本标签和预测值进行计算即可得到联合训练的模型的加密损失值
Figure PCTCN2021086267-appb-000007
有关加密损失值获取的更多说明可见步骤310至330的相关描述。步骤310,第一终端将加密后的第一隐私数据传输给第二终端。在一些实施例中,步骤310可以由加密损失值确定模块执行。
在一些实施例中,第一隐私数据可以由第一特征与第一模型参数的乘积Ua确定,例如,第一隐私数据为Wa*Xa。对应地,第二隐私数据可以由第二特征与第二模型参数的乘积Ub确定,即为Wb*Xb。在一些实施例中,第一隐私数据可以是指乘积Ua和/或Ua的幂,例如,第一隐私数据可以是Ua、Ua^3、Ua^5等。相应地,第二隐私数据可以是指乘积Ub和/或Ub的幂,例如,第一隐私数据可以是Ub、Ub^3、Ub^5等。其中,对第一终端、第二终端;Ua、Ub;Wa、Xa;Ua^3、Ub^3以及Wb、Xb的理解可参见图2的相关说明。
在一些实施例中,第一终端可以将第一终端的公钥PKa发送给第二终端。第一终端和第二终端的隐私数据均可以通过第一终端的公钥PKa进行加密。关于第一隐私数据加 密以及将加密后的数据传输给第二终端的具体描述可参见本说明书图2的步骤220。
在一些实施例中,第一隐私数据也可以是Wa和Xa,在一些实施例中,第二隐私数据也可以包括Wb和Xb。
对于下一步骤所述的第二隐私数据的加密数据,在一些实施例中,第二终端可以用与所述第一隐私数据的相同的加密公钥对第二隐私数据进行加密。例如,如果第一终端用第一终端的公钥PKa对第一隐私数据进行加密,则第二终端也用PKa对第二隐私数据进行加密具体的加密过程描述可参考图2的步骤220。
在一些实施例中,数据拥有者持有的样本数据可以是保险、银行、医疗至少一个领域中的用户属性信息。例如,银行拥有该银行客户的身份信息、流水信息以及征信信息等;保险公司拥有该公司客户身份信息、历史购买保险信息、历史理赔信息、健康信息、车辆状况信息等;医疗机构拥有该机构病人身份信息、历史看病记录等。在一些实施例中,所述用户属性信息包括图像、文本或语音等。
在一些实施例中,数据拥有者拥有的模型可以根据样本数据的特征做出预测。例如,银行可以根据一二季度用户增长、增长用户身份、银行新增政策等数据的特征预测该行全年存款增长率。在一些实施例中,所述模型还可以用于确认用户的身份信息,所述用户的身份信息可以包括但不限于对用户的信用评价。
在一些实施例中,本说明书一个或多个实施例中的隐私数据(例如,第一隐私数据和第二隐私数据)可以包括与实体相关的隐私数据。在一些实施例中,实体可以理解为可视化的主体,可以包括但不限于用户、商户等。在一些实施例中,所述隐私数据可以包括图像数据、文本数据或声音数据。例如,隐私数据中的图像数据可以是用户的人脸图像、商户的logo图像、能够反映用户或商户信息的二维码图像等。例如,隐私数据中的文本数据可以是用户的性别、年龄、学历、收入等文本数据,或者是商户的交易商品类型、商户进行商品交易的时间以及所述商品的价格区间等等文本数据。例如,隐私数据的声音数据可以是包含了用户个人信息或用户反馈的相关语音内容,通过解析所述语音内容可得到对应的用户个人信息或用户反馈信息。
步骤320,第二终端接收加密后的第一隐私数据并将其与第二隐私数据的加密数据进行计算,得到加密后的结果。在一些实施例中,步骤320可由加密损失值确定模块执行。
在一些实施例中,加密后的结果可以理解为将第一隐私数据和第二隐私数据在 加密的状态进行计算得到的结果。在一些实施例中,第一隐私数据的加密数据与第二隐私数据的加密数据之间可以采用和运算来得到加密后的结果。例如,第一隐私数据Ua的加密数据为[Ua]a,第二隐私数据Ub的加密数据为[Ub]a,那么通过和运算得到的加密后的结果为[Ua]a+[Ub]a,即为[Ua+Ub]a。
在一些实施例中,加密后的结果还可理解在加密的状态下,第一隐私数据和第二隐私数据之和的幂运算得到的结果。例如,所述加密后的结果也可是[z^3]a=[Ua^3]a+[Ub^3]a+3[Ua^2]a*Ub+3[Ua]a*Ub^2。又例如,加密后的结果还可是[z^5]a=[(Ua+Ub)^5]a,[z^7]a=[(Ua+Ub)^7]a等等。在一些实施例中,所述加密后的结果可以是一个第一隐私数据和第二隐私数据之和的幂运算得到的结果。在一些实施例中,所述加密后的结果还可以是多个第一隐私数据和第二隐私数据之和的幂运算得到的结果。例如,所述加密后的结果可以仅包含[z]a=[Ua+Ub]a。又例如,所述加密后的结果可包括[z]a、[z^3]a、[z^5]a等多项。在一些实施例中,所述加密后的计算结果的项数取决于使用的公式。需要说明的是,使用的[z]a的阶数越高,其计算结果的精度越高,但计算过程越复杂,计算速度越慢。具体的加密过程,可参见图2的步骤230。
步骤330,第二终端基于加密后的结果以及样本标签,得到基于第一隐私数据和第二隐私数据联合训练的模型的加密损失值。在一些实施例中,步骤330可以由加密损失值确定模块执行。
在一些实施例中,损失值可用来反映训练模型预测值与样本数据真实之间的差距。在一些实施例中,损失值可通过参与运算的方式来反映预设值与真实值的差距。其中,不同训练模型的相关运算公式不同,相同训练模型时不同参数寻优算法对应的运算公式也不同。例如,本说明书图2给出的实施例中,损失值的计算公式为
Figure PCTCN2021086267-appb-000008
但本说明书一个或多个实施例并不会对确定损失值的运算公式进行限定。
在一些实施例中,第二终端可以基于加密后的结果[Ua+Ub]a,以及样本标签y,来计算联合训练模型的加密损失值[d]a。其中,标签y可以由第一终端和第二终端中的任一方持有。
在一些实施例中,所述联合训练的模型可以包括线性回归模型;也可以包括逻辑回归模型。
在一些实施例中,当所述联合训练的模型包括逻辑回归模型,需要运用Sigmoid函数计算损失值d。由于同态加密算法仅支持积运算以及和运算,因此,根据需要可以 把Sigmoid函数用一个可以支持积运算以及和运算的近似函数进行替代,例如,在一些实施例中,可以通过多阶Taylor展开公式对Sigmoid公式进行展开,然后基于Sigmoid的Taylor展开公式来计算加密损失值,详细描述可参见图2中的步骤230。在其他实施例中,也可以采用其他可近似的函数来替代Sigmoid函数,或者也可以采用其他展开公式来对Sigmoid进行展开来替代Sigmoid函数,只要所述的替代函数支持积运算和/或和运算,本说明书不做其他任何限制。
如果所述联合训练的模型是线性回归模型,可以使用线性函数来计算预测值y^。在线性回归模型中,因为线性函数来计算时可以直接使用同态加密的算法,可以不使用Taylor展开式。具体的,以一次线性函数y=wx+b为例,加入同态加密的算法,第二终端基于第一隐私数据和第二隐私数据加和z,可计算得到损失值
Figure PCTCN2021086267-appb-000009
步骤340,第二终端基于加密损失值以及自身的第一掩码参与第二解密梯度的计算。在一些实施例中,步骤340可以由模型参数更新模块执行。
在一些实施例中,第二终端基于所述加密损失值[d]a以及第二隐私数据对应的特征Xb,确定第二加密梯度[Gb]a。确定第二加密梯度[Gb]a的具体过程可以参考图2的步骤240。
在一些实施例中,第二终端可采用添加第一掩码的方式基于第二加密梯度得到对应的第二解密梯度。具体的,在一些实施例中,第二终端得到基于所述第二加密梯度和第一掩码确定对应的第一掩码梯度,并将所述第一掩码梯度传输给持有第二加密梯度的加密秘钥的第一终端;所述第一终端将接收到的第一掩码梯度进行解码,并将对应的第一解码结果传输给所述第二终端;所述第二终端基于接收到的所述第一解码结果以及所述第一掩码,去除第一掩码,得到第二解密梯度。在一些实施例中,所述第一掩码梯度[Gb+mask1]a可理解为第二加密梯度[Gb]a与第一掩码mask1的运算结果。在一些实施中,所述运算可以包括积运算或和运算;所述第一掩码也可包括一个值,也可以包括多个值。例如,在一些实施例中,所述第一掩码mask1为一个值,所述运算为和运算,那么对应的第一掩码梯度可为[Gb]a+[mask1]a,或者[Gb+mask1]a。关于第二终端通过添加第一掩码方式获取第二解密梯度Gb的具体描述,可参见图2的步骤242和步骤244。
在一些实施例中,当所述第一掩码通过积运算方式添加第一掩码时,所述第一掩码梯度可以为[Gb]a*[mask1]a。
在一些实施例中,第二终端基于所述第二解密梯度Gb更新所述联合训练的模型,具体的描述,可参见图2的步骤246。
在一些实施例中,第二终端确定加密损失值后,需要通过一种不会把第二隐私数据泄露给第一终端的方式,将确定的加密损失函数传输给第一终端。在一些实施例中,第二终端将在所述加密损失值[d]a上添加第二掩码mask2,确定掩码加密损失值,例如[d+mask2]a,并将所述掩码加密损失值发送给第一终端。具体地可参见图2步骤250。
步骤350,第二终端基于加密损失值、加密后的第一特征以及自身的第二掩码参与第一解密梯度的计算。在一些实施例中,步骤350可以由模型参数更新模块执行。
在一些实施例中,第二终端基于加密损失值以及自身的第二掩码,确定掩码加密损失值,例如,[d]a+mask2;第二终端接收来自第一终端的加密后的第一特征,并基于自身的第二掩码以及加密后的第一特征确定加密掩码数据,例如,[mask2*Xa]a;第二终端将所述掩码加密损失值以及所述加密掩码数据参与第一解密梯度的计算。
在一些实施例中,第二终端可以将掩码加密损失值,即[d]a+mask2,或者[d+mask2]a发送给第一终端,第一终端基于接收到的掩码加密损失值,计算掩码加密损失值与第一隐私数据对应的特征Xa的乘积,得到第一运算结果[d+mask2]a*Xa,或者[(d+mask2)*Xa]a,或者[d*Xa]a+[mask2*Xa]a,并将第一运算结果发送给第二终端。
所述第一运算结果包括第一加密梯度[d*Xa]a与加密掩码数据[mask2*Xa]a的运算结果,例如,所述第一运算结果可以是第一加密梯度与加密掩码数据运算和的结果。
在一些实施例中,第二终端在步骤310中接收到的第一隐私数据是Ua和/或Ua的幂(Ua即为Xa和Wa的乘积)。在该场景的实施例中,第一终端可将第一特征用自己的公钥进行加密,并将加密后的第一特征发送给第二终端,从而获取加密掩码数据[mask2*Xa]a。第二终端接收加密后的第一特征[Xa]a后,进而可计算加密掩码数据mask2*[Xa]a(即[mask2*Xa]a),并基于第一运算结果[(d+mask2)*Xa]a得到第一加密梯度[d*Xa]a。
第一终端对第一加密梯度[d*Xa]a进行解密,可以确定第一解密梯度Ga,进而更新模型参数。对应的详细描述可参见图2的步骤252到步骤256。
在一些实施例中,第二终端在步骤310中接收的第一隐私数据包括Xa和Wa。在该场景的实施例中,第二终端可以直接根据第一隐私数据中的Xa计算加密掩码数据[mask2*Xa]a。通过计算第一运算结果和加密掩码数据之差,可以得到差值 [(d+mask2)*Xa]a-[mask2*Xa]a=[d*Xa]a,即得到了第一加密梯度[d*Xa]a。
在一些实施例中,将所述加密损失值参与第一解密梯度(和/或第二解密梯度)的计算,可以理解为利用加密损失函数来参与加密计算,最终通过解密的方式来获取能够进行模型参数更新的解密梯度,进而得到完成一次参数更新的模型。
在一些实施例中,可以使用梯度下降法来获得完成一次参数更新的模型。具体的,可以将得到的加密损失值计算求得加密梯度值参与模型训练,重复上述过程直至迭代次数达到预定义的迭代次数上限值或带入加密损失值后计算得到的误差小于预定义的数值,即得到训练好的模型。
在一些实施例中,可以运用梯度下降法使得损失值d最小。例如,在一些实施例中,可以基于所述加密损失值[d]a,以及第一隐私数据和第二隐私数据对应的特征Xa和Xb来确定第一终端的第一加密梯度[Ga]a和第二终端的第二加密梯度[Gb]a。在一些实施例中,第一终端和第二终端可以分别基于第一加密梯度[Ga]a和第二加密梯度[Gb]a来确定对应的第一解密梯度Ga和第二解密梯度Gb,并分别基于第一解密梯度Ga和第二解密梯度Gb更新模型参数,进而得到完成一次参数更新的模型。
在其他实施例中,也可以采用其他参数寻优方法来替代梯度下降法,如牛顿下降法等,本说明书一个或多个实施例对此不作任何限定。需要注意的是,在使用相应的算法时需要考虑到同态加密仅支持积运算和/或和运算,可以使用近似函数替换的方式来解决运算类型支持的问题。
应当注意的是,上述有关流程300的描述仅仅是为了示例和说明,而不限定本申请的适用范围。对于本领域技术人员来说,在本申请的指导下可以对流程300进行各种修正和改变。然而,这些修正和改变仍在本申请的范围之内。
本申请实施例可能带来的有益效果包括但不限于:(1)使用同态加密使隐私数据在加密状态下也能参与运算,在训练数据的特征维度较高时,也能具有较高的运算效率;(2)基于一方的加密特征,另一方的掩码数据参与一方的梯度值计算,简化了算法流程,提高了运算效率;(3)多方数据联合训练,提高数据的利用率,提高预测模型的准确性;(4)提高多方数据联合训练的安全性。需要说明的是,不同实施例可能产生的有益效果不同,在不同的实施例里,可能产生的有益效果可以是以上任意一种或几种的组合,也可以是其他任何可能获得的有益效果。
上文已对基本概念做了描述,显然,对于本领域技术人员来说,上述详细披露 仅仅作为示例,而并不构成对本申请的限定。虽然此处并没有明确说明,本领域技术人员可能会对本申请进行各种修改、改进和修正。该类修改、改进和修正在本申请中被建议,所以该类修改、改进、修正仍属于本申请示范实施例的精神和范围。
同时,本申请使用了特定词语来描述本申请的实施例。如“一个实施例”、“一实施例”、和/或“一些实施例”意指与本申请至少一个实施例相关的某一特征、结构或特点。因此,应强调并注意的是,本说明书中在不同位置两次或多次提及的“一实施例”或“一个实施例”或“一个替代性实施例”并不一定是指同一实施例。此外,本申请的一个或多个实施例中的某些特征、结构或特点可以进行适当的组合。
此外,本领域技术人员可以理解,本申请的各方面可以通过若干具有可专利性的种类或情况进行说明和描述,包括任何新的和有用的工序、机器、产品或物质的组合,或对他们的任何新的和有用的改进。相应地,本申请的各个方面可以完全由硬件执行、可以完全由软件(包括固件、常驻软件、微码等)执行、也可以由硬件和软件组合执行。以上硬件或软件均可被称为“数据块”、“模块”、“引擎”、“单元”、“组件”或“系统”。此外,本申请的各方面可能表现为位于一个或多个计算机可读介质中的计算机产品,该产品包括计算机可读程序编码。
计算机存储介质可能包含一个内含有计算机程序编码的传播数据信号,例如在基带上或作为载波的一部分。该传播信号可能有多种表现形式,包括电磁形式、光形式等,或合适的组合形式。计算机存储介质可以是除计算机可读存储介质之外的任何计算机可读介质,该介质可以通过连接至一个指令执行系统、装置或设备以实现通讯、传播或传输供使用的程序。位于计算机存储介质上的程序编码可以通过任何合适的介质进行传播,包括无线电、电缆、光纤电缆、RF、或类似介质,或任何上述介质的组合。
本申请各部分操作所需的计算机程序编码可以用任意一种或多种程序语言编写,包括面向对象编程语言如Java、Scala、Smalltalk、Eiffel、JADE、Emerald、C++、C#、VB.NET、Python等,常规程序化编程语言如C语言、VisualBasic、Fortran2003、Perl、COBOL2002、PHP、ABAP,动态编程语言如Python、Ruby和Groovy,或其他编程语言等。该程序编码可以完全在用户计算机上运行、或作为独立的软件包在用户计算机上运行、或部分在用户计算机上运行部分在远程计算机运行、或完全在远程计算机或处理设备上运行。在后种情况下,远程计算机可以通过任何网络形式与用户计算机连接,比如局域网(LAN)或广域网(WAN),或连接至外部计算机(例如通过因特网),或在云计算环境中,或作为服务使用如软件即服务(SaaS)。
此外,除非权利要求中明确说明,本申请所述处理元素和序列的顺序、数字字母的使用、或其他名称的使用,并非用于限定本申请流程和方法的顺序。尽管上述披露中通过各种示例讨论了一些目前认为有用的发明实施例,但应当理解的是,该类细节仅起到说明的目的,附加的权利要求并不仅限于披露的实施例,相反,权利要求旨在覆盖所有符合本申请实施例实质和范围的修正和等价组合。例如,虽然以上所描述的系统组件可以通过硬件设备实现,但是也可以只通过软件的解决方案得以实现,如在现有的处理设备或移动设备上安装所描述的系统。
同理,应当注意的是,为了简化本申请披露的表述,从而帮助对一个或多个发明实施例的理解,前文对本申请实施例的描述中,有时会将多种特征归并至一个实施例、附图或对其的描述中。但是,这种披露方法并不意味着本申请对象所需要的特征比权利要求中提及的特征多。实际上,实施例的特征要少于上述披露的单个实施例的全部特征。
一些实施例中使用了描述成分、属性数量的数字,应当理解的是,此类用于实施例描述的数字,在一些示例中使用了修饰词“大约”、“近似”或“大体上”来修饰。除非另外说明,“大约”、“近似”或“大体上”表明所述数字允许有±20%的变化。相应地,在一些实施例中,说明书和权利要求中使用的数值参数均为近似值,该近似值根据个别实施例所需特点可以发生改变。在一些实施例中,数值参数应考虑规定的有效数位并采用一般位数保留的方法。尽管本申请一些实施例中用于确认其范围广度的数值域和参数为近似值,在具体实施例中,此类数值的设定在可行范围内尽可能精确。
针对本申请引用的每个专利、专利申请、专利申请公开物和其他材料,如文章、书籍、说明书、出版物、文档等,特此将其全部内容并入本申请作为参考。与本申请内容不一致或产生冲突的申请历史文件除外,对本申请权利要求最广范围有限制的文件(当前或之后附加于本申请中的)也除外。需要说明的是,如果本申请附属材料中的描述、定义、和/或术语的使用与本申请所述内容有不一致或冲突的地方,以本申请的描述、定义和/或术语的使用为准。
最后,应当理解的是,本申请中所述实施例仅用以说明本申请实施例的原则。其他的变形也可能属于本申请的范围。因此,作为示例而非限制,本申请实施例的替代配置可视为与本申请的教导一致。相应地,本申请的实施例不仅限于本申请明确介绍和描述的实施例。

Claims (12)

  1. 一种基于隐私数据进行模型训练的方法,包括:
    第一终端持有第一隐私数据;第二终端持有第二隐私数据、样本标签以及基于第一隐私数据和所述第二隐私数据联合训练的模型的加密损失值;
    第二终端基于所述加密损失值以及自身的第一掩码参与第二解密梯度的计算;
    第二终端基于所述加密损失值以及自身的第二掩码,确定掩码加密损失值;
    第二终端接收来自第一终端的加密后的第一特征,并基于自身的第二掩码以及加密后的第一特征,确定加密掩码数据;将所述掩码加密损失值以及所述加密掩码数据参与第一解密梯度的计算;
    所述第一解密梯度和第二解密梯度分别与所述第一隐私数据和第二隐私数据对应;所述第一解密梯度和第二解密梯度用于更新所述联合训练的模型;
    其中,所述加密为同态加密;所述第一隐私数据和所述第二隐私数据对应于相同的训练样本,所述训练样本为与实体相关的图像数据、文本数据或声音数据。
  2. 根据权利要求1所述的方法,所述将所述掩码加密损失值以及所述加密掩码数据参与第一解密梯度的计算包括:
    将所述掩码加密损失值传输给第一终端;
    接收来自第一终端的基于第一加密梯度与加密掩码数据确定的第一运算结果;
    第二终端基于所述第一运算结果以及所述加密掩码数据确定第一加密梯度,并将其传输给第一终端。
  3. 根据权利要求1所述的方法,所述第二终端持有所述加密损失值通过以下方式获取:
    第二终端接收来自第一终端的加密后的第一隐私数据;并将其与第二终端的第二隐私数据的加密数据进行计算,得到加密后的结果;所述第一隐私数据由与其对应的第一特征和第一模型参数确定;所述第二隐私数据由与其对应的第二特征和第二模型参数确定;
    第二终端基于所述加密后的结果以及样本标签,得到基于所述第一隐私数据和所述第二隐私数据联合训练的模型的加密损失值;
    其中,第一隐私数据和第二隐私数据的加密公钥均为第一终端的公钥。
  4. 根据权利要求1所述的方法,所述第二终端基于所述加密损失值以及自身的第一掩码参与第二解密梯度的计算包括:
    基于所述加密损失值以及第二隐私数据对应的特征确定第二加密梯度;
    基于所述第二加密梯度和第一掩码确定对应的第一掩码梯度,并将所述第一掩码梯度传输给所述第一终端;
    接收来自第一终端的第一解码结果,所述第一解码结果对应所述第一掩码梯度;
    第二终端基于所述第一解码结果以及所述第一掩码,确定第二解密梯度。
  5. 一种基于隐私数据进行模型训练的系统,包括:
    第一数据接收模块,用于接收来自第一终端的加密后的第一特征;
    掩码加密损失值确定模块,用于基于所述加密损失值以及第二掩码,确定掩码加密损失值;
    加密掩码数据确定模块,用于基于所述第二掩码以及所述加密后的第一特征,确定加密掩码数据;
    模型参数更新模块,用于基于所述掩码加密损失值以及所述加密掩码数据计算第一解密梯度;基于所述加密损失值以及第一掩码参与第二解密梯度的计算;
    所述第一解密梯度和第二解密梯度分别与所述第一隐私数据和第二隐私数据对应;所述第一解密梯度和第二解密梯度用于更新所述联合训练的模型;第一终端持有第一隐私数据;第二终端持有第二隐私数据、样本标签以及基于第一隐私数据和所述第二隐私数据联合训练的模型的加密损失值;
    其中,所述加密为同态加密;所述第一隐私数据和所述第二隐私数据对应于相同的训练样本,所述训练样本为与实体相关的图像数据、文本数据或声音数据。
  6. 根据权利要求5所述的系统,所述模型参数更新模块还用于:
    将所述掩码加密损失值传输给第一终端;
    接收来自第一终端的基于第一加密梯度与加密掩码数据确定的第一运算结果;
    基于所述第一运算结果以及所述加密掩码数据确定第一加密梯度,并将其传输给第一终端。
  7. 根据权利要求5所述的系统,所述系统还包括加密损失值确定模块;所述加密损失值确定模块用于:
    基于接收来自第一终端的加密后的第一隐私数据;并将其与第二终端的第二隐私数据的加密数据进行计算,得到加密后的结果;所述第一隐私数据由与其对应的第一特征和第一模型参数确定;所述第二隐私数据由与其对应的第二特征和第二模型参数确定;
    基于所述加密后的结果以及样本标签,得到基于所述第一隐私数据和所述第二隐私数据联合训练的模型的加密损失值;
    其中,第一隐私数据和第二隐私数据的加密公钥均为第一终端的公钥。
  8. 根据权利要求5所述的系统,所述模型参数更新模块还用于:
    基于所述加密损失值以及第二隐私数据对应的特征确定第二加密梯度;
    基于所述第二加密梯度和第一掩码确定对应的第一掩码梯度,并将所述第一掩码梯度传输给所述第一终端;
    接收来自第一终端的第一解码结果,所述第一解码结果对应所述第一掩码梯度;
    基于所述第一解码结果以及所述第一掩码,确定第二解密梯度。
  9. 一种基于隐私数据进行模型训练的装置,包括处理器以及存储器;
    所述存储器用于存储指令,
    所述处理器用于执行所述指令,以实现如权利要求1至4中任一项所述基于隐私数据进行模型训练方法对应的操作。
  10. 一种基于隐私数据进行模型训练的方法,包括:
    第一终端接收来自第二终端的掩码加密损失值;所述掩码加密损失值由第二终端基于加密损失值以及自身的第二掩码确定;
    基于所述掩码加密损失值以及第一特征计算第一运算结果,并将所述第一运算结果传输给第二终端;所述第一运算结果由第一加密梯度以及加密掩码数据确定;
    接收来自第二终端的第一加密梯度,并基于所述第一加密梯度确定第一解密梯度。
  11. 一种基于隐私数据进行模型训练的系统,包括:
    掩码加密损失值接收模块,用于接收来自第二终端的掩码加密损失值;所述掩码加密损失值由第二终端基于加密损失值以及自身的第二掩码确定;
    第一运算结果计算模块,用于基于所述掩码加密损失值以及第一特征计算第一运算结果,并将所述第一运算结果传输给第二终端;所述第一运算结果由第一加密梯度以及加密掩码数据确定;
    第一解密梯度确定模块,用于接收来自第二终端的第一加密梯度,并基于所述第一加密梯度确定第一解密梯度。
  12. 一种基于隐私数据进行模型训练的装置,包括处理器以及存储器;
    所述存储器用于存储指令,
    所述处理器用于执行所述指令,以实现如权利要求10所述基于隐私数据进行模型训练方法对应的操作。
PCT/CN2021/086267 2020-04-10 2021-04-09 基于隐私数据进行模型训练 WO2021204268A1 (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202010276715.5A CN111178547B (zh) 2020-04-10 2020-04-10 一种基于隐私数据进行模型训练的方法及系统
CN202010276715.5 2020-04-10

Publications (1)

Publication Number Publication Date
WO2021204268A1 true WO2021204268A1 (zh) 2021-10-14

Family

ID=70655175

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2021/086267 WO2021204268A1 (zh) 2020-04-10 2021-04-09 基于隐私数据进行模型训练

Country Status (2)

Country Link
CN (1) CN111178547B (zh)
WO (1) WO2021204268A1 (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114092140A (zh) * 2021-11-16 2022-02-25 北京字节跳动网络技术有限公司 一种数据处理方法、装置、计算机设备及存储介质
CN114547643A (zh) * 2022-01-20 2022-05-27 华东师范大学 一种基于同态加密的线性回归纵向联邦学习方法
CN114553610A (zh) * 2022-04-27 2022-05-27 国网山东省电力公司潍坊市寒亭区供电公司 一种用于隐私数据的电力数据分析系统及方法
CN114611128A (zh) * 2022-03-15 2022-06-10 北京字节跳动网络技术有限公司 一种纵向联邦学习方法、装置、系统、设备及存储介质
CN114944934A (zh) * 2022-04-24 2022-08-26 华控清交信息科技(北京)有限公司 一种联邦学习方法和系统、第一隐私计算平台和第二隐私计算平台
WO2023124219A1 (zh) * 2021-12-30 2023-07-06 新智我来网络科技有限公司 一种联合学习模型迭代更新方法、装置、系统及存储介质
CN116721041A (zh) * 2023-08-09 2023-09-08 广州医科大学附属第一医院(广州呼吸中心) 图像处理方法、设备、系统以及可读存储介质

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111178547B (zh) * 2020-04-10 2020-07-17 支付宝(杭州)信息技术有限公司 一种基于隐私数据进行模型训练的方法及系统
CN111738359B (zh) * 2020-07-24 2020-11-27 支付宝(杭州)信息技术有限公司 一种两方决策树训练方法和系统
CN111680676B (zh) * 2020-08-14 2020-11-03 支付宝(杭州)信息技术有限公司 训练人脸识别模型、图像注册、人脸识别方法和装置
CN112149157A (zh) * 2020-08-19 2020-12-29 成都飞机工业(集团)有限责任公司 一种基于公私密钥进行数据保密的3d打印数据库共享方法
CN112632611B (zh) * 2020-12-28 2024-06-18 杭州趣链科技有限公司 数据聚合的方法、设备、电子装置和存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109886417A (zh) * 2019-03-01 2019-06-14 深圳前海微众银行股份有限公司 基于联邦学习的模型参数训练方法、装置、设备及介质
CN110399742A (zh) * 2019-07-29 2019-11-01 深圳前海微众银行股份有限公司 一种联邦迁移学习模型的训练、预测方法及装置
CN110537191A (zh) * 2017-03-22 2019-12-03 维萨国际服务协会 隐私保护机器学习
US10510002B1 (en) * 2019-02-14 2019-12-17 Capital One Services, Llc Stochastic gradient boosting for deep neural networks
CN111178547A (zh) * 2020-04-10 2020-05-19 支付宝(杭州)信息技术有限公司 一种基于隐私数据进行模型训练的方法及系统

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120179909A1 (en) * 2011-01-06 2012-07-12 Pitney Bowes Inc. Systems and methods for providing individual electronic document secure storage, retrieval and use
US10803546B2 (en) * 2017-11-03 2020-10-13 Baidu Usa Llc Systems and methods for unsupervised learning of geometry from images using depth-normal consistency
CN109087346B (zh) * 2018-09-21 2020-08-11 北京地平线机器人技术研发有限公司 单目深度模型的训练方法、训练装置和电子设备
CN110288979B (zh) * 2018-10-25 2022-07-05 腾讯科技(深圳)有限公司 一种语音识别方法及装置
CN110601814B (zh) * 2019-09-24 2021-08-27 深圳前海微众银行股份有限公司 联邦学习数据加密方法、装置、设备及可读存储介质
CN110728375B (zh) * 2019-10-16 2021-03-19 支付宝(杭州)信息技术有限公司 多个计算单元联合训练逻辑回归模型的方法和装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110537191A (zh) * 2017-03-22 2019-12-03 维萨国际服务协会 隐私保护机器学习
US10510002B1 (en) * 2019-02-14 2019-12-17 Capital One Services, Llc Stochastic gradient boosting for deep neural networks
CN109886417A (zh) * 2019-03-01 2019-06-14 深圳前海微众银行股份有限公司 基于联邦学习的模型参数训练方法、装置、设备及介质
CN110399742A (zh) * 2019-07-29 2019-11-01 深圳前海微众银行股份有限公司 一种联邦迁移学习模型的训练、预测方法及装置
CN111178547A (zh) * 2020-04-10 2020-05-19 支付宝(杭州)信息技术有限公司 一种基于隐私数据进行模型训练的方法及系统

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114092140A (zh) * 2021-11-16 2022-02-25 北京字节跳动网络技术有限公司 一种数据处理方法、装置、计算机设备及存储介质
WO2023124219A1 (zh) * 2021-12-30 2023-07-06 新智我来网络科技有限公司 一种联合学习模型迭代更新方法、装置、系统及存储介质
CN114547643A (zh) * 2022-01-20 2022-05-27 华东师范大学 一种基于同态加密的线性回归纵向联邦学习方法
CN114547643B (zh) * 2022-01-20 2024-04-19 华东师范大学 一种基于同态加密的线性回归纵向联邦学习方法
CN114611128A (zh) * 2022-03-15 2022-06-10 北京字节跳动网络技术有限公司 一种纵向联邦学习方法、装置、系统、设备及存储介质
CN114611128B (zh) * 2022-03-15 2023-06-06 抖音视界有限公司 一种纵向联邦学习方法、装置、系统、设备及存储介质
CN114944934A (zh) * 2022-04-24 2022-08-26 华控清交信息科技(北京)有限公司 一种联邦学习方法和系统、第一隐私计算平台和第二隐私计算平台
CN114944934B (zh) * 2022-04-24 2023-12-29 华控清交信息科技(北京)有限公司 一种联邦学习方法和系统、第一隐私计算平台和第二隐私计算平台
CN114553610A (zh) * 2022-04-27 2022-05-27 国网山东省电力公司潍坊市寒亭区供电公司 一种用于隐私数据的电力数据分析系统及方法
CN114553610B (zh) * 2022-04-27 2022-07-29 国网山东省电力公司潍坊市寒亭区供电公司 一种用于隐私数据的电力数据分析系统及方法
CN116721041A (zh) * 2023-08-09 2023-09-08 广州医科大学附属第一医院(广州呼吸中心) 图像处理方法、设备、系统以及可读存储介质
CN116721041B (zh) * 2023-08-09 2023-11-28 广州医科大学附属第一医院(广州呼吸中心) 图像处理方法、设备、系统以及可读存储介质

Also Published As

Publication number Publication date
CN111178547B (zh) 2020-07-17
CN111178547A (zh) 2020-05-19

Similar Documents

Publication Publication Date Title
WO2021120888A1 (zh) 一种基于隐私数据进行模型训练的方法及系统
WO2021204268A1 (zh) 基于隐私数据进行模型训练
WO2021120855A1 (zh) 一种基于隐私数据进行模型训练的方法及系统
CN111931216B (zh) 一种基于隐私保护的方式获取联合训练模型的方法及系统
CN111931950B (zh) 一种基于联邦学习进行模型参数更新的方法及系统
US20230023520A1 (en) Training Method, Apparatus, and Device for Federated Neural Network Model, Computer Program Product, and Computer-Readable Storage Medium
US10855455B2 (en) Distributed multi-party security model training framework for privacy protection
TWI689841B (zh) 資料加密、機器學習模型訓練方法、裝置及電子設備
US20230078061A1 (en) Model training method and apparatus for federated learning, device, and storage medium
US20210042645A1 (en) Tensor Exchange for Federated Cloud Learning
CN112085159B (zh) 一种用户标签数据预测系统、方法、装置及电子设备
CN111143894B (zh) 一种提升安全多方计算效率的方法及系统
JP2020525814A (ja) 秘密分散を使用したロジスティック回帰モデリング方式
CN111310204B (zh) 数据处理的方法及装置
US11687666B2 (en) System, method, and computer program product for conducting private set intersection (PSI) techniques with multiple parties using a data repository
CN113221153B (zh) 图神经网络训练方法、装置、计算设备及存储介质
CN112000979B (zh) 隐私数据的数据库操作方法、系统及存储介质
Khan et al. Vertical federated learning: A structured literature review
Jia et al. Privacy‐Preserving Blockchain‐Based Nonlinear SVM Classifier Training for Social Networks
CN111062492B (zh) 一种基于可选隐私数据进行模型训练的方法及系统
Naresh et al. Hyperledger blockchain enabled secure medical record management with deep learning-based diagnosis model
US11451375B2 (en) System, method and apparatus for privacy preserving inference
Pakdel Privacy and Security Enhanced Federated Learning Framework Design
CN117240497A (zh) 用户账户异常评估方法、装置、计算机设备、存储介质
Ramírez et al. Technological Enablers for Privacy Preserving Data Sharing and Analysis

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 21785525

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 21785525

Country of ref document: EP

Kind code of ref document: A1