CN112367396A - 分布式集群中的样本特征分位点确定方法及装置 - Google Patents
分布式集群中的样本特征分位点确定方法及装置 Download PDFInfo
- Publication number
- CN112367396A CN112367396A CN202011233423.XA CN202011233423A CN112367396A CN 112367396 A CN112367396 A CN 112367396A CN 202011233423 A CN202011233423 A CN 202011233423A CN 112367396 A CN112367396 A CN 112367396A
- Authority
- CN
- China
- Prior art keywords
- array
- items
- sequence
- arrays
- item
- 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
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- 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
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/082—Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
- H04L63/0209—Architectural arrangements, e.g. perimeter networks or demilitarized zones
- H04L63/0218—Distributed architectures, e.g. distributed firewalls
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0884—Network architectures or network communication protocols for network security for authentication of entities by delegation of authentication, e.g. a proxy authenticates an entity to be authenticated on behalf of this entity vis-à-vis an authentication entity
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2107—File encryption
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Software Systems (AREA)
- Biomedical Technology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Molecular Biology (AREA)
- Mathematical Physics (AREA)
- Bioethics (AREA)
- Storage Device Security (AREA)
Abstract
本说明书实施例提供一种分布式集群中的样本特征分位点确定方法及装置,用于确定样本特征中第一属性项的特征分位点,主节点的CPU从内存中分别读取具有设定项数的多个第一数组,多个第一数组分别从多个从节点中获取,且分别基于样本集中不同的分批样本的样本特征得到,然后按照预定的方式,针对多个第一数组进行逐级数组合并,直至最后一级数组合并;其中任意一级数组合并包括:针对包含两个数组中各项的特征值集合,进行权重值进行合并、伪项填充操作得到合并数组,并将合并数组写入内存,采用不经意访问方式,从内存中读取最后一级数组合并得到的合并数组中除若干个伪项之外的项,基于从该合并数组中读取的各项确定所述第一属性项的特征分位点。
Description
技术领域
本说明书一个或多个实施例涉及数据安全技术领域,尤其涉及一种分布式集群中的样本特征分位点确定方法及装置。
背景技术
在需要对数据进行处理的各个应用领域中,数据安全问题备受关注。可信执行环境(Trusted Execution Environment,TEE)能够提供独立于操作系统的执行环境,通过将高安全敏感的应用与通用软件环境隔离开,来提供安全保护。例如,基于软件保护扩展(Software Guard Extensions,SGX)技术制造的可信围圈(Enclave)等等。可信执行环境技术通常采用硬件隔离机制,在计算平台中隔离出包含CPU和内存的安全区域,并且内存中的加密数据只在CPU内部可见。这种可信执行环境技术能够提供比较安全的数据计算服务。运行在TEE中的多个可信计算节点可以构成分布式集群,分布式集群能够提供更高性能的计算服务。
当在TEE中执行针对网络模型的训练或其他应用处理时,CPU可以预先对样本数据进行一定的处理,例如可以对样本特征进行分箱,即可以根据分位点对多个样本特征的特征值进行分组,并将每一组视为一个类别值。在一个例子中,针对从1到50构成的年龄集合,通过分位点15、25、35可以将该年龄集合分成4个分箱。进行分箱之后的样本特征,能够为模型训练带来很多性能提升。而在确定样本特征中某个属性项的分位点时,CPU需要频繁地从内存中读取样本数据。当样本数据属于非常重要的隐私数据时,利用可信执行环境对样本数据进行处理时的安全性要求会更高。
因此,希望能有改进的方案,可以在TEE环境下更加安全地确定样本特征的分位点。
发明内容
本说明书一个或多个实施例描述了分布式集群中的样本特征分位点确定方法及装置,可以在TEE环境下更加安全地确定样本特征的分位点。具体的技术方案如下。
第一方面,实施例提供了一种分布式集群中的样本特征分位点确定方法,用于确定样本特征中第一属性项的特征分位点,所述分布式集群包括处于TEE中的主节点和多个从节点;所述方法通过所述主节点的CPU执行,所述主节点还包括内存;所述方法包括:
从所述内存中分别读取具有设定项数的多个第一数组,所述多个第一数组分别从多个从节点中获取,且分别基于样本集中不同的分批样本的样本特征得到,所述第一数组中任意一项包括样本的第一属性项的特征值与对应的权重值;
按照预定的方式,针对所述多个第一数组进行逐级数组合并,直至最后一级数组合并;其中任意一级数组合并包括:针对包含两个数组中各项的特征值集合,将其中值大小相同的特征值对应的权重值进行合并,得到合并序列;在所述合并序列中填充若干个伪项以得到填充序列,使得填充序列的项数为该两个数组的项数之和,任意一个伪项包含预设特征值与对应的预设权重值;基于所述填充序列形成合并数组,并将所述合并数组写入所述内存;
采用不经意访问方式,从所述内存中读取最后一级数组合并得到的合并数组中除若干个伪项之外的项,并基于从该合并数组中读取的各项确定所述第一属性项的特征分位点。
在一种实施方式中,所述第一数组为对应的从节点对初始数组进行权重值合并、伪项填充后得到的;所述第一数组包含多个真实项和若干个伪项;所述从所述内存中分别读取具有设定项数的多个第一数组的步骤,包括:
采用不经意访问方式,从所述内存中分别读取多个第一数组中的真实项;
所述针对包含两个数组中各项的特征值集合,将其中值大小相同的特征值对应的权重值进行合并的步骤,包括:
针对包含两个数组中各个真实项的特征值集合,将其中值大小相同的特征值对应的权重值进行合并。
在一种实施方式中,所述针对包含两个数组中各项的特征值集合,将其中值大小相同的特征值对应的权重值进行合并的步骤,包括:
从两个数组中分别读取各个项,对各个项进行解密;
针对包含两个数组中解密后的各项的特征值集合,将其中值大小相同的特征值对应的权重值进行合并。
在一种实施方式中,所述将其中值大小相同的特征值对应的权重值进行合并的步骤,包括:
将所述特征值集合中各项的特征值按照值大小进行排序,得到重新排序后的各项组成的初始序列;
针对所述初始序列,将序列中值大小相同的特征值对应的权重值进行合并,得到合并序列。
在一种实施方式中,所述将所述特征值集合中各项的特征值按照值大小进行排序的步骤,包括,采用不经意排序原语,将所述特征值集合中各项的特征值按照值大小进行排序。
在一种实施方式中,所述将序列中值大小相同的特征值对应的权重值进行合并的步骤,包括:
针对所述初始序列,基于不经意比较原语,比较序列中相邻特征值是否相同,并将值大小相同的特征值对应的权重值进行合并。
在一种实施方式中,所述基于所述填充序列形成合并数组的步骤,包括:
将所述填充序列形成待剪枝数组,所述待剪枝数组的项数与所述填充序列的项数相同;基于所述待剪枝数组的项数与预设的最大项数的比较,对所述待剪枝数组进行剪枝操作,得到合并数组。
在一种实施方式中,所述基于所述待剪枝数组的项数与预设的最大项数的比较,对所述待剪枝数组进行剪枝操作的步骤,包括:
当所述待剪枝数组的项数不大于预设的最大项数时,直接将所述待剪枝数组作为所述合并数组;
当所述待剪枝数组的项数大于所述最大项数,且所述待剪枝数组包含的真实项的项数不大于所述最大项数时,减少所述待剪枝数组包含的伪项数量,使得到的合并数组的项数等于所述最大项数;
当所述待剪枝数组的项数大于所述最大项数,且所述待剪枝数组包含的真实项的项数大于所述最大项数时,删除所述待剪枝数组中的伪项,并将所述待剪枝数组中的真实项剪枝至项数为所述最大项数,得到合并数组。
在一种实施方式中,所述按照预定的方式,针对所述多个第一数组进行逐级数组合并的步骤,包括,将所述多个第一数组作为倒树的第一级结点,按照倒树的形式对所述多个第一数组进行逐级数组合并;或者,将所述多个第一数组按顺序排序,按照排序从头至尾依次进行逐级数组合并。
在一种实施方式中,所述采用不经意访问方式,从所述内存中读取最后一级数组合并得到的合并数组中除若干个伪项之外的项的步骤,包括:
采用不经意读取原语,从所述内存中读取最后一级数组合并得到的合并数组中的所有项,从该所有项中确定除所述若干个伪项之外的项。
在一种实施方式中,所述预设特征值取值为比所述样本集中样本的第一属性项的特征值大的值,所述预设权重值设置为0。
在一种实施方式中,所述在所述合并序列中填充若干个伪项以得到填充序列的步骤,包括,若所述合并序列中的各个特征值已经按照值从小到大进行了排序,则在所述合并序列的尾部填充若干个伪项以得到填充序列。
在一种实施方式中,所述在所述合并序列中填充若干个伪项以得到填充序列的步骤,包括:
若所述合并序列中的各个特征值已经按照值从小到大进行了排序,则在所述合并序列的尾部填充若干个伪项;
基于所述合并序列中除若干个伪项之外的每个真实项的权重值,确定该真实项中特征值的最大分位点和最小分位点;
针对所述合并序列中的每个伪项,将预设值作为该伪项中特征值的最大分位点和最小分位点;
基于各个真实项和各个伪项包含的特征值、权重值以及对应的最大分位点和最小分位点,形成填充序列;
所述基于从该合并数组中读取的各项确定所述第一属性项的特征分位点的步骤,包括:
基于从该合并数组中读取的各项包含的特征值、权重值以及对应的最大分位点和最小分位点,确定所述第一属性项的特征分位点。
第二方面,实施例提供了一种分布式集群中的样本特征分位点确定装置,用于确定样本特征中第一属性项的特征分位点,所述分布式集群包括处于TEE中的主节点和多个从节点;所述装置部署在所述主节点的CPU中,所述主节点还包括内存;所述装置包括:
读取模块,配置为,从所述内存中分别读取具有设定项数的多个第一数组,所述多个第一数组分别从多个从节点中获取,且分别基于样本集中不同的分批样本的样本特征得到,所述第一数组中任意一项包括样本的第一属性项的特征值与对应的权重值;
合并模块,配置为,按照预定的方式,针对所述多个第一数组进行逐级数组合并,直至最后一级数组合并;其中任意一级数组合并包括:针对包含两个数组中各项的特征值集合,将其中值大小相同的特征值对应的权重值进行合并,得到合并序列;在所述合并序列中填充若干个伪项以得到填充序列,使得填充序列的项数为该两个数组的项数之和,任意一个伪项包含预设特征值与对应的预设权重值;基于所述填充序列形成合并数组,并将所述合并数组写入所述内存;
访问模块,配置为,采用不经意访问方式,从所述内存中读取最后一级数组合并得到的合并数组中除若干个伪项之外的项,并基于从该合并数组中读取的各项确定所述第一属性项的特征分位点。
在一种实施方式中,所述第一数组为对应的从节点对初始数组进行权重值合并、伪项填充后得到的;所述第一数组包含多个真实项和若干个伪项;所述读取模块,配置为:
采用不经意访问方式,从所述内存中分别读取多个第一数组中的真实项;
所述合并模块,针对包含两个数组中各项的特征值集合,将其中值大小相同的特征值对应的权重值进行合并时,包括:
针对包含两个数组中各个真实项的特征值集合,将其中值大小相同的特征值对应的权重值进行合并。
在一种实施方式中,所述合并模块,针对包含两个数组中各项的特征值集合,将其中值大小相同的特征值对应的权重值进行合并时,包括:
从两个数组中分别读取各个项,对各个项进行解密;
针对包含两个数组中解密后的各项的特征值集合,将其中值大小相同的特征值对应的权重值进行合并。
在一种实施方式中,所述合并模块,将其中值大小相同的特征值对应的权重值进行合并时,包括:
将所述特征值集合中各项的特征值按照值大小进行排序,得到重新排序后的各项组成的初始序列;
针对所述初始序列,将序列中值大小相同的特征值对应的权重值进行合并,得到合并序列。
在一种实施方式中,所述合并模块,将所述特征值集合中各项的特征值按照值大小进行排序时,包括:
采用不经意排序原语,将所述特征值集合中各项的特征值按照值大小进行排序。
在一种实施方式中,所述合并模块,将序列中值大小相同的特征值对应的权重值进行合并时,包括:
针对所述初始序列,基于不经意比较原语,比较序列中相邻特征值是否相同,并将值大小相同的特征值对应的权重值进行合并。
在一种实施方式中,所述合并模块,基于所述填充序列形成合并数组的步骤,包括,将所述填充序列形成待剪枝数组,所述待剪枝数组的项数与所述填充序列的项数相同;基于所述待剪枝数组的项数与预设的最大项数的比较,对所述待剪枝数组进行剪枝操作,得到合并数组。
在一种实施方式中,所述合并模块,基于所述待剪枝数组的项数与预设的最大项数的比较,对所述待剪枝数组进行剪枝操作时,包括:
当所述待剪枝数组的项数不大于预设的最大项数时,直接将所述待剪枝数组作为所述合并数组;
当所述待剪枝数组的项数大于所述最大项数,且所述待剪枝数组包含的真实项的项数不大于所述最大项数时,减少所述待剪枝数组包含的伪项数量,使得到的合并数组的项数等于所述最大项数;
当所述待剪枝数组的项数大于所述最大项数,且所述待剪枝数组包含的真实项的项数大于所述最大项数时,删除所述待剪枝数组中的伪项,并将所述待剪枝数组中的真实项剪枝至项数为所述最大项数,得到合并数组。
在一种实施方式中,所述合并模块,具体配置为,将所述多个第一数组作为倒树的第一级结点,按照倒树的形式对所述多个第一数组进行逐级数组合并;
或者,所述合并模块,具体配置为,将所述多个第一数组按顺序排序,按照排序从头至尾依次进行逐级数组合并。
在一种实施方式中,所述访问模块,采用不经意访问方式,从所述内存中读取最后一级数组合并得到的合并数组中除若干个伪项之外的项时,包括:
采用不经意读取原语,从所述内存中读取最后一级数组合并得到的合并数组中的所有项,从该所有项中确定除所述若干个伪项之外的项。
在一种实施方式中,所述预设特征值取值为比所述样本集中样本的第一属性项的特征值大的值,所述预设权重值设置为0。
在一种实施方式中,所述合并模块,在所述合并序列中填充若干个伪项以得到填充序列时,包括:
若所述合并序列中的各个特征值已经按照值从小到大进行了排序,则在所述合并序列的尾部填充若干个伪项以得到填充序列。
在一种实施方式中,所述合并模块,在所述合并序列中填充若干个伪项以得到填充序列时,包括:
若所述合并序列中的各个特征值已经按照值从小到大进行了排序,则在所述合并序列的尾部填充若干个伪项;
基于所述合并序列中除若干个伪项之外的每个真实项的权重值,确定该真实项中特征值的最大分位点和最小分位点;
针对所述合并序列中的每个伪项,将预设值作为该伪项中特征值的最大分位点和最小分位点;
基于各个真实项和各个伪项包含的特征值、权重值以及对应的最大分位点和最小分位点,形成填充序列;
所述基于从该合并数组中读取的各项确定所述第一属性项的特征分位点的步骤,包括:
基于从该合并数组中读取的各项包含的特征值、权重值以及对应的最大分位点和最小分位点,确定所述第一属性项的特征分位点。
第三方面,实施例提供了一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行第一方面任一项所述的方法。
第四方面,实施例提供了一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现第一方面任一项所述的方法。
本说明书实施例提供的方法和装置,主节点可以从多个从节点中获取多个第一数组,并对多个第一数组进行逐级数组合并,并且在进行数组合并时,特征值的项数会减少,而在合并序列中填充伪项,能够使得合并数组的项数与原来的两个数组的项数之和相等,这样写入内存的合并数组项数与合并之前的数组项数相同,在读取和写入的访问模式对比方面不会泄露样本特征的隐私数据。并且,当再次从内存中读取填充伪项后的数组时,可以采用不经意访问方式得到数组中的真实项,并基于该真实项确定特征分位点,该不经意访问方式能够尽可能地保护数组中的真实项数量。因此,本说明书实施例能够在TEE环境下更加安全地确定样本特征的分位点。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单的介绍。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本说明书披露的一个实施例的实施场景示意图;
图2为实施例提供的一种分布式集群中的样本特征分位点确定方法的流程示意图;
图3所示为一种逐级数组合并方式示意图;
图4所示为另一种逐级数组合并方式示意图;
图5为两个数组、合并序列和填充序列的一种对比示意图;
图6为填充序列的另一种示意图;
图7为实施例提供的一种分布式集群中的样本特征分位点确定装置的示意性框图。
具体实施方式
下面结合附图,对本说明书提供的方案进行描述。
图1为本说明书披露的一个实施例的实施场景示意图。处于可信执行环境(TEE)中的多个节点可以构成分布式集群。在该分布式集群中,节点可以划分为主节点和从节点。图1中仅仅示出了3个从节点,本说明书并不限定分布式集群中的节点数目。TEE中的节点包括CPU和内存。图1中以主节点为例,示出了其中的CPU和内存。内存用于存储数据,CPU用于处理数据,CPU可以访问内存中的数据。具体的,CPU可以从内存中读取数据,并采用CPU中运行的应用程序处理数据,以及向内存中写入数据。可信执行环境将CPU和内存隔离出来,形成与外界隔离的可信环境。内存中存储的数据是经过加密后的数据,CPU从内存中读取加密数据之后在CPU内部解密出来并进行数据处理,CPU向内存中存储的数据也是加密后的数据。这样,CPU和内存通过物理隔离机制,形成可信的安全区域。其他应用程序,包括操作系统OS、BIOS系统、虚拟机系统等,均不能访问该安全区域中的数据,也就不能窥探和篡改其中应用程序的状态和数据。
可信执行环境中的节点,可以理解为,应用了TEE技术的节点或称为单元,又称为可信计算节点或者可信计算单元。本说明书中提及的节点,均是指处于TEE环境中的节点。TEE节点可以实现在实体计算机中,其隔离能力能够防止其他应用程序窥探和篡改可信计算节点的应用程序和数据,保证计算的安全性。例如,TEE节点可以是可信的计算围圈(Enclave),且可以采用SGX或信任域(Trust Zone)等技术来实现。例如,根据SGX技术,通过提供一系列CPU指令码,允许用户代码创建具有高访问权限的私有内存区域而形成计算围圈。其他应用程序,包括各种操作系统等,均不能访问围圈中的数据,也就不能窥探和篡改其中应用程序的状态和数据。TEE节点可以用于执行一定的计算任务。
多个节点可以配置同一服务,并确定集群秘钥,这样多个节点可以形成分布式集群。分布式集群中的节点之间进行通信时,可以利用集群秘钥对传输的数据进行加密,保证传输的数据在密态下进行,提高分布式集群内部节点之间数据传输时的安全性。在确定集群秘钥时,节点之间可以进行远程认证(Remote Attestation,RA),建立RA通道,通过建立的RA通道进行秘钥的传输,保证秘钥传输过程的安全性。当节点是通过Intel SGX实现的可信围圈时,还可以利用第三方认证机构Intel认证服务器进行RA认证。
在对神经网络模型进行训练时,为了提高模型性能,提高模型稳定性、减少模型过拟合,可以预先对样本特征进行处理。分箱是机器学习建模中对特征进行处理的一种方法。分箱,又可以称为分桶,K分桶即是将特征值划分为K个分组或分箱。在对样本特征进行分箱时,需要确定分位点。例如,某个属性项对应的一组特征值为[1,1,1,1,2,2,2,2,3,4,5,6,7,8,9,10],当确定分位点为2和6时,可以将该组特征值划分成[1,1,1,1,2,2,2,2,],[3,4,5,6]和[7,8,9,10]三个分组,每个分组对应一个分箱。
下面介绍如何确定某个属性项的分位点。在一种应用场景中,样本数量非常多,例如其数量在千万或亿级别。在基于大量的样本特征确定分位点时,无法一次性对所有样本的某个属性项的特征值进行处理,这时可以采用分批处理的方式。并且,分布式集群以其更高的计算处理能力,更适合应用于大规模样本的场景中。而针对主节点来看,其内存中可以存储多个样本的样本特征,CPU可以通过访问内存,来确定这些样本的样本特征的分位点。样本特征可以包括多个属性项的特征值和对应的权重值。即每个特征值可以存在对应的权重值,该权重值用于标识该特征值的重要程度。
样本的样本特征可以包括多个属性项的特征值,针对每个属性项,可以分别确定该属性项的分位点。例如,样本可以是以下对象之一:商品、用户、事件等。当样本是商品时,样本特征可以包括价格、销量等属性项,当样本是用户时,样本特征可以包括用户年龄、收入、消费额等属性项,当样本是事件时,样本特征可以包括事件文本特征、事件类别等属性项。上述样本数据通常是需要保密的隐私数据。
样本特征通过加密的方式存储在TEE内存中,CPU从内存中读取样本数据,经过解密后用于确定分位点,并将生成的新数据经过加密后写入内存。内存中的样本特征等数据属于重要的隐私数据,TEE的这种加密工作模式保证了这些隐私数据只在CPU内部可见,起到了对样本的保护作用。
为了进一步提高TEE中隐私数据的安全性,使其不被窥探,防止侧信道攻击,在确定样本特征分位点时,本说明书实施例提供了一种分布式集群中的样本特征分位点确定方法。在该方法中,分布式集群包括主节点和从节点。主节点可以从从节点中获取多个第一数组,多个第一数组分别基于不同的分批样本的样本特征得到。主节点可以对多个第一数组进行逐级数组合并,在任意一级数组合并中,针对两个数组中的特征值进行权重值合并得到合并序列,并在合并序列中填充若干个伪项,得到填充序列,基于填充序列形成合并数组,并将合并数组写入内存。采用不经意访问方式,从内存中读取最后一级数组合并得到的合并数组中的伪项之外的项,并基于读取的各项确定第一属性项的特征分位点。
由于在进行数组合并时,特征值的项数会减少,而在合并序列中填充伪项,能够使得合并数组的项数与原来的两个数组的项数之和相等,这样写入内存的合并数组项数与合并之前的数组项数相同,因此能够防止基于访问模式的侧信道攻击。并且,当再次从内存中读取填充伪项后的数组时,可以采用不经意访问方式得到数组中的真实项,并基于该真实项确定特征分位点,该不经意访问方式能够尽可能地保护数组中的真实项数量不被泄露。下面结合具体实施例对上述方法进行说明。
图2为实施例提供的一种分布式集群中的样本特征分位点确定方法的流程示意图。该方法用于确定样本特征中第一属性项的特征分位点,分布式集群包括处于TEE中的主节点和多个从节点。本实施例中,主节点和从节点均可以实现在任何具有计算、处理能力的装置、设备、平台、设备集群等中。该方法通过主节点的CPU执行,主节点还包括内存。该方法包括以下步骤S210~S230。
步骤S210,从内存中分别读取具有设定项数的多个第一数组。其中,多个第一数组分别从多个从节点中获取,每个第一数组对应一个从节点,且分别基于样本集中不同的分批样本的样本特征得到,第一数组中任意一项包括样本的第一属性项的特征值与对应的权重值。第一属性项可以是样本特征包含的多个属性项中的任意一个。
例如,10个样本在某个属性项上的特征值和权重值分别为[6-1,5-1,4-2,3-2,1-3,2-1,7-1,8-2,9-1,10-2]。符号“-”左侧为特征值,右侧为权重值。第一数组可以是上述10项的加密数据构成的数组。
从节点可以用于对分批样本的样本特征进行一定处理,并确定第一数组。从节点可以直接将确定的第一数组发送至主节点,也可以在接收到主节点发送的获取请求后将第一数组发送至主节点。当主节点获取到第一数组时,可以将其写入内存中。主节点可以在一段时间内,流式地接收到从节点发送的第一数组。
在一种应用场景中,样本集中包含N个样本,N为正整数,其值可以很大。将样本集划分成不同批次,分别将不同批次的样本特征下发至各个从节点进行。从节点可以直接从设备中获取某个或某些批次的样本特征。
多个第一数组的具有预定项数,该预定项数是预先设定,多个第一数组的预定项数可以相同,也可以不同。
步骤S220,按照预定的方式,针对多个第一数组进行逐级数组合并,直至最后一级数组合并。
其中,任意一级数组合并包括:针对包含两个数组中各项的特征值集合,将其中值大小相同的特征值对应的权重值进行合并,得到合并序列;在合并序列中填充若干个伪项以得到填充序列,使得填充序列的项数为该两个数组的项数之和,任意一个伪项包含预设特征值与对应的预设权重值;基于填充序列形成合并数组,并将合并数组写入内存。伪项可以理解为非真实数据项,在后续的处理中并不参与分箱计算。填充序列中除伪项之外的项为真实项,真实项可以理解为真实数据项。
本步骤中,按照预定的方式,针对多个第一数组进行逐级数组合并,至少可以包括以下两种。一种是,将多个第一数组作为倒树的第一级结点,按照倒树的形式对多个第一数组进行逐级数组合并。倒树的数组合并方式可以采用treereduce算法。
例如,参见图3,图3所示为一种逐级数组合并方式示意图,针对以下4个数组A、B、C、D,将其作为第一级结点,按照倒树的形式进行数组合并时,可以合并数组A和数组B,得到数组1,合并数组C和D,得到数组2,再合并数组1和数组2,得到数组3。数组3即是最后一级数组合并得到的合并数组。
另一种是,将多个第一数组按顺序排序,按照排序从头至尾依次进行逐级数组合并。这种实施方式可以应用在流式处理中。各个数组之间可以按照处理时的先后顺序进行排序。
例如,参见图4,图4所示为另一种逐级数组合并方式示意图,针对以下4个顺序排列的数组A、B、C、D,可以合并数组A和数组B,得到数组1,将数组1与数组C进行合并,得到数组2,将数组2与数组D合并,得到数组3。
任意一级数组合并中的两个数组,可以包括多个第一数组中的数组,也可以包括合并过程中得到的合并数组。每一次数组的合并,所得到的合并数组均可以写入内存,需要时可以采用不经意访问方式从内存中读取数组中的真实项,关于采用不经意访问的具体实施方式可以参见后续步骤中的说明。
当数组合并到最后一级时,可以理解为样本集中的所有样本在经过多次数组合并之后,其数据包含在最后一级得到的合并数组中。
下面再来详细介绍下针对任意两个数组的数组合并过程,参见步骤1a~3a所示。
步骤1a,针对包含两个数组中各项的特征值集合,将其中值大小相同的特征值对应的权重值进行合并,得到合并序列。
在一种具体实施方式中,本步骤1a可以从两个数组中分别读取各个项,对各个项进行解密,针对包含两个数组中解密后的各项的特征值集合,将其中值大小相同的特征值对应的权重值进行合并。在对各项进行解密时,可以按照预设的秘钥和解密算法进行。
在本步骤中,将值大小相同的特征值对应的权重值进行合并时,具体可以先将特征值集合中各项的特征值按照值大小进行排序,得到重新排序后的各项组成的初始序列;然后,针对初始序列,将序列中值大小相同的特征值对应的权重值进行合并,得到合并序列。
例如,针对以下特征值集合中10个样本在某个属性项上的特征值和权重值[6-1,5-1,4-2,3-2,1-1,2-1,1-1,2-1,7-1,8-2,9-1,10-2],对其特征值进行排序,得到初始序列[1-1,1-1,2-1,2-1,3-2,4-2,5-1,6-1,7-1,8-2,9-1,10-2],将初始序列中相同特征值对应的权重值进行合并,得到合并序列[1-2,2-2,3-2,4-2,5-1,6-1,7-1,8-2,9-1,10-2]。在对特征值的权重值进行合并时,先对特征值进行大小排序,能更高效地实现对权重值的合并。
本实施例中的合并序列,同时实现了两个数组之间的合并以及对相同特征值的权重值的合并。
在上述实施方式中,在将特征值集合中各项的特征值按照值大小进行排序时,可以采用不经意排序原语来实现。例如采用不经意排序原语ObliviousSort或其他的具有相同功能的原语。在CPU内部利用内部缓存进行的数据处理中,采用不经意排序原语,可以防止编译器优化出特定指令,进而防止可能发生的访问模式信息泄露,使得对特征值进行排序时的隐私保护更严密。
在针对初始序列,将序列中值大小相同的特征值对应的权重值进行合并时,可以基于不经意比较原语,比较序列中相邻特征值是否相同,并将值大小相同的特征值对应的权重值进行合并。例如采用ObliviousEqual,ObliviousGreater、ObliviousGreaterOrEqual、ObliviousLess或ObliviousLessOrEqual等不经意比较原语。在CPU内部,采用上述不经意比较原语实现对特征值的比较,能够防止编译器优化出跳转指令,进而防止可能发生的访问模式信息泄露,使得对特征值的比较过程更加安全。
步骤2a,在合并序列中填充若干个伪项以得到填充序列,使得填充序列的项数为该两个数组的项数之和,任意一个伪项包含预设特征值与对应的预设权重值。填充序列中包含有合并序列中的项,这些项为真实项。
当特征值集合中包含相同值的特征值时,经过权重值合并之后,合并序列的项数会少于两数组的项数之和。为了实现对访问模式的保护,本实施例在合并序列中填充若干个伪项,以保证填充序列的项数达到两数组的项数之和。
在合并序列中填充若干个伪项时,可以确定合并序列的项数与两数组的项数之和s的差值X,在合并序列中填充该差值X个伪项,这样得到的填充序列的项数即可以达到s项。其中,s=合并序列的项数+X。伪项的数量因不同数组而异。
在一种特定情况中,合并序列的项数等于两数组的项数之和时,不需要在合并序列中填充伪项,即可以在合并序列中填充0个伪项。
在合并序列中填充的若干个伪项可以是完全相同的,也可以是不同的。即预设特征值和预设权重值可以有一组取值,也可以包括多组取值。例如,假设合并序列中需要填充3个伪项,则这3个伪项之间可以完全相同,也可以不同。
预设特征值和预设权重值在设置时,有多种实施方式,以不影响真实项的数据处理结果为原则。例如,预设权重值可以设置为0。对预设特征值和预设权重值进行特定设置,能够在后续处理过程中很容易地区分出哪些项是伪项,哪些项是真实项。
例如,预设特征值可以取值为比样本集中样本的第一属性项的特征值大的值,预设权重值设置为0。比样本集中样本的第一属性项的特征值大的值,可以理解为比样本集中样本的第一属性项的多个特征值中的最大值还要大的值。在这种实施方式中,在合并序列中填充若干个伪项时,如果合并序列中各个特征值已经按照值从小到大进行了排序,则可以直接在合并序列的尾部填充若干个伪项以得到填充序列。这样,在填充序列中,各个特征值,包括真实项和伪项,均按照值从小到大的顺序进行排列。
图5为两个数组、合并序列和填充序列的一种对比示意图。其中数组或者序列的第一行表示特征值,第二行表示权重值。两个数组共包含16项,合并序列包含10项,比两个数组的总项数减少了6项。在合并序列的尾部填充6个伪项,可以得到填充序列,填充序列的项数与两个数组的项数之和相同。各个伪项中的预设特征值采用S表示,预设权重值取0。
步骤3a,基于填充序列形成合并数组,并将合并数组写入内存。在形成合并数组时,可以采用预设的秘钥和加密算法对填充序列中的每个项进行加密,并将加密后的每个项按照预定的顺序组成合并数组。在将合并数组写入内存时,可以将合并数组中的各项顺序地写入内存。
在对数组进行合并时,为了使得外界无法通过访问模式进行侧信道攻击,合并数组的项数通常为两个数组的项数之和,但是随着数组合并的进行,合并数组的项数会越来越大。在图5所示例子中,两个数组分别包含8项,得到的填充序列为16项。因此,为了缩减项数,同时避免侧信道攻击,还可以在每次的数组合并中加入剪枝过程。具体参见以下内容说明。
在步骤3a中基于填充序列形成合并数组时,可以将填充序列形成待剪枝数组,待剪枝数组的项数与所述填充序列的项数相同;基于待剪枝数组的项数srcsize与预设的最大项数maxsize的比较,对待剪枝数组进行剪枝操作,得到合并数组。
将填充序列形成待剪枝数组,可以是将填充序列中的各个项进行加密后形成待剪枝数组,也可以将待剪枝数组写入内存,在需要时再从内存中读取该待剪枝数组。
在对待剪枝数组进行剪枝操作时,当待剪枝数组的项数srcsize不大于预设的最大项数maxsize时,可以直接将待剪枝数组作为合并数组。当待剪枝数组的项数srcsize大于最大项数maxsize,且待剪枝数组包含的真实项的项数maxIndex不大于最大项数maxsize时,减少待剪枝数组包含的伪项数量,使得到的合并数组的项数等于所述最大项数。
当待剪枝数组的项数srcsize大于最大项数maxsize,且待剪枝数组包含的真实项的项数maxIndex大于最大项数maxsize时,删除待剪枝数组中的伪项,并将待剪枝数组中的真实项剪枝至项数为最大项数maxsize,得到合并数组。
以上在不同情况下的剪枝操作,能够使得输出数组的维度为min(maxsize,srcsize)。由于括号中的两项都是确定的值,因此并不会泄露任何关于数据分布的信息,即不会泄露样本隐私数据,同时实现了对项数的缩减。
步骤S230,采用不经意访问方式,从内存中读取最后一级数组合并得到的合并数组中除若干个伪项之外的项,并基于从该合并数组中读取的各项确定第一属性项的特征分位点。最后一级数组合并,例如可以理解为图3中数组1与数组2之间的合并,以及图4中数组2与数组D之间的合并。
在本步骤中,可以采用不经意读取原语,从内存中读取最后一级数组合并得到的合并数组中的所有项,从该所有项中确定除若干个伪项之外的项,即真实项。例如,不经意读取原语可以包括ObliviousAssign或者ObliviousChoose等,两者效果类似,参数位置不同。
不经意访问方式,能够使得对合并数组的读取过程不泄露任何的隐私数据,外界无法观察得到合并数组中的真实项数目。外界,是指TEE之外的其他各种应用程序或机器环境。
在本实施例中,在根据各个真实项确定第一属性项的特征分位点时,可以按照常规算法确定。例如可以采用卡方分箱算法或Best-KS(Kolmogorov-Smirnov)分箱算法,基于各个真实项中的特征值和权重值,确定第一属性项的特征分位点。
在另一种实施方式中,第一数组可以为对应的从节点对初始数组进行权重值合并、伪项填充后得到的。第一数组包含多个真实项和若干个伪项。在本实施例中,各个从节点可以基于获取的初始数组,对初始数组中的特征值按照值大小进行排序,并进行权重值合并、伪项填充等操作,这样得到的第一数组也经过处理后的数组。
在步骤S210中,在从内存中分别读取具有设定项数的多个第一数组时,可以采用不经意访问方式,从内存中分别读取多个第一数组中的真实项。
当从内存中读取到了第一数组的真实项时,在将特征值集合中值大小相同的特征值对应的权重值进行合并时,特征值集合包括的是两个数组中的各个真实项。
在本说明书的另一实施例中,在得到填充序列时,还可以为每个真实项确定最大分位点和最小分位点,以便于更准确、更快速地确定第一属性项的特征分位点。
在本实施例中,步骤S220中,在合并序列中填充若干个伪项以得到填充序列的步骤,具体可以包括以下步骤1b~4b。
步骤1b,若合并序列中的各个特征值已经按照值从小到大进行了排序,则在合并序列的尾部填充若干个伪项。
步骤2b,基于合并序列中除若干个伪项之外的每个真实项的权重值,确定该真实项中特征值的最大分位点和最小分位点。最大分位点和最小分位点均是指该特征值在该序列中可能取到的最大分位点次序和最小分位点次序。
步骤3b,针对合并序列中的每个伪项,将预设值作为该伪项中特征值的最大分位点和最小分位点。
步骤4b,基于各个真实项和各个伪项包含的特征值、权重值以及对应的最大分位点和最小分位点,形成填充序列。
在本实施例中,在确定填充序列时,每个项增加最大分位点(rmax)和最小分位点(rmin),真实项的最大分位点和最小分位点可以根据特征值的排序以及权重值确定,伪项的最大分位点和最小分位点可以为预设值。保持伪项和真实项的结构相同,能够更好地从访问模式角度保护隐私数据。
图6为填充序列的另一种示意图,其中增加了最大分位点和最小分位点。例如,针对特征值1,其权重值为4,该特征值1在该序列中可能取到的最大分位点为4,最小分位点为0。针对伪项S,其最大分位点和最小分位点均设置为预设值-1。
在本实施例中,步骤S230中基于从该合并数组中读取的各项确定第一属性项的特征分位点时,可以基于从该合并数组中读取的各项包含的特征值、权重值以及对应的最大分位点和最小分位点,确定第一属性项的特征分位点。添加的最大分位点和最小分位点,在多批次、大数量样本场景下会更加适用。
上述内容对本说明书的特定实施例进行了描述,其他实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行,并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要按照示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的,或者可能是有利的。
图7为实施例提供的一种分布式集群中的样本特征分位点确定装置的示意性框图。该装置用于确定样本特征中第一属性项的特征分位点,分布式集群包括处于TEE中的主节点和多个从节点。该装置700部署在主节点的CPU中,主节点还包括内存。该装置实施例与图2所示方法实施例相对应。该装置700包括:
读取模块710,配置为,从所述内存中分别读取具有设定项数的多个第一数组,所述多个第一数组分别从多个从节点中获取,且分别基于样本集中不同的分批样本的样本特征得到,所述第一数组中任意一项包括样本的第一属性项的特征值与对应的权重值;
合并模块720,配置为,按照预定的方式,针对所述多个第一数组进行逐级数组合并,直至最后一级数组合并;其中任意一级数组合并包括:针对包含两个数组中各项的特征值集合,将其中值大小相同的特征值对应的权重值进行合并,得到合并序列;在所述合并序列中填充若干个伪项以得到填充序列,使得填充序列的项数为该两个数组的项数之和,任意一个伪项包含预设特征值与对应的预设权重值;基于所述填充序列形成合并数组,并将所述合并数组写入所述内存;
访问模块730,配置为,采用不经意访问方式,从所述内存中读取最后一级数组合并得到的合并数组中除若干个伪项之外的项,并基于从该合并数组中读取的各项确定所述第一属性项的特征分位点。
在一种实施方式中,所述第一数组为对应的从节点对初始数组进行权重值合并、伪项填充后得到的;所述第一数组包含多个真实项和若干个伪项;所述读取模块710配置为:
采用不经意访问方式,从所述内存中分别读取多个第一数组中的真实项;
所述合并模块720,针对包含两个数组中各项的特征值集合,将其中值大小相同的特征值对应的权重值进行合并时,包括:
针对包含两个数组中各个真实项的特征值集合,将其中值大小相同的特征值对应的权重值进行合并。
在一种实施方式中,所述合并模块720,针对包含两个数组中各项的特征值集合,将其中值大小相同的特征值对应的权重值进行合并时,包括:
从两个数组中分别读取各个项,对各个项进行解密;
针对包含两个数组中解密后的各项的特征值集合,将其中值大小相同的特征值对应的权重值进行合并。
在一种实施方式中,所述合并模块720,将其中值大小相同的特征值对应的权重值进行合并时,包括:
将所述特征值集合中各项的特征值按照值大小进行排序,得到重新排序后的各项组成的初始序列;
针对所述初始序列,将序列中值大小相同的特征值对应的权重值进行合并,得到合并序列。
在一种实施方式中,所述合并模块720,将所述特征值集合中各项的特征值按照值大小进行排序时,包括,采用不经意排序原语,将所述特征值集合中各项的特征值按照值大小进行排序。
在一种实施方式中,所述合并模块720,将序列中值大小相同的特征值对应的权重值进行合并时,包括:
针对所述初始序列,基于不经意比较原语,比较序列中相邻特征值是否相同,并将值大小相同的特征值对应的权重值进行合并。
在一种实施方式中,所述合并模块720,基于所述填充序列形成合并数组的步骤,包括:
将所述填充序列形成待剪枝数组,所述待剪枝数组的项数与所述填充序列的项数相同;基于所述待剪枝数组的项数与预设的最大项数的比较,对所述待剪枝数组进行剪枝操作,得到合并数组。
在一种实施方式中,所述合并模块720,基于所述待剪枝数组的项数与预设的最大项数的比较,对所述待剪枝数组进行剪枝操作时,包括:
当所述待剪枝数组的项数不大于预设的最大项数时,直接将所述待剪枝数组作为所述合并数组;
当所述待剪枝数组的项数大于所述最大项数,且所述待剪枝数组包含的真实项的项数不大于所述最大项数时,减少所述待剪枝数组包含的伪项数量,使得到的合并数组的项数等于所述最大项数;
当所述待剪枝数组的项数大于所述最大项数,且所述待剪枝数组包含的真实项的项数大于所述最大项数时,删除所述待剪枝数组中的伪项,并将所述待剪枝数组中的真实项剪枝至项数为所述最大项数,得到合并数组。
在一种实施方式中,所述合并模块720,具体配置为,将所述多个第一数组作为倒树的第一级结点,按照倒树的形式对所述多个第一数组进行逐级数组合并;
或者,所述合并模块720,具体配置为,将所述多个第一数组按顺序排序,按照排序从头至尾依次进行逐级数组合并。
在一种实施方式中,所述访问模块730,采用不经意访问方式,从所述内存中读取最后一级数组合并得到的合并数组中除若干个伪项之外的项时,包括:
采用不经意读取原语,从所述内存中读取最后一级数组合并得到的合并数组中的所有项,从该所有项中确定除所述若干个伪项之外的项。
在一种实施方式中,所述预设特征值取值为比所述样本集中样本的第一属性项的特征值大的值,所述预设权重值设置为0。
在一种实施方式中,所述合并模块720,在所述合并序列中填充若干个伪项以得到填充序列时,包括:
若所述合并序列中的各个特征值已经按照值从小到大进行了排序,则在所述合并序列的尾部填充若干个伪项以得到填充序列。
在一种实施方式中,所述合并模块720,在所述合并序列中填充若干个伪项以得到填充序列时,包括:
若所述合并序列中的各个特征值已经按照值从小到大进行了排序,则在所述合并序列的尾部填充若干个伪项;
基于所述合并序列中除若干个伪项之外的每个真实项的权重值,确定该真实项中特征值的最大分位点和最小分位点;
针对所述合并序列中的每个伪项,将预设值作为该伪项中特征值的最大分位点和最小分位点;
基于各个真实项和各个伪项包含的特征值、权重值以及对应的最大分位点和最小分位点,形成填充序列;
所述基于从该合并数组中读取的各项确定所述第一属性项的特征分位点的步骤,包括:
基于从该合并数组中读取的各项包含的特征值、权重值以及对应的最大分位点和最小分位点,确定所述第一属性项的特征分位点。
上述装置实施例与方法实施例相对应,具体说明可以参见方法实施例部分的描述,此处不再赘述。装置实施例是基于对应的方法实施例得到,与对应的方法实施例具有同样的技术效果,具体说明可参见对应的方法实施例。
本说明书实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行图1至图6任一项所述的方法。
本说明书实施例还提供了一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现图1至图6任一项所述的方法。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于存储介质和计算设备实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明实施例所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。
以上所述的具体实施方式,对本发明实施例的目的、技术方案和有益效果进行了进一步的详细说明。所应理解的是,以上所述仅为本发明实施例的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的技术方案的基础之上所做的任何修改、等同替换、改进等,均应包括在本发明的保护范围之内。
Claims (28)
1.一种分布式集群中的样本特征分位点确定方法,用于确定样本特征中第一属性项的特征分位点,所述分布式集群包括处于可信执行环境TEE中的主节点和多个从节点;所述方法通过所述主节点的CPU执行,所述主节点还包括内存;所述方法包括:
从所述内存中分别读取具有设定项数的多个第一数组,所述多个第一数组分别从多个从节点中获取,且分别基于样本集中不同的分批样本的样本特征得到,所述第一数组中任意一项包括样本的第一属性项的特征值与对应的权重值;
按照预定的方式,针对所述多个第一数组进行逐级数组合并,直至最后一级数组合并;其中任意一级数组合并包括:针对包含两个数组中各项的特征值集合,将其中值大小相同的特征值对应的权重值进行合并,得到合并序列;在所述合并序列中填充若干个伪项以得到填充序列,使得填充序列的项数为该两个数组的项数之和,任意一个伪项包含预设特征值与对应的预设权重值;基于所述填充序列形成合并数组,并将所述合并数组写入所述内存;
采用不经意访问方式,从所述内存中读取最后一级数组合并得到的合并数组中除若干个伪项之外的项,并基于从该合并数组中读取的各项确定所述第一属性项的特征分位点。
2.根据权利要求1所述的方法,其中,所述第一数组为对应的从节点对初始数组进行权重值合并、伪项填充后得到的;所述第一数组包含多个真实项和若干个伪项;所述从所述内存中分别读取具有设定项数的多个第一数组的步骤,包括:
采用不经意访问方式,从所述内存中分别读取多个第一数组中的真实项;
所述针对包含两个数组中各项的特征值集合,将其中值大小相同的特征值对应的权重值进行合并的步骤,包括:
针对包含两个数组中各个真实项的特征值集合,将其中值大小相同的特征值对应的权重值进行合并。
3.根据权利要求1所述的方法,所述针对包含两个数组中各项的特征值集合,将其中值大小相同的特征值对应的权重值进行合并的步骤,包括:
从两个数组中分别读取各个项,对各个项进行解密;
针对包含两个数组中解密后的各项的特征值集合,将其中值大小相同的特征值对应的权重值进行合并。
4.根据权利要求1至3任一项所述的方法,所述将其中值大小相同的特征值对应的权重值进行合并的步骤,包括:
将所述特征值集合中各项的特征值按照值大小进行排序,得到重新排序后的各项组成的初始序列;
针对所述初始序列,将序列中值大小相同的特征值对应的权重值进行合并,得到合并序列。
5.根据权利要求4所述的方法,所述将所述特征值集合中各项的特征值按照值大小进行排序的步骤,包括:
采用不经意排序原语,将所述特征值集合中各项的特征值按照值大小进行排序。
6.根据权利要求4所述的方法,所述将序列中值大小相同的特征值对应的权重值进行合并的步骤,包括:
针对所述初始序列,基于不经意比较原语,比较序列中相邻特征值是否相同,并将值大小相同的特征值对应的权重值进行合并。
7.根据权利要求1所述的方法,所述基于所述填充序列形成合并数组的步骤,包括:
将所述填充序列形成待剪枝数组,所述待剪枝数组的项数与所述填充序列的项数相同;
基于所述待剪枝数组的项数与预设的最大项数的比较,对所述待剪枝数组进行剪枝操作,得到合并数组。
8.根据权利要求7所述的方法,所述基于所述待剪枝数组的项数与预设的最大项数的比较,对所述待剪枝数组进行剪枝操作的步骤,包括:
当所述待剪枝数组的项数不大于预设的最大项数时,直接将所述待剪枝数组作为所述合并数组;
当所述待剪枝数组的项数大于所述最大项数,且所述待剪枝数组包含的真实项的项数不大于所述最大项数时,减少所述待剪枝数组包含的伪项数量,使得到的合并数组的项数等于所述最大项数;
当所述待剪枝数组的项数大于所述最大项数,且所述待剪枝数组包含的真实项的项数大于所述最大项数时,删除所述待剪枝数组中的伪项,并将所述待剪枝数组中的真实项剪枝至项数为所述最大项数,得到合并数组。
9.根据权利要求1所述的方法,所述按照预定的方式,针对所述多个第一数组进行逐级数组合并的步骤,包括:
将所述多个第一数组作为倒树的第一级结点,按照倒树的形式对所述多个第一数组进行逐级数组合并;
或者,将所述多个第一数组按顺序排序,按照排序从头至尾依次进行逐级数组合并。
10.根据权利要求1所述的方法,所述采用不经意访问方式,从所述内存中读取最后一级数组合并得到的合并数组中除若干个伪项之外的项的步骤,包括:
采用不经意读取原语,从所述内存中读取最后一级数组合并得到的合并数组中的所有项,从该所有项中确定除所述若干个伪项之外的项。
11.根据权利要求1所述的方法,所述预设特征值取值为比所述样本集中样本的第一属性项的特征值大的值,所述预设权重值设置为0。
12.根据权利要求11所述的方法,所述在所述合并序列中填充若干个伪项以得到填充序列的步骤,包括:
若所述合并序列中的各个特征值已经按照值从小到大进行了排序,则在所述合并序列的尾部填充若干个伪项以得到填充序列。
13.根据权利要求11所述的方法,所述在所述合并序列中填充若干个伪项以得到填充序列的步骤,包括:
若所述合并序列中的各个特征值已经按照值从小到大进行了排序,则在所述合并序列的尾部填充若干个伪项;
基于所述合并序列中除若干个伪项之外的每个真实项的权重值,确定该真实项中特征值的最大分位点和最小分位点;
针对所述合并序列中的每个伪项,将预设值作为该伪项中特征值的最大分位点和最小分位点;
基于各个真实项和各个伪项包含的特征值、权重值以及对应的最大分位点和最小分位点,形成填充序列;
所述基于从该合并数组中读取的各项确定所述第一属性项的特征分位点的步骤,包括:
基于从该合并数组中读取的各项包含的特征值、权重值以及对应的最大分位点和最小分位点,确定所述第一属性项的特征分位点。
14.一种分布式集群中的样本特征分位点确定装置,用于确定样本特征中第一属性项的特征分位点,所述分布式集群包括处于可信执行环境TEE中的主节点和多个从节点;所述装置部署在所述主节点的CPU中,所述主节点还包括内存;所述装置包括:
读取模块,配置为,从所述内存中分别读取具有设定项数的多个第一数组,所述多个第一数组分别从多个从节点中获取,且分别基于样本集中不同的分批样本的样本特征得到,所述第一数组中任意一项包括样本的第一属性项的特征值与对应的权重值;
合并模块,配置为,按照预定的方式,针对所述多个第一数组进行逐级数组合并,直至最后一级数组合并;其中任意一级数组合并包括:针对包含两个数组中各项的特征值集合,将其中值大小相同的特征值对应的权重值进行合并,得到合并序列;在所述合并序列中填充若干个伪项以得到填充序列,使得填充序列的项数为该两个数组的项数之和,任意一个伪项包含预设特征值与对应的预设权重值;基于所述填充序列形成合并数组,并将所述合并数组写入所述内存;
访问模块,配置为,采用不经意访问方式,从所述内存中读取最后一级数组合并得到的合并数组中除若干个伪项之外的项,并基于从该合并数组中读取的各项确定所述第一属性项的特征分位点。
15.根据权利要求14所述的装置,其中,所述第一数组为对应的从节点对初始数组进行权重值合并、伪项填充后得到的;所述第一数组包含多个真实项和若干个伪项;所述读取模块,配置为:
采用不经意访问方式,从所述内存中分别读取多个第一数组中的真实项;
所述合并模块,针对包含两个数组中各项的特征值集合,将其中值大小相同的特征值对应的权重值进行合并时,包括:
针对包含两个数组中各个真实项的特征值集合,将其中值大小相同的特征值对应的权重值进行合并。
16.根据权利要求14所述的装置,所述合并模块,针对包含两个数组中各项的特征值集合,将其中值大小相同的特征值对应的权重值进行合并时,包括:
从两个数组中分别读取各个项,对各个项进行解密;
针对包含两个数组中解密后的各项的特征值集合,将其中值大小相同的特征值对应的权重值进行合并。
17.根据权利要求14至16任一项所述的装置,所述合并模块,将其中值大小相同的特征值对应的权重值进行合并时,包括:
将所述特征值集合中各项的特征值按照值大小进行排序,得到重新排序后的各项组成的初始序列;
针对所述初始序列,将序列中值大小相同的特征值对应的权重值进行合并,得到合并序列。
18.根据权利要求17所述的装置,所述合并模块,将所述特征值集合中各项的特征值按照值大小进行排序时,包括:
采用不经意排序原语,将所述特征值集合中各项的特征值按照值大小进行排序。
19.根据权利要求17所述的装置,所述合并模块,将序列中值大小相同的特征值对应的权重值进行合并时,包括:
针对所述初始序列,基于不经意比较原语,比较序列中相邻特征值是否相同,并将值大小相同的特征值对应的权重值进行合并。
20.根据权利要求14所述的装置,所述合并模块,基于所述填充序列形成合并数组的步骤,包括:
将所述填充序列形成待剪枝数组,所述待剪枝数组的项数与所述填充序列的项数相同;
基于所述待剪枝数组的项数与预设的最大项数的比较,对所述待剪枝数组进行剪枝操作,得到合并数组。
21.根据权利要求20所述的装置,所述合并模块,基于所述待剪枝数组的项数与预设的最大项数的比较,对所述待剪枝数组进行剪枝操作时,包括:
当所述待剪枝数组的项数不大于预设的最大项数时,直接将所述待剪枝数组作为所述合并数组;
当所述待剪枝数组的项数大于所述最大项数,且所述待剪枝数组包含的真实项的项数不大于所述最大项数时,减少所述待剪枝数组包含的伪项数量,使得到的合并数组的项数等于所述最大项数;
当所述待剪枝数组的项数大于所述最大项数,且所述待剪枝数组包含的真实项的项数大于所述最大项数时,删除所述待剪枝数组中的伪项,并将所述待剪枝数组中的真实项剪枝至项数为所述最大项数,得到合并数组。
22.根据权利要求14所述的装置,所述合并模块,具体配置为,将所述多个第一数组作为倒树的第一级结点,按照倒树的形式对所述多个第一数组进行逐级数组合并;
或者,所述合并模块,具体配置为,将所述多个第一数组按顺序排序,按照排序从头至尾依次进行逐级数组合并。
23.根据权利要求14所述的装置,所述访问模块,采用不经意访问方式,从所述内存中读取最后一级数组合并得到的合并数组中除若干个伪项之外的项时,包括:
采用不经意读取原语,从所述内存中读取最后一级数组合并得到的合并数组中的所有项,从该所有项中确定除所述若干个伪项之外的项。
24.根据权利要求14所述的装置,所述预设特征值取值为比所述样本集中样本的第一属性项的特征值大的值,所述预设权重值设置为0。
25.根据权利要求24所述的装置,所述合并模块,在所述合并序列中填充若干个伪项以得到填充序列时,包括:
若所述合并序列中的各个特征值已经按照值从小到大进行了排序,则在所述合并序列的尾部填充若干个伪项以得到填充序列。
26.根据权利要求24所述的装置,所述合并模块,在所述合并序列中填充若干个伪项以得到填充序列时,包括:
若所述合并序列中的各个特征值已经按照值从小到大进行了排序,则在所述合并序列的尾部填充若干个伪项;
基于所述合并序列中除若干个伪项之外的每个真实项的权重值,确定该真实项中特征值的最大分位点和最小分位点;
针对所述合并序列中的每个伪项,将预设值作为该伪项中特征值的最大分位点和最小分位点;
基于各个真实项和各个伪项包含的特征值、权重值以及对应的最大分位点和最小分位点,形成填充序列;
所述基于从该合并数组中读取的各项确定所述第一属性项的特征分位点的步骤,包括:
基于从该合并数组中读取的各项包含的特征值、权重值以及对应的最大分位点和最小分位点,确定所述第一属性项的特征分位点。
27.一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行权利要求1-13中任一项所述的方法。
28.一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现权利要求1-13中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011233423.XA CN112367396B (zh) | 2020-11-06 | 2020-11-06 | 分布式集群中的样本特征分位点确定方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011233423.XA CN112367396B (zh) | 2020-11-06 | 2020-11-06 | 分布式集群中的样本特征分位点确定方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112367396A true CN112367396A (zh) | 2021-02-12 |
CN112367396B CN112367396B (zh) | 2022-05-17 |
Family
ID=74509646
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011233423.XA Active CN112367396B (zh) | 2020-11-06 | 2020-11-06 | 分布式集群中的样本特征分位点确定方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112367396B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113158181A (zh) * | 2021-04-15 | 2021-07-23 | 上海交通大学 | 使用神经网络对原始侧信道数据进行端到端攻击的方法 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106934413A (zh) * | 2015-12-31 | 2017-07-07 | 阿里巴巴集团控股有限公司 | 模型训练方法、装置及系统以及样本集优化方法、装置 |
CN108764273A (zh) * | 2018-04-09 | 2018-11-06 | 中国平安人寿保险股份有限公司 | 一种数据处理的方法、装置、终端设备及存储介质 |
US20190287023A1 (en) * | 2018-03-16 | 2019-09-19 | Ryosuke Kasahara | Learning classification device and learning classification method |
US20190368994A1 (en) * | 2018-05-30 | 2019-12-05 | Saudi Arabian Oil Company | Systems and Methods for Special Core Analysis Sample Selection and Assessment |
CN111079283A (zh) * | 2019-12-13 | 2020-04-28 | 四川新网银行股份有限公司 | 对信息饱和度不均衡数据的处理方法 |
US20200250321A1 (en) * | 2019-04-18 | 2020-08-06 | Alibaba Group Holding Limited | Data processing method and device |
CN111506485A (zh) * | 2020-04-15 | 2020-08-07 | 深圳前海微众银行股份有限公司 | 特征分箱方法、装置、设备及计算机可读存储介质 |
CN111507479A (zh) * | 2020-04-15 | 2020-08-07 | 深圳前海微众银行股份有限公司 | 特征分箱方法、装置、设备及计算机可读存储介质 |
CN111539535A (zh) * | 2020-06-05 | 2020-08-14 | 支付宝(杭州)信息技术有限公司 | 基于隐私保护的联合特征分箱方法及装置 |
CN111597548A (zh) * | 2020-07-17 | 2020-08-28 | 支付宝(杭州)信息技术有限公司 | 实现隐私保护的数据处理方法及装置 |
-
2020
- 2020-11-06 CN CN202011233423.XA patent/CN112367396B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106934413A (zh) * | 2015-12-31 | 2017-07-07 | 阿里巴巴集团控股有限公司 | 模型训练方法、装置及系统以及样本集优化方法、装置 |
US20190287023A1 (en) * | 2018-03-16 | 2019-09-19 | Ryosuke Kasahara | Learning classification device and learning classification method |
CN108764273A (zh) * | 2018-04-09 | 2018-11-06 | 中国平安人寿保险股份有限公司 | 一种数据处理的方法、装置、终端设备及存储介质 |
US20190368994A1 (en) * | 2018-05-30 | 2019-12-05 | Saudi Arabian Oil Company | Systems and Methods for Special Core Analysis Sample Selection and Assessment |
US20200250321A1 (en) * | 2019-04-18 | 2020-08-06 | Alibaba Group Holding Limited | Data processing method and device |
CN111079283A (zh) * | 2019-12-13 | 2020-04-28 | 四川新网银行股份有限公司 | 对信息饱和度不均衡数据的处理方法 |
CN111506485A (zh) * | 2020-04-15 | 2020-08-07 | 深圳前海微众银行股份有限公司 | 特征分箱方法、装置、设备及计算机可读存储介质 |
CN111507479A (zh) * | 2020-04-15 | 2020-08-07 | 深圳前海微众银行股份有限公司 | 特征分箱方法、装置、设备及计算机可读存储介质 |
CN111539535A (zh) * | 2020-06-05 | 2020-08-14 | 支付宝(杭州)信息技术有限公司 | 基于隐私保护的联合特征分箱方法及装置 |
CN111597548A (zh) * | 2020-07-17 | 2020-08-28 | 支付宝(杭州)信息技术有限公司 | 实现隐私保护的数据处理方法及装置 |
Non-Patent Citations (1)
Title |
---|
孙晓丹等: "基于分位点回归系数聚类的时间序列分类方法", 《统计与决策》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113158181A (zh) * | 2021-04-15 | 2021-07-23 | 上海交通大学 | 使用神经网络对原始侧信道数据进行端到端攻击的方法 |
CN113158181B (zh) * | 2021-04-15 | 2022-04-05 | 上海交通大学 | 使用神经网络对原始侧信道数据进行端到端攻击的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN112367396B (zh) | 2022-05-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109416721B (zh) | 隐私保护机器学习 | |
US10467389B2 (en) | Secret shared random access machine | |
US11487969B2 (en) | Apparatuses, computer program products, and computer-implemented methods for privacy-preserving federated learning | |
US7770029B2 (en) | Software protection using oblivious data structures | |
US4328542A (en) | Secure implementation of transition machine computer | |
Ostrovsky | Software protection and simulation on oblivious RAMs | |
US11270227B2 (en) | Method for managing a machine learning model | |
US20140351185A1 (en) | Machine learning memory management and distributed rule evaluation | |
CN112839036B (zh) | 基于拟态防御理论的软件运行环境生成方法及系统 | |
CN112084519A (zh) | 基于访问模式保护的gbdt模型训练方法及装置 | |
US12045346B2 (en) | Systems and methods for causing nonpredictable environment states for exploit prevention and malicious code neutralization for javascript-enabled applications | |
CN112367396B (zh) | 分布式集群中的样本特征分位点确定方法及装置 | |
Alam et al. | Sgx-mr: Regulating dataflows for protecting access patterns of data-intensive sgx applications | |
Cui et al. | Towards privacy-preserving malware detection systems for android | |
Shrivastava et al. | Securator: A fast and secure neural processing unit | |
US10572672B2 (en) | Modification of data elements using a semantic relationship | |
CN112182632A (zh) | 基于访问模式保护的样本特征分位点确定方法及装置 | |
EP1207443A2 (en) | Encryption of databases based on a combination of hardware and software | |
CN110032832B (zh) | 一种Web应用程序的处理方法及装置 | |
CN118133326B (zh) | 一种基于芯片的数据加密传输系统 | |
Wang et al. | Enhancing Leakage Prevention for MapReduce | |
CN111291333A (zh) | 一种Java应用程序加密方法及装置 | |
CN109033763B (zh) | 一种程序加密方法、装置、可读介质及存储控制器 | |
US20230161877A1 (en) | Efficient integrity monitoring of processing operations with multiple memory arrays | |
WO2022259366A1 (ja) | 秘密計算装置、秘密計算システム、秘密計算方法、およびプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |