一种保护客户端隐私数据的拆分学习方法转让专利

申请号 : CN202311062183.5

文献号 : CN116805082B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 毛云龙王怡涵辛泽西仲盛

申请人 : 南京大学

摘要 :

本发明公开了一种保护客户端隐私数据的拆分学习方法,属于计算机学习领域。该方法包括如下步骤:对输入隐私数据每个维度的中间结果进行压缩裁剪以降低数据的敏感度;对压缩裁剪后的中间结果数据计算加权和;将加权和进行随机响应隐藏原始数据后,送入激活函数进行激活,并对激活后的数值添加采样于高斯分布的噪声进行扰动;将扰动后的结果作为最终的粉碎数据传给服务端,实现对粉碎数据蕴含的隐私信息的保护。本发明可以依据粉碎数据的情况不同进行特定的人工噪声添加,本发明在有着较高模型可用性的同时可有效防御特征推断和标签窃取这两类攻击。

权利要求 :

1.一种保护客户端隐私数据的拆分学习方法,其特征在于,包括如下步骤:对输入隐私数据每个维度的中间结果进行压缩剪裁以降低数据的敏感度;

对压缩裁剪后的中间结果数据计算加权和;

将加权和进行随机响应隐藏原始数据后,送入激活函数进行激活,并对激活后的数值添加采样于高斯分布的噪声进行扰动;

将扰动后的结果作为最终的粉碎数据传给服务端,实现对粉碎数据蕴含的隐私信息的保护;

所述对输入隐私数据每个维度的中间结果进行压缩剪裁以降低数据的敏感度,具体包括如下步骤:步骤101,输入中间结果向量r,数据保留数量t,向量维度n;

步骤102,生成一个t维数组h用来存储所述中间结果向量r中数值最高的t个元素的向量下标,生成一个与所述中间结果向量r维度相同的空向量 用来存储所述中间结果向量r经过压缩裁剪后的向量值,取所述中间结果向量r中所有维度值绝对值后的中位数作为裁剪值c,设置所述中间结果向量r的下标遍历初始值i=1;

步骤103,若i大于n,跳转至步骤111,否则继续;

步骤104,若|ri|小于等于c,跳转至步骤108,否则继续;

步骤105,若ri大于c,跳转至步骤107,否则继续;

步骤106,ri=‑c,跳转至步骤108;

步骤107,ri=c;

步骤108,用ri更新 的值,保证 的值在(‑c,c)之间;

步骤109,若i∈h,i=i+1,跳转至步骤103,否则继续;

步骤110,将 的值更新为0,i=i+1,跳转至步骤103;

步骤111,得到仅保留最高t维值,其余维度全为0的向量步骤112,过程结束;

所述将加权和进行随机响应隐藏原始数据的具体步骤包括:步骤201,输入步骤111得到的中间结果向量 向量维度n;

步骤202,计算 各维度值之和s;

步骤203,在(0,+∞)的均匀分布中随机采样得到一个正整数k,计算kr=k Mod 2;

步骤204,若kr为0,跳转至步骤206,否则继续;

步骤205,将s的值取反;

步骤206,得到随机响应后的加权和s;

步骤207,过程结束;

对所述激活后的数值添加采样于高斯分布的噪声进行扰动步骤中,添加采样于的高斯噪声,具体包括以下步骤:步骤301,输入步骤206得到的随机响应后的加权和s,数据保留数t,步骤102得到的裁剪值c和分配给加权和数值的隐私开销∈l;

步骤302,生成激活函数的斜率θ;

步骤303,计算噪声参数 代入高斯分布的概率密度函数上,采样得到噪声Y;

步骤304,若s小于0,跳转至步骤306,否则继续;

步骤305,将s的值置为s+Y,跳转至步骤307;

步骤306,将s的值置为

步骤307,得到通过激活函数并添加高斯噪声扰动的粉碎数据a(s);

步骤308,过程结束。

2.根据权利要求1所述的保护客户端隐私数据的拆分学习方法,其特征在于,所述步骤

303中高斯分布的概率密度函数为:

2

其中μ为对随机变量x的期望,σ为该随机分布的尺度参数,σ为随机变量x的方差;

定义敏感度 对于任意∈∈(0,1), 有噪声∈

满足(∈,δ)‑差分隐私:Pr[M(D1)∈S]≤e ·Pr[M(D2)∈S],高斯机制MG的表达式为:MG(x,f(·),∈)=f(x)+(Y1,...,Yl)其中:Yi服从于高斯分布

3.根据权利要求1‑2任一项所述的保护客户端隐私数据的拆分学习方法,其特征在于,所述激活函数为Leaky ReLU,将加权和s进行随机响应后的结果作为激活函数的输入数据,当输入的加权和s为正数时,保留原本的数值;当输入的加权和s为负数时,为其赋予一个非

0的斜率θ,使其具有微小的数值,其定义如下:

4.一种具有隐私数据保护的拆分学习装置,适用于权利要求3所述的隐私数据拆分方法,其特征在于包括,客户端,持有数据集合X_A和监督信息Y,客户端本地模型,包含一个线性层L11的部分初始层f11和包含三个线性层L12、Lc和Lf的部分最终层f12,服务端,持有数据集合X_B,

服务端本地模型,包含一个线性层L2的部分网络层f2。

5.一种具有隐私数据保护的拆分学习模型的训练方法,适用于权利要求4所述的拆分学习装置,其特征在于,所述拆分学习装置的训练包括以下步骤:所述客户端对输入隐私数据每个维度的中间结果进行压缩剪裁以降低数据的敏感度;

对中间结果数据计算加权和,并将加权和进行随机响应隐藏原始数据后送入激活函数进行激活;

对激活后的数值添加采样于高斯分布的噪声进行扰动,并将扰动后的结果作为最终的粉碎数据传给服务端,实现对粉碎数据蕴含的隐私信息的保护;

所述服务端对粉碎数据计算自身加权和,并计算激活函数结果,将激活函数结果与粉碎数据拼接后的结果发送给客户端;

所述客户端对拼接结果进行整合后的输出值与原始标签进行交叉熵运算计算出损失函数得到整体误差,并根据整体误差更新本地模型的部分最终层f12的训练参数,完成优化后通过本层得到的误差计算出需要向后传播的误差值作为部分损失发送给服务端;

所述服务端通过接收到的部分损失对模型网络层f2参数进行更新并将所述部分损失继续回传给客户端,并完成客户端本地模型原始层f11的优化。

说明书 :

一种保护客户端隐私数据的拆分学习方法

技术领域

[0001] 本发明涉及一种保护客户端隐私数据的拆分学习方法,更具体的说是涉及一种基于监督信息在客户端的拆分学习模型的隐私数据保护方法,属于计算机学习领域。

背景技术

[0002] 随着深度神经网络规模的不断扩大,训练大规模模型的数据和资源需求与日俱增。由于数据收集和维护的成本及风险较高,多方协作的联合模型训练方式逐渐流行,因此如何在这种场景下保护各方数据的隐私变得尤为关键。拆分学习作为一种协作式机器学习框架,其安全初衷是通过仅传递中间结果来避免直接泄露隐私数据。但在实际应用中,该方法依然面临着诸多安全威胁,例如半诚实服务端的推断攻击和恶意攻击者的劫持攻击。
[0003] 为了缓解针对多方参与的联合学习的攻击威胁,可以通过对各方输出添加人工噪声扰动真实数值达到降低攻击成功率的目的。目前流行的一种梯度扰动方法是基于差分隐私的随机梯度下降法(DP‑SGD)。该算法在每一轮迭代的过程中都进行了梯度裁剪并添加噪声。但本申请发明人在实现上述方案的过程中发现上述传统防御方法对拆分学习的模型精度影响较大,在保护参与者隐私数据的同时严重破坏了联合模型的可用性。
[0004] 为此,亟需一种高效可行的替代方案。

发明内容

[0005] 本发明所要解决的技术问题是针对拆分学习场景中,客户端同时持有部分特征数据和标签数据时可能面临服务端发起的特征数据推断和标签数据窃取攻击,及如何提高拆分学习的模型精度且不破坏联合模型的可用性。为了解决上述问题,本发明设计了一种适用于拆分学习中面向客户端特征数据和标签数据的保护方案,即面向客户端的隐私保护拆分学习方法。该方法能够在确保客户端免遭服务端攻击导致隐私数据泄露的前提下实现拆分学习的模型训练效果。
[0006] 本申请提供了一种保护客户端隐私数据的拆分学习方法,其特征在于,包括如下步骤:
[0007] 对输入隐私数据每个维度的中间结果进行压缩裁剪以降低数据的敏感度;
[0008] 对压缩裁剪后的中间结果数据计算加权和;
[0009] 将加权和进行随机响应隐藏原始数据后,送入激活函数进行激活,并对激活后的数值添加采样于高斯分布的噪声进行扰动;
[0010] 将扰动后的结果作为最终的粉碎数据传给服务端,实现对粉碎数据蕴含的隐私信息的保护。
[0011] 作为优选,所述对输入隐私数据每个维度的中间结果进行压缩裁剪以降低数据的敏感度,具体包括如下步骤:
[0012] 步骤101,输入中间结果向量r,数据保留数量t,向量维度n;
[0013] 步骤102,生成一个t维数组h用来存储所述中间结果向量r中数值最高的t个元素的向量下标,生成一个与所述中间结果向量r维度相同的空向量   用来存储所述中间结果向量r经过压缩裁剪后的向量值,取所述中间结果向量r中所有维度值绝对值后的中位数作为裁剪值c,设置所述中间结果向量r的下标遍历初始值i=1;
[0014] 步骤103,若i大于n,跳转至步骤111,否则继续;
[0015] 步骤104,若 小于等于c,跳转至步骤108,否则继续;
[0016] 步骤105,若   大于c,跳转至步骤107,否则继续;
[0017] 步骤106, ,跳转至步骤108;
[0018] 步骤107, ;
[0019] 步骤108,用   更新   的值,保证   的值在(‑c,c)之间;
[0020] 步骤109,若   ,i=i+1,跳转至步骤103,否则继续;
[0021] 步骤110,将   的值更新为0,i=i+1,跳转至步骤103;
[0022] 步骤111,得到仅保留最高t维值,其余维度全为0的向量  ;
[0023] 步骤112,过程结束。
[0024] 作为优选,所述将加权和进行随机响应隐藏原始数据的具体步骤包括:
[0025] 步骤201,输入步骤111得到的中间结果向量  ,向量维度n;
[0026] 步骤202,计算   各维度值之和s;
[0027] 步骤203,在(0,+∞)的均匀分布中随机采样得到一个正整数k,计算;
[0028] 步骤204,若 为0,跳转至步骤206,否则继续;
[0029] 步骤205,将s的值取反;
[0030] 步骤206,得到随机响应后的加权和s;
[0031] 步骤207,过程结束。
[0032] 作为优选,对所述激活后的数值添加采样于高斯分布的噪声进行扰动步骤中,添加采样于 的高斯噪声,具体包括以下步骤:
[0033] 步骤301,输入步骤206得到的随机响应后的加权和s,数据保留数t,步骤102得到的裁剪值c和分配给加权和数值的隐私开销 ;
[0034] 步骤302,生成激活函数的斜率  ;
[0035] 步骤303,计算噪声参数 = ,代入高斯分布的概率密度函数上,采样得到噪声Y;
[0036] 步骤304,若 s 小于0,跳转至步骤306,否则继续;
[0037] 步骤305,将 s 的值置为 s + Y,跳转至步骤307;
[0038] 步骤306,将 s 的值置为   + Y;
[0039] 步骤307,得到通过激活函数并添加高斯噪声扰动的粉碎数据a(s);
[0040] 步骤308,过程结束。
[0041] 作为优选,所述步骤303中高斯分布的概率密度函数为:
[0042]
[0043] 其中 为对随机变量x的期望,σ为该随机分布的尺度参数, 为随机变量x的方差;
[0044] 定义敏感度 ,对于任意 , ,有噪声 满足 ‑差分隐私: ,高斯
机制 的表达式为:
[0045]
[0046] 其中:服从于高斯分布 。
[0047] 作为优选,所述激活函数为Leaky ReLU,将加权和s进行随机响应后的结果作为激活函数的输入数据,当输入的加权和s为正数时,保留原本的数值;当输入的加权和s为负数时,为其赋予一个非0的斜率 ,使其具有微小的数值,其定义如下:
[0048] Leaky ReLU()= 。
[0049] 本发明还公开了一种具有隐私数据保护的拆分学习模型,其特征在于包括,[0050] 客户端,持有数据集合X_A和监督信息Y,
[0051] 客户端本地模型,包含一个线性层 的部分初始层 和包含三个线性层 、和 的部分最终层 ,
[0052] 服务端,持有数据集合X_B,
[0053] 服务端本地模型,包含一个线性层 的部分网络层 。
[0054] 本发明还公开了一种具有隐私数据保护的拆分学习模型的训练方法,适用上述拆分学习模型,所述拆分学习模型的训练包括以下步骤:
[0055] 所述客户端对输入隐私数据每个维度的中间结果进行压缩裁剪以降低数据的敏感度;
[0056] 对中间结果数据计算加权和,并将加权和进行随机响应隐藏原始数据后送入激活函数进行激活;
[0057] 对激活后的数值添加采样于高斯分布的噪声进行扰动,并将扰动后的结果作为最终的粉碎数据传给服务端,实现对粉碎数据蕴含的隐私信息的保护;
[0058] 所述服务端对粉碎数据计算自身加权和,并计算激活函数结果,将激活函数结果与粉碎数据拼接后的结果发送给客户端;
[0059] 所述客户端对拼接结果进行整合后的输出值与原始标签进行交叉熵运算计算出损失函数得到整体误差,并根据整体误差更新本地模型的部分最终层 的训练参数,完成优化后通过本层得到的误差计算出需要向后传播的误差值作为部分损失发送给服务端;
[0060] 所述服务端通过接收到的部分损失对模型网络层 参数进行更新并将所述部分损失继续回传给客户端,并完成客户端本地模型原始层 的优化。
[0061] 本申请提供的技术方案,至少具有如下技术效果或优点:
[0062] 本发明提供的基于监督信息在客户端的拆分学习模型的隐私数据保护机制,可以依据粉碎数据的情况不同进行特定的人工噪声添加,和已有方法DP‑SGD相比,改善了后者因多次迭代导致噪声对模型参数影响程度过大而不适用于拆分学习的问题,具有模型准确率优势。通过真实环境的实验验证,本发明在有着较高模型可用性的同时可有效防御特征推断和标签窃取这两类攻击。

附图说明

[0063] 图1为本发明实施例监督信息在客户端的拆分学习模型的示意图。
[0064] 图2为本发明实施例中间结果压缩裁剪预处理的流程示意图。
[0065] 图3为本发明实施例加权和随机响应的流程示意图。
[0066] 图4为本发明实施例加权和激活和添加噪声扰动的流程示意图。实施方式
[0067] 本发明实施例提供一种具有隐私数据保护的拆分学习模型及模型的训练方法;拆分学习模型涉及客户端A和服务端B两个实体,协作训练一个用于推荐系统的模型M。其中:
[0068] 客户端A持有数据集合X_A和监督信息Y,客户端的本地模型为包含一个线性层的 和包含三个线性层 、 和 的 ;
[0069] 服务端B持有数据集合X_B,服务端的本地模型为包含一个线性层 的 。模型M的激活函数为 。
[0070] 本实施例模型的训练方法为:
[0071] 客户端A将数据集合X_A输入其本地模型 中,通过计算得到X_A每个维度值的中间结果,将中间结果进行压缩裁剪后送入线性层 ,再计算加权和 并对其进行随机响应。将随机响应后的加权和 通过激活函数进行激活并添加高斯噪声,得到最终的粉碎数据 并将其发送给服务端。
[0072] 服务端将数据集合X_B输入线性层 计算出自身加权和 ,将 和 拼合并进行激活后得到的结果 ,发送给客户端。客户端通过模型 的第一个线性层计算出加权和 ,与 拼合并激活后得到结果 ,将 送入第二个线性层 提取特征并激活得到输出 ,通过第三个线性层 获取特征值,将该特征输入Log(Softmax)层得到最终的预测结果 。将 与原始标签 进行交叉熵运算计算损失函数。得到误差后,对模型 进行梯度下降的优化并将剩余部分损失发送给服务端,服务端对自身模型 进行优化后继续将剩余部分损失回传给客户端完成对模型 的优化。重复上述正反向传播过程直到模型的参数值收敛,得到完成训练的模型。
[0073] 为了更好的理解上述技术方案,下面将结合说明书附图1‑4以及实施例对上述技术方案进行详细的说明。
[0074] 本实施例提供了一种保护客户端隐私数据的拆分学习方法,包括如下步骤:对输入隐私数据每个维度的中间结果进行压缩裁剪以降低数据的敏感度;对压缩裁剪后的中间结果数据计算加权和;将加权和进行随机响应隐藏原始数据后,送入激活函数进行激活,并对激活后的数值添加采样于高斯分布的噪声进行扰动;将扰动后的结果作为最终的粉碎数据传给服务端,实现对粉碎数据蕴含的隐私信息的保护。
[0075] 上述方法作用于监督信息在客户端的拆分学习模型正向传播过程中客户端与服务端的第一次交互。
[0076] 在数据准备方面,监督信息在客户端的拆分学习适用于客户端同时持有训练样本的部分特征和监督信息,而服务端仅持有训练样本的部分特征。
[0077] 在模型结构方面,这种拆分学习的结构中,客户端不仅拥有原始模型的部分初始层 ,还拥有原始模型的部分最终层 ,而服务端仅拥有部分网络层 。
[0078] 由于中间结果与输入的隐私数据值有关,直接使用客户端部分模型的中间结果将面临着敏感度高的问题,导致差分隐私机制添加的噪声过大,严重影响模型可用性。因此在预处理阶段,按照数值大小对中间结果r的每一维度值进行保留或是舍弃,将更重要、对模型学习更关键的维度值保留的同时舍弃不重要的维度。同时对维度值进行裁剪,在防止某些维度值过高而泄露更多的信息的同时也能有效地保证向量的敏感度处于较低水平,如图2所示,具体包括以下步骤:
[0079] 步骤101,输入中间结果向量r,数据保留数量t,向量维度n;
[0080] 步骤102,生成一个t维数组h用来存储r中数值最高的t个元素的向量下标,生成一个与r维度相同的空向量   用来存储r经过压缩裁剪后的向量值,取r中所有维度值绝对值后的中位数作为裁剪值c,设置r的下标遍历初始值i=1;
[0081] 步骤103,若i大于n,跳转至步骤111,否则继续;
[0082] 步骤104,若 小于等于c,跳转至步骤108,否则继续;
[0083] 步骤105,若   大于c,跳转至步骤107,否则继续;
[0084] 步骤106, ,跳转至步骤108;
[0085] 步骤107, ;
[0086] 步骤108,用   更新   的值,保证   的值在(‑c,c)之间;
[0087] 步骤109,若   ,i=i+1,跳转至步骤103,否则继续;
[0088] 步骤110,将   的值更新为0,i=i+1,跳转至步骤103;
[0089] 步骤111,得到仅保留最高t维值,其余维度全为0的向量  ;
[0090] 步骤112,过程结束。
[0091] 加权和蕴含了维度的重要性信息,可以被利用于特征推断等攻击中,因此加权和也是数据隐私需要保护的对象。累加压缩裁剪后的中间结果向量各维度值得到加权和,按照上述随机响应的方法将其以一定概率保持原始的数值,以一定概率对原始数值取反,如图3所示,具体包括以下步骤:
[0092] 步骤201,输入步骤111得到的中间结果向量  ,向量维度n;
[0093] 步骤202,计算   各维度值之和s;
[0094] 步骤203,在(0,+∞)的均匀分布中随机采样得到一个正整数k,计算;
[0095] 步骤204,若 为0,跳转至步骤206,否则继续;
[0096] 步骤205,将s的值取反;
[0097] 步骤206,得到随机响应后的加权和s;
[0098] 步骤207,过程结束。
[0099] 对于随机响应后不为0的加权和,其值仍然蕴涵关于原始隐私数据的信息。为了保护该数值型向量所蕴含的信息,根据加权和数值的正负,按照(3)式中的定义计算经过Leaky ReLU激活函数后的加权和数值,并为其添加采样于 的高斯噪声,如图4所示,具体包括以下步骤:
[0100] 步骤301,输入步骤206得到的随机响应后的加权和s,数据保留数t,步骤102得到的裁剪值c和分配给加权和数值的隐私开销 ;
[0101] 步骤302,生成激活函数的斜率  ;
[0102] 步骤303,计算噪声参数 = ,代入(1)式中高斯分布的概率密度函数上,采样得到噪声Y;
[0103] 步骤304,若 s 小于0,跳转至步骤306,否则继续;
[0104] 步骤305,将 s 的值置为 s + Y,跳转至步骤307;
[0105] 步骤306,将 s 的值置为   + Y;
[0106] 步骤307,得到通过激活函数并添加高斯噪声扰动的粉碎数据a(s);
[0107] 步骤308,过程结束。
[0108] 上述拆分学习的一次模型迭代过程如图1所示:在正向传播的过程中,客户端将本地将隐私数据 输入其拥有的部分模型 中,模型内部按照权重计算 每个维度的中间结果 ( ),其中 为模型 的权重参数,为模型 的偏置值。将所有中间结果累加得到加权和 。假设模型的激活函数为 , 将加权和 送入激活函数后得到粉碎数据 ,并将其发送给服务端。
[0109] 上述过程可以抽象为客户端的第一步正向传播 。服务端接收到粉碎数据后,通过其部分模型 按上述方式计算出自身加权和 ,并计算激活函数结果 ,与接收到的粉碎数据拼接得到 ,将拼合后的结果发送给客户端。客户端获取该结果后通过部分模型 ,按上述方式计算整合得到输出 ,将其与原始标签 进行比较,计算出损失函数 ,得到误差。
[0110] 在反向传播的过程中,客户端首先根据损失函数 得到的误差,通过梯度下降的方法更新本地模型 的训练参数( 和 ),完成模型优化后通过本层得到的误差计算出需要向后传播的误差值作为部分损失发送给服务端。服务端通过接收到的部分损失对其部分模型 的参数进行更新并将部分损失继续回传给客户端。客户端接收到部分损失完成对其本地部分模型 的优化。
[0111] 优选的,考虑到来自拆分学习服务端的潜在攻击威胁,即特征数据推断和标签数据窃取攻击,本发明所述方法中设计了一种基于随机响应的隐私保护技术。对于输入的加权和s,随机生成一个正整数k,将k对2取模得到 。对s进行随 机 响 应 后 , ,以 实 现 对 其中 蕴 含的 隐 私 数 据的 保 护 ,。
[0112] 优选的,本发明方案中使用Leaky ReLU作为激活函数,将加权和进行随机响应后的结果作为激活函数的输入数据。当输入的加权和为正数时,保留原本的数值;当输入的加权和为负数时,为其赋予一个非0的斜率 ,使其具有微小的数值。其定义如下:
[0113] Leaky ReLU()=  。
[0114] 优选的,本发明方案中通过对激活后的加权和添加高斯噪声进行扰动以满足差分隐私要求,从而达到保护隐私的目的。高斯分布的概率密度函数为:
[0115] 其中 为对随机变量x的期望,σ为该随机分布的尺度参数, 为随机变量x的方差。
[0116] 定义敏感度 ,对于任意 , ,有噪声 满足 ‑差分隐私: ,高斯
机制 的表达式为:
[0117] 其中:服从于高斯分布 。
[0118] 以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以作出若干改进,这些改进也应视为本发明的保护范围。