计算机实现的方法和实现所述方法的节点

文档序号:1132048 发布日期:2020-10-02 浏览:23次 >En<

阅读说明:本技术 计算机实现的方法和实现所述方法的节点 (Computer-implemented method and node implementing the method ) 是由 L·张 M·G·韦宁根 于 2018-12-12 设计创作,主要内容包括:根据一个方面,提供了一种操作第一节点的计算机实现的方法。所述第一节点具有用于评估来自另一节点的输入数据的算法,其中,所述输入数据具有多个不同的属性。所述方法包括:从第二节点接收用于由所述算法评估输入数据的所述第一集合的提议;基于所述提议来估计所述算法在评估输入数据的所述第一集合中的性能;并且向所述第二节点输出所述算法的所估计的性能的指示。还提供了对应的第一节点。(According to one aspect, a computer-implemented method of operating a first node is provided. The first node has an algorithm for evaluating input data from another node, wherein the input data has a plurality of different attributes. The method comprises the following steps: receiving from a second node an offer to evaluate the first set of input data by the algorithm; estimating performance of the algorithm in evaluating the first set of input data based on the proposal; and outputting an indication of the estimated performance of the algorithm to the second node. A corresponding first node is also provided.)

计算机实现的方法和实现所述方法的节点

技术领域

本公开涉及由算法评估输入数据的集合,并且具体涉及用于使得用户或数据拥有者能够根据他们的要求定制或调整所述算法的执行的技术。

背景技术

随着大数据分析在学术界中的快速发展,对于将这一技术应用到实际案例的需求也正在增加。很多时候,由于数据的敏感度,安全是最大的挑战之一。例如,数据拥有者(如医院、银行、政府等)将更喜欢在不向算法拥有者提供原始数据的情况下使该算法拥有者能够分析他们的数据。

实现这一目的的一种方式是使所有数据被加密以便防止信息泄露并且对加密的数据执行算法。利用这样的多方计算设置,双方(数据拥有者和算法拥有者)在密码协议(例如,乱码电路)中交互并且因此能够在***露关于彼此的输入的任何信息的情况下计算任何功能。因此,数据分析的焦点变为如何将机器学***对数据拥有者是重要的考虑。

发明内容

具有这些挑战,当前框架在实践中的应用性仍然是个问题。从数据拥有者的角度看,算法很多时候像“黑匣子”一样运作,并且用户(数据拥有者)具有很少根据他们自己的要求来改变算法的能力,特别是关于效率、准确度和敏感度。

已经发现,如果数据拥有者决定不向评估公开特定属性(例如,数据字段),则这可以提供高效率、高私有性,但是具有低实用性。也已经发现,对属性进行加密(以便使数据对算法拥有者保持秘密)具有高私有性和高实用性,但是具有低效率。也已经发现,使用未加密的属性具有高效率和高实用性,但是具有低私有性。

在实践中,多个不同的案例可以应用于用户(数据拥有者)。首先,可能不是数据的所有属性都是敏感的(例如,性别),并且考虑到安全分析是耗时的,这些属性可能不需要按照安全的方式被分析。然而,在分析加密的数据时,用户不具有定义属性的敏感度的灵活性以获得效率。其次,用户不具有改变算法用于快速但不太准确的分析或者慢速但高准确的分析的选项。第三,用户经常不具有算法要求的所有属性的数据,或者用户可能仅想要基于属性的子集来执行分析。

因此,需要使得用户能够定制或调整由算法对输入数据的集合的评估以满足他们对评估的自身要求,例如速度和准确度。

根据第一具体方面,提供了一种操作第一节点的计算机实现的方法,所述第一节点具有用于评估来自另一节点的输入数据的算法,所述输入数据具有多个不同的属性,所述方法包括:从第二节点接收用于由所述算法评估输入数据的第一集合的提议;基于所述提议来评估所述算法在评估输入数据的所述第一集合中的性能;并且向所述第二节点输出所述算法的所估计的性能的指示。

根据第二方面,提供了一种包括计算机可读介质的计算机程序产品,所述计算机可读介质具有体现在其中的计算机可读代码,所述计算机可读代码被配置为使得在由适合的计算机或处理器执行时,所述计算机或处理器被使得执行根据第一方面所述的方法。

根据第三方面,提供了一种第一节点,所述第一节点具有用于评估来自另一节点的输入数据的算法,所述输入数据具有多个不同的属性,其中,所述第一节点被配置为从第二节点接收用于由所述算法评估输入数据的第一集合的提议;基于所述提议来估计所述算法在评估输入数据的所述第一集合中的性能;并且向所述第二节点输出所述算法的所估计的性能的指示。

根据第四方面,提供了一种操作第二节点的计算机实现的方法,所述第二节点具有要由第一节点的算法评估的输入数据的第一集合,所述输入数据具有多个不同的属性,所述方法包括向所述第一节点发送用于由所述第一节点使用所述算法来评估输入数据的所述第一集合的提议;从所述第一节点接收基于所述提议对所述算法在来评估输入数据的所述第一集合中的性能的估计;并且基于所接收的估计来确定是否继续进行对输入数据的所述第一集合的评估。

根据第五方面,提供了一种包括计算机可读介质的计算机程序产品,所述计算机可读介质具有体现在其中的计算机可读代码,所述计算机可读代码被配置为使得在由适合的计算机或处理器执行时,所述计算机或处理器被使得执行根据第四方面所述的方法。

根据第六方面,提供了一种第二节点,所述第二节点具有要由第一节点的算法评估的输入数据的第一集合,所述输入数据具有多个不同的属性,其中,所述第二节点被配置为向所述第一节点发送用于由所述第一节点使用所述算法来评估输入数据的所述第一集合的提议;从所述第一节点接收基于所述提议对所述算法在来评估输入数据的所述第一集合中的性能的估计;并且基于所接收的估计来确定是否继续进行对输入数据的所述第一集合的评估。

这些和其他方面将从下面描述的(一个或多个)实施例变得明显并且参考下面描述的(一个或多个)实施例得以阐明。

附图说明

现在将参考下面的附图仅通过示例的方式描述示例性实施例,在附图中:

图1是根据实施例的节点的方框图;

图2图示了根据实施例的系统中的操作;

图3是图示操作具有算法的第一节点的示例性方法的流程图;

图4是图示操作具有数据集的第二节点的示例性方法的流程图;并且

图5图示了具有部分加密的属性的随机森林。

具体实施方式

本文描述的实施例涉及由算法评估输入数据的集合,并且具体涉及用于使得用户或数据拥有者能够根据他们的要求来定制或调整所述算法的执行的技术。

图1图示了根据实施例的示例性节点2。算法拥有者(即,拥有或者具有能够用于评估数据集的算法的一方)可以被实现为图1中的节点2的形式。同样,数据拥有者(即,拥有或者具有能够由所述算法评估的数据集的一方)可以被实现为图1中的节点2的形式。在任一情况下,节点2可以是任何类型的电子设备或者计算设备。例如,节点2可以是或者作为任何适合类型的电子设备或者计算设备的一部分,例如,服务器、计算机、膝上型计算机、平板电脑、智能电话等。将意识到,算法拥有者节点和数据拥有者节点不需要是相同类型的设备,并且例如,算法拥有者节点可以是服务器(例如,位于云中),并且数据拥有者节点可以是桌面型计算机等。

节点2包括用于实现与其他设备或者节点的数据连接和/或数据交换的接口电路4,该其他设备或者节点例如在图1中的节点2是数据拥有者节点的情况下是算法拥有者节点或者在图1中的节点2是算法拥有者节点的情况下是数据拥有者节点。具体地说,接口电路4可以实现在节点2与网络(例如互联网和/或局域网)之间的经由任何期望的有线或者无线通信协议的连接。作为示例,接口电路4可以使用WiFi、蓝牙、Zigbee或者任何蜂窝通信协议(包括但不局限于全球移动通信系统(GSM)、通用移动电信系统(UMTS)、长期演进(LTE)、LET-高级等)操作。

节点2还包括用于对数据执行操作并且用于通常控制节点2的操作的处理单元6,包括操作节点2以执行本文描述的方法和技术。接口电路4连接到处理单元6。节点2还包括用于存储执行本文描述的方法和技术所需的任何数据、信息和/或信号并且用于存储用于使处理器单元6执行下面更加详细描述的方法步骤的计算机程序代码的存储器单元8。在节点2是数据拥有者节点的实施例中,存储器单元8可以存储一个或多个数据集。这些数据集可以包括在数据集不向算法拥有者节点(以及可能其他节点/方)公开的意义上对数据拥有者私有或者敏感(秘密)的数据。将意识到,数据集中的不是所有数据元素或者属性都是私有的或者敏感的情况下可以是如此。

处理单元6可以按照各种方式实现,利用软件和/或硬件,以执行本文描述的各种功能。处理单元6可以包括可以使用软件或者计算机程序代码编程以执行所需的功能和/或控制处理单元10的部件以实现所需的功能的一个或多个微处理器或者数字信号处理器(DSP)。处理单元6可以被实现为用于执行一些功能的专用硬件的组合(例如,放大器、前置放大器、模数转换器(ADC)和/或数模转换器(DAC))以及用于执行其他功能的处理器(例如,一个或多个编程的微处理器、控制器、DSP以及相关联的电路)。可以在本公开的各种实施例中使用的部件的示例包括但不局限于传统微处理器、DSP、专用集成电路(ASIC)和现场可编程门阵列(FPGA)。

存储器单元8可以包括任何类型的非瞬态机器可读介质,例如包括诸如随机存取存储器(RAM)、静态RAM(SRAM)、动态RAM(DRAM)、只读存储器(ROM)、可编程ROM(PROM)、可擦除PRAM(EPROM)和电可擦除PROM(EEPROM)的易失性和非易失性计算机存储器的高速缓存或者系统存储器。

节点2还可以包括用户接口10,该用户接口包括使得节点2的用户将信息、数据和/或命令输入到节点2中和/或使得节点2向节点2的用户输出信息或数据的一个或多个部件。用户接口10可以包括任何适合的(一个或多个)输入部件,包括但不局限于键盘、小键盘、一个或多个按钮、开关或者拨盘、鼠标、跟踪板、触摸屏、触笔、相机、麦克风等,并且用户接口10可以包括任何合适的(一个或多个)输出部件,包括但不局限于显示屏、一个或多个灯或者灯元件、一个或多个扬声器、振动元件等。

将意识到,节点2的实际实施方式可以包括与图1中示出的那些相比附加的部件。例如,节点2还可以包括诸如电池的电源,或者用于使得节点2能够被连接到主电源的部件。

如上面所指出的,从数据拥有者的角度,由另一方拥有的用于评估他们的数据的算法大多时候像“黑匣子”一样运作,并且数据拥有者具有很少根据他们自己的要求来改变算法的能力,特别是关于数据分析的效率、准确度和敏感度。本文提供的技术提供了用于使得用户能够定制或者调整由算法对输入数据的集合的评估以满足他们自己对评估的要求,例如速度和准确度。

图2图示了根据本文提供的技术的实施例的系统中的操作。图2中的系统包括数据拥有者节点20和算法拥有者节点22。数据拥有者节点20和算法拥有者节点22两者都可以是如图1中示出的节点2。本文对“数据拥有者”的引用可以包括数据拥有者节点20和/或数据拥有者节点20的用户。同样,本文对“算法拥有者”的引用可以包括算法拥有者22和/或算法拥有者22的用户。

数据拥有者节点20具有数据拥有者节点20想要分析或者评估的一个或多个数据集。一个或多个数据集对数据拥有者节点20是私有的,并且因此该一个或多个数据集应当在不向执行分析或者评估的一方共享或者公开数据的情况下被分析或者评估。

算法拥有者节点22具有能够由其他方/节点(包括数据拥有者节点20)存取以分析数据集的一个或多个算法。算法包含或者使用对算法拥有者秘密或者私有的一个或多个方面,并且没有其他方或者节点(或者至少没有数据拥有者节点20)知道这一个或多个方面。因此,算法拥有者22在不与数据拥有者节点20共享实际算法的情况下提供对数据集的分析或评估。在一些情况下,算法本身可以是私有的,这意味着没有其他方或者节点(或者至少没有数据拥有者节点20)知道算法如何对数据集操作以产生(一个或多个)输出。在其他情况下,算法可以是公开或者已知的算法,但是在算法中使用的或者由算法使用的一个或多个参数对算法拥有者节点22是秘密的。作为示例,算法可以是已知的支持向量机,但是用于分类的参数(例如,超平面的位置)对算法拥有者22是私有的。

算法拥有者节点22可以为它们的算法做广告(例如,指示其可以用于在评估或者分析数据集时使用),包括算法的优点、要求的输入属性的列表(例如,特征、测量结果、数据字段等)、输入数据所要求的格式和/或输出的形式和/或格式,等等。

如图2所示,系统中的操作包括三个阶段:预分析阶段24、分析阶段26和结果阶段28。在预分析阶段24中,数据拥有者节点20确定并且向算法拥有者节点22发送(信号30)提议。提议可以包括要被分析的数据集的类型或者内容(而不公开数据集内容本身)和/或对特定数据集的分析的各种要求,例如输出所需的最小准确度水平、分析应当花费的最大时间等等。

更具体地,提议30可以包括关于数据集的大小的信息,例如要被分析的数据集中的数据元素的数目和/或属性(例如,数据字段)的数目。如果在提议30中指示的输入属性的数目小于算法所需的属性的数目,则算法拥有者节点22可以将剩余属性认为是“缺失”属性。提议30可以还或备选地指示多少个和/或哪些属性是私有属性,并且能够指示从没有属性是私有的到所有属性都是私有的任何情况。如上面所指出的,提议30可以还或备选地指示分析的时间预算/最小准确度。按照这种方式,数据拥有者20可以在该时间预算内得到最佳的(即,最准确的)结果或者具有最小准确度阈值的最快结果。

基于所述提议,在框32中,算法拥有者节点22估计算法的性能,例如通过估计可能的最快分析时间和/或通过估计可能的最佳准确度,并且向数据拥有者节点20提供反馈(信号34)。

响应于反馈34,数据拥有者节点20可以调整所述提议(框36)、将其重新提交给算法拥有者节点22(信号30)并且接收对修正的提议的反馈(信号34)。该提议-反馈循环可以继续,直到数据拥有者节点20的要求得到满足。

在分析阶段26中,基于数据拥有者20可接受的提议30(其可以是由算法拥有者22评估的最后提议30或者由算法拥有者评估的早前协议30),应用或者使用多方计算(MPC)技术以执行数据分析。在特定实施例中,具有数据集38的数据拥有者节点20向算法拥有者节点22发送任何公开的(例如,非秘密的)属性和/或数据元素(由“非敏感数据”40指示),并且算法拥有者节点22利用常规(非加密的)算法分析数据集的该部分40,如由框42所示。

对于敏感(例如,秘密)属性和/或数据元素(由“敏感数据”44指示),在一些实施例中,这些以加密的形式被提供到算法拥有者节点22并且由加密(秘密)的算法使用位于数据拥有者节点20和算法拥有者节点22两者中的MPC模块进行分析,如由MPC框46指示的。这里,“加密”被理解为意指私有值被输入到多方计算中的任何种类的方式,例如通过以秘密共享的方式提供值或者基于乱码电路交换用于多方计算的布线秘钥的形式。在备选实施例中,MPC可以由另一节点代表算法拥有者节点22执行。在这些实施例中,敏感(例如,秘密)属性和/或数据元素以加密的形式被提供到用于评估算法的节点并且由加密(秘密)的算法使用数据拥有者节点20和其他节点两者中的MPC模块进行分析。将意识到,在这些实施例中,任何公开(例如,非秘密)的属性和/或数据元素可以被发送到其他节点用于使用非秘密算法进行评估。

在结果阶段28中,算法拥有者节点22(或者参与MPC的其他节点)基于分析的非加密部分42和分析的加密部分46两者的结果对算法的输出做出最终决定(框48),并将决定框48的结果发送到数据拥有者节点20(信号50)。算法的结果/输出50也可以向数据拥有者节点20指示输出/结果的相对准确度。取决于来自MPC框46的加密结果与来自常规框42的非加密结果需要被组合的方式,该部件可以借助于MPC被分布在数据拥有者节点20和算法拥有者节点22之间。

上面列出的操作可以提供若干优点。一个优点在于它能够向用户(拥有者/数据拥有者节点20)给出通过在效率、准确度和敏感度之中进行权衡来使算法个性化的自由。应当指出,这实际上取决于用户,因为不同的用户具有不同的可用属性和不同的隐私观念/关注。另一优点在于它基于用户的偏好提供对效率、准确度和敏感度的快速预分析,以便帮助用户更好地调整算法。上面列出的操作为用户提供了开启下面功能中的任何一个或者下面功能的组合的能力。例如,用户可以将数据集中的每个属性的敏感度定义为公开/私有,以便在速度与安全性之间进行权衡,事实是敏感数据相较于利用多方计算的分析在计算上更加昂贵。另一示例在于用户可以定义算法的时间预算以便利用在速度与准确度之间的权衡得到快速扫描/深度分析。另一示例在于代替设置时间预算,用户可以通过定义最小准确度而在速度与准确度之间进行权衡,并且算法可以提供最快的分析。作为另一示例,用户可以使用缺失属性执行分析。

下面参考图3和图4中的流程图来讨论本文呈现的技术的各种实施例。图3中的流程图示出了操作算法拥有者节点22(被称为“第一节点22”)的示例性方法,并且图4中的流程图示出了操作数据拥有者节点20(被称为“第二节点20”)的示例性方法。在合适的情况下,这两种方法可以通过节点2中的处理单元6结合接口电路4和/或存储器单元8来实现。

在图3中的方法的步骤101中,第一节点22接收用于由算法评估输入数据的第一集合的提议30。这一提议从第二节点20(输入数据的第一集合的拥有者)被接收,并且输入数据被提供有提议。提议30可以包括以下中的一个或多个:输入数据的第一集合中的数据元素(例如,数据行/数据条目)的指示、输入数据的第一集合的属性(例如,特征、测量结果、数据字段等)的指示以及输入数据的第一集合的属性中的哪些属性对第二节点是私有的指示。提议30还可以指示用于评估的最小准确度水平的指示以及完成评估所允许的最大时间的指示中的一个。准确度水平可以按照统计可靠性表示,例如,评估应当提供70%准确的结果,或者准确到5%以内的结果,等等。

基于所接收的提议30,第一节点22估计算法在评估输入数据的第一集合中的性能(步骤103)。这一步骤由估计框32执行。

一旦已经确定了对性能的估计,该估计就被输出到第二节点20(步骤105)。

在一些实施例中,对性能的估计可以是用于评估的准确度水平的指示和/或完成评估所需的时间的指示。如同上面的最小准确度水平的指示,所估计的准确度可以按照输出的统计可靠性来表示。

在其中所接收的提议30包括用于评估的最小准确度水平的指示的实施例中,步骤103可以包括确定以所指示的最小准确度水平完成评估所需的时间的指示。在这种情况下,所需的时间的指示可以基于以下中的一个或多个来确定:算法的复杂度水平、输入数据的第一集合中的数据元素的数目、输入数据的第一集合的属性以及输入数据的第一集合的对第二节点是私有的属性的数目。

通常,到算法的输入越私有,对它们进行评估花费的时间就越多,并且算法越复杂,评估花费的时间就越多。对于给定的算法,特征可以被相应地排名,并且在排名列表的顶部处的特征的子集可以用于优化时间/准确度。高排名反映特征的可用性、非敏感性和高重要性。当关于准确度/时间的要求得到满足时,停止对特征的子集的选择。

在其中所接收的提议30包括完成评估所允许的最大时间的指示的实施例中,步骤103可以包括基于在所指示的所允许的最大时间内完成评估来确定用于评估的准确度水平的指示。在这种情况下,准确度水平的指示可以基于以下中的一个或多个来确定:输入数据的第一集合中的数据元素的数目、输入数据的第一集合的属性(或者缺失属性的数目)以及输入属性有区别性/重要的水平。准确度水平的指示可以按照与导出执行上述评估所需的时间的估计类似的方式来导出。

在输出步骤之后,第一节点22可以从第二节点20接收修正的提议30。该修正的提议30可以指示在步骤101中接收的初始提议30中指示的提议参数的任何一个的不同值。例如,修正的协议30可以指示输入数据的第一集合中的数据元素的不同数目、输入数据的第一集合的属性(例如,数据字段)的不同指示和/或输入数据的第一集合的哪些属性对第二节点20是私有的不同指示。修正的提议30可以还或者备选地指示不同的用于评估的最小准确度水平和/或不同的完成评估所允许的最大时间。

第一节点22可以接着针对修正的提议30重复步骤103和105。

在步骤105中输出指示之后(无论指示涉及在步骤101中接收的初始提议30还是随后的修正的提议30),第一节点22可以从第二节点20接收要继续进行由算法根据提议30来评估输入数据的第一集合的指示。该指示可以指示要根据来自第二节点20的最近提议30或者根据来自第二节点20的早前提议30继续进行评估。

在指示之后,第一节点20可以从第二节点20接收输入数据的非私有

输入数据的私有的任何部分可以由算法评估为与第二节点22的多方计的任何部分。这些接收的部分使用算法进行评估(例如,在框42中)。在第一数据集中没有部分是非私有的情况下,可以跳过方法的这一部分。算。例如,可以使用代表该算法并且由第一节点22生成的乱码电路来评估该算法。

第一节点22接着可以将输入数据的非私有的所接收的部分的评估的结果(如果存在的话)与输入数据的私有的所接收的部分的评估的结果进行组合以确定算法的输出。算法的所确定的输出接着可以被提供或者发送到第二节点20。

在一些实施例中,第一节点22可以确定算法的输出的准确度的量度(例如,可靠性的统计量度),并且将准确度的所确定的量度提供到第二节点20。

在一些实施例中,在步骤101中接收的提议(或者随后的修正的提议30)可以包括用于评估的最小准确度水平的指示,并且该方法可以还包括优化算法以在最小化评估所需的时间的同时提供至少所指示的最小准确度水平的步骤。可以基于以下三个因素来使时间最小化:输入数据中的缺失属性的数目、敏感属性的数目以及属性的重要性。给定要实现的最小准确度水平,第一节点22确定如何提供最快的结果。对于优化,可以基于属性的重要性/重要度来选择可用属性的子集,同时均衡在评估中要使用的敏感(私有)属性的数目。可以基于排名来逐一地添加属性,并且当满足要求时停止。属性的排名反映属性是否缺失、属性是否敏感以及属性是否是有区别性的。

在一些实施例中,在步骤101中接收的提议(或者随后的修正的提议30)可以包括评估所允许的最大时间的指示,并且该方法可以还包括优化算法以在所指示的评估所允许的最大时间内使评估的准确度水平最大化的步骤。这一优化可以如上所述地来执行。

在一些实施例中,可以基于多方计算使用随机森林实施方式来评估算法。这一基于MPC的随机森林实施方式可以用于评估其属性对第二节点20是私有的输入数据的任何部分。将意识到,基于MPC的随机森林实施方式也可以用于(如果要求或者期望的话)评估输入数据的不是私有的任何部分。

在这些实施例中,步骤103包括通过以下操作来确定完成对输入数据的第一集合的评估所需的时间的指示:确定用于评估要用于评估的随机森林中的所有加密树(其中加密树用于评估输入数据的第一集合的对第二节点20是私有的属性)的评估时间成本,确定用于评估到算法的所有输入的输入时间成本(其中输入时间成本是向算法输入私有属性的时间成本),并且将所需的时间的指示确定为所确定的评估时间成本和所确定的输入时间成本的加和。下面参考基于MPC的随机森林实施方式来提供确定所需的时间的指示的方式的进一步细节。

现在转到图4以及操作第二节点20(数据拥有者节点20)的方法,第二节点22具有要由第一节点22的算法评估的输入数据的第一集合。输入数据具有多个不同的属性(例如,数据字段)。

在第一步骤中,即在步骤121中,第二节点20向第一节点22发送用于使用算法来评估输入数据的第一集合的提议30。提议30可以是上面参考步骤101描述的。

在发送提议之后,在步骤123中,第二节点20从第一节点22接收根据提议对算法在评估输入数据的第一集合中的性能的估计。对算法的性能的估计可以指示以下中的一个或两者:用于评估输入数据的第一集合的准确度水平的指示以及完成对输入数据的第一集合的评估所需的时间的指示。在其中提议30包括用于评估的最小准确度水平的指示的实施例中,所接收的性能的估计可以指示以所指示的最小准确度水平完成评估所需的时间。在实施例中,提议30包括完成对输入数据的第一集合的评估所需的最大时间的指示,并且其中所接收的性能的估计包括基于在所指示的所允许的最大时间内完成对输入数据的第一集合的评估的用于评估输入数据的第一集合的准确度水平的指示。

接着,第二节点20基于所接收的估计来确定是否继续进行对输入数据的第一集合的评估。第二节点20可以基于所指示的性能是否满足第二节点的要求来做出这一决定。在一些实施例中,如果第二节点20在提议30中指示用于评估的最小准确度水平,则第二节点20可以确定所指示的评估所需的时间是否是可接受的(例如,基于在发送提议30之前由第二节点20设置的值)。在一些实施例中,如果第二节点20在提议30中指示评估所允许的最大时间,则第二节点20可以确定所指示的用于评估的准确度水平是否是可接受的(例如,基于在发送提议30之前由第二节点20设置的值)。

备选地,第二节点20可以响应于由第二节点20的用户(例如,经由用户接口10)的输入来做出这一决定。在那种情况下,第二节点20可以(例如使用用户接口10)向用户提供或者显示与所接收的性能的指示有关的信息,并且提示或者等待用户输入是否继续进行评估的指示。

如果第二节点20确定不继续进行基于在步骤121中发送的提议30(或者基于由第二节点20本身进行的用户输入或者分析)对输入数据的第一集合的评估,则第二节点20可以确定用于评估输入数据的第一集合的修正的提议。修正的提议30可以由第二节点20本身确定,或者它能够响应于或者基于来自第二节点20的用户的输入来确定。

修正的提议30可以按照各种方式来确定。例如,第二节点20或者第二节点20的用户可以调整要被评估的数据元素的数目中的一个或多个、输入数据的第一集合的属性的数目以及对第二节点私有的属性的数目。备选地或者另外,第二节点20或者用户可以调整评估所需的最小准确度水平和完成评估所允许的最大时间中的一个。

第二节点20或者用户可以确定:如果所接收的性能的指示在某一方面不满足其要求,则不继续进行评估。例如,初始提议30可以在步骤101中已经指示了最小准确度水平,并且执行这一估计的时间的估计可以比要求的要长。在那种情况下,修正的提议30可以导致执行评估所花费的时间的减少(例如,通过包括减少属性的数目、减少私有属性的数目等等)。同样,初始提议30可以在步骤101中已经指示了所允许的最大时间,并且准确度水平的估计可以比要求的低。在那种情况下,修正的提议30可以导致由评估提供的准确度增加(例如,通过包括更多的属性、更多的私有属性、更多的输入数据等等)。

将意识到,第二节点20或者用户可以根据所接收的性能的指示确定该性能在某一方面超出它的要求。在那种情况下,也可以确定修正的提议30。例如,初始提议30可以在步骤101中已经指示了最小准确度水平,并且执行这一评估的时间估计可以比第二节点20要求的时间要少。在那种情况下,修正的提议30可以导致执行评估所花费的时间增加(例如,通过包括附加的属性、附加的私有属性等等)。同样,初始提议30可以在步骤101中已经指示了所允许的最大时间,并且准确度水平的估计可以比要求的要高。在那种情况下,修正的提议30可以导致由评估提供的准确度的降低(例如,通过包括较少的属性、较少的私有属性、较低的最大时间等等)。

一旦确定了修正的提议30,第二节点20就向第一节点22发送修正的提议30。接着针对修正的提议重复步骤123和125。取决于响应于修正的提议对算法的性能的指示,修正的提议可以被接受并且算法可以被评估,或者修正的提议可以被拒绝并且进一步修正。

如果基于在步骤123中接收的性能的指示要继续进行对输入数据的第一集合的评估,则第二节点20向第一节点22发送要继续进行根据提议来评估输入数据的第一集合的指示。第二节点20接着向第一节点22(或者要评估非私有输入数据的其他节点)发送输入数据的非私有的任何部分,并且提供输入数据的私有的任何部分作为到利用第一节点22(或者其他节点)的算法的多方计算评估的私有输入。第二节点20参与多方计算并且接收代表由算法评估输入数据的第一集合的输出。

除了接收输出,第二节点20可以接收输出的准确度的量度。

本文描述的技术可以使用多种机器学习算法进行实例化,例如基于支持向量机(SVM)、随机森林、朴素贝叶斯等的分类/回归。下面的描述提供利用随机森林分类器的上述技术的详细实施方式,特别是关于分析阶段26和结果阶段28。其他机器学习算法中的一些在下面进一步讨论。

随机森林技术具有三个主要优点。它们是相对灵活且准确的机器学习算法,能够根据该算法获得属性的重要性,并且作为其基本单元的决策树先前已经被成功应用于安全数据分析中。在图5中示出了具有公开属性和加密(私有)属性两者的随机森林的图示。

随机森林由N个决策树T={Tj}N构成。每棵树基于属性的子集来输出标签,由整个随机森林做出的最终决定基于来自所有树的大多数投票。在良好训练的随机森林中,在更多的树中出现更重要的属性。

在本文提出的技术中,随机森林中的每棵树具有常规版本和加密版本。因此,每个输入属性可以是私有(加密)的或者公开(常规)的。对于离散属性值实现安全决策树的示例性细节可以在Sebastiaan de Hoogh,Berry Schoenmakers,Ping Chen以及Harm op denAkker的“Practical secure decision tree learning in a teletreatmentapplication”(International Conference on Financial Cryptography and DataSecurity,第179-194页,Springer,2014)中找到。例如,图5中的三棵树(从左到右)分别代表具有公共属性的常规树、具有私有属性的加密树以及具有公共属性和私有属性两者的加密树。

在预分析阶段24中,给定来自用户/第二节点20的提议30,第一节点22(算法拥有者节点22)的主要动作是以给定的测试时间tw估计随机森林算法的最佳性能,或者以给定的最小准确度ηw估计算法的最快测试速度(时间)。

用户的提议30包括:

(i)预定义属性的集合A={ai},包括加密的私有属性Ae和公开属性A\Ae。可能的缺失属性Am没有被包括在输入属性中;以及

(ii)用于测试的时间预算tw或者最小准确度ηw

基于提议30,算法拥有者22给出关于如下的反馈:

(i)给定tw的估计的准确度ηg(如下面描述的),或者

(ii)给定ηw的估计的测试时间tg(如下面描述的)。

关于分析的时间成本tg

关于分析的时间成本tg=tev+tin由以下两个部分构成:1)关于使用的加密树的评估时间成本tev以及2)关于输入的总数目的成本tin。性能极大地取决于所使用的特定后端(乱码电路、MASCOT等)。这里,计算遵循用于多方计算的MASCOT协议,如在Marcel Keller,Emmanuela Orsini和Peter Scholl的“Mascot:Faster malicious arithmetic securecomputation with oblivious transfer”(Technical report,Cryptology ePrintArchive,2016,http://eprint.iacr.org/2016/505)中描述的。

在MASCOT中,可以基于协议中的乘法和输入的数目来测量性能(这对于其中计算不太简单明了的乱码电路不是如此)。为了简化当前示例中的问题,假设树是二元的。

评估成本-一次乘法的评估成本是te,加密树Tj中的节点的数目为Sj,并且|Ae|是加密属性的总数目,评估整个随机森林所执行的乘法的时间是

Figure BDA0002641612820000151

其中Te是所使用的加密树的集合。

输入成本-到常规树的公共输入花费可忽略的时间(其为了简化被认为是零),并且因此关于到整个随机森林的输入的时间成本等于关于到加密树的输入的时间成本。应当指出,假设树的输入成本等于整个森林的成本以便防止特定树的确切输入属性的信息的泄露。关于一个输入属性的时间成本是ta,关于到森林的总输入的成本是其中第一部分是决策树的成本并且第二部分是敏感属性的成本。下面进一步描述计算测试时间的方式的细节。

树优先级

对ηg或者tg的优化受四个因素影响,其是缺失属性、私有属性、树重要性和预定义的时间预算/最小准确度。具有公共非缺失属性的常规树在任何情况中被使用,因为它们不花费时间并且贡献更大的准确度。

缺失属性Am -在经典随机森林中,训练属性的值用于更换缺失属性Am。在这种情况下,缺失属性是恒定的缺省值,其不花费评估时间,与公共属性相同。此外,当缺省值经过节点时,结果可以被预计算,因此,缺失属性不具有输入时间成本。然而,利用这样的缺省属性进行评估不能够给出与非缺失属性相同的准确结果。因此,每棵树对最终大多数投票的贡献不再相等,并且具有较少缺失属性的树被首先考虑。这与下面“树的权重”子部分中的α有关。

私有属性Ae -如上面提及的,重要属性倾向于在更多的树中出现,并且每棵树在大多数投票步骤中具有相等的贡献。因此,问题是如何在时间预算内评估尽可能多的加密树,使得具有较少节点的树被首先考虑。这与下面“树的权重”子部分中的β有关。

树重要性-随着更多的重要属性倾向于出现在训练的随机森林中的更多树中,具有更重要属性的树对最终结果贡献更多的准确度。这与下面“树的权重”子部分中的γ有关。

时间预算tw -为了防止哪些树和属性被选择的信息的泄露,每颗树的输入成本与整个随机森林的输入成本tin相同。主要对时间成本tev和tin进行优化。假设仅存在一个私有属性,输入成本将是并且评估成本将是关于具有一个私有属性的分析数据的时间成本为:

其中,Te是具有最高优先级的加密树(在下面的“树的权重”子部分中讨论了树的优先级),并且它的输入包含该私有属性。如果tw≤t,则仅评估公开属性;否则,另外通过至少一个加密树来评估至少一个私有属性。如果tw≥t,则评估所有输入属性。t被计算为:

为了帮助第二节点20的用户在预分析阶段24调整提议20,算法拥有者节点22也可以反馈t和t

最小准确度ηw -当设置最小准确度ηw时,算法应当以最快的方式进行分析。为了这么做,具有较少节点的树被首先考虑,具有较少缺失属性的树被首先考虑,并且具有更重要属性的树被首先考虑。这与下面“树的权重”子部分中的w有关。

树的权重w-如果tw≤t,则不可能评估所有树。在这一情况下,引入了树的权重w以设置优先级。权重由三个部分构成:

-α,其是树中的评估的非缺失属性的分数。例如,如果树要求10个属性的输入,但是用户/第二节点20仅提供了8个属性,则在这颗树中,α=0.8。

-β,其代表评估成本其中Sj是加密树中的节点的数目,并且具有较少节点的树具有较高优先级;

-γ,其反映树重要性。按照下面来计算树Tj的γj。树Tj的总输入属性得分(例如,Z得分)通过计算获得,其中Z(ai)指示属性ai的Z得分。所有树的总得分是

Figure BDA0002641612820000174

并且γj可以被定义为γj=Zj/Z。

树Tj的最终权重为wj=αjβjγj。这里,这三个权重被认为具有相等的重要性。接着,基于权重w按照降序

Figure BDA0002641612820000175

对树进行排序。

优化

基于树的权重w进行关于给定测试时间tw的性能以及给定最小准确度ηw的速度对算法的优化。

相对准确度-基于来自先前子部分的分析,能够合理地定义准确度。假设利用随机森林中的所有树测试所有属性具有100%的准确度,并且所估计的准确度ηg是相对准确度。这里,F1测量结果用于根据提议来计算算法的相对准确度ηg是选定的加密树的集合,可以将召回定义为prec=∑j∈Tαj/N,其代表评估的加权树的分数。可以将准确度定义为:

Figure BDA0002641612820000182

其中假设具有较少缺失数据(属性)和高重要得分的树具有较高的精确度。最终的相对测试准确度可以被计算为F1量度

其中,η≤ηg≤1。这里,是当不评估私有属性时的最小准确度。

具有tw的优化-要求的加密树因此可以基于w被排序为

Figure BDA0002641612820000185

Figure BDA0002641612820000186

中的加密树的评估时间成本可以被预计算为优化是在时间预算tw 内选择尽可能多的树。这里,提出了基于树权重w逐一选择树的启发式方法,直到下一颗树不再能够符合时间预算。在实践中,贪婪搜索可以用于从森林的剩余部分选择具有较低优先级的树(基于w按照相同的顺序),这仍然能够符合预算。当森林中没有树能够符合预算时,选择停止。使为选定的加密树的集合,并且常规树的数目为N–|Te|。在下面的算法1中示出了给定时间预算对准确度的估计。

具有ηw的优化-类似地,对给定最小准确度ηw的优化在于基于w顺序逐一地选择树,并且一旦η≥ηw则停止。使作为选定的加密树的集合,如果ηw≤η,则没有加密树被选择

Figure BDA0002641612820000193

并且仅评估公开树。由于优化准确度的复杂度,这里树被简单地根据它们的权重w进行逐一添加,直到达到了最小准确度,因为评估更多树将降低速度。

下面的讨论涉及在结果阶段28中获得的结果。

时间效率

如上面讨论的,公开和更换的缺失属性不花费评估时间。评估时间花费仅由于加密的属性和树。所有非缺失属性花费输入时间,如上面示出的。算法的总时间成本为:

与使用完全加密算法相比较,时间成本的百分比为

Figure BDA0002641612820000195

在亚马逊机器上,每次乘法花费大约2.2e-5秒,并且输入花费大约2.0e-6秒。假设有200颗树并且其中的100颗被加密,总共200个属性,这些属性中的50个是私有的,并且每颗树具有100个节点。如果测试数据具有100个对象,则与利用所提出的技术的仅50分钟相比较,它将花费5.14个小时来处理具有加密的树和属性的测试数据。在该示例中,所提出的技术节约83.8%的时间。改变|Ae|或者|Te|的值,线性地改变tpg。在所提出的技术中,在上面的技术中可以计算t=8.8秒并且t=50分钟,并且因此可以在该范围内调整时间预算以改变准确度。

相对准确度

如上面讨论的,给定选定的加密树

Figure BDA0002641612820000201

最终相对测试准确度可以计算为

Figure BDA0002641612820000202

上面描述的技术的若干扩展是可能的。

基于上面阐释的随机森林示例,可以导出能够应用于本文呈现的技术的机器学习算法的类型的通用原理。它们是(i)能够由算法的一部分(在这种情况下是树)单独评估的属性的子集;(ii)最终算法输出是所有算法部分的联合决定。例如,SVM基本上计算属性向量与SVM权重(训练的算法)的内积,其中任何单个属性可以由对应的SVM权重单独地评估,并且最终决定是加和运算而不是大多数投票。再次,能够隐藏被加和的值:可以在MPC中计算加和并且仅输出它是否达到要求的阈值。

另一扩展涉及允许使用属性的匿名版本,例如使用年龄范围(例如,[10;20])代替确切数字(例如,13),以便进一步在速度、准确度和敏感度之间权衡。考虑匿名属性可以被看作公开属性的事实,使用匿名属性的优点在于:

-它为数据拥有者20给出更多选项以处理敏感度,因为属性可以在公开与私有之间被设置;

-它允许使用匿名属性来更换私有属性,并且因此算法能够以受控的隐式等级获得更多速度;

-使用匿名属性代替使缺失属性不进行测试,所述算法可以在不牺牲速度的情况下获得更多准确度。

另一扩展涉及算法或者算法拥有者22提供用于构建提议30或者修正的提议30的引导。因此,代替在预分析阶段24中仅提供关于给定时间的准确度或者给定准确度的时间的反馈,算法拥有者节点22可以提供建议以引导用户/数据拥有者节点20更快并且更好地调整他们的提议30,例如,在多tΔ秒或者多AΔ非缺失属性的情况下,准确度可以提升ηΔ,或者反之亦然。

本文描述的技术可以应用于许多使用情况,例如,连同外部软件专家分析银行数据、医院数据等。典型应用是医院数据,其中医院作为数据拥有者20具有用于患者的数据,并且外部专家作为算法拥有者22具有利用大数据训练的算法。医院想要使用来自外部专家的良好训练的算法来分析他们的数据,由于某些属性的敏感度而不共享完整数据。外部专家不想要与医院共享算法。通常,基于充分安全的多方计算框架来进行分析,如果属性和数据集很大,则这是非常耗时的。在本文呈现的技术中,算法拥有者节点22通过在准确度、速度和敏感度之中进行权衡为医院给出个性化分析的自由,它允许利用一种机器学习算法进行部分安全的分析,并且它帮助数据拥有者20通过对速度和准确度的快速预分析来调整算法。

因此提供了使得用户能够定制或者调整由算法对输入数据的集合的评估以满足他们自己对评估的要求,例如速度和准确度。

通过研究附图、说明书和所附权利要求书,本领域技术人员在实践本文描述的原理和技术时可以理解并且实现对所公开的实施例的变型。在权利要求书中,词语“包括”不排除其他元件或者步骤,并且对词语“一”或“一个”的使用不排除多个。单个处理器或者其他单元可以履行权利要求书中记载的若干项目的功能。在相互不同的从属权利要求中记载了某些措施的仅有事实并不指示不能有利地利用这些措施的组合。计算机程序可以被存储或者分布在合适的介质上,例如与其他硬件一起供应或者作为其他硬件的一部分供应的光学存储介质或者固态介质,但是也可以以其他形式分布,例如经由互联网或者其他有线或无线电信系统。权利要求书中的任何附图标记不应被理解为对范围的限制。

26页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:信息处理装置和信息处理方法

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!