具体实施方式
在以下的叙述中,为了使读者更好地理解本申请而提出了许多技术细节。但是,本领域的普通技术人员可以理解,即使没有这些技术细节和基于以下各实施方式的种种变化和修改,也可以实现本申请所要求保护的技术方案。
部分概念的说明:
安全数据共享:是指多个数据方,在保护各自数据隐私的情况下,共同进行数据挖掘或机器学习工作。
为使本说明书的目的、技术方案和优点更加清楚,下面将结合附图对本说明书的实施方式作进一步地详细描述。
本说明书的第一实施方式涉及一种评估数据贡献程度的方法,其流程示意图如图2所示。
首先,需要说明的是,该方法由第一方执行,也就是说,该方法是第一方评估其他方数据贡献程度的方法。
如图2所示,该评估数据贡献程度的方法包括以下步骤:
在步骤201中,使用第一方自身的训练数据进行模型训练,得到第一模型。
也就是说,在步骤201中,第一方使用自己的训练数据训练一个模型,得到第一模型。
此后进入步骤203,使用第一方自身的训练数据,并且基于多方安全计算的方式和第二方一起进行模型训练,得到第二模型,其中,第二方在基于多方安全计算的方式和第一方进行模型训练的过程中,提供自身数据。
也就是说,在步骤203中,第一方使用自己的训练数据,第二方使用自己的数据,使用数据共享(多方安全计算)的建模方法,得到第二模型。
在本实施方式中,优选地,所述模型为逻辑回归模型。此外,也可以为神经网络模型或树模型等等。
多方安全计算是解决一组互不信任的参与方之间保护隐私的协同计算问题,例如,共同训练逻辑回归模型。多方安全计算要确保输入的独立性,计算的正确性,同时不泄露各输入值给参与计算的其他参与方。并在计算完成后,将结果给到各个参与方。
多方安全计算的方式主要可分为三类:
1.混淆电路;
2.同态加密;
3.秘密分享。
比如常见的逻辑回归模型,上述三种方式都可以实现,各有优缺点。也就是说,在本实施方式中,多方安全计算的方式可以包括上述三种方式。
其中,秘密分享是一种将秘密分割存储的密码技术,其将秘密以适当的方式拆分成多个秘密份额,每一个秘密份额由多个参与方中的一个参与方拥有和管理,单个参与方无法恢复完整秘密,只有若干个参与方共同协作才能恢复完整秘密。秘密分享目标在于阻止秘密过于集中,以达到分散风险和容忍入侵的目的。
秘密分享可大致分为两类:有可信初始化方(trust initializier)秘密分享以及无可信初始化方秘密分享。在有可信初始化方的秘密分享中,需要该可信初始化方对参与多方安全计算的各个参与方进行参数初始化(往往是产生满足一定条件的随机数)。在初始化完成后,可信初始化方将数据销毁,同时也消失,在接下来的多方安全计算过程中不再需要。
有可信初始化方的秘密共享矩阵乘法适用于下述情形:完整秘密数据是第一秘密份额集与第二秘密份额集的乘积,并且各个参与方各自拥有第一秘密份额集中的一个第一秘密份额以及第二秘密份额集中的一个第二秘密份额。通过有可信初始化方的秘密共享矩阵乘法,多个参与方中的每个参与方可以得到完整秘密数据的部分完整秘密数据并且各个参与方所得到的部分完整秘密数据之和是完整秘密数据,并且各个参与方将所得到的部分完整秘密数据公开给其余参与方,从而使得各个参与方能够在不需要公开各自所拥有的秘密份额的情况下得到完整秘密数据,由此保证了该多个参与方各自数据的安全。
此外,基于多方安全计算的方式进行模型训练也可以将服务设备中具有的可信区作为与外部隔离的执行环境,在所述可信区中对加密数据进行解密得到用户数据,以及在可信区内采用用户数据训练模型,使得整个训练模型的过程中,用户数据始终不会暴露给可信区之外,从而保护了用户隐私。
当然,上述只是举例说明了多方安全计算的两种实现方式。本领域技术人员可以理解,多方安全计算作为现有技术中的成熟技术,在此不再赘述。
需要说明的是,步骤201和步骤203的执行顺序不分先后,可以先执行步骤201,再执行步骤203;也可以先执行步骤203,再执行步骤201;也可以同时执行步骤201和步骤203。
此后进入步骤205,使用第一方自身的测试数据,分别得到所述第一模型的评估结果和所述第二模型的评估结果。
也就是说,在步骤205中,第一模型和第二模型在第一方的测试数据上分别得到各自的评估结果。
关于如何得到第一模型和第二模型的评估结果,针对不同的业务场景,有不同的评估标准:
举例来说,对于广告点击率模型,通常通过AUC指标来进行评估;对于信贷风控业务,通常通过KS指标来进行评估;对于电子商务领域,通常采用GMV指标进行评估,等等。
此后进入步骤207,根据所述第二模型的评估结果相对于所述第一模型的评估结果的提升程度,评估第二方数据的贡献程度。
也就是说,第二模型在第一方的测试数据上的效果相对于第一模型在第一方的测试数据上的效果提升程度,即为第二方数据的贡献程度。
举个例子来说,假设在一种情况下,通过测试得到第一模型的准确率为90%,第二模型的准确率为91%,则第二模型的准确率相对于第一模型的准确率提升了1%,提升的这1%的准确率就反映了第二方数据的贡献程度。
此后结束本流程。
综上所述,本说明书上述实施方式,通过使用不同的数据训练两个模型,并对这两个模型的评估结果进行比较,能够在保护各方数据隐私的前提下,评估各方数据对最终业务的贡献程度。
本说明书的第二实施方式涉及一种评估数据贡献程度的方法。第二实施方式与第一实施方式基本相同,区别仅在于:第一实施方式中参加数据共享的是第一方和第二方共两方;而第二实施方式中参加数据共享的是三方以上(包括三方)的多方。
在涉及多方数据共享的情况下,可以把多方数据分别一方一方地加入进来,即每次多加入一方数据,按照第一实施方式中的方法分别评估各方数据的贡献程度。
下面举例进行说明:
假设参加数据共享的还包括第三方,也就是说,所述评估数据贡献程度的方法还包括评估第三方数据的贡献程度,则先按照第一实施方式中的方法,先将第一方数据和第二方数据建模,再把第三方数据加入进来再建模,然后再作对比。
具体地说,在所述方法还包括评估第三方数据的贡献程度时,所述评估数据贡献程度的方法包括以下步骤:
使用第一方自身的训练数据进行模型训练,得到第一模型;
使用第一方自身的训练数据,并且基于多方安全计算的方式和第二方一起进行模型训练,得到第二模型,其中,第二方在基于多方安全计算的方式和第一方进行模型训练的过程中,提供自身数据;
使用第一方自身的测试数据,分别得到所述第一模型的评估结果和所述第二模型的评估结果;
根据所述第二模型的评估结果相对于所述第一模型的评估结果的提升程度,评估第二方数据的贡献程度;
使用第一方自身的训练数据,并且基于多方安全计算的方式和第二方、第三方一起进行模型训练,得到第三模型,其中第二方、第三方在基于多方安全计算的方式和第一方进行模型训练的过程中,均提供自身数据;
使用第一方自身的测试数据,得到所述第三模型的评估结果;
根据所述第三模型的评估结果相对于所述第二模型的评估结果的提升程度,评估第三方数据的贡献程度。
举个例子来说,假设在一种情况下,通过测试得到第一模型的准确率为90%,第二模型的准确率为91%,第三模型的准确率为93%,则第二模型的准确率相对于第一模型的准确率提升了1%,第三模型的准确率相对于第二模型的准确率提升了2%,第二模型提升的这1%的准确率就反映了第二方数据的贡献程度,第三模型提升的这2%的准确率就反映了第三方数据的贡献程度。
在所述多方为四方的情况下,则使用第一方自身的训练数据、第二方数据、第三方数据和第四方数据建模,然后再使用第一方自身的测试数据,分别得到各个模型的评估结果,最后再将各个模型的评估结果分别进行对比,从而评估各方数据的贡献程度。
以此类推,所述评估数据贡献程度的方法可以用于五方、六方、七方、……数据共享的情况,并且能够在保护各方数据隐私的前提下,评估各方数据对最终业务的贡献程度。
第一实施方式是与本实施方式相对应的方法实施方式,第一实施方式中的技术细节可以应用于本实施方式,本实施方式中的技术细节也可以应用于第一实施方式。
本申请的第三实施方式涉及一种评估数据贡献程度的装置,其结构示意图如图3所示。
首先,需要说明的是,该装置用于第一方,也就是说,该装置是第一方用来评估其他方数据贡献程度的装置。
如图3所示,该评估数据贡献程度的装置包括:
第一训练模块,用于使用第一方自身的训练数据进行模型训练,得到第一模型。
在本实施方式中,优选地,所述模型为逻辑回归模型。此外,也可以为神经网络模型或树模型等等。
第二训练模块,用于使用第一方自身的训练数据,并且基于多方安全计算的方式和第二方一起进行模型训练,得到第二模型,其中,第二方在基于多方安全计算的方式和第一方进行模型训练的过程中,提供自身数据。
第一方数据使用自己的训练数据,第二方数据使用自己的数据,使用数据共享(多方安全计算)的建模方法,得到第二模型。
多方安全计算是解决一组互不信任的参与方之间保护隐私的协同计算问题,例如,共同训练一下逻辑回归模型。多方安全计算要确保输入的独立性,计算的正确性,同时不泄露各输入值给参与计算的其他参与方。计算完成后,将结果给到各个参与方。
多方安全计算的方式主要可分为三类:
1.混淆电路;
2.同态加密;
3.秘密分享。
比如常见的逻辑回归模型,三种方法都可以实现,各有优缺点。也就是说,在本实施方式中,多方安全计算的方式包括上述三种方式。
其中,秘密分享是一种将秘密分割存储的密码技术,其将秘密以适当的方式拆分成多个秘密份额,每一个秘密份额由多个参与方中的一个参与方拥有和管理,单个参与方无法恢复完整秘密,只有若干个参与方共同协作才能恢复完整秘密。秘密分享目标在于阻止秘密过于集中,以达到分散风险和容忍入侵的目的。
秘密分享可大致分为两类:有可信初始化方(trust initializier)秘密分享以及无可信初始化方秘密分享。在有可信初始化方的秘密分享中,需要该可信初始化方对参与多方安全计算的各个参与方进行参数初始化(往往是产生满足一定条件的随机数)。在初始化完成后,可信初始化方将数据销毁,同时也消失,在接下来的多方安全计算过程中不再需要。
有可信初始化方的秘密共享矩阵乘法适用于下述情形:完整秘密数据是第一秘密份额集与第二秘密份额集的乘积,并且各个参与方各自拥有第一秘密份额集中的一个第一秘密份额以及第二秘密份额集中的一个第二秘密份额。通过有可信初始化方的秘密共享矩阵乘法,多个参与方中的每个参与方可以得到完整秘密数据的部分完整秘密数据并且各个参与方所得到的部分完整秘密数据之和是完整秘密数据,并且各个参与方将所得到的部分完整秘密数据公开给其余参与方,从而使得各个参与方能够在不需要公开各自所拥有的秘密份额的情况下得到完整秘密数据,由此保证了该多个参与方各自数据的安全。
此外,基于多方安全计算的方式进行模型训练也可以将服务设备中具有的可信区作为与外部隔离的执行环境,在所述可信区中对加密数据进行解密得到用户数据,以及在可信区内采用用户数据训练模型,使得整个训练模型的过程中,用户数据始终不会暴露给可信区之外,从而保护了用户隐私。
当然,上述只是举例说明了多方安全计算的两种实现方式。本领域技术人员可以理解,多方安全计算作为现有技术中的成熟技术,在此不再赘述。
第一测试模块,用于使用第一方自身的测试数据,分别得到所述第一模型的评估结果和所述第二模型的评估结果。
第一模型和第二模型在第一方的测试数据上分别得到各自的评估结果。
关于如何得到第一模型和第二模型的评估结果,针对不同的业务场景,有不同的评估标准:
举例来说,对于广告点击率模型,通常通过AUC指标来进行评估;对于信贷风控业务,通常通过KS指标来进行评估;对于电子商务领域,通常采用GMV指标进行评估,等等。
第一评估模块,用于根据所述第二模型的评估结果相对于所述第一模型的评估结果的提升程度,评估第二方数据的贡献程度。
也就是说,第二模型在第一方的测试数据上的效果相对于第一模型在第一方的测试数据上的效果提升程度,即为第二方数据的贡献程度。
举个例子来说,假设在一种情况下,通过测试得到第一模型的准确率为90%,第二模型的准确率为91%,则第二模型的准确率相对于第一模型的准确率提升了1%,提升的这1%的准确率就反映了第二方数据的贡献程度。
综上所述,本说明书上述实施方式,通过使用不同的数据训练两个模型,并对这两个模型的评估结果进行比较,能够在保护各方数据隐私的前提下,评估各方数据对最终业务的贡献程度。
第一实施方式是与本实施方式相对应的方法实施方式,第一实施方式中的技术细节可以应用于本实施方式,本实施方式中的技术细节也可以应用于第一实施方式。
本说明书的第四施方式涉及一种评估数据贡献程度的装置。第四实施方式与第三实施方式基本相同,区别仅在于:第一实施方式中参加数据共享的是第一方和第二方共两方;而第二实施方式中参加数据共享的是三方以上(包括三方)的多方。
在涉及多方数据的情况下,可以把多方数据分别一方一方地加入进来,即每次多加入一方数据,使用第三实施方式中的装置分别评估各方数据的贡献程度。
下面以三方参加数据共享为例,进行说明:
也就是说,所述装置还用于评估第三方数据的贡献程度,在此种情况下,该评估数据贡献程度的装置还包括:
第三训练模块,用于使用第一方自身的训练数据,并且基于多方安全计算的方式和第二方、第三方一起进行模型训练,得到第三模型,其中第二方、第三方在基于多方安全计算的方式和第一方进行模型训练的过程中,均提供自身数据。
第二测试模块,用于使用第一方自身的测试数据,得到所述第三模型的评估结果。
第二评估模块,用于根据所述第三模型的评估结果相对于所述第二模型的评估结果的提升程度,评估第三方数据的贡献程度。
举个例子来说,假设在一种情况下,通过测试得到第一模型的准确率为90%,第二模型的准确率为91%,第三模型的准确率为93%,则第二模型的准确率相对于第一模型的准确率提升了1%,第三模型的准确率相对于第二模型的准确率提升了2%,第二模型提升的这1%的准确率就反映了第二方数据的贡献程度,第三模型提升的这2%的准确率就反映了第三方数据的贡献程度。
在所述多方为四方的情况下,则使用第一方自身的训练数据、第二方数据、第三方数据和第四方数据建模,然后再使用第一方自身的测试数据,分别得到各个模型的评估结果,最后再将各个模型的评估结果分别进行对比,从而评估各方数据的贡献程度。
以此类推,所述评估数据贡献程度的方法可以用于五方、六方、七方、……数据共享的情况,并且能够在保护各方数据隐私的前提下,评估各方数据对最终业务的贡献程度。
第二实施方式是与本实施方式相对应的方法实施方式,第二实施方式中的技术细节可以应用于本实施方式,本实施方式中的技术细节也可以应用于第二实施方式。
需要说明的是,本领域技术人员应当理解,上述评估数据贡献程度的装置的实施方式中所示的各模块的实现功能可参照前述评估数据贡献程度的方法的相关描述而理解。上述评估数据贡献程度的装置的实施方式中所示的各模块的功能可通过运行于处理器上的程序(可执行指令)而实现,也可通过具体的逻辑电路而实现。本说明书实施例中的上述评估数据贡献程度的装置如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本说明书实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本申请各个实施例所述方法的全部或部分。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read Only Memory)、磁碟或者光盘等各种可以存储程序代码的介质。这样,本说明书实施例不限制于任何特定的硬件和软件结合。
相应地,本说明书实施方式还提供一种计算机可读存储介质,其中存储有计算机可执行指令,该计算机可执行指令被处理器执行时实现本说明书的各方法实施方式。计算机可读存储介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括但不限于,相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读存储介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
此外,本说明书实施方式还提供一种评估数据贡献程度的设备,其中包括用于存储计算机可执行指令的存储器,以及,处理器;该处理器用于在执行该存储器中的计算机可执行指令时实现上述各方法实施方式中的步骤。其中,该处理器可以是中央处理单元(Central Processing Unit,简称“CPU”),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,简称“DSP”)、专用集成电路(ApplicationSpecificIntegrated Circuit,简称“ASIC”)等。前述的存储器可以是只读存储器(read-only memory,简称“ROM”)、随机存取存储器(random access memory,简称“RAM”)、快闪存储器(Flash)、硬盘或者固态硬盘等。本发明各实施方式所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
需要说明的是,在本专利的申请文件中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。本专利的申请文件中,如果提到根据某要素执行某行为,则是指至少根据该要素执行该行为的意思,其中包括了两种情况:仅根据该要素执行该行为、和根据该要素和其它要素执行该行为。多个、多次、多种等表达包括2个、2次、2种以及2个以上、2次以上、2种以上。
在本说明书提及的所有文献都被认为是整体性地包括在本说明书的公开内容中,以便在必要时可以作为修改的依据。此外应理解,以上所述仅为本说明书的较佳实施例而已,并非用于限定本说明书的保护范围。凡在本说明书一个或多个实施例的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本说明书一个或多个实施例的保护范围之内。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。