CN111027083A - 一种私有数据处理方法及系统 - Google Patents
一种私有数据处理方法及系统 Download PDFInfo
- Publication number
- CN111027083A CN111027083A CN201911243933.2A CN201911243933A CN111027083A CN 111027083 A CN111027083 A CN 111027083A CN 201911243933 A CN201911243933 A CN 201911243933A CN 111027083 A CN111027083 A CN 111027083A
- Authority
- CN
- China
- Prior art keywords
- data
- storage device
- storage
- encrypted
- blocks
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 14
- 238000000034 method Methods 0.000 claims abstract description 55
- 238000012549 training Methods 0.000 claims description 89
- 238000012545 processing Methods 0.000 claims description 49
- 230000008569 process Effects 0.000 claims description 26
- 238000010801 machine learning Methods 0.000 claims description 16
- 230000011218 segmentation Effects 0.000 claims description 13
- 238000005192 partition Methods 0.000 claims description 12
- 238000012216 screening Methods 0.000 claims description 8
- 238000012360 testing method Methods 0.000 claims description 6
- 238000012800 visualization Methods 0.000 claims 2
- 230000015654 memory Effects 0.000 description 23
- 238000003066 decision tree Methods 0.000 description 12
- 238000010586 diagram Methods 0.000 description 9
- 238000012986 modification Methods 0.000 description 9
- 230000004048 modification Effects 0.000 description 9
- 239000011159 matrix material Substances 0.000 description 6
- 238000004364 calculation method Methods 0.000 description 5
- 230000000694 effects Effects 0.000 description 5
- 238000001914 filtration Methods 0.000 description 5
- 230000004927 fusion Effects 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 230000006872 improvement Effects 0.000 description 3
- 239000000463 material Substances 0.000 description 3
- 230000000644 propagated effect Effects 0.000 description 3
- 230000009467 reduction Effects 0.000 description 3
- 230000006978 adaptation Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 2
- 238000013528 artificial neural network Methods 0.000 description 2
- 230000000903 blocking effect Effects 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000012417 linear regression Methods 0.000 description 2
- 238000007477 logistic regression Methods 0.000 description 2
- 238000007637 random forest analysis Methods 0.000 description 2
- 238000000638 solvent extraction Methods 0.000 description 2
- 238000012706 support-vector machine Methods 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000000712 assembly Effects 0.000 description 1
- 238000000429 assembly Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 239000010977 jade Substances 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 239000003607 modifier Substances 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 241000894007 species Species 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6245—Protecting personal data, e.g. for financial or medical purposes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
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)
- Storage Device Security (AREA)
Abstract
本说明书实施例公开了一种私有数据处理方法。所述方法可以由可信执行环境中的一个或多个处理器执行,其包括:可以获取私有数据,私有数据经过加密。可以处理私有数据以获取两个或以上的数据分块。可以基于至少一个数据分块训练树模型。以及,可以将至少一个数据分块存储至第一存储设备,第一存储设备位于可信执行环境之外,且存储至第一存储设备的数据分块经过加密。本说明书所披露的方法,可以缓解大数据下可信执行环境内的存储空间受限的问题。
Description
技术领域
本说明书涉及数据处理领域,特别涉及一种私有数据处理方法、系统、装置以及可读存储介质。
背景技术
随着信息科技的发展,数据已经成为其拥有方的重要资源。而现今多方数据联合使用已经成为常态,如何在数据的联合使用中保护各方数据的隐私安全、防止数据泄露成为一个亟待解决的关键问题。因此,有必要提供一种能够在数据使用过程中保护各方私有数据安全的数据处理方法。
发明内容
本说明书实施例的一个方面提供一种私有数据处理方法。所述方法可以由可信执行环境中的一个或多个处理器执行。所述私有数据处理方法包括:可以获取所述私有数据,所述私有数据经过加密。可以处理所述私有数据以获取两个或以上的数据分块。可以基于至少一个数据分块训练树模型。以及,可以将至少一个数据分块存储至第一存储设备,所述第一存储设备位于所述可信执行环境之外,且存储至第一存储设备的数据分块经过加密。
本说明书实施例的另一个方面提供一种私有数据处理系统,所述系统位于可信执行环境中。所述系统可以包括获取模块、处理模块、执行模块以及存储模块。获取模块,可以用于获取所述私有数据,所述私有数据经过加密。处理模块,可以用于处理所述私有数据以获取两个或以上的数据分块。执行模块,可以用于基于至少一个数据分块训练至少一个树模型。存储模块,可以用于将至少一个数据分块存储至第一存储设备,所述第一存储设备位于所述可信执行环境之外,且存储至第一存储设备的数据分块经过加密。
本说明书实施例的另一个方面提供一种私有数据处理装置,包括至少一个存储介质和至少一个处理器,所述至少一个存储介质用于存储计算机指令;所述至少一个处理器用于执行所述计算机指令以实现所述私有数据处理方法。
本说明书实施例的另一个方面提供一种计算机可读存储介质,所述存储介质存储计算机指令,当计算机读取存储介质中的计算机指令后,计算机执行所述私有数据处理方法。
附图说明
本说明书将以示例性实施例的方式进一步说明,这些示例性实施例将通过附图进行详细描述。这些实施例并非限制性的,在这些实施例中,相同的编号表示相同的结构,其中:
图1是根据本说明书一些实施例所述的私有数据处理系统结构的示例性示意图;
图2是根据本说明书一些实施例所示的私有数据处理方法的示例性流程图;
图3是根据本说明书一些实施例所示的执行预设数据使用流程的示例性流程图;
图4是根据本说明书一些实施例所示的处理私有数据的示例性流程图;
图5是根据本说明书一些实施例所示的私有数据处理系统的模块图。
具体实施方式
为了更清楚地说明本说明书实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单的介绍。显而易见地,下面描述中的附图仅仅是本说明书的一些示例或实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图将本说明书应用于其它类似情景。除非从语言环境中显而易见或另做说明,图中相同标号代表相同结构或操作。
应当理解,本文使用的“系统”、“装置”、“单元”和/或“模组”是用于区分不同级别的不同组件、元件、部件、部分或装配的一种方法。然而,如果其他词语可实现相同的目的,则可通过其他表达来替换所述词语。
如本说明书和权利要求书中所示,除非上下文明确提示例外情形,“一”、“一个”、“一种”和/或“该”等词并非特指单数,也可包括复数。一般说来,术语“包括”与“包含”仅提示包括已明确标识的步骤和元素,而这些步骤和元素不构成一个排它性的罗列,方法或者设备也可能包含其它的步骤或元素。
本说明书中使用了流程图用来说明根据本说明书的实施例的系统所执行的操作。应当理解的是,前面或后面操作不一定按照顺序来精确地执行。相反,可以按照倒序或同时处理各个步骤。同时,也可以将其他操作添加到这些过程中,或从这些过程移除某一步或数步操作。
在多方数据联合使用中,各方可能存在不同的数据使用目的。例如,在联合建模过程中,可能同时存在多种训练任务,以满足各方的建模需求。为了保护信息安全,在一些实施例中,多方数据联合使用采用隐私安全保护技术。一种保护方案是对各方数据提取主成分(PCA,Principal Component Analysis)并进行降维,之后再进行数据融合及使用,例如联合建模训练。这种方案在对各方数据降维的过程中丢失了部分信息,会对数据使用的效果产生一定的影响。另一种保护方案是基于秘密分享、同态加密等技术的多方安全计算(MPC,Multi-Party Computation)。这种方案存在网络传输开销大,需要额外的加密解密,由此带来了极大的计算开销,同时可支持的算法较少。
在一些实施例中,可以通过在可信执行环境中使用各方数据,确保来自多数据源的数据在使用过程中的安全与隐私。这一实施例的私有数据处理方法,可以应用于多方数据联合使用的场景中,例如,多方联合建模。可信执行环境(TEE,Trusted ExecutionEnvironment)是主处理器内的安全区域,它运行在一个独立的环境中且与操作系统并行运行,能够确保可信执行环境中加载的代码和数据的机密性和完整性都得到保护。可信执行环境可以包括AMD公司的Secure Encrypted Virtualization(SEV)、ARM公司的TrustZone和Intel公司的Software Guard Extensions(SGX)等。仅出于说明的目的,本说明书以SGX为例,对披露的技术方案进行详细描述,并不旨在限制本说明书的范围。
SGX(Software Guard Extensions),可以通过一组专有的指令集对应用代码、数据进行机密保护,防止数据泄露和恶意的窜改攻击。然而,SGX中的可用内存较小,目前Intel公司提供的SGX内存最多为128M,并且无法执行多线程。而目前多方数据联合使用时的数据集的大小大多都会远超过128M,无法一次性全部加载至SGX,影响数据的使用。因此,为了在保证数据隐私安全的同时保证数据使用的效果,例如模型训练效果,本说明书一些实施例提出一种私有数据处理方法,在SGX中进行数据使用时保护数据的隐私安全的同时,为SGX添加缓存机制,可以有效地克服SGX的内存限制,确保数据使用的目的效果。同时,数据在使用时已经过预处理例如分块,能够避免在使用过程中的网络传输开销。以下通过对附图的描述阐述本说明书披露的技术方案。
图1是根据本说明书一些实施例所述的私有数据处理系统结构的示例性示意图。如图1所示,所述私有数据处理系统100可以包括可信执行环境101、第二存储设备102、数据分块103以及第一存储设备104。
在一些实施例中,私有数据处理系统100可以在一台计算机设备上实现,例如,可信执行环境101与第一存储设备位于同一计算机设备中。在一些实施例中,私有数据处理系统100可以在不同计算机设备上实现,例如,可信执行环境101可以设置于一台计算机设备上,第一存储设备由独立于该计算机设备的存储设备或另一计算机设备提供。在一些实施例中,可信执行环境101(例如,SGX)可以是一个独立的运行环境,在其中加载的代码和数据的机密性和完整性都可以得到保护。例如,通过使用硬件和软件可以对在可信执行环境中运行的数据和代码进行保护。在可信执行环境101中,可以对私有数据进行处理(例如,对私有数据的加密、解密、对齐、切分等)。处理后的私有数据可以被存储到第一存储设备104和/或第二存储设备102中。第一存储设备104可以是位于可信执行环境101之外的存储设备,其具有较大的内存容量(例如,64GB-256GB),可以存储较多的数据,但无法为存储在其中的数据提供安全性保证。在一些实施例中,第一存储设备104可以是大容量存储器、可移动存储器、易失性读写存储器、只读存储器(ROM)等或其任意组合。示例性的大容量存储器可以包括磁盘、光盘、固态磁盘等。示例性可移动存储器可以包括闪存驱动器、软盘、光盘、存储卡、压缩盘、磁带等。示例性易失性读写存储器可以包括随机存取存储器(RAM)。示例性RAM可包括动态随机存取存储器(DRAM)、双倍数据速率同步动态随机存取存储器(DDRSDRAM)、静态随机存取存储器(SRAM)、晶闸管随机存取存储器(T-RAM)和零电容随机存取存储器(Z-RAM)等。示例性只读存储器可以包括掩模型只读存储器(MROM)、可编程只读存储器(PROM)、可擦除可编程只读存储器(PEROM)、电可擦除可编程只读存储器(EEPROM)、光盘只读存储器(CD-ROM)和数字多功能磁盘只读存储器等。第二存储设备102可以是可信执行环境101中存储设备,例如,SGX环境中的缓存Cache),其存储量较小,但由于位于可信执行环境101内,可以为存储在其中的数据提供安全性保障。在一些实施例中,所述数据分块可以在可信执行环境101中被使用以执行预设数据使用流程。关于预设数据使用流程可以在本说明书的其他部分找到,例如,图3的相关说明。
在一些实施例中,第一存储设备104和第二存储设备102之间可以进行数据分块的相互读取与交换。在可信执行环境101中对私有数据进行处理得到数据分块,可以被首先存储在第二存储设备102中。当第二存储设备102不满足预设条件,比如存储量达到阈值时,数据分块可以被加密存储至第一存储设备104中。或者第二存储设备102中的数据分块可以被替换,然后被加密存储至第一存储设备104中。当数据分块需要被使用以执行预设数据使用流程时,可以首先在第二存储设备102中查询是否存在所需的数据分块。若没有,则可以从第一存储设备104中调取,以存储至第二存储设备102中,并被读取使用。
图2是根据本说明书一些实施例所示的私有数据处理方法的示例性流程图。在一些实施例中,流程200可以由处理设备,例如处理系统500执行。该处理系统可在可信执行环境内实现。例如,流程200可以以程序或指令的形式存储在存储装置(如第二存储设备102、第一存储设备104)中,所述程序或指令在可信执行环境中被执行时,可以实现流程200。如图2所示,流程200可以包括:
步骤202,获取私有数据,所述私有数据经过加密。步骤202可以由获取模块510执行。
在一些实施例中,所述私有数据可以是参与多方数据联合使用的各方所具有的不对外公开的数据。例如,对于网络消费的应用场景,商家入驻网络商务平台,消费者通过网络商务平台在商家中消费,则所述私有数据可以是商家或平台所拥有的用户数据(例如,用户账号、用户联系方式、用户信用记录、用户消费记录、用户浏览记录等)、商家数据(例如,商家标识数据、商家销售数据、商家信用数据等)等。所述私有数据类型可以为文本数据、图像数据等。
在一些实施例中,私有数据的加密可以是数据拥有方采用其各自的数据加密方式对私有数据的加密。不同数据拥有方之间采用的加密方式可以相同,也可以不同。所述加密方式可以包括公开密钥加密技术、数据证书、对称加密、非对称加密等其中的一种或其组合。
在一些实施例中,所述私有数据的拥有方可以将各自的数据经过加密后传输至同一存储设备,例如,云平台。获取模块510可以与所述存储设备通信,以读取其中所存储的私有数据。在一些实施例中,获取模块510可以直接与所述私有数据的拥有方进行通讯,以获取所述私有数据。
步骤204,处理所述私有数据以获取两个或以上的数据分块。步骤204可以由处理模块520执行。
在一些实施例中,处理模块520可以对私有数据按照任何需要的标准进行分块。例如,可以将私有数据按照其来源、获取时间、类型(文本、音频、图像等)等等进行分块。在一些实施例中,处理模块520可以先对私有数据进行解密,之后再进行划分。解密可以基于解密密钥进行。所述解密密钥可以从数据拥有方处获取。在一些实施例中,私有数据可以包括来自于不同的数据源但是与同一对象相关的数据。如,可以是来自不同数据源关于同一消费者的不同消费类别的消费数据。又例如,可以是来自不同数据源关于同一特征项(国籍、年龄等)的数据。处理模块520可以先对私有数据进行对齐,再进分块。对齐可以理解为,将各条数据进行逻辑关系上重组,以使其有序。在一些实施例中,处理模块520可以基于某一对象将来自不同数据源的数据进行重组。例如,如,商家A拥有ID分别为xx1、xx2、xx3、xx6等多条样本数据对应的特征数据,商家B拥有ID分别为xx2、xx3、xx5等多条样本数据对应的特征数据条数据,则可以将商家A的xx2、xx3下的特征数据与商家B的xx2、xx3下的特征数据进行对应或融合,形成更完善的两条样本数据。
在一些实施例中,可以对私有数据按照行、列两种方式进行切分,以获取多个数据分块。作为示例,私有数据中的每一份数据都可以包含有一个或以上的特征,以及用于区别于其他数据的标识。处理模块520可以基于特征和/或所述标识对私有数据进行垂直和/或水平切分,以获取以垂直切分数据分块和/或水平切分数据分块。在一些实施例中,私有数据可能较为稀疏,例如在特征处理过程中,会将非数值数据(如国籍:中国、美国、英国、日本等)经过one-hot编码转换为数值数据(0001、0010、0100等),这类数据中可能具有较多的0,处理模块520在对这类私有数据进行切分后,可以以稀疏矩阵的形式表示相应的数据分块。稀疏矩阵的形式可以包括稀疏行(CSR,Compressed sparse row)、稀疏列(CSC,CompressedSparse Column)、行列(COO,Coordinate)等。以稀疏矩阵的形式来表示私有数据,可以在存储时节约存储量。并且在使用稀疏矩阵进行计算时速度更快。关于对私有数据进行分块的更多描述可以在本说明书的其他部分找到,例如,图4的相关说明。在此不再赘述。
步骤206,对至少一个数据分块执行预设数据使用流程。步骤206可以由执行模块530执行。
预设数据使用流程可以是对数据分块的任意处理操作,包括但不限于数据计算、排序、筛选、加密、解密等。在一些实施例中,所述预设数据使用流程可以包括利用至少一个数据分块进行数据融合计算、利用至少一个数据分块进行机器学习模型训练、传输所述至少一个数据分块等或其任意组合。所述数据融合计算可以包括构建数据来源之间的知识图谱、确定对象的特征信息等。所述对象可以是指产生数据的主体。所述特征信息可以是表示对象的行业身份、行为特征等。以网络消费为例,网络商务平台上的商家和消费者可以是对象。商家所提供的何种服务以及消费者所从事的何种行业可以是对象的特征信息。执行模块530可以根据所述至少一个数据分块,提取各对象的特征,确定各对象之间的关系,构建各对象之间的知识图谱。同时,执行模块530可以从至少一个数据分块中整合数据来源的各个特征以获取特征表,并基于特征表确定对象的特征信息。
在一些实施例中,所述传输至少一个数据分块通过链路进行。例如,可以在链路中将数据分块在点对点的设备之间进行传输,也可以在一个节点和多个节点之间传输数据分块。数据分块可以更好的在链路之间传输,也可以便于传输数据分块的链路选择。在一些实施例中,预设数据使用流程还可以是将数据分块存储至存储设备(例如,第一存储设备104)中。
在一些实施例中,所述利用至少一个数据分块进行机器学习模型训练可以是指利用所述至少一个数据分块同时对对应于多个任务的机器学习模型进行训练(即多任务机器学习模型训练)。所述机器学习模型可以包括回归模型(线性回归或逻辑回归)、朴素贝叶斯、决策树、随机森林、GBDT、xgboost、ID3、SVM、KNN、神经网络等。对应于每个任务的机器学习模型可以是相同的,也可以是不同的。以训练GBDT模型为例,在一些实施例中,执行模块530可以利用一个或多个垂直切分数据分块以及一个或多个水平切分数据分块训练所述GBDT模型,并利用一个或多个水平切分数据分块测试所述GBDT模型。垂直切分数据分块在进行GBDT模型训练时可以用于寻找数据分块的最优分割点,水平切分数据分块在进行GBDT模型训练时可以用于拟合残差。同时,水平切分数据分块可以用于测试训练完成的GBDT模型。关于数据分块切分和GBDT模型训练的更多描述可以在本说明书的其他部分找到,例如,图4的相关说明。
步骤208,将至少一个数据分块存储至第一存储设备,所述第一存储设备位于所述可信执行环境之外,且存储至第一存储设备的数据分块经过加密。步骤208可以由存储模块540执行。
在一些实施例中,所述第一存储设备可以是位于可信执行环境外的主存(Mainmemory)。该主存可以存放指令和数据。所存放的指令和数据可以被读取到位于可信执行环境内的存储设备,并被可信执行环境内的一个或多个处理器使用。由于在可信执行环境中的存储设备的存储量一般较小(例如,SGX的可用内存只有128MB),而所述私有数据即使经过划分以稀疏矩阵的形式缩减存储量,依然可能远大于可信执行环境中的存储设备的存储量。因此,可以将所述数据分块存储至第一存储设备中,将所述第一存储设备作为存储数据分块的辅助。
由于所述第一存储设备位于所述可信执行环境之外,存储模块540在将所述数据分块存储至第一存储设备之前,可以对所述数据分块进行加密,再将经过加密后的数据分块存储至第一存储设备中。示例性的加密方式可以包括对称加密和/或非对称加密。在一些实施例中,对于数据分块的加密可以采用对称加密的方式,既可以有效地保证数据分块的隐私安全,又能够拥有快速地解密速度,便于模型训练时的数据读取。所述对称加密的加密方式可以包括AES加密、DES加密、3DES加密等。
将数据分块存储到第一存储设备可以采用多种方法进行,仅作为示例,可以使用下文实施例中的方法,也可以采用其他的方法,本说明书不做限定。
在一些实施例中,至少一个数据分块可以首先被存储至可信执行环境中的存储设备,例如,第二存储设备中,直到所述第二存储设备不满足第一预设条件。所述第二储存设备可以是可信执行环境中的高速缓存,例如,SGX中的高速缓冲存储器(Cache),TrustZone中的高速缓冲存储器(Cache)等。在一些实施例中,在第二存储设备满足第一预设条件之前,都可以对数据分块进行存储。所述第一预设条件可以包括第二存储设备存储空间未被占满、第二设备存储空间占用率小于预设比例(例如,空间占用率小于70%、80%)、写入第二存储设备次数未达到预设次数(例如,10000、20000次)等。
在一些实施例中,当第二存储设备不满足第一预设条件时,则存储模块540可以将剩余的至少一个数据分块加密后存储至第一存储设备。例如,可以在第二存储设备存储空间被占满时,将数据分块加密后存储至第一存储设备,也可以在第二存储设备空间占用率达到预设比例时,将数据分块加密后存储至第一存储设备。在此处,术语“剩余”可以是指所有私有数据中未存储至所述第二存储设备的部分。
在一些实施例中,当第二存储设备不满足第一预设条件时,可以直接将剩余的至少一个数据分块加密后存储至第一存储设备,也可以基于预设筛选策略从第二存储设备中选择至少一个数据分块,将其加密后存储至第一存储设备,使得第二存储设备可以继续存储剩余的数据分块。所述预设筛选策略可以是随机选择策略。例如,从所述第二存储设备中随机选择至少一个数据分块,加密后存储至所述第一存储设备。所述预设筛选策略也可以是缓存替换策略。所述缓存替换策略可以包括最近最少使用(LRU,Least-Recently-Used)替换策略、最近最多使用(MRU,Most Recently Used)替换策略、随机替换(RR,RandomReplacement)策略。例如,基于缓存替换策略从所述第二存储设备中随机选择至少一个数据分块,加密后存储至所述第一存储设备。
应当注意的是,上述有关流程200的描述仅仅是为了示例和说明,而不限定本说明书的适用范围。对于本领域技术人员来说,在本说明书的指导下可以对流程200进行各种修正和改变。然而,这些修正和改变仍在本说明书的范围之内。例如,对本说明书有关流程步骤的改变,如步骤206和步骤208可以并行,也可以先执行步骤208再执行步骤206等。
图3是根据本说明书一些实施例所示的执行预设数据使用流程的示例性流程图。在一些实施例中,流程300可以由处理系统500(如执行模块530,以及存储模块540)执行。如图3所示,流程300可以包括:
步骤302,确定所述第二存储设备是否存储有目标数据分块。
在一些实施例中,目标数据分块可以是需要从第二存储设备中读取,以执行预设数据使用流程所需要的数据分块。例如,目标数据分块可以是进行多任务机器学习模型训练所需提取的数据分块。在一些实施例中,可以通过查找数据分块的编码或者编号来确定在第二存储设备中是否存储有目标数据分块。所述编码或编号可以是在对私有数据进行划分时为每个数据分块所分配的,也可以是在对数据分块进行存储时添加。若在第二存储设备中查找到目标数据分块的编码或编号,即可确定在第二存储设备中存有目标数据分块;相应地,若未查找到目标数据分块的编码或编号即可确定在第二存储设备中未存有目标数据分块。
步骤304,若存储有目标数据分块,则利用所述目标数据分块执行所述预设数据使用流程。
在一些实施例中,确定第二存储设备中存储有目标数据分块,则可以利用所述目标数据分块执行预设数据使用流程,例如,使用目标数据分块进行多任务机器学习模型训练。可以直接从第二存储设备中读取以得到所述目标数据分块,然后利用目标数据分块进行多任务机器学习模型训练。
步骤306,若未存储有目标数据分块,则从所述第一存储设备中读取目标数据分块至所述可信执行环境中并解密,并利用解密后的目标数据分块执行预设数据使用流程。
在一些实施例中,若确定了在第二存储设备中未存储有目标数据分块,则可以通过存储模块540可以与第一存储设备进行通讯并在所述第一存储设备中查找所述目标数据分块。目标数据分块从第一存储设备读取到可信执行环境后,执行模型530可以利用所述目标数据分块执行所述预设数据使用流程。在一些实施例中,执行模型530可以在使用目标数据分块执行预设数据使用流程之前,对所述目标数据分块进行解密。关于对数据分块加密和解密的更多描述可以在本说明书的其他部分找到,例如,图2的相关说明。
将目标数据分块从第一存储设备读取到可信执行环境可以采用多种方法进行,仅作为示例,可以使用下文实施例中的方法,也可以采用其他的方法,本说明书不做限定。
在一些实施例中,存储模块540在读取目标数据分块之前,可以先判断所述第二存储设备是否满足第二预设条件,若满足第二预设条件,则可以直接将所述目标数据分块存储至第二存储设备。所述第二预设条件可以为第二存储设备存储空间未被占满、第二设备存储空间占用率小于预设比例(例如,空间占用率小于70%或80%等)、写入第二存储设备次数未达到预设次数(例如,10000、20000次)等。其中,所述第二预设条件可以与第一预设条件相同,也可以与第一预设条件不同,例如,第一预设条件为第二设备存储空间占用率小于80%,第二预设条件为第二存储设备存储空间未被占满。又例如,第一预设条件为第二存储设备空间占用率小于70%,第二预设条件可以为第二设备存储空间占用率小于80%,本说明书对此不做限定。
在一些实施例中,若经过判断,第二存储设备未满足第二预设条件,则可以基于预设筛选策略从第二存储设备中选择至少一个数据分块,将其加密后存储至第一存储设备,并将所述目标数据分块存至所述第二存储设备。例如,以第二预设条件为第二存储设备未被占满为例,当第二存储设备不满足第二预设条件时,说明第二存储设备无可用存储空间,此时无法向第二存储设备继续存入数据分块。因此可以基于预设筛选策略从第二存储设备中筛选出至少一个数据分块存储至第一存储设备,以此第二存储设备可以空出部分存储空间用于存储目标数据分块,进而所述目标数据分块可以从第二存储设备中被访问到并用于预设数据使用流程。其中,关于预设筛选策略的更多描述可以在本说明书的其他部分找到,例如,图2的相关说明。
应当注意的是,上述有关流程300的描述仅仅是为了示例和说明,而不限定本说明书的适用范围。对于本领域技术人员来说,在本说明书的指导下可以对流程300进行各种修正和改变。然而,这些修正和改变仍在本说明书的范围之内。例如,步骤304和步骤306可以并行,也可以先执行步骤306,再执行步骤304。
图4是根据本说明书一些实施例所示的处理私有数据的示例性流程图。在一些实施例中,流程400可以由私有数据处理系统500(如处理模块520)执行。如图4所示,流程400可以包括:
步骤402,解密所述私有数据。
在一些实施例中,私有数据可以包括来自多个数据源的训练样本数据。所述数据源可以是如图2相关说明中所描述的数据拥有者。同样的示例,以网络消费为例,网络商务平台以及平台上的商家可以是数据源。所述训练样本数据可以是针对具体的模型训练任务所需的训练样本。解密私有数据是加密私有数据的反向操作。私有数据的加密可以由不同的多个数据源分别进行加密,对私有数据进行加密的算法在多个数据源之间也可以不同。在一些实施例中,可以预先在可信执行环境中存储用于解密私有数据的解密密钥,便于在可信执行环境中对私有数据进行解密得到训练样本数据。
步骤404,基于训练样本的一个或多个特征项将训练样本数据划分,得到一个或多个垂直切分数据分块。
在一些实施例中,特征项可以是所述训练样本所具有的某一项或多项特征。例如,一个训练样本可以包括A、B、C三个特征。在对训练样本进行划分时,可以按照A特征为一列,B特征为一列,C特征为一列进行垂直划分。在具有多个训练样本时,可以采用同样的方法对所有的训练样本进行划分,多个训练样本的同一特征划分到同一列中。例如,多个训练样本的A特征划分到同一列,B特征划分到同一列,C特征划分到同一列。在一些实施例中,训练样本中还包括样本标签,则可以将多个训练样本的样本标签划分为一列。在一些实施例中,所述垂直切分数据分块可以为包含所有样本数据的多个特征项的数据分块。例如,一个垂直切分数据分块可以包含多列,第一列可以各个训练样本的A特征,第二列可以是各个训练样本的B特征。在一些实施例中,在基于训练样本的特征项对训练样本进行划分前,可以先对多个训练样本进行对齐。例如,可以按照训练样本的标识性特征项(如样本ID,又例如身份证号等)将来自不同商家或企业的训练样本进行对齐。对齐可以理解为,将各个训练样本进行逻辑关系上重组,以使其有序。关于对齐的更多描述,可以在本说明书的其他部分找到,例如,图2的相关说明中。
步骤406,基于训练样本的标识性特征项的特征值将训练样本数据划分,得到一个或多个水平切分数据分块。
在一些实施例中,标识性特征项可以是用于区分训练样本数据的特征项,其具有标识性作用。标识性特征项也可以是样本ID。又例如,对于作为训练样本数据的用户数据,标示性特征项可以是身份证号、手机号等具有唯一区分性的特征项。所述特征值,可以为表示所述标识性特征项的具体数值,例如,十八位身份证号数值,11位手机号数值等。基于训练样本的标识性特征项的特征值对于训练样本数据的划分,可以是按照标识性特征项区别不同的训练样本,进而将一个或以上的训练样本作为一个水平切分数据分块。在一个水平切分数据分块中,每一行是一个训练样本的所有特征。例如,第一行是训练样本1,第二行是训练样本2,第三行是训练样本3,以此类推。在一些实施例中,一个水平切分数据分块中,每一行还可以包括一个训练样本的所有特征以及样本标签。
作为示例,在得到用于模型训练的数据分块之后,对数据分块执行预设数据使用流程可以采用下文实施例所述的GBDT模型训练流程进行多任务模型训练。
在一些实施例中,多任务GBDT模型训练可以采用以下示例性流程进行:首先,使用所有任务共有的训练样本数据分块训练出M棵共同的决策树,然后分别拟合出各任务目标与共同决策树的残差。其中,训练出M棵共同的决策树可以按照串行的方式进行训练,即,一棵共同的决策树训练完成之后,再训练下一棵共同的决策树。继续使用各任务对应的训练数据在此残差的基础上继续训练出N棵独立的决策树。最后,对于每一个训练任务,M棵共同决策树和N棵独立决策树的预测结果之和构成最终的预测结果。
上述过程中涉及的各决策树可以使用作为训练样本的数据分块进行训练。所述数据分块可以为按照垂直和水平划分后的数据分块,例如,垂直切分数据分块和水平切分数据分块。根据本说明书之前的描述,垂直切分数据分块中的每一列,可以是包含了所有样本的同一个特征,其可以用于寻找该特征值对应的决策树节点的最优分割点。水平切分数据分块中的每一行,可以是包含了一个样本的所有特征及样本标签,其可以用于计算预测结果与训练任务目标(如任务目标相关的训练样本的标签)之间的残差(或偏差)。同时,由于水平切分数据分块中每一行是包含了一个样本的所有特征以及标签,其可以被用于测试最终得到的GBDT模型。例如,比较预测结果与样本标签之间的相似度以确定模型是否满足要求。
应当注意的是,上述有关流程400的描述仅仅是为了示例和说明,而不限定本申请的适用范围。对于本领域技术人员来说,在本申请的指导下可以对流程400进行各种修正和改变。例如,步骤404与步骤406可以择一省略,又例如步骤404、步骤406的顺序可以更换。又例如,可以先对训练样本进行步骤406,得到多个水平切分数据分块,再对每个水平切分数据分块执行步骤404,得到各水平数据分块的垂直切分分块。然而,这些修正和改变仍在本申请的范围之内。
图5是根据本说明书一些实施例所示的私有数据处理系统的模块图。所述系统可以获取私有数据,并在对私有数据进行处理后,对处理得到的数据分块进行存储。如图5所示,所述系统可以包括获取模块510、处理模块520、执行模块530以及存储模块540。
获取模块510可以获取数据。
在一些实施例中,获取模块510可以获取私有数据,所述私有数据所可以是参与多方数据联合使用的各方所具有的不对外公开的数据,且经过加密。加密可以是数据拥有方采用其各自的数据加密方式对私有数据的加密。不同数据拥有方之间采用的加密方式可以相同,也可以不同。在一些实施例中,所述私有数据的拥有方可以将各自的数据经过加密后传输至同一存储设备,例如,云平台。获取模块510可以与所述存储设备通信,以读取其中所存储的私有数据。在一些实施例中,获取模块510可以直接与所述私有数据的拥有方进行通讯,以获取所述私有数据。
处理模块520可以处理私有数据以获取得到两个或两个以上的数据分块。
在一些实施例中,处理模块520可以对私有数据按照任何需要的标准进行分块。例如,可以将私有数据按照其来源、获取时间、类型(文本、音频、图像等)等等进行分块。在一些实施例中,处理模块520可以先对私有数据进行解密,之后再进行划分。划分可以是对私有数据按照行、列两种方式进行切分,以获取多个垂直切分数据分块和/或水平切分数据分块。所述数据分块可以以稀疏矩阵的形式表示相应的数据分块。稀疏矩阵的形式可以包括稀疏行(CSR,Compressed sparse row)、稀疏列(CSC,Compressed Sparse Column)、行列(COO,Coordinate)等。
执行模块530可以基于处理后的数据执行数据使用流程。
在一些实施例中,所述预设数据使用流程可以是对数据分块的任意处理操作,包括但不限于数据计算、排序、筛选、加密、解密等。在一些实施例中,所述预设数据使用流程可以包括利用至少一个数据分块进行数据融合计算、利用至少一个数据分块进行机器学习模型训练、传输所述至少一个数据分块等或其任意组合。在一些实施例中,所述利用至少一个数据分块进行机器学习模型训练可以是指利用所述至少一个数据分块同时对对应于多个任务的机器学习模型进行训练(即多任务机器学习模型训练)。所述机器学习模型可以包括回归模型(线性回归或逻辑回归)、朴素贝叶斯、决策树、随机森林、GBDT、SVM、KNN、神经网络等。对应于每个任务的机器学习模型可以是相同的,也可以是不同的。以训练GBDT模型为例,在一些实施例中,执行模块530可以利用一个或多个垂直切分数据分块以及一个或多个水平切分数据分块训练所述GBDT模型,并利用一个或多个水平切分数据分块测试所述GBDT模型。
存储模块540可以对数据进行存储。
在一些实施例中,存储模块540可以将至少一个数据分块存储至第一存储设备。所述第一存储设备位于所述可信执行环境之外,且存储至第一存储设备的数据分块经过加密。在一些实施例中,至少一个数据分块可以首先被存储至可信执行环境中的存储设备,例如,第二存储设备中,直到所述第二存储设备不满足第一预设条件。当第二存储设备不满足第一预设条件时,则存储设备540可以对至少一个数据分块加密后存储至第一存储设备,也可以基于预设筛选策略从第二存储设备中选择至少一个数据分块,将其加密后存储至第一存储设备,使得第二存储设备可以继续存储剩余的数据分块。
关于私有数据处理系统的各模块的具体描述,可以参考本申请流程图部分,例如,图2至图4的相关说明。
应当理解,图5所示的系统及其模块可以利用各种方式来实现。例如,在一些实施例中,系统及其模块可以通过硬件、软件或者软件和硬件的结合来实现。其中,硬件部分可以利用专用逻辑来实现;软件部分则可以存储在存储器中,由适当的指令执行系统,例如微处理器或者专用设计硬件来执行。本领域技术人员可以理解上述的方法和系统可以使用计算机可执行指令和/或包含在处理器控制代码中来实现,例如在诸如磁盘、CD或DVD-ROM的载体介质、诸如只读存储器(固件)的可编程的存储器或者诸如光学或电子信号载体的数据载体上提供了这样的代码。本说明书的系统及其模块不仅可以有诸如超大规模集成电路或门阵列、诸如逻辑芯片、晶体管等的半导体、或者诸如现场可编程门阵列、可编程逻辑设备等的可编程硬件设备的硬件电路实现,也可以用例如由各种类型的处理器所执行的软件实现,还可以由上述硬件电路和软件的结合(例如,固件)来实现。
需要注意的是,以上对于私有数据处理系统及其模块的描述,仅为描述方便,并不能把本说明书限制在所举实施例范围之内。可以理解,对于本领域的技术人员来说,在了解该系统的原理后,可能在不背离这一原理的情况下,对各个模块进行任意组合,或者构成子系统与其他模块连接。例如,在一些实施例中,例如,图5中披露的获取模块510、处理模块520、执行模块530和存储模块540可以是一个系统中的不同模块,也可以是一个模块实现上述的两个或两个以上模块的功能。例如,获取模块510、处理模块520可以是两个模块,也可以是一个模块同时具有获取和处理功能。例如,各个模块可以共用一个存储模块,各个模块也可以分别具有各自的存储模块。诸如此类的变形,均在本说明书的保护范围之内。
本说明书实施例可能带来的有益效果包括但不限于:(1)在可信执行环境中进行私有数据的使用,可以有效地保护隐私数据的安全。(2)在安全的可信执行环境中对私有数据加密聚合后使用,可以避免数据使用过程中的网络传输开销。同时,在数据使用过程中,无需对数据进行降维处理,可以确保数据使用的效果和可解释性。(3)在可信执行环境中对私有数据进行处理后,将处理得到的数据分块存储至第一存储设备中,在需要使用数据分块时,从第一存储设备中读取数据分块,实现了在可信执行环境中对远超可信执行环境数据存储限制上限的数据集的数据使用。需要说明的是,不同实施例可能产生的有益效果不同,在不同的实施例里,可能产生的有益效果可以是以上任意一种或几种的组合,也可以是其他任何可能获得的有益效果。
上文已对基本概念做了描述,显然,对于本领域技术人员来说,上述详细披露仅仅作为示例,而并不构成对本说明书的限定。虽然此处并没有明确说明,本领域技术人员可能会对本说明书进行各种修改、改进和修正。该类修改、改进和修正在本说明书中被建议,所以该类修改、改进、修正仍属于本说明书示范实施例的精神和范围。
同时,本说明书使用了特定词语来描述本说明书的实施例。如“一个实施例”、“一实施例”、和/或“一些实施例”意指与本说明书至少一个实施例相关的某一特征、结构或特点。因此,应强调并注意的是,本说明书中在不同位置两次或多次提及的“一实施例”或“一个实施例”或“一个替代性实施例”并不一定是指同一实施例。此外,本说明书的一个或多个实施例中的某些特征、结构或特点可以进行适当的组合。
此外,本领域技术人员可以理解,本说明书的各方面可以通过若干具有可专利性的种类或情况进行说明和描述,包括任何新的和有用的工序、机器、产品或物质的组合,或对他们的任何新的和有用的改进。相应地,本说明书的各个方面可以完全由硬件执行、可以完全由软件(包括固件、常驻软件、微码等)执行、也可以由硬件和软件组合执行。以上硬件或软件均可被称为“数据块”、“模块”、“引擎”、“单元”、“组件”或“系统”。此外,本说明书的各方面可能表现为位于一个或多个计算机可读介质中的计算机产品,该产品包括计算机可读程序编码。
计算机存储介质可能包含一个内含有计算机程序编码的传播数据信号,例如在基带上或作为载波的一部分。该传播信号可能有多种表现形式,包括电磁形式、光形式等,或合适的组合形式。计算机存储介质可以是除计算机可读存储介质之外的任何计算机可读介质,该介质可以通过连接至一个指令执行系统、装置或设备以实现通讯、传播或传输供使用的程序。位于计算机存储介质上的程序编码可以通过任何合适的介质进行传播,包括无线电、电缆、光纤电缆、RF、或类似介质,或任何上述介质的组合。
本说明书各部分操作所需的计算机程序编码可以用任意一种或多种程序语言编写,包括面向对象编程语言如Java、Scala、Smalltalk、Eiffel、JADE、Emerald、C++、C#、VB.NET、Python等,常规程序化编程语言如C语言、Visual Basic、Fortran 2003、Perl、COBOL 2002、PHP、ABAP,动态编程语言如Python、Ruby和Groovy,或其他编程语言等。该程序编码可以完全在用户计算机上运行、或作为独立的软件包在用户计算机上运行、或部分在用户计算机上运行部分在远程计算机运行、或完全在远程计算机或服务器上运行。在后种情况下,远程计算机可以通过任何网络形式与用户计算机连接,比如局域网(LAN)或广域网(WAN),或连接至外部计算机(例如通过因特网),或在云计算环境中,或作为服务使用如软件即服务(SaaS)。
此外,除非权利要求中明确说明,本说明书所述处理元素和序列的顺序、数字字母的使用、或其他名称的使用,并非用于限定本说明书流程和方法的顺序。尽管上述披露中通过各种示例讨论了一些目前认为有用的发明实施例,但应当理解的是,该类细节仅起到说明的目的,附加的权利要求并不仅限于披露的实施例,相反,权利要求旨在覆盖所有符合本说明书实施例实质和范围的修正和等价组合。例如,虽然以上所描述的系统组件可以通过硬件设备实现,但是也可以只通过软件的解决方案得以实现,如在现有的服务器或移动设备上安装所描述的系统。
同理,应当注意的是,为了简化本说明书披露的表述,从而帮助对一个或多个发明实施例的理解,前文对本说明书实施例的描述中,有时会将多种特征归并至一个实施例、附图或对其的描述中。但是,这种披露方法并不意味着本说明书对象所需要的特征比权利要求中提及的特征多。实际上,实施例的特征要少于上述披露的单个实施例的全部特征。
一些实施例中使用了描述成分、属性数量的数字,应当理解的是,此类用于实施例描述的数字,在一些示例中使用了修饰词“大约”、“近似”或“大体上”来修饰。除非另外说明,“大约”、“近似”或“大体上”表明所述数字允许有±20%的变化。相应地,在一些实施例中,说明书和权利要求中使用的数值参数均为近似值,该近似值根据个别实施例所需特点可以发生改变。在一些实施例中,数值参数应考虑规定的有效数位并采用一般位数保留的方法。尽管本说明书一些实施例中用于确认其范围广度的数值域和参数为近似值,在具体实施例中,此类数值的设定在可行范围内尽可能精确。
针对本说明书引用的每个专利、专利申请、专利申请公开物和其他材料,如文章、书籍、说明书、出版物、文档等,特此将其全部内容并入本说明书作为参考。与本说明书内容不一致或产生冲突的申请历史文件除外,对本说明书权利要求最广范围有限制的文件(当前或之后附加于本说明书中的)也除外。需要说明的是,如果本说明书附属材料中的描述、定义、和/或术语的使用与本说明书所述内容有不一致或冲突的地方,以本说明书的描述、定义和/或术语的使用为准。
最后,应当理解的是,本说明书中所述实施例仅用以说明本说明书实施例的原则。其他的变形也可能属于本说明书的范围。因此,作为示例而非限制,本说明书实施例的替代配置可视为与本说明书的教导一致。相应地,本说明书的实施例不仅限于本说明书明确介绍和描述的实施例。
Claims (18)
1.一种私有数据处理方法,其中,所述方法由可信执行环境中的一个或多个处理器执行,其包括:
获取所述私有数据,所述私有数据经过加密;
处理所述私有数据以获取两个或以上的数据分块;
基于至少一个数据分块训练至少一个树模型;
以及,将至少一个数据分块存储至第一存储设备,所述第一存储设备位于所述可信执行环境之外,且存储至第一存储设备的数据分块经过加密。
2.根据权利要求1所述的方法,其中,所述将至少一个数据分块存储至第一存储设备,包括:
存储至少一个数据分块至第二存储设备直到第二存储设备不满足第一预设条件,所述第二存储设备位于所述可信执行环境中;
当第二存储设备不满足第一预设条件时,则对至少一个数据分块加密后存储至第一存储设备。
3.根据权利要求2所述的方法,其中,所述当第二存储设备不满足第一预设条件时,则对至少一个数据分块加密后存储至第一存储设备,包括:
将剩余的至少一个数据分块加密后存储至第一存储设备;或者,
基于预设筛选策略从第二存储设备中选择至少一个数据分块,将其加密后存储至第一存储设备,以使第二存储设备满足第一预设条件。
4.根据权利要求2所述的方法,其中,所述基于至少一个数据分块训练至少一个树模型,包括:
确定所述第二存储设备是否存储有目标数据分块;
若存储有目标数据分块,则利用所述目标数据分块训练至少一个树模型;
若未存储有目标数据分块,则从所述第一存储设备中读取目标数据分块至所述可信执行环境中并解密,并利用解密后的目标数据分块训练至少一个树模型。
5.根据权利要求4所述的方法,其中,所述从所述第一存储设备中读取目标数据分块至所述可信执行环境中,包括:
判断所述第二存储设备是否满足第二预设条件;
若满足第二预设条件,存储所述目标数据分块于所述第二存储设备;
若未满足第二预设条件,基于预设筛选策略从第二存储设备中选择至少一个数据分块,将其加密后存储至第一存储设备,并将所述目标数据分块存储至所述第二存储设备。
6.根据权利要求1所述的方法,其中,所述可信执行环境至少包括Software GuardExtensions、Secure Encrypted Virtualization、或TrustZone。
7.根据权利要求1所述的方法,其中,所述私有数据包括来自多个数据源的训练样本数据;所述处理所述私有数据以获取两个或以上的数据分块,包括:
解密所述私有数据;
基于训练样本的一个或多个特征项将训练样本数据划分,得到一个或多个垂直切分数据分块;和/或,
基于训练样本的标识性特征项的特征值将训练样本数据划分,得到一个或多个水平切分数据分块。
8.根据权利要求7所述的方法,其中,所述树模型至少包括GBDT模型;
所述利用所述至少一个数据分块进行多任务机器学习模型训练,包括:
利用一个或多个垂直切分数据分块训练所述GBDT模型;和/或,
利用一个或多个水平切分数据分块测试所述GBDT模型。
9.一种私有数据处理系统,其中,所述系统位于可信执行环境中,所述系统包括获取模块、处理模块、执行模块以及存储模块;
获取模块,用于获取所述私有数据,所述私有数据经过加密;
处理模块,用于处理所述私有数据以获取两个或以上的数据分块;
执行模块,用于基于至少一个数据分块训练至少一个树模型;
存储模块,用于将至少一个数据分块存储至第一存储设备,所述第一存储设备位于所述可信执行环境之外,且存储至第一存储设备的数据分块经过加密。
10.根据权利要求9所述的系统,其中,为将至少一个数据分块存储至第一存储设备,所述存储模块进一步用于:
存储至少一个数据分块至第二存储设备直到第二存储设备不满足第一预设条件,所述第二存储设备位于所述可信执行环境中;
当第二存储设备不满足第一预设条件时,则对至少一个数据分块加密后存储至第一存储设备。
11.根据权利要求10所述的系统,其中,为当第二存储设备不满足第一预设条件时,则对至少一个数据分块加密后存储至第一存储设备,所述存储模块进一步用于:
将剩余的至少一个数据分块加密后存储至第一存储设备;或者,
基于预设筛选策略从第二存储设备中选择至少一个数据分块,将其加密后存储至第一存储设备,以使第二存储设备满足第一预设条件。
12.根据权利要求10所述的系统,其中,为基于至少一个数据分块训练至少一个树模型,所述执行模块进一步用于:
确定所述第二存储设备是否存储有目标数据分块;
若存储有目标数据分块,则利用所述目标数据分块训练至少一个树模型;
若未存储有目标数据分块,则通过存储模块从所述第一存储设备中读取目标数据分块至所述可信执行环境中,并对目标数据分块解密以及利用解密后的目标数据分块训练至少一个树模型。
13.根据权利要求12所述的系统,其中,为从所述第一存储设备中读取目标数据分块至所述可信执行环境中,所述存储模块进一步用于:
判断所述第二存储设备是否满足第二预设条件;
若满足第二预设条件,存储所述目标数据分块于所述第二存储设备;
若未满足第二预设条件,基于预设筛选策略从第二存储设备中选择至少一个数据分块,将其加密后存储至第一存储设备,并将所述目标数据分块存储至所述第二存储设备。
14.根据权利要求9所述的系统,其中,所述可信执行环境至少包括Software GuardExtensions、Secure Encrypted Virtualization、或TrustZone。
15.根据权利要求9所述的系统,其中,所述私有数据包括来自多个数据源的训练样本数据;为处理所述私有数据以获取两个或以上的数据分块,所述处理模块进一步用于:
解密所述私有数据;
基于训练样本的一个或多个特征项将训练样本数据划分,得到一个或多个垂直切分数据分块;和/或,
基于训练样本的标识性特征项的特征值将训练样本数据划分,得到一个或多个水平切分数据分块。
16.根据权利要求15所述的系统,其中,所述树模型模型至少包括GBDT模型;为基于所述至少一个数据分块训练至少一个树模型,所述执行模块进一步用于:
利用一个或多个垂直切分数据分块训练所述GBDT模型;和/或,
利用一个或多个水平切分数据分块测试所述GBDT模型。
17.一种私有数据处理装置,包括至少一个存储介质和至少一个处理器,所述至少一个存储介质用于存储计算机指令;所述至少一个处理器用于执行所述计算机指令以实现如权利要求1~8任一项所述的方法。
18.一种计算机可读存储介质,所述存储介质存储计算机指令,当计算机读取存储介质中的计算机指令后,计算机执行如权利要求1~8任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911243933.2A CN111027083B (zh) | 2019-12-06 | 2019-12-06 | 一种私有数据处理方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911243933.2A CN111027083B (zh) | 2019-12-06 | 2019-12-06 | 一种私有数据处理方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111027083A true CN111027083A (zh) | 2020-04-17 |
CN111027083B CN111027083B (zh) | 2022-03-01 |
Family
ID=70204599
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911243933.2A Active CN111027083B (zh) | 2019-12-06 | 2019-12-06 | 一种私有数据处理方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111027083B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112434326A (zh) * | 2021-01-27 | 2021-03-02 | 支付宝(杭州)信息技术有限公司 | 一种基于数据流的可信计算方法及装置 |
CN113095507A (zh) * | 2021-04-02 | 2021-07-09 | 支付宝(杭州)信息技术有限公司 | 机器学习模型进行训练、预测的方法、装置、设备及介质 |
CN113377998A (zh) * | 2021-06-28 | 2021-09-10 | 北京百度网讯科技有限公司 | 数据加载的方法、装置、电子设备及存储介质 |
US20220224515A1 (en) * | 2021-01-10 | 2022-07-14 | Nec Corporation Of America | Multi-party computation (mpc) based key search in private data |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170372226A1 (en) * | 2016-06-22 | 2017-12-28 | Microsoft Technology Licensing, Llc | Privacy-preserving machine learning |
CN108768978A (zh) * | 2018-05-16 | 2018-11-06 | 浙江大学 | 一种基于sgx的远端存储服务方法及系统 |
CN109309652A (zh) * | 2017-07-28 | 2019-02-05 | 阿里巴巴集团控股有限公司 | 一种训练模型的方法及装置 |
CN109426732A (zh) * | 2017-08-22 | 2019-03-05 | 阿里巴巴集团控股有限公司 | 一种数据处理方法及装置 |
-
2019
- 2019-12-06 CN CN201911243933.2A patent/CN111027083B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170372226A1 (en) * | 2016-06-22 | 2017-12-28 | Microsoft Technology Licensing, Llc | Privacy-preserving machine learning |
CN109309652A (zh) * | 2017-07-28 | 2019-02-05 | 阿里巴巴集团控股有限公司 | 一种训练模型的方法及装置 |
CN109426732A (zh) * | 2017-08-22 | 2019-03-05 | 阿里巴巴集团控股有限公司 | 一种数据处理方法及装置 |
CN108768978A (zh) * | 2018-05-16 | 2018-11-06 | 浙江大学 | 一种基于sgx的远端存储服务方法及系统 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20220224515A1 (en) * | 2021-01-10 | 2022-07-14 | Nec Corporation Of America | Multi-party computation (mpc) based key search in private data |
CN112434326A (zh) * | 2021-01-27 | 2021-03-02 | 支付宝(杭州)信息技术有限公司 | 一种基于数据流的可信计算方法及装置 |
CN112434326B (zh) * | 2021-01-27 | 2021-05-07 | 支付宝(杭州)信息技术有限公司 | 一种基于数据流的可信计算方法及装置 |
WO2022161182A1 (zh) * | 2021-01-27 | 2022-08-04 | 支付宝(杭州)信息技术有限公司 | 基于数据流的可信计算的方法及装置 |
CN113095507A (zh) * | 2021-04-02 | 2021-07-09 | 支付宝(杭州)信息技术有限公司 | 机器学习模型进行训练、预测的方法、装置、设备及介质 |
CN113377998A (zh) * | 2021-06-28 | 2021-09-10 | 北京百度网讯科技有限公司 | 数据加载的方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111027083B (zh) | 2022-03-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111027083B (zh) | 一种私有数据处理方法及系统 | |
US20240143833A1 (en) | System and method of filtering consumer data | |
US9858426B2 (en) | Computer-implemented system and method for automatically identifying attributes for anonymization | |
Ekramifard et al. | A systematic literature review of integration of blockchain and artificial intelligence | |
CN110096897B (zh) | 一种基于数据脱敏处理的数据泄露源头定位方法及装置 | |
US20150026462A1 (en) | Method and system for access-controlled decryption in big data stores | |
US20200074104A1 (en) | Controlling access to data in a database based on density of sensitive data in the database | |
KR20220124288A (ko) | 개인 및 보안 데이터 링크를 위한 컨텍스트 데이터 마스킹 시스템들 및 방법 | |
CN107292618B (zh) | 数据库中密文数据换密失败的处理方法和装置 | |
US11956245B1 (en) | Intelligent data protection | |
US20240265143A1 (en) | System and method for detecting and obfuscating confidential information in task logs | |
Rjaibi et al. | Developing a novel holistic taxonomy of security requirements | |
CN112819156A (zh) | 一种数据处理方法、装置及设备 | |
Hossain | A Novel Integrated Privacy Preserving Framework for Secure Data-Driven Artificial Intelligence Systems | |
CN116756774A (zh) | 用户数据的安全存储控制方法、装置 | |
Carpentier et al. | Data Leakage Mitigation of User-Defined Functions on Secure Personal Data Management Systems | |
Barta | Challenges in the compliance with the General Data Protection Regulation: anonymization of personally identifiable information and related information security concerns | |
Toshniwal | Privacy preserving data mining techniques for hiding sensitive data: A step towards open data | |
US20230306134A1 (en) | Managing implementation of data controls for computing systems | |
Levshun et al. | Exploring BERT for Predicting Vulnerability Categories in Device Configurations. | |
CN114297689B (zh) | 一种基于隐私计算的金融风控方法、设备及存储介质 | |
US20230367636A1 (en) | System and method for determining memory resource configuration for network nodes to operate in a distributed computing network | |
US20230367887A1 (en) | System and method for updating a distributed ledger of a blockchain based on detecting anomalies in blockchain transactions | |
US20230195928A1 (en) | Detection and protection of personal data in audio/video calls | |
Yasa et al. | Modified RNP Privacy Protection Data Mining Method as Big Data Security |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40028008 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant |