Efficient and Secure Decision Tree Classification for Cloud-Assisted Online Diagnosis Services

Efficient and Secure Decision Tree Classification for Cloud-Assisted Online Diagnosis Services

今天要讲的是高效且安全的云辅助在线诊断服务的决策树分类,这篇文章发表于2021 年第 18 卷第 4 期的《IEEE》

首先来看研究背景:

  • 决策树分类在在线诊断服务中广泛应用,但传统的训练决策树分类器及应用其进行分类任务使在线诊断服务计算密集。将计算密集型任务外包给云服务器的云辅助在线诊断服务可缓解医疗机构的计算负载和存储能力,但存在隐私知识产权保护问题。
    • 隐私是用户隐私,不想让云服务器知道用户输入的生理特征和输出给用户的诊断结果
    • 知识产权保护是医疗机构的训练模型,不能让云服务器知道

传统云辅助在线诊断服务的一个典型工作流程:
在这里插入图片描述

  • 流程涉及三个实体:医疗机构(Medical Institution,MI)、云服务器(Cloud Server,CS)和用户(User,U)。

  • 具体工作流程如下:医疗机构将将电子健康记录(EHRs)发送给云服务器使用决策树分类算法从 EHRs 中训练出疾病诊断模型,决策树分类器,用户提供在线诊断服务。接收用户的生理特征后,它通过使用决策树分类器为用户返回相应的诊断预测。

于是作者提出一种解决方案:

  • 高效安全的决策树分类(SDTC)方案。该方案基于可搜索对称加密,将决策树分类器转换为决策表并加密,然后外包给云服务器,用户可提交加密的生理特征并获得加密的诊断预测。
    在这里插入图片描述

而作者进行改进的方案工作流程为:

  • 医疗机构(MI):与传统工作流程(图 1)不同,医疗机构不再将敏感的电子健康记录(EHRs)外包给云服务器,而是将通过决策树分类算法从 EHRs 训练得到的预训练诊断模型外包给云服务器。具体步骤为:首先使用决策树分类算法训练疾病诊断模型(决策树分类器);然后加密预训练的决策树分类器,并将加密后的决策树分类器外包给云服务器;最后与用户共享一些安全参数。
  • 云服务器(CS):云服务器由第三方在线服务提供商托管。接收加密的决策树分类器后,为用户提供在线诊断服务。具体来说,接收用户的加密生理特征后,使用加密的决策树分类器为用户返回相应的加密诊断预测。
  • 用户(U):接收医疗机构的安全参数后,加密自己的生理特征并上传到云服务器。之后接收云服务器返回的加密预测,并进行解密得到诊断预测。 该系统模型展示了安全云辅助在线诊断服务中各实体之间的数据交互和服务提供过程,强调了通过加密和安全参数共享来保护数据隐私和诊断模型的机密性。

为了更好地评估 SDTC 方案的安全属性,我们将 CS 的能力分为三个级别:

  • Level 1:CS 只能观察到 MI 的加密决策树分类器和 U 的加密生理特征或诊断预测。
  • Level 2:除了 Level 1 的能力外,CS 还可以收集处理一些诊断请求后的诊断(分类)历史。
  • Level 3:除了 Level 2 的能力外,CS 还可以分析搜索模式和访问模式。
Design Goals部分

主要阐述了该方案的设计目标,包括安全目标和性能目标,具体内容如下:

安全目标: 由于云服务器(CS)具有三种不同级别的能力,因此 SDTC 方案考虑了三种不同的安全属性:

  • 保持敏感数据机密性:这是现有安全决策树分类工作已经实现的安全目标,即防止 CS 通过反转加密数据来推断诊断分类器、生理特征和诊断预测等敏感输入和输出。

  • 实现自适应安全:在本工作流程中,CS 接收用户的加密生理特征并通过查询加密决策树分类器提供加密诊断预测,因此加密生理特征与加密诊断预测之间的映射关系会泄露给 CS。受 [22] 中自适应安全属性的启发,允许 CS(对手)自适应地选择其诊断请求处理历史(或分类处理历史),该方案的安全目标是确保分类处理历史不会向 CS 泄露有用信息,即实现自适应安全。

  • 避免搜索模式和访问模式的泄露:该方案的安全目标是确保安全决策树分类器不会向 CS 泄露 “搜索模式” 和 “访问模式”,

性能目标: 提出 SDTC 方案的一个重要目的是提高安全决策树分类的效率,具体有两个性能目标:

  • 无复杂计算:通过使用对称加密、伪随机函数和置换来构建在线诊断服务的安全决策树分类器,要求低计算和通信开销。
  • 快于线性分类复杂度:构建具有快于线性计算复杂度的安全决策树分类器,以提高处理诊断请求的效率。 综上所述,Design Goals 部分明确了 SDTC 方案在安全和性能方面的具体目标,为方案的设计和评估提供了指导标准。

在这里插入图片描述

这个图是决策树分类器可以转换为规则库的过程,决策树分类器以树的结构呈现,其中 X = {x1, x2, x3} 表示生理特征向量,C = {c1, c2, c3} 表示诊断预测集合,W = {w1, w2, w3} 表示对应的阈值。通过遍历决策树分类器的每个决策路径,可以将其转换为规则库。规则库由一组 IF - THEN 规则组成,每条规则对应决策树的一条决策路径。用规则的形式来表示决策树分类器的决策逻辑。这种转换有助于更好地理解和解释决策树分类器的工作原理。

在这里插入图片描述

但是在这篇文章当中主要研究基于二叉树的布尔决策树分类器在云辅助在线诊断服务中的应用。我们定义N个布尔生理变量向量B,如果bi的值为0,则表示xi<=wi。否则,bi的值为1。通过这个也就将决策树转换为决策表了,由于每个决策路径长度是一样的,因此决策树分类器的结构是隐藏的。本文采用这样的决策表来解释在线诊断服务的决策树分类器。* 表示0和1,

在这里插入图片描述

然后我们来介绍一下这些定义方便我们后面算法的理解,这部分主要介绍了方案中使用的加密相关的基本概念,包括伪随机函数(PRF)、伪随机置换(PRP)和对称密钥加密。对称密钥加密:
**定义:**一个对称加密方案 SKE = (Gen, Enc, Dec) 包含三个多项式时间算法。
KeySKE:Gen (1^k) 用于生成密钥,
Ciphertext SKE:Enc (Key, Plaintext) 用于加密明文,
Plaintext SKE:Dec (Key, Ciphertext) 用于解密密文。
Definitions(定义):
这部分给出了方案中使用的一些定义和符号。
加密相关定义: 令 SKE = (SKE.Gen, SKE.Enc, SKE.Dec) 为一个概率对称密钥加密。
令 f : {0, 1}^k × {0, 1}^N → {0, 1}^l 为一个伪随机函数,其中 l 表示伪随机函数输出的长度(例如,如果使用 AES - 128 作为伪随机函数,l = 128)。
令 h : {0, 1}^k × {0, 1}^N → {0, 1}^N 为一个伪随机置换。
令 K1, K2, K3 ← {0, 1}^k,其中 K1 是 f 的密钥,K2, K3 是 h 的两个不同密钥。 令 K0 ← SKE:Gen (1^k)。
布尔字符串相关定义: 用布尔字符串 S 表示布尔生理变量向量 B 的连接,即 S = b1||b2||… ||bN。由于每个位 bi 的域为 {0, 1},所以 S 的域为 {0, 1,…, 2^N - 1}。 令 S [i] 表示 S = i(0 ≤ i ≤ 2^N - 1)。
例如,当 N = 3 时,B = {b1, b2, b3}。如果 b1 = 0, b2 = 1, b3 = 1,则 S = b1||b2||b3 = (011) 2 = (3) 10。因此,用 S [3] 表示 0||1||1。
决策表相关定义: DT 是一个决策表,有两列和 Ω行。用 c [i] 表示 S [i] 的分类结果。在 DT 中,第 i 行是 S [i], c [i]。 例如,回顾图 4 中的决策树分类器,Ω= 8。考虑决策表的第 5 行,左列是 S [5] = (101) 2 = 1||0||1,那么相应的决策结果是 c [5] = c1,因为当 b1 = 1 时,分类结果是 c1。所以,决策表的第 5 行是 S [5]; c1。 加密诊断预测相关定义: 令 EC = {ec1, ec2,…, ecm} 为 C 的相应加密诊断预测。用 ec [i] 表示 S [i] 的相应加密诊断预测。 令 α 为刷新参数,用于控制加密决策树分类器的刷新频率。 总的来说,这两部分内容为后续的安全决策树分类方案提供了加密和定义的基础,但其中没有涉及具体的公式推导过程,主要是对相关概念和符号的定义和解释。

总体思想是:决策表视为可搜索对称加密中的“索引”。由于诊断预测(决策树分类结果)依赖于决策树分类器中相应的决策路径,因此决策树路径在可搜索对称加密中可视为“关键字”,而相应的预测在可搜索对称加密中可视为“文档”

在这里插入图片描述

Algorithm 1 描述了安全决策树分类(SDTC)的具体过程,以下是对该算法的详细介绍: Initialize(DT, k):
MI 的操作: MI 将决策树分类器转换为决策表 DT。 生成密钥 K0、K1、K2、K3,以及伪随机函数 f 和伪随机置换 h。 对于 DT 中的每一行,进行如下计算: 经过 Ω 次操作后,生成两个加密索引 A 和 T。 MI 与其他实体的交互: MI 将 A 和 T 发送给 CS。 MI 将 h、f、K0、K2、K3 和 S 的连接顺序发送给 U。
Classify(A, T, S[i]): U 的操作: 当 U 想要对其生理特征 b1、b2、…、bN 进行诊断预测时,将这些生理特征连接成一个布尔字符串 S = b1||b2||… ||bN。 假设 b1||b2||… ||bN = i,即 S [i] = S。 计算向量(v1,v2)=(h(K3,S [i]),f(K2,S [i]))。 U 与 CS 的交互: U 将(v1,v2)发送给 CS。 CS 接收向量(v1,v2)后,进行如下计算: CS 将 ec [i] 返回给 U。 U 的后续操作: U 接收 ec [i] 后,通过解密得到诊断预测(分类结果)c [i],该结果对应其输入 S [i]。
Refresh(DT, α): MI 的操作: 如果 A 和 T 已经分类了 α 次,MI 调用 Initialize 算法。 重新生成 h、f、K0、K1、K2、K3。 重新生成 A 和 T,并通过 A0 和 T0 刷新 A 和 T。 MI 与其他实体的交互: MI 将 A0 和 T0 发送给 CS。 MI 将 h、f、K0_0、K0_2 和 K0_3 发送给 U。 总的来说,该算法通过 Initialize 算法初始化加密索引,通过 Classify 算法实现对用户生理特征的分类预测,通过 Refresh 算法控制加密决策树分类器的刷新,以保证数据的安全性和隐私性。、

在这里插入图片描述

而这张流程图就是对刚刚算法的演示,初始化算法由MI运行,MI将诊断模型(决策树分类器)转换为决策表DT。注意,每个决策路径都是DT中的等距布尔字符串。通过将每个决策路径转换为等长布尔字符串,决策表隐藏了决策树分类器的结构。然后MI根据DT生成两个加密索引A和T,这也隐藏了决策树分类器的深度。分类算法由U和CS运行,CS通过使用U的生理输入并搜索A和T返回一个加密的诊断预测(分类结果)。Refresh算法由MI运行,用于重新生成A和T并刷新对称密钥。调用Refresh的频率由Refresh参数决定

在这里插入图片描述

通过这个示例说明了如何通过比较方法将决策树分类器转换为决策表,以适应更一般的情况。

Multi - Level Decision Table”(多级决策表)

这部分内容主要介绍了一种为降低云辅助在线诊断应用中存储空间要求和预计算开销而提出的决策表改进形式。CS的存储空间需求和MI的预计算开销取决于决策表的大小。当表行数减小时,存储空间和预计算开销都会减小。因此,我们构造了一个多层决策表,该决策表的行数明显少于算法1中的决策表,但部分(或完全)泄露了决策树模型的结构。

算法2:

在这里插入图片描述

  • 输入:决策树分类器。

  • 输出:一个多级决策表。

​ 1: MI: MI将决策树分类器划分为P个子树。

​ 2: MI:对于每个子树,MI将子树分类器转换为决策表。

​ 3: MI: MI根据决策树分类器的结构将这些决策表链接起来,并将链接的决策表作为多级决策表输出。
在这里插入图片描述

效果分析: 信息泄露:从图中可以发现,这个多级决策表泄露了一些信息,比如 b1 到 b2 以及 b1 到 b3 || b4 的链接信息。 优势体现:然而,重要的是,通过这种多级决策表的构建方式,显著减少了决策表的行数。原本决策表可能有 2^4 = 16 行,但现在通过构建多级决策表,行数减少到了 2^1 + 2^1 + 2^2 = 8 行。 综上所述,图 7 通过具体的示例清晰地展示了多级决策表是如何从决策树模型构建而来的,以及它在减少行数方面的优势,同时也说明了它可能存在的信息泄露情况。

The Size of Decision Table”(决策表的大小)

这部分内容主要分析了决策表的行数与决策树分类器的特征数量之间的关系,以及如何通过多级决策表来减少决策表的大小。
在这里插入图片描述

p是子树的个数,N是决策树分类器的内部节点数。P=N时在这种情况下,决策表是一个多级决策表,这意味着线性的存储空间成本和线性的预计算开销,但完全泄露了决策树模型的结构。

P=1时,在这种情况下,决策表不是一个多级决策表,而是论文3.3节中定义的决策表。

当1 <P <N时,V可根据式(1)和(2)计算。此时决策表为多级决策表,这意味着比P =N时存储空间成本和预计算开销更低,并在一定程度上保护了决策树模型的结构。

讨论安全决策分类器的性能:初始化是因为加密了Ω行,分类是因为用户只计算h和f的值,云服务器只计算T和f的值返回A和f,刷新是因为与初始化计算差不多的

EXPERIMENTAL EVALUATIONS”(实验评估)

这部分内容主要介绍了对安全决策树分类(SDTC)方案和 Bost 等人的方案进行效率评估的实验。具体文字内容包括: 介绍了实验的目的,即评估 SDTC 方案的效率,并回答与该方案及 Bost 等人的方案相关的一些问题,例如 SDTC 方案与其他方案的运行时间比较、刷新参数 α 对 SDTC 方案运行时间的影响以及 SDTC 方案在不同刷新参数 α下的平均运行时间等。 提供了两个数据集训练的决策树分类器的相关信息,包括内节点数量、不同预测的数量、叶节点数量以及决策表的行数和列数等。
在这里插入图片描述

  • fig8 展示了 SDTC 方案与 Bost 等人的方案在 Nursery 数据集上的运行时间比较结果,表明 SDTC 方案在两种情况下都比 Bost 等人的方案快几个数量级,具有计算效率。

  • ifg9评估了刷新参数 α 对 SDTC 方案在 Poker - Hand 数据集上运行时间的影响,得出刷新参数 α 越小,SDTC 方案效率越低的结论,并指出 α = 100 是效率和安全的一个较好权衡。

  • fig10评估了 SDTC 方案在 Poker - Hand 数据集上的平均分类处理时间,结果表明该方案处理一个决策树分类请求仅需几微秒。 总的来说,这部分内容通过实验评估了 SDTC 方案的效率和性能,为该方案的实际应用提供了参考依据。

总结和展望
  • 总结了 SDTC 方案的优点,包括保护诊断模型和用户数据的机密性、实现快于线性的分类速度以及在测试数据集中处理分类请求的高效性。
  • 提出未来的工作方向,包括设计用于在线诊断服务的隐私保护多标签分类方案以及改进诊断质量,如避免模型过拟合等。
  • 14
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
决策树分类(Decision Tree Classification)是一种基于树结构的监督学习算法,可用于解决分类问题。决策树常用于数据挖掘和机器学习领域。 决策树的基本思想是将数据集分成更小的数据集,并在每个子集上递归地应用相同的过程,直到数据集中所有数据都属于同一类别。决策树分类算法通过构建决策树模型来预测新数据的分类。 决策树分类的过程: 1. 选择最佳特征:根据数据集的特征,选择一个最佳特征作为根节点,将数据集划分为若干个子集。 2. 构建树结构:对于每个子集,重复步骤1和步骤2,直到所有的数据都被划分到同一类别或无法再继续划分。 3. 预测新数据:使用构建的决策树模型对新数据进行分类。 决策树分类的优点: 1. 易于理解和解释:决策树的结构非常直观,易于解释和理解,可以帮助人们更好地理解数据。 2. 可以处理多种数据类型:决策树可以处理多种数据类型,包括数值型、类别型和布尔型等。 3. 可以快速处理大量数据:决策树的训练和预测速度非常快,可以快速处理大量数据。 决策树分类的缺点: 1. 容易过拟合:决策树容易在训练数据上过拟合,导致模型泛化能力差。 2. 对于连续型变量有限制:决策树通常只适用于离散型变量,对于连续型变量的处理有限制。 3. 不稳定性:数据的微小变化可能导致决策树结构的大规模变化,因此,决策树算法不够稳定。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值