System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及信息检索,尤其涉及一种对基数估计模型攻击的方法及装置。
技术介绍
1、基数估计器是数据库查询优化器的重要组成部分。近年来,学习型基数估计方法因其较传统的估计方法(如直方图和抽样等)具有更高的性能而引起了广泛关注。然而,基于学习的模型存在被攻击的风险,因为训练数据可能被植入毒化数据以降低模型性能。如今,学习型的查询驱动基数估计模型已经部署在实际商业系统中。
2、通常,在线系统中的机器学习模型可能会在有新的训练数据到达时自我更新以保持高准确性。类似地,查询驱动的学习型基数估计模型通过新执行的查询进行增量更新。这种机制为恶意人员提供了机会,可以构造一些毒化查询来攻击学习型基数估计模型,从而降低查询优化器的性能。然而,现有研究工作主要集中在改进学习型基数估计模型的性能上,而忽视了它们对植入攻击的潜在脆弱性。
技术实现思路
1、本申请实施例提供了一种对基数估计模型攻击的方法及装置,以解决现有研究工作主要集中在改进学习型基数估计模型的性能上,而忽视了它们对植入攻击的潜在脆弱性的问题。
2、为了解决上述技术问题,本申请实施例是这样实现的:
3、第一方面,本申请实施例提供了一种对基数估计模型攻击的方法,所述方法包括:
4、确定具有查询驱动的基数估计模型的目标数据库;
5、基于预先生成的测试查询语句对所述目标数据库中的基数估计模型,及多个预先设定的候选基数估计模型进行测试,得到测试结果;
6、据所述测试结果,确定所述候
7、基于所述替代的基数估计模型和所述目标数据库中的历史查询语句,训练得到毒化查询生成器;
8、基于所述毒化查询生成器,生成与所述目标数据库的历史查询分布相似的毒化查询语句;
9、将所述毒化查询语句在所述目标数据库中执行,以使所述基数估计模型根据在毒化查询执行结果上进行更新,完成对所述基数估计模型的攻击。
10、可选地,所述基于预先生成的测试查询语句对所述目标数据库中的基数估计模型,及多个预先设定的候选基数估计模型进行测试,得到测试结果,包括:
11、生成具有不同列数以及不同谓词查询范围的所述测试查询语句;
12、基于所述测试查询语句分别对所述基数估计模型和所述候选基数估计模型进行测试,得到所述基数估计模型的第一估计准确指数和第一估计延迟信息,及所述候选基数估计模型的第二估计准确指数和第二估计延迟信息;
13、将所述第一估计准确指数、所述第一估计延迟信息、所述第二估计准确指数和所述第二估计延迟信息作为所述测试结果。
14、可选地,所述根据所述测试结果,确定所述候选基数估计模型中与所述目标数据库中的基数估计模型的测试结果最相近的模型为替代的基数估计模型,包括:
15、基于所述第一估计准确指数、所述第一估计延迟信息、所述第二估计准确指数和所述第二估计延迟信息,确定所述基数估计模型与所述候选基数估计模型之间的相似度;
16、基于所述相似度,从所述候选基数估计模型中筛选出初始基数估计模型;
17、对所述初始基数估计模型进行初始化处理,得到初始化基数估计模型;
18、随机生成训练查询语句;
19、获取所述训练查询语句对应的真实基数值,以及所述基数估计模型对所述训练查询语句的基数估计值;
20、基于所述训练查询语句、所述真实基数值和所述基数估计值,对所述初始化基数估计模型进行训练,得到所述替代的基数估计模型。
21、可选地,所述基于所述替代的基数估计模型和所述目标数据库中的历史查询语句,训练得到毒化查询生成器,包括:
22、获取以高斯噪声数据为输入,以完整查询语句为输出的初始毒化查询生成器;
23、基于所述目标数据库中的历史查询语句,对变分自动编码器进行训练,得到异常检测器;
24、基于所述初始毒化查询生成器对输入的高斯噪声数据进行处理,生成中间查询语句;
25、基于所述中间查询语句,更新所述替代的基数估计模型,得到更新的基数估计模型;
26、根据测试得到的所述更新的基数估计模型的估计误差,以最大化该估计误差为目标构建目标损失函数;
27、将所述中间查询语句输入至所述异常检测器,并获取所述异常检测器输出重构后的中间查询语句,以最小化重构前后的中间查询语句的差异为目标构建第一重构损失函数;
28、计算所述初始毒化查询生成器中各参数相对于所述目标损失函数的第一导数,以及所述初始毒化查询生成器中各参数相对于所述第一重构损失函数的第二导数;
29、基于梯度下降法、所述第一导数和所述第二导数,更新所述初始毒化查询生成器的参数;
30、迭代执行设定次数的所述基于所述初始毒化查询生成器对输入的高斯噪声数据进行处理,生成中间查询语句,至所述基于梯度下降法、所述第一导数和所述第二导数,更新所述初始毒化查询生成器的参数的步骤,得到所述毒化查询生成器。
31、可选地,所述基于所述目标数据库中的历史查询语句,对变分自动编码器进行训练,得到异常检测器,包括:
32、基于所述变分自动编码器对所述历史查询语句进行重构处理,得到重构历史查询语句;
33、基于所述历史查询语句和所述重构历史查询语句,以最小化历史查询语句与重构历史查询语句的差异为目标构建第二重构损失函数;
34、基于梯度下降法和所述第二重构损失函数训练所述变分自动编码器,得到所述异常检测器。
35、第二方面,本申请实施例提供了一种对基数估计模型攻击的装置,所述装置包括:
36、目标数据库确定模块,用于确定具有查询驱动的基数估计模型的目标数据库;
37、测试结果获取模块,用于基于预先生成的测试查询语句对所述目标数据库中的基数估计模型,及多个预先设定的候选基数估计模型进行测试,得到测试结果;
38、替代模型确定模块,用于根据所述测试结果,确定所述候选基数估计模型中与所述目标数据库中的基数估计模型的测试结果最相近的模型为替代的基数估计模型;
39、毒化查询生成器获取模块,用于基于所述替代的基数估计模型和所述目标数据库中的历史查询语句,训练得到毒化查询生成器;
40、毒化查询语句生成模块,用于基于所述毒化查询生成器,生成与所述目标数据库的历史查询分布相似的毒化查询语句;
41、估计模型攻击模块,用于将所述毒化查询语句在所述目标数据库中执行,以使所述基数估计模型根据在毒化查询执行结果上进行更新,完成对所述基数估计模型的攻击。
42、可选地,所述测试结果获取模块包括:
43、测试查询语句生成单元,用于生成具有不同列数以及不同谓词查询范围的所述测试查询语句;
44、估计指数获取单元,用于本文档来自技高网...
【技术保护点】
1.一种对基数估计模型攻击的方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述基于预先生成的测试查询语句对所述目标数据库中的基数估计模型,及多个预先设定的候选基数估计模型进行测试,得到测试结果,包括:
3.根据权利要求2所述的方法,其特征在于,所述根据所述测试结果,确定所述候选基数估计模型中与所述目标数据库中的基数估计模型的测试结果最相近的模型为替代的基数估计模型,包括:
4.根据权利要求1所述的方法,其特征在于,所述基于所述替代的基数估计模型和所述目标数据库中的历史查询语句,训练得到毒化查询生成器,包括:
5.根据权利要求4所述的方法,其特征在于,所述基于所述目标数据库中的历史查询语句,对变分自动编码器进行训练,得到异常检测器,包括:
6.一种对基数估计模型攻击的装置,其特征在于,所述装置包括:
7.根据权利要求6所述的装置,其特征在于,所述测试结果获取模块包括:
8.根据权利要求7所述的装置,其特征在于,所述替代模型确定模块包括:
9.根据权利要求6所
10.根据权利要求9所述的装置,其特征在于,所述异常检测器获取单元包括:
...【技术特征摘要】
1.一种对基数估计模型攻击的方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述基于预先生成的测试查询语句对所述目标数据库中的基数估计模型,及多个预先设定的候选基数估计模型进行测试,得到测试结果,包括:
3.根据权利要求2所述的方法,其特征在于,所述根据所述测试结果,确定所述候选基数估计模型中与所述目标数据库中的基数估计模型的测试结果最相近的模型为替代的基数估计模型,包括:
4.根据权利要求1所述的方法,其特征在于,所述基于所述替代的基数估计模型和所述目标数据库中的历史查询语句,训练得到毒化查询生成...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。