检测数据模型安全性的方法及装置转让专利

申请号 : CN201810785405.9

文献号 : CN110728290B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 王华忠李漓春殷山

申请人 : 阿里巴巴集团控股有限公司

摘要 :

本说明书实施例提供一种检测数据模型的安全性以及降低其安全风险的方法和装置,其中数据模型由数据需求方提供以部署到数据提供方,用于对数据提供方的源数据进行模型运算。在上述中,首先获取数据模型中包含的多个模型参数,然后确定多个模型参数的差异统计信息,包括与参数取值大小差异相关的统计量,和/或与参数位数差异相关的统计量。接着,根据差异统计信息,确定数据模型的安全性评估信息。进一步地,还可以对数据模型的输出结果进行限制处理,以降低其输出结果的信息量,进一步降低安全性风险。

权利要求 :

1.一种检测数据模型的安全性的方法,所述数据模型由数据需求方提供以部署到数据提供方,用于对数据提供方的源数据进行模型运算;所述方法包括:获取所述数据模型中包含的多个模型参数;

确定所述多个模型参数的差异统计信息,所述差异统计信息包括与参数取值大小差异相关的第一统计量,和/或与参数位数差异相关的第二统计量;

根据所述差异统计信息,确定所述数据模型的安全性评估信息。

2.根据权利要求1所述的方法,其中,所述方法由所述数据需求方执行,所述确定所述数据模型的安全性评估信息包括:将所述差异统计信息确定为所述安全性评估信息;

所述方法还包括,将所述安全性评估信息提供给所述数据提供方。

3.根据权利要求1所述的方法,其中所述方法由所述数据需求方执行,所述确定所述数据模型的安全性评估信息包括:根据所述差异统计信息,和预定的差异阈值,确定安全性评估信息;

所述方法还包括,将所述安全性评估信息提供给所述数据提供方。

4.根据权利要求1所述的方法,其中所述方法由所述数据提供方执行;

所述获取所述数据模型中包含的多个模型参数包括,从所述数据需求方接收所述多个模型参数。

5.根据权利要求4所述的方法,其中所述确定所述数据模型的安全性评估信息包括:根据所述差异统计信息,和预定的差异阈值,确定安全性评估信息。

6.根据权利要求4所述的方法,还包括,根据所述安全性评估信息确定是否接受所述数据模型的部署。

7.根据权利要求3或5所述的方法,其中根据所述差异统计信息,和预定的差异阈值,确定安全性评估信息包括:根据针对所述差异统计信息中某个差异统计量预设的多个差异阈值,将该某个差异统计量划分为不同范围,将所述不同范围对应于不同的安全等级作为所述安全性评估信息。

8.根据权利要求3或5所述的方法,其中所述差异统计信息包括多个统计量,所述根据所述差异统计信息,和预定的差异阈值,确定安全性评估信息包括:针对所述多个统计量中的各个统计量与对应差异阈值的比较,确定与各个统计量相关的安全分数;

基于所述与各个统计量相关的安全分数,以及针对各个统计量预设的权重,确定总的安全分数作为安全性评估信息。

9.根据权利要求1所述的方法,其中所述第一统计量包括以下中的至少一项:最大参数与最小参数的比值,最大参数与最小参数的差值相对于最大参数的比例,最大参数与最小参数的差值相对于最小参数的比例,最大参数与参数均值的比例。

10.根据权利要求1所述的方法,其中所述第一统计量包括以下中的至少一项:参数的方差;所述多个模型参数的两两组合中,参数取值比例高于预设比例阈值的组合数目,参数取值之差高于预设差值阈值的组合数目。

11.根据权利要求1所述的方法,其中所述第二统计量包括以下中的至少一项:各参数小数位数的最大值与最小值的差,各参数的小数部分中连续有效零的个数,各参数的小数部分中连续有效零个数的最大值。

12.根据权利要求1所述的方法,其中所述数据模型包括,逻辑回归模型,决策树模型,梯度提升决策树GBDT模型,评分卡模型。

13.一种检测数据模型的安全性的装置,所述数据模型由数据需求方提供以部署到数据提供方,用于对数据提供方的源数据进行模型运算;所述装置包括:获取单元,配置为获取所述数据模型中包含的多个模型参数;

统计确定单元,配置为确定所述多个模型参数的差异统计信息,所述差异统计信息包括与参数取值大小差异相关的第一统计量,和/或与参数位数差异相关的第二统计量;

安全确定单元,配置为根据所述差异统计信息,确定所述数据模型的安全性评估信息。

14.根据权利要求13所述的装置,其中,所述装置设置在所述数据需求方,所述安全确定单元配置为:将所述差异统计信息确定为所述安全性评估信息;

所述装置还包括提供单元,配置为将所述安全性评估信息提供给所述数据提供方。

15.根据权利要求13所述的装置,其中所述装置设置在所述数据需求方,所述安全确定单元配置为:根据所述差异统计信息,和预定的差异阈值,确定安全性评估信息;

所述装置还包括提供单元,配置为将所述安全性评估信息提供给所述数据提供方。

16.根据权利要求13所述的装置,其中所述装置设置在所述数据提供方;

所述获取单元配置为,从所述数据需求方接收所述多个模型参数。

17.根据权利要求16所述的装置,其中所述安全确定单元配置为:根据所述差异统计信息,和预定的差异阈值,确定安全性评估信息。

18.根据权利要求16所述的装置,还包括部署确定单元,配置为根据所述安全性评估信息确定是否接受所述数据模型的部署。

19.根据权利要求15或17所述的装置,其中所述安全确定单元配置为:根据针对某个差异统计量预设的多个差异阈值,将该某个差异统计量划分为不同范围,将所述不同范围对应于不同的安全等级作为所述安全性评估信息。

20.根据权利要求15或17所述的装置,其中所述差异统计信息包括多个统计量,所述安全确定单元配置为:针对所述多个统计量中的各个统计量与对应差异阈值的比较,确定与各个统计量相关的安全分数;

基于所述与各个统计量相关的安全分数,以及针对各个统计量预设的权重,确定总的安全分数作为安全性评估信息。

21.根据权利要求13所述的装置,其中所述第一统计量包括以下中的至少一项:最大参数与最小参数的比值,最大参数与最小参数的差值相对于最大参数的比例,最大参数与最小参数的差值相对于最小参数的比例,最大参数与参数均值的比例。

22.根据权利要求13所述的装置,其中所述第一统计量包括以下中的至少一项:参数的方差;所述多个模型参数的两两组合中,参数取值比例高于预设比例阈值的组合数目,参数取值之差高于预设差值阈值的组合数目。

23.根据权利要求13所述的装置,其中所述第二统计量包括以下中的至少一项:各参数小数位数的最大值与最小值的差,各参数的小数部分中连续有效零的个数,各参数的小数部分中连续有效零个数的最大值。

24.根据权利要求13所述的装置,其中所述数据模型包括,逻辑回归模型,决策树模型,梯度提升决策树GBDT模型,评分卡模型。

25.一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行权利要求1-12中任一项的所述的方法。

26.一种计算设备,包括存储器和处理器,其特征在于,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现权利要求1-12中任一项所述的方法。

说明书 :

检测数据模型安全性的方法及装置

技术领域

[0001] 本说明书一个或多个实施例涉及数据安全领域,尤其涉及检测数据模型的安全性的方法和装置。

背景技术

[0002] 大数据时代,存在非常多的数据孤岛。每个自然人的数据分散存于不同的企业中,企业与企业之间由于竞争关系和用户隐私保护的考虑,并不是完全的互相信任。企业之间进行数据合作的重要原则是原始数据不出边界,把计算移到数据端完成。多方安全计算平台就是为了解决不同企业数据合作过程中数据隐私保护问题而开发设计。
[0003] 数据合作的一种常用的方案是:在数据合作过程中,数据需求方把自己训练好的的机器学习数据模型部署到数据提供方。模型预测时,系统实时获取数据提供方的原始数据,然后经过模型计算,得到模型结果,返回给数据需求方。如果部署的是安全的模型,那么数据需求方是不能通过模型的输出反推模型的全部或者部分输入结果的,数据提供方不会泄露原始数据。然而,如果数据需求方对模型进行特殊构造,那么有可能根据模型结果获得部分原始数据。此时对数据提供方而言,该模型就是一个不安全的模型。模型的安全部署是提高平台安全性、增强数据合作双方的互相信任的重要环节。
[0004] 因此,需要一种方案,能够有效地对数据模型的安全性进行检测,并尽可能降低安全性风险。

发明内容

[0005] 本说明书一个或多个实施例描述了一种方法和装置,在数据模型部署之前,基于数据模型中模型参数的差异统计信息,检测该数据模型的安全性;进一步地,还可以对数据模型的输出结果进行限制和调整,从而降低数据模型的安全风险。
[0006] 根据第一方面,提供了一种检测数据模型的安全性的方法,所述数据模型由数据需求方提供以部署到数据提供方,用于对数据提供方的源数据进行模型运算;所述方法包括:
[0007] 获取所述数据模型中包含的多个模型参数;
[0008] 确定所述多个模型参数的差异统计信息,所述差异统计信息包括与参数取值大小差异相关的第一统计量,和/或与参数位数差异相关的第二统计量;
[0009] 根据所述差异统计信息,确定所述数据模型的安全性评估信息。
[0010] 在一种实施方式中,上述方法由数据需求方执行。
[0011] 在这样的情况下,根据一个实施例,数据需求方将差异统计信息确定为安全性评估信息,并将安全性评估信息提供给所述数据提供方。
[0012] 根据另一实施例,数据需求方根据差异统计信息,和预定的差异阈值,确定安全性评估信息;并将安全性评估信息提供给所述数据提供方。
[0013] 在另一种实施方式中,上述方法由数据提供方执行。
[0014] 在这样的情况下,数据提供方从数据需求方接收所述多个模型参数。
[0015] 根据一个实施例,数据提供方根据所述差异统计信息,和预定的差异阈值,确定安全性评估信息。进一步地,还可以根据所述安全性评估信息确定是否接受所述数据模型的部署。
[0016] 根据一种可能的实施方式,通过以下方式确定安全性评估信息:根据针对某个差异统计量预设的多个差异阈值,将该某个差异统计量划分为不同范围,将所述不同范围对应于不同的安全等级作为所述安全性评估信息。
[0017] 根据另一种可能的实施方式,差异统计信息包括多个统计量,在这样的情况下,通过以下方式确定安全性评估信息:
[0018] 针对所述多个统计量中的各个统计量与对应差异阈值的比较,确定与各个统计量相关的安全分数;
[0019] 基于所述与各个统计量相关的安全分数,以及针对各个统计量预设的权重,确定总的安全分数作为安全性评估信息。
[0020] 在一个实施例中,上述第一统计量包括以下中的至少一项:最大参数与最小参数的比值,最大参数与最小参数的差值相对于最大参数的比例,最大参数与最小参数的差值相对于最小参数的比例,最大参数与参数均值的比例。
[0021] 在另一实施例中,上述第一统计量包括以下中的至少一项:参数的方差;所述多个模型参数的两两组合中,参数取值比例高于预设比例阈值的组合数目,参数取值之差高于预设差值阈值的组合数目。
[0022] 在一个实施例中,第二统计量包括以下中的至少一项:各参数小数位数的最大值与最小值的差,各参数的小数部分中连续有效零的个数,各参数的小数部分中连续有效零个数的最大值。
[0023] 在一个实施例中,数据模型包括,逻辑回归模型,决策树模型,梯度提升决策树GBDT模型,评分卡模型。
[0024] 根据第二方面,提供一种降低数据模型的安全风险的方法,所述数据模型由数据需求方提供以部署到数据提供方,用于对数据提供方的源数据进行模型运算;所述方法包括:
[0025] 确定所述数据模型的输出结果的结果类型,所述结果类型至少包括连续数值和离散分类概率;
[0026] 在所述结果类型为连续数值的情况下,采用预定比特位数表示所述连续数值;
[0027] 在所述结果类型为离散分类概率的情况下,将所述离散分类概率转换为分类决策结果。
[0028] 在一个实施例中,所述预定比特位数基于约定的输出结果的范围而预先设定。
[0029] 根据一个实施例,所述连续数值为小数,采用预定比特位数表示所述连续数值包括,对于所述连续数值保留预定位数的小数,该预定位数基于所述数据模型的模型参数的位数设置而预先设定。
[0030] 在一个实施例中,通过以下方式将离散分类概率转换为分类决策结果:获取分类决策的分类边界,通过所述离散分类概率与所述分类边界的比较,将所述离散分类概率转换为分类决策结果。
[0031] 根据第三方面,提供一种检测数据模型的安全性的装置,所述数据模型由数据需求方提供以部署到数据提供方,用于对数据提供方的源数据进行模型运算;所述装置包括:
[0032] 获取单元,配置为获取所述数据模型中包含的多个模型参数;
[0033] 统计确定单元,配置为确定所述多个模型参数的差异统计信息,所述差异统计信息包括与参数取值大小差异相关的第一统计量,和/或与参数位数差异相关的第二统计量;
[0034] 安全确定单元,配置为根据所述差异统计信息,确定所述数据模型的安全性评估信息。
[0035] 根据第四方面,提供一种降低数据模型的安全风险的装置,所述数据模型由数据需求方提供以部署到数据提供方,用于对数据提供方的源数据进行模型运算;所述装置包括:
[0036] 类型确定单元,配置为确定所述数据模型的输出结果的结果类型,所述结果类型至少包括连续数值和离散分类概率;
[0037] 连续数值处理单元,配置为在所述结果类型为连续数值的情况下,采用预定比特位数表示所述连续数值;
[0038] 离散结果处理单元,配置为在所述结果类型为离散分类概率的情况下,将所述离散分类概率转换为分类决策结果。
[0039] 根据第五方面,提供了一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行第一方面和第二方面的方法。
[0040] 根据第六方面,提供了一种计算设备,包括存储器和处理器,其特征在于,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现第一方面和第二方面的方法。
[0041] 通过本说明书实施例提供的方法和装置,在数据模型部署之前,基于数据模型中模型参数的差异统计信息,确定数据模型的安全性评估信息,从而检测该数据模型的安全性。进一步地,在模型预测阶段,还可以对数据模型的输出结果进行限制和调整,降低输出结果的信息量,从而降低数据模型的安全风险。

附图说明

[0042] 为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
[0043] 图1示出本说明书披露的一个实施例的实施场景示意图;
[0044] 图2示出根据一个实施例的检测数据模型的安全性的方法;
[0045] 图3A示出在一个实施例中检测方法的执行方式;
[0046] 图3B示出在另一实施例中检测方法的执行方式;
[0047] 图3C示出在又一实施例中检测方法的执行方式;
[0048] 图4示出根据一个实施例的降低数据模型安全风险的方法的流程图;
[0049] 图5示出根据一个实施例的模型安全性检测装置的示意性框图;
[0050] 图6示出根据一个实施例的降低安全风险的装置的示意性框图。

具体实施方式

[0051] 下面结合附图,对本说明书提供的方案进行描述。
[0052] 图1为本说明书披露的一个实施例的实施场景示意图。在该实施场景中,数据需求方与数据提供方进行数据合作,完成数据的处理和分析。具体地,数据提供方具有有待分析的源数据,但是可能没有适用的数据分析工具。数据需求方根据数据分析的需要,构建和训练数据模型,然后把训练好的数据模型部署到数据提供方。在这个意义上,数据需求方又可以称为模型提供方。模型提供方将数据模型部署到数据提供方后,数据模型可以在数据提供方的平台中运行,获取数据提供方的源数据,对源数据进行分析、处理、运算,然后将运算结果返回给数据需求方,即模型提供方。
[0053] 例如,在一个例子中,数据提供方为银行或金融机构,他们拥有大量的用户信息作为源数据,这些用户信息例如包括用户年龄、收入、地址等用户私密信息。银行或金融机构希望基于这些用户信息,对用户的信用风险进行评估,但是出于对用户的隐私保护,并不能直接把这些数据提供给其他机构。于是,可以选择与数据需求方进行数据合作。数据需求方(即模型提供方)例如是电子金融平台,例如支付宝,蚂蚁财富平台等。这些平台出于业务需要,希望能够获取用户的信用风险数据。因此,作为数据需求方的电子金融平台可以训练好一些信用评估模型,部署到银行或金融机构,对用户信息进行处理和分析,从而获得的用户信用风险评估结果。
[0054] 为了进一步保证数据的安全,在本说明书提供的一个或多个实施例中,在常规模型训练、模型部署之外,还对数据模型本身的安全性进行检测和评估,并采取一定方式降低数据模型的安全风险。
[0055] 在一个实施例中,在对数据模型进行部署之前,首先检测数据模型的安全性。安全性的检测可以基于数据模型中模型参数的差异统计来进行。数据提供方可以根据安全性检测的结果,来决定是否接受该数据模型的部署,或者要求模型提供方对模型参数进行修改。另一方面,还可以对数据模型的输出结果进行限制调整,减少输出结果的信息量,进一步降低根据输出结果窃取数据提供方的源数据的风险。下面描述以上构思的具体实现方式。
[0056] 图2示出根据一个实施例的检测数据模型的安全性的方法。如前所述,该数据模型由数据需求方提供以部署到数据提供方,用于对数据提供方的源数据进行模型运算。如图2所示,该检测方法包括:步骤21,获取数据模型中包含的多个模型参数;步骤23,确定所述多个模型参数的差异统计信息,所述差异统计信息包括与参数取值大小差异相关的第一统计量,和/或与参数位数差异相关的第二统计量;步骤25,根据差异统计信息,确定数据模型的安全性评估信息。图2所示的方法可以由数据提供方执行,或者由数据需求方执行,或者由数据提供方与数据需求方协同执行。
[0057] 图3A到图3C分别示出在不同实施例中以上的检测方法的执行方式。在图3A所示例的实施例中,数据模型安全性的检测主要由数据提供方执行。在该实施例中,模型提供方/数据需求方将训练好的模型中的模型参数发送给数据提供方。换而言之,数据提供方在执行步骤21时,接收模型提供方所提供的模型参数。然后,在步骤23,确定模型参数的差异统计信息;在步骤25,分析差异统计信息,得出模型安全性评估信息。进一步地,数据提供方可以根据安全性评估信息决定是否接受该数据模型的部署,并向模型提供方返回是否接受部署的消息。
[0058] 在图3B所示例的实施例中,数据模型安全性的检测主要由数据需求方即模型提供方执行。在该实施例中,模型提供方/数据需求方在步骤21,获取已训练的数据模型的模型参数。然后,在步骤23,确定模型参数的差异统计信息;在步骤25,分析差异统计信息,得出模型安全性评估信息。进一步地,模型提供方可以将模型安全性评估信息发送给数据提供方,使得数据提供方根据该安全性评估信息决定是否接受该数据模型的部署,并向模型提供方返回是否接受部署的消息。
[0059] 在图3C所示例的实施例中,数据模型安全性的检测由模型提供方和数据提供方协同执行。在该实施例中,模型提供方在步骤21,获取已训练的数据模型的模型参数。然后,在步骤23,确定模型参数的差异统计信息。然后,模型提供方将差异统计信息发送给数据提供方,由数据提供方对差异统计信息进行进一步分析,判断模型的安全性。在该实施例中,也可以认为,模型提供方在步骤25,将差异统计信息确定为初步的安全性评估信息,然后将该初步的安全性评估信息发送给数据提供方。数据提供方进而对初步的安全性评估信息进行进一步分析处理,得出完善的安全性评估信息。从而,数据提供方可以基于完善的安全性评估信息,决定是否接受该数据模型的部署,并向模型提供方返回是否接受部署的消息。
[0060] 下面描述以上各个步骤的具体执行过程。
[0061] 首先,在步骤21,获取数据模型中包含的多个模型参数。可以理解,这里的数据模型是模型提供方构建、训练好的数据模型,包括逻辑回归模型、决策树模型,评分卡模型,梯度提升决策树GBDT模型等。模型参数可以是模型计算过程中使用到的各个参数,例如权重系数等。对于较为复杂的神经网络模型,可以选取同一隐藏层对应的模型参数进行分析。
[0062] 接着,在步骤23,确定所述多个模型参数的差异统计信息。差异统计信息可以包括,与参数取值大小差异相关的第一统计量,和/或与参数位数差异相关的第二统计量。下面描述差异统计信息,例如第一统计量和第二统计量,对模型安全性的影响。
[0063] 如前所述,在安全的数据模型中,模型提供方不能通过模型的输出结果反向推出模型的全部或部分输入,因而不会泄露源数据。然而,通过对模型参数进行特殊设置,例如将参数的取值大小,或者参数位数进行异常的差异化设置,却有可能从输出结果反推出部分输入数据。下面结合一个简单的例子说明这个过程。
[0064] 在一个例子中,数据模型为逻辑回归模型,更简单地,采用的是如下线性回归函数:
[0065] Y=f(A,X)=a1*x1+a2*x2+a3*x3+a4*x4+a5*x5(式1)
[0066] 其中,a1到a5为输入数据,x1到x5为模型参数。
[0067] 目前许多逻辑回归模型在处理连续变量的源数据时,为了提高后续计算效率,会首先对变量进行分箱,然后进行独热(one-hot)编码转换,这样处理的结果是,与模型参数直接运算的变量取值都是0或1。也就是说,以上a1到a5是与源数据对应的经处理的输入数据,取值为0或1。并且,源数据处理的过程也是由数据模型进行,因此模型提供方可以知晓这些输入变量的含义。例如,在一个例子中,输入变量数据a1是对连续变量“用户年龄”进行分箱、编码的结果,表示年龄是否大于30岁,当取0时,表示小于30岁,取1时表示大于30岁。类似地,输入变量数据a2和a3可以是对连续变量“用户收入”进行分箱、编码的结果,其中a2表示收入是否超过1万元,a3表示收入是否超过3万元,等等。因此,当a2和a3均取0,表示用户收入不足1万元;当a2取1,a3取0,表示用户收入在1万元到3万元之间;当a2和a3均取1,表示用户收入高于3万元。
[0068] 对于以上的公式1,通过对模型参数x1到x5进行异常的差异化设置,有可能从输出结果反推出部分输入数据。
[0069] 一方面,差异化设置可以体现为,参数取值大小的差异化。
[0070] 在一个例子中,如果将某个参数的取值设置为远远大于其他参数,那么这样的差异化设置有可能为反推源数据提供线索。
[0071] 例如,在一个具体例子中,x1,x2,...x5的取值分别是0.9,0.12,0.153,0.03,0.09,其中x1的取值被设置为远远大于其他参数。那么x1是一个非常敏感的字段。在公式(1)中输入数据a1到a5均取值为0或1的情况下,通过最后结果的大小,至少可以判断与x1对应的输入参数a1的取值。如果结果Y大于0.9,说明a1取值是1,否则是0,(因为即使a2到a5全部取1,x2到x5的和也远远不足0.9)。由此,通过输出结果,反推出输入变量a1的取值,进而获取到原始用户信息,例如a1所表示的用户是否大于30岁。
[0072] 针对这样的情况,可以获取以下统计量中的一项或多项作为第一统计量:多个模型参数中,最大参数与最小参数的比值、最大参数与最小参数的差值相对于最大参数的比例、最大参数与最小参数的差值相对于最小参数的比例、最大参数与参数均值的比例等。这些统计量都可以反映,是否存在取值异常的参数,特别是取值远大于其他参数的异常参数,从而为模型的安全性评估提供参考依据。
[0073] 在一个例子中,进一步地,如果将多个参数的取值设置为互相之间差距过大,那么这样的差异化设置也可以用于反推源数据。
[0074] 例如,在一个具体例子中,x1,x2,...x5的取值分别是0.9,0.12,0.303,0.03,0.034。可以看到,这个例子中,5个参数中,x1的取值接近1,x2和x3为同一量级,但是有3倍的差距,而x4和x5则比x1到x3小一个量级。通过这样差距较大的参数设置,有可能通过结果反推输入变量的值。例如,可以推出如下结果:
[0075] 如果:0.4
[0076] 如果:0.9
[0077] 如果:1.0
[0078] 如果:Y>1.3,那么:a1=1,a2=1,a3=1。
[0079] 由此,可以通过输出结果Y的范围,反推出输入变量a1,a2和a3的取值,进而获取到原始用户信息,例如通过a1取值推断用户是否大于30岁,根据a2和a3的取值推断用户收入的范围。
[0080] 针对这样的情况,可以获取以下统计量中的一项或多项作为第一统计量:参数的方差;多个模型参数的两两组合中,参数取值比例高于预设比例阈值的组合数目,参数取值之差高于预设差值阈值的组合数目,等等。例如,对于以上的x1到x5,可以形成10种两两参数组合,如果预设比例阈值为10,那么参数取值比例高于预设比例阈值(10)的组合数目为3,即x1x4,x1x5,x3x4这3个组合。此外还可以计算参数取值之差过大的组合数目等统计量。
这些统计量旨在反映,多个参数的取值互相之间是否存在差距过大的情况,从而为模型的安全性评估提供参考依据。
[0081] 另一方面,参数的差异化设置还可以体现为,参数位数的差异化。
[0082] 在一个例子中,如果将某些参数的小数有效位数进行特殊设置,例如位数远超其他参数,或者位数差异较大,那么小数位数的设置也可以起到特殊标记的作用,有可能为反推源数据提供线索。
[0083] 例如,在一个具体例子中,x1,x2,...x5的取值分别是0.310000,0.101000,0.800100,0.300010,0.500001。可以看到,这5个参数的小数有效位数(即不含末尾的0)分别为2位,3位,4位,5位和6位。如此,通过结果的小数有效位数,可以反推出至少部分输入变量的值。例如,如果结果Y的小数有效位数为5位,那么至少可以推断,x4参与了运算,a4取值为1。
[0084] 更进一步地,在以上例子中,实际上各个参数通过中间的零和末尾的1进行了特殊的标记。各个参数的小数点后第一位为取值位,从小数点后两位开始实际上作用为标记位,分别将小数点后第2位,第3位,第4位到第6位标记为1,其他位数填充0。如此,可以从输出结果Y的小数点后两位开始的部分推断输入变量的取值,这部分中哪一位是1,对应的输入变量取值即为1。例如,如果输出结果Y的小数部分为.801001,那么可以推断,x2和x5参与了运算,相应地,a2和a5取值为1,其他变量取值为0。
[0085] 针对这样的情况,可以获取以下统计量中的一项或多项作为第二统计量:各参数小数位数的最大值与最小值的差,各参数的小数部分中连续有效零的个数,各参数的小数部分中连续有效零个数的最大值,等等。这些统计量都可以反映,是否存在小数位数异常的参数,例如小数位数的最大值与最小值的差可以反映小数位数长度的异常,小数部分中连续有效零的个数(也就是中间包含的连续0的个数)可以反映该小数是否可能用作标记位,等等。因此,统计与参数位数差异相关的第二统计量也可以作为模型的安全性评估的依据。
[0086] 尽管在以上的例子中,是以输入变量经过分箱、编码后取值为0或1的离散值的例子进行说明,但是这样的构思也同样适用于输入变量为连续变量的情况。
[0087] 例如,仍然以以上的公式(1)为例,假定输入变量a1表示用户收入,是取值范围在0到100000之间的连续变量,一般地,a1的取值在2000到50000之间。假定这个变量是模型提供方最为关注的变量,那么可以将对应的模型参数x1设置为远远大于其他参数,例如x1=0.99,x2到x5都是0.01左右的大小。那么最终得到的结果Y,实际上约等于a1的大小,至少可以反映a1的大致范围。如此,仍然可以通过模型参数的取值大小差异设置,获知部分源数据的值或范围。因此,对于这样的情况,同样可以采用以上的差异统计信息来衡量模型安全性风险。
[0088] 此外,尽管以上列出了若干种具体的统计量,但是本领域技术人员在阅读本说明的情况下,有可能将其扩展到更多的统计量(例如将方差扩展到均方根,将参数小数位数的最大值与最小值的差扩展到小数位数的最大值与最小值的差与最大值的比例,等等),只要这些统计量是与模型参数的取值大小差异和/或位数差异有关,都可以从一定程度一定角度反映模型安全性风险。
[0089] 在如上所述获取了模型参数的差异统计信息的基础上,接着在步骤25,根据差异统计信息,确定数据模型的安全性评估信息。
[0090] 在一个实施例中,差异统计信息可以直接作为简单的安全性评估信息。例如,在一个具体例子中,差异统计信息包括第一统计量中的最大参数与最小参数的比值,该比值就可以作为安全性评估信息。比值越大,安全性越低,比值越小,安全性越高。
[0091] 在另一实施例中,根据差异统计信息,和预定的差异阈值,确定安全性评估信息。
[0092] 在一个例子中,可以针对不同的差异统计量,设置不同的差异阈值,例如针对取值大小比例的统计量,设置比例阈值;针对位数差值的统计量,设置差值阈值等。
[0093] 针对同一差异统计量,可以设置多个差异阈值,从而将差异统计量划分为不同范围,这些不同范围对应于不同的安全等级。例如,对于统计量S1:参数最大值与最小值的比值,可以设置第一阈值10和第二阈值100,当S1低于第一阈值10时,安全等级为高安全性;S1大于第一阈值10小于第二阈值100时,安全等级为中等安全性;S1大于第二阈值100时,安全等级为低安全性。
[0094] 在差异统计信息包括多个统计量的情况下,还可以为每个统计量赋予一定的权重;在确定安全评估信息时,可以首先针对各个统计量与对应差异阈值的比较,确定与该统计量相关的安全分数,然后基于各个统计量的权重,确定总的安全分数作为安全性评估信息。
[0095] 例如,在一个具体例子中,差异统计信息至少包括S1,S2和S3,其中统计量S1为参数最大值与最小值的比值,与S1相关的安全分数Q1的计算例如为,比值低于第一阈值10,安全分数为10;大于第一阈值10小于第二阈值100,安全分数为5;大于第二阈值100,安全分数为1。统计量S2为参数取值比例高于预设比例阈值的组合数目,可以基于S2确定对应的安全分数Q2(具体过程可以根据需要设定,不再详细举例)。统计量S3为各参数小数位数的最大值与最小值的差,可以基于S3确定对应的安全分数Q3。假定分别为这三个统计量赋予的权重为0.5,0.3,0.2,那么可以得到与模型参数对应的总安全分数为:Q=0.5Q1+0.3Q2+0.2Q3。这样的总安全分数可以确定为安全性评估信息。
[0096] 如此,通过多种方式,基于差异统计信息,确定出安全性评估信息。这样的安全评估信息可以用于数据提供方来评估数据模型的安全性,进而决定是否要接受该数据模型的部署,或者是否要求模型提供方修改模型。如此,在模型部署之前,通过对模型安全性的检测,对数据模型的安全性进行评估,提高数据合作中模型计算的安全性。
[0097] 另一方面,还提供一种降低数据模型的安全风险的方法。图4示出根据一个实施例的降低数据模型安全风险的方法的流程图,其中的数据模型由数据需求方提供以部署到数据提供方,用于对数据提供方的源数据进行模型运算。如图4所示,所述方法包括:步骤41,确定数据模型的输出结果的结果类型,所述结果类型至少包括连续数值和离散分类概率;步骤43,在结果类型为连续数值的情况下,采用预定比特位数表示所述连续数值;步骤45,在结果类型为离散分类概率的情况下,将所述离散分类概率转换为分类决策结果。
[0098] 在一个实施例中,图4的方法可以由数据提供方执行。也就是,在数据提供方接受数据模型的部署之后,数据提供方为了进一步降低安全风险,可以添加一个计算组件来执行图4的方法。通过该方法,截获数据模型的输出结果,对该输出结果进行限制和调整,然后将经过限制和调整的输出结果返回给模型提供方。
[0099] 在一个实施例中,图4的方法可以由模型提供方执行。也就是,模型提供方可以应数据提供方的要求,为了进一步降低安全风险,在原数据模型的基础上添加一个计算组件来执行图4的方法。该计算组件可以附加到原数据模型之上,作为优化的数据模型的一部分,与原数据模型一起部署到数据提供方。通过该方法,模型提供方只获取到经过限制和调整的输出结果,从而降低数据提供方的安全风险。
[0100] 下面描述图4流程中各个步骤的执行方式。
[0101] 首先,在步骤41,确定数据模型的输出结果的结果类型。一般地,对于多数数据模型来说,结果类型可以包括,连续数值结果,和离散结果。连续数值结果例如是,利用逻辑回归模型或评分卡模型基于用户行为数据对用户的信用值进行的打分,例如公式1中的输出结果Y可以是连续数值结果。离散结果包括例如分类决策结果,例如对于输入图片,采用决策树模型将其分类为一类图片,即包含目标对象的图片,或者二类图片,即不包含目标对象的图片。离散结果还可以包括离散分类概率,例如将某个图片分类为一类图片的概率,和分类为二类图片的概率。对于不同的结果类型,下面进行不同的处理方式。
[0102] 在一个实施例中,在步骤43,在结果类型为连续数值的情况下,采用预定比特位数表示所述连续数值,其目的为,用尽量少的比特位数来表示输出结果的数值,从而避免通过冗余比特位提供附加标记而窃取源数据信息。
[0103] 在一个例子中,该预定比特位数可以基于约定的输出结果的范围来预先设定。例如,模型提供方可以与数据提供方约定,模型的输出结果为0-100之间的打分。那么,在步骤43,可以采用6个比特来表示该输出结果,因为6个比特位足以表示最大值128的输出值。而如果采用常规的浮点数定义(64比特位),则会存在一些冗余位,这些冗余位有可能被利用来进行特殊标记,造成安全风险。
[0104] 在一个例子中,输出结果为小数,在这样的情况下,采用预定比特位数表示输出结果包括,只保留预定位数的小数。该预定位数可以基于模型参数的位数设置而预先设定。例如,在前述的一个例子中,x1,x2,...x5的取值分别是0.310000,0.101000,0.800100,0.300010,0.500001,从小数点后两位开始实际上作用为标记位。此时,可以将输出结果设定为,只保留2位小数,从而在保留真实取值位的情况下,避免标记位对源数据的标记作用。
在一个实施例中,在将输出结果的小数进行截断之后,将小数的结果整数化,从而仍然采用预定比特位数表示输出结果。
[0105] 另一方面,在步骤45,在结果类型为离散分类概率的情况下,将所述离散分类概率转换为分类决策结果。为此,在一个实施例中,获取分类决策的分类边界。分类边界可以预先由模型设定,也可以在该步骤指定。通过分类概率与分类边界的比较,可以将离散分类概率转换为分类决策结果。
[0106] 例如,在一个例子中,离散分类概率包括,属于一类图片的概率为65%,属于二类图片的概率为35%,分类边界为50%,那么可以将离散分类概率直接转换为分类决策结果:一类图片。
[0107] 通过这样的方式,尽量地减少返回到模型提供方的输出结果的信息量,增加反推源数据的难度,从而降低数据模型的安全性风险。
[0108] 根据另一方面的实施例,还提供一种检测数据模型的安全性的装置。图5示出根据一个实施例的模型安全性检测装置的示意性框图,该装置用于检测数据模型的安全性,该数据模型由数据需求方提供以部署到数据提供方,用于对数据提供方的源数据进行模型运算。如图5所示,检测装置500包括:获取单元51,配置为获取所述数据模型中包含的多个模型参数;统计确定单元53,配置为确定所述多个模型参数的差异统计信息,所述差异统计信息包括与参数取值大小差异相关的第一统计量,和/或与参数位数差异相关的第二统计量;安全确定单元55,配置为根据所述差异统计信息,确定所述数据模型的安全性评估信息。
[0109] 在第一实施例中,装置500设置在数据需求方。
[0110] 在这样的情况下,在一个例子中,所述安全确定单元55可以配置为:将所述差异统计信息确定为所述安全性评估信息。进一步地,装置500还可以包括提供单元(未示出),配置为将所述安全性评估信息提供给所述数据提供方。
[0111] 在另一例子中,所述安全确定单元55还可以配置为:根据所述差异统计信息,和预定的差异阈值,确定安全性评估信息。提供单元配置为将这样的安全性评估信息提供给所述数据提供方。
[0112] 在第二实施例中,装置500设置在数据提供方。
[0113] 在这样的情况下,获取单元51配置为,从数据需求方接收所述多个模型参数。
[0114] 在一个例子中,安全确定单元55配置为:根据所述差异统计信息,和预定的差异阈值,确定安全性评估信息。
[0115] 进一步地,装置500还包括部署确定单元(未示出),配置为根据所述安全性评估信息确定是否接受所述数据模型的部署。
[0116] 根据一种实施方式,不管装置500设置在哪一方,安全确定单元55都可以配置为:根据针对某个差异统计量预设的多个差异阈值,将该某个差异统计量划分为不同范围,将所述不同范围对应于不同的安全等级作为所述安全性评估信息。
[0117] 根据一种实施方式,差异统计信息包括多个统计量,此时安全确定单元55可以配置为:针对所述多个统计量中的各个统计量与对应差异阈值的比较,确定与各个统计量相关的安全分数;基于所述与各个统计量相关的安全分数,以及针对各个统计量预设的权重,确定总的安全分数作为安全性评估信息。
[0118] 在一个实施例中,第一统计量包括以下中的至少一项:最大参数与最小参数的比值,最大参数与最小参数的差值相对于最大参数的比例,最大参数与最小参数的差值相对于最小参数的比例,最大参数与参数均值的比例。
[0119] 在另一实施例中,第一统计量包括以下中的至少一项:参数的方差;所述多个模型参数的两两组合中,参数取值比例高于预设比例阈值的组合数目,参数取值之差高于预设差值阈值的组合数目。
[0120] 在一个实施例中,第二统计量包括以下中的至少一项:各参数小数位数的最大值与最小值的差,各参数的小数部分中连续有效零的个数,各参数的小数部分中连续有效零个数的最大值。
[0121] 根据一种实施方式,所述数据模型包括,逻辑回归模型,决策树模型,梯度提升决策树GBDT模型,评分卡模型。
[0122] 根据又一方面的实施例,还提供一种降低数据模型的安全风险的装置。图6示出根据一个实施例的降低安全风险的装置,该装置用于降低数据模型的安全风险,所述数据模型由数据需求方提供以部署到数据提供方,用于对数据提供方的源数据进行模型运算。如图6所示,用于降低安全风险的装置600包括:类型确定单元61,配置为确定所述数据模型的输出结果的结果类型,所述结果类型至少包括连续数值和离散分类概率;连续数值处理单元63,配置为在所述结果类型为连续数值的情况下,采用预定比特位数表示所述连续数值;离散结果处理单元65,配置为在所述结果类型为离散分类概率的情况下,将所述离散分类概率转换为分类决策结果。
[0123] 在一个实施例中,上述预定比特位数基于约定的输出结果的范围而预先设定。
[0124] 根据一个实施例,在输出的连续数值为小数的情况下,连续数值处理单元63配置为,对于所述连续数值保留预定位数的小数,该预定位数基于所述数据模型的模型参数的位数设置而预先设定。
[0125] 根据一个实施例,离散结果处理单元65配置为,获取分类决策的分类边界,通过所述离散分类概率与所述分类边界的比较,将所述离散分类概率转换为分类决策结果。
[0126] 如此,通过以上实施例,在模型部署之前,基于差异统计信息,确定出安全性评估信息。这样的安全评估信息可以用于数据提供方来评估数据模型的安全性,进而决定是否要接受该数据模型的部署,或者是否要求模型提供方修改模型。如此,在模型部署之前,通过对模型安全性的检测,对数据模型的安全性进行评估,提高数据合作中模型计算的安全性。
[0127] 进一步地,在模型运行预测时,通过对输出结果进行限制和调整,尽量地减少返回到模型提供方的输出结果的信息量,增加反推源数据的难度,从而降低数据模型的安全性风险。
[0128] 根据另一方面的实施例,还提供一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行结合图2和图4所描述的方法。
[0129] 根据再一方面的实施例,还提供一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现结合图2和图4所述的方法。
[0130] 本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。
[0131] 以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本发明的保护范围之内。