一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

用于保护敏感数据的方法、设备、装置和介质与流程

2022-02-25 22:39:48 来源:中国专利 TAG:


1.本公开的示例性实现方式总体涉及计算机领域,特别地涉及用于在训练机器学习模型期间保护敏感数据的方法、设备、装置和计算机可读存储介质。


背景技术:

2.随着机器学习技术的发展,机器学习技术已经被用于各行各业。可以基于预先采集的训练数据来训练用于完成特定功能的处理模型。然而,某些训练数据可能会涉及用户隐私和/或其他敏感数据。此时,如何以更为安全的方式采集训练数据并且将其用于训练处理模型,成为一个研究热点。目前已经提出了向包括敏感信息的训练数据加入噪声的技术方案,然而已有技术方案的性能并不理想,因而不能有效地防止敏感信息泄漏。


技术实现要素:

3.根据本公开的示例性实现方式,提供了一种用于保护敏感数据的方案。
4.在本公开的第一方面,提供了一种用于保护敏感数据的方法。在该方法中,接收来自服务器设备的待处理数据。接收用户对于待处理数据的处理结果,处理结果包括用户对于待处理数据的处理过程的敏感数据。基于处理结果与针对待处理数据的预测结果的比较,确定用于训练服务器设备处的服务器模型的梯度。在与梯度相关联的变化方向上更新梯度,以生成用于向服务器设备发送的更新梯度。
5.在本公开的第二方面,提供了一种电子设备,包括:至少一个处理单元;以及至少一个存储器,至少一个存储器被耦合到至少一个处理单元并且存储用于由至少一个处理单元执行的指令,指令在由至少一个处理单元执行时使设备执行动作。该动作包括:接收来自服务器设备的待处理数据;接收用户对于待处理数据的处理结果,处理结果包括用户对于待处理数据的处理过程的敏感数据;基于处理结果与针对待处理数据的预测结果的比较,确定用于训练服务器设备处的服务器模型的梯度;以及在与梯度相关联的变化方向上更新梯度,以生成用于向服务器设备发送的更新梯度。
6.在本公开的第三方面,提供了一种用于保护敏感数据的装置。该装置包括:数据接收模块,配置用于接收来自服务器设备的待处理数据;结果接收模块,配置用于接收用户对于待处理数据的处理结果,处理结果包括用户对于待处理数据的处理过程的敏感数据;梯度确定模块,配置用于基于处理结果与针对待处理数据的预测结果的比较,确定用于训练服务器设备处的服务器模型的梯度;以及更新生成模块,配置用于在与梯度相关联的变化方向上更新梯度,以生成用于向服务器设备发送的更新梯度。
7.在本公开的第四方面,提供了一种计算机可读存储介质。介质上存储有计算机程序,程序被处理器执行时实现第一方面的方法。
8.应当理解,本发明内容部分中所描述的内容并非旨在限定本公开的实现方式的关键特征或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的描述而变得容易理解。
附图说明
9.在下文中,结合附图并参考以下详细说明,本公开各实现方式的上述和其他特征、优点及方面将变得更加明显。在附图中,相同或相似的附图标记表示相同或相似的元素,其中:
10.图1示出了本公开的实现方式能够在其中实现的示例环境的框图;
11.图2示出了根据本公开的一些实现方式的基于客户端/服务器架构执行训练过程的框图;
12.图3示出了根据本公开的一些实现方式的用于确定梯度变化方向的框图;
13.图4a示出了根据本公开的一些实现方式用于基于布尔随机变量确定更新梯度的框图;
14.图4b示出了根据本公开的一些实现方式用于基于布尔随机变量确定更新梯度的框图;
15.图5示出了根据本公开的一些实现方式用于基于高斯随机变量确定更新梯度的框图;
16.图6示出了根据本公开的一些实现方式的统计数据的框图;
17.图7示出了根据本公开的一些实现方式的用于保护敏感数据的交互过程的框图;
18.图8示出了根据本公开的一些实现方式的用于保护敏感数据的方法的流程图;
19.图9示出了根据本公开的一些实现方式的用于保护敏感数据的装置的框图;以及
20.图10示出了能够实施本公开的多个实现方式的设备的框图。
具体实施方式
21.下面将参照附图更详细地描述本公开的实现方式。虽然附图中示出了本公开的某些实现方式,然而应当理解的是,本公开可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实现方式,相反,提供这些实现方式是为了更加透彻和完整地理解本公开。应当理解的是,本公开的附图及实现方式仅用于示例性作用,并非用于限制本公开的保护范围。
22.在本公开的实现方式的描述中,术语“包括”及其类似用语应当理解为开放性包含,即“包括但不限于”。术语“基于”应当理解为“至少部分地基于”。术语“一个实现方式”或“该实现方式”应当理解为“至少一个实现方式”。术语“一些实现方式”应当理解为“至少一些实现方式”。下文还可能包括其他明确的和隐含的定义。
23.如本文中所使用的,术语“模型”可以从训练数据中学习到相应的输入与输出之间的关联,从而在训练完成后可以针对给定的输入,生成对应的输出。模型的生成可以基于机器学习技术。深度学习是一种机器学习算法,通过使用多层处理单元来处理输入和提供相应输出。神经网络模型是基于深度学习的模型的一个示例。在本文中,“模型”也可以被称为“机器学习模型”、“学习模型”、“机器学习网络”或“学习网络”,这些术语在本文中可互换地使用。
[0024]“神经网络”是一种基于深度学习的机器学习网络。神经网络能够处理输入并且提供相应输出,其通常包括输入层和输出层以及在输入层与输出层之间的一个或多个隐藏层。在深度学习应用中使用的神经网络通常包括许多隐藏层,从而增加网络的深度。神经网
络的各个层按顺序相连,从而前一层的输出被提供作为后一层的输入,其中输入层接收神经网络的输入,而输出层的输出作为神经网络的最终输出。神经网络的每个层包括一个或多个节点(也称为处理节点或神经元),每个节点处理来自上一层的输入。
[0025]
通常,机器学习大致可以包括三个阶段,即训练阶段、测试阶段和应用阶段(也称为推理阶段)。在训练阶段,给定的模型可以使用大量的训练数据进行训练,不断迭代更新参数值,直到模型能够从训练数据中获取一致的满足预期目标的推理。通过训练,模型可以被认为能够从训练数据中学习从输入到输出之间的关联(也称为输入到输出的映射)。训练后的模型的参数值被确定。在测试阶段,将测试输入应用到训练后的模型,测试模型是否能够提供正确的输出,从而确定模型的性能。在应用阶段,模型可以被用于基于训练得到的参数值,对实际的输入进行处理,确定对应的输出。
[0026]
在机器学习领域,可以利用包括大量训练数据的训练数据集来训练预测模型,进而使得预测模型完成期望的功能。例如,在信息推送领域中,可以向用户推送感兴趣的信息。如果用户对于推送的信息感兴趣,则用户可以点击并且打开推送信息,否则用户可能会忽略推送的信息。可以利用训练数据来训练预测模型,进而使得预测模型可以向不同的用户推送相应的感兴趣信息。然而,在获取训练数据期间,可能会涉及用户敏感信息。在下文中,将首先参见图1描述根据本公开的一个示例性实现方式的示例环境。
[0027]
示例环境
[0028]
图1示出了本公开的实现方式能够在其中实现的示例环境100的框图。在图1的环境100中,期望训练和使用这样的模型(即,预测模型130),该模型被配置用于预测向用户推送哪些数据。如图1所示,环境100包括模型训练系统150和模型应用系统152。图1上部示出了模型训练阶段的过程,并且下部示出模型应用阶段的过程。在训练前,预测模型130的参数值可以具有初始值,或者可以具有通过预训练过程获得经预训练的参数值。经过训练过程,预测模型130的参数值可以被更新和调整。在训练完成后可以获得预测模型130’。此时,预测模型130’的参数值已经被更新,并且基于已更新的参数值,预测模型130在应用阶段可以被用于实现预测任务。
[0029]
在模型训练阶段,可以基于包括多个训练数据112的训练数据集110,并利用模型训练系统150来训练预测模型130。在此,每个训练数据112可以涉及二元组格式,并且包括待处理数据120(例如,有关天气和/或其他内容的推送数据)和处理结果122(即,用户是否点击了推送数据)。在本公开的上下文中,将仅以有关数据推送功能的预测模型为示例,来描述根据本公开的一个示例性实现方式的各种细节。根据本公开的一个示例性实现方式,预测模型还可以用于实现不同的功能。
[0030]
可以利用包括待处理数据120和处理结果122的训练数据112来训练预测模型130。具体地,可以利用大量训练数据迭代地执行训练过程。在训练完成之后,预测模型130可以向不同的用户推荐相应的感兴趣数据。在模型应用阶段,可以利用模型应用系统152来调用预测模型130’(此时的预测模型130’具有训练后的参数值)。例如,可以接收输入数据140(包括待处理数据142),并且输出用户是否会点击该待处理数据142的预测结果144。可以利用预测模型130’来仅向用户推荐预测结果144为“点击”的数据。
[0031]
在图1中,模型训练系统150和模型应用系统152可以包括具有计算能力的任何计算系统,例如各种计算设备/系统、终端设备、服务器等。终端设备可以涉及任意类型的移动
终端、固定终端或便携式终端,包括移动手机、台式计算机、膝上型计算机、笔记本计算机、上网本计算机、平板计算机、媒体计算机、多媒体平板、或者前述各项的任意组合,包括这些设备的配件和外设或者其任意组合。服务器包括但不限于大型机、边缘计算节点、云环境中的计算设备,等等。
[0032]
应当理解,图1示出的环境100中的部件和布置仅仅是示例,适于用于实现本公开所描述的示例性实现方式的计算系统可以包括一个或多个不同的部件、其他部件和/或不同的布置方式。例如,虽然被示出为是分离的,但模型训练系统150和模型应用系统152可以集成在相同系统或设备中。本公开的实现方式在此方面不受限制。以下将继续参考附图,分别描述模型训练和模型应用的示例性实现方式。
[0033]
将会理解,训练过程需要大量训练数据,并且训练数据可能包括用户偏好等敏感信息。目前已经提出了分布式机器学习技术,例如,服务器设备和客户端设备可以具有各自的机器学习模型,服务器设备可以向客户端设备发送模型参数和推送数据。用户可以在自己的客户端设备处处理推送数据(例如,用户可以“点击”或者“不点击”推送数据)。此时,包括用户个人的敏感信息的处理结果仅在客户端设备处存储,而不会被发送至其他设备。
[0034]
在分布式机器学习中,客户端设备可以包括完整的训练数据,也即,待处理数据120(或者其编码)和处理结果122。客户端设备可以确定用于更新预测模型的梯度信息,并且向服务器设备发送该梯度信息。此时,敏感信息没有离开用户的客户端设备,而是仅有梯度信息被发送至服务器设备。然而,攻击者可以使用白箱攻击等技术,来从梯度信息中恢复出原始敏感信息。为了进一步保护敏感信息,目前已经提出了向梯度信息添加噪声从而防止敏感信息泄漏。然而,噪声数据需要额外的资源开销,并且过多的噪声可能会影响训练数据的准确性进而降低训练过程性能。因而,期望能够以更为有效的方式来保护敏感信息。
[0035]
模型训练架构
[0036]
为了至少部分地解决上述技术方案的缺陷,根据本公开的实现方式,提出了一种用于在训练过程期间保护敏感数据的方法。在下文中,首先参见图2描述根据本公开的一个示例性实现方式的概要。图2示出了根据本公开的一些实现方式的基于客户端/服务器架构执行训练过程的框图200。在此,预测模型并非在单一的计算设备处被训练,而是预测模型可以包括客户端模型214和服务器模型224,并且可以利用客户端设备210和服务器设备220两者来以分布式方式执行训练。
[0037]
图2左侧示出了在客户端设备210侧的处理过程,并且图2右侧示出了服务器设备220侧的处理过程。服务器设备可以包括存储待处理数据的数据集222以及服务器模型224。服务器设备220可以从数据集222中选择待处理数据,并且向客户端设备210发送待处理数据120。在此的待处理数据120可以包括多种类型的数据,包括但不限于天气预报、新闻、交通路况等用户可能感兴趣信息。将会理解,在此的待处理数据120可以包括推送数据和/或其编码(例如,embedding),并且可以基于目前已知的和/或将在未来开发的多种编码器确定该编码。
[0038]
进一步,服务器设备220可以向客户端设备210发送客户端模型参数212,以便客户端设备210利用该参数配置本地的客户端模型214。进一步,客户端设备210可以利用配置好的客户端模型214来处理待处理数据120并且获得预测结果230。用户270可以根据自身的偏好来点击或者不点击待处理数据120,此时可以在客户端设备210处获取真实的处理结果
122(即,用户标签)。客户端设备210可以根据来自用户270的处理结果122和预测结果230的比较,来确定用于更新预测模型的损失梯度240。
[0039]
在此模型训练过程中,由于处理结果122包括用户270的敏感信息,处理结果122仅在客户端设备210处存储不会被发送至其他计算设备。为了加强保护梯度240并且避免攻击者从梯度240反推得到处理结果122中的敏感信息,本公开提出了仅在梯度变化方向上引入噪声250,以便生成更新梯度260。此时,梯度变化方向上的噪声250一方面可以在增加攻击者获得敏感信息的难度,另一方面可以降低过多噪声对于训练过程的不必要干扰,并且确保可以沿着损失梯度变化的方向训练预测模型。
[0040]
在下文中,将参见图3描述根据本公开的一个示例性实现方式的更多细节。相比于在全部方向上引入噪声的已有技术方案而言,根据本公开的一个示例性实现方式,仅在梯度变化方向上引入噪声。首先参见图3描述如何确定梯度变化方向,该图3示出了根据本公开的一些实现方式的用于确定梯度变化方向的框图300。具体地,可以基于与待处理数据相关联的一组候选结果,确定与梯度相关联的变化方向。在下文中,以二值化处理结果(例如,“点击”和“不点击”)为示例描述如何确定梯度变化方向。如图3所示,在向用户发送待处理数据(例如,表示为x)的示例中,可以获取一组候选结果(例如,表示为y):“不点击(y=0)”310和“点击(y=1)”320。此时,训练数据可以表示为(x,y)。
[0041]
进一步,可以分别确定与上述两个候选结果相关的梯度。根据本公开的一个示例性实现方式,可以接收来自服务器设备220的用于设置客户端模型214的客户端模型参数212。进一步,可以利用接收到的参数配置客户端模型214,以便处理待处理数据120并且获得预测结果230。
[0042]
进一步,可以基于来自用户270的真实处理结果122与预测结果230的比较,确定用于训练服务器设备处的服务器模型224的梯度。根据本公开的一个示例性实现方式,可以确定分别与一组候选结果相关联的一组梯度。也即,可以分别将“不点击”310和“点击”320与预测结果230进行比较。假设用户270没有点击推送数据,则可以基于“不点击”310确定真实梯度312,并且基于“点击”320确定与真实梯度反向的相反梯度322。
[0043]
在此,真实梯度312和相反梯度322表示:当用户270执行不同的操作时,将朝向两个不同的方向训练预测模型。可以确定获得的两个梯度之间的差异,进而确定与梯度相关联的变化方向。如图3所示,假设真实梯度312和相反梯度322分别表示为向量g0和g1,则g
1-g0表示梯度变化方向。如图3所示,真实梯度312和相反梯度322之间的箭头即示出了梯度变化的方向330。
[0044]
根据本公开的一个示例性实现方式,可以基于如下公式来确定梯度变化方向:
[0045]
d=g
1-y-gyꢀꢀꢀ
公式1
[0046]
其中d表示梯度变化方向,gy表示基于用户的真实处理结果确定的梯度,g
1-y
表示在二值化分类情况下基于另一候选处理结果确定的梯度。
[0047]
可以在梯度变化方向330上引入噪声数据,以便增加攻击者获取敏感信息的难度并且降低攻击者的成功率。根据本公开的一个示例性实现方式,可以基于梯度和变化方向来生成更新梯度。具体地,可以基于如下公式来生成更新梯度:
[0048]
g=f1(gy,d)
ꢀꢀꢀ
公式2
[0049]
其中g表示更新梯度,gy表示基于用户的真实处理结果确定的梯度,d表示梯度变
化方向,并且f1表示与gy和d相关联的函数,可以基于多种方式来确定该函数的具体表示,在下文中将进一步详细说明。可以将上文的公式1带入公式2,此时可以基于公式3来确定更新梯度。
[0050]
g=f2(gy,(g
1-y-gy))
ꢀꢀꢀ
公式3
[0051]
其中g表示更新梯度,gy表示基于用户的真实处理结果确定的梯度,g
1-y
表示在二值化分类情况下基于另一候选处理结果确定的梯度,并且f2表示与gy和g
1-y
相关联的函数,在下文中将进一步详细说明。
[0052]
根据本公开的一个示例性实现方式,可以确定用于更新梯度的噪声因子。在此,噪声因子可以表示所引入的噪声的强度,噪声因子越大则引入的噪声强度越大。可以基于梯度、噪声因子和变化方向来生成更新梯度。具体地,可以基于噪声因子和基于一组候选结果确定的梯度在变化方向上的偏移的乘积,来确定噪声的大小。进一步,可以基于用户的真实处理结果确定的真实梯度和噪声,来确定更新梯度。
[0053]
根据本公开的一个示例性实现方式,可以基于如下公式4来确定更新梯度:
[0054]
g=gy u
·
(g
1-y-gy)
ꢀꢀꢀ
公式4
[0055]
公式4中各个符号的含义与上文描述公式中的符号含义相同,并且u表示噪声因子。
[0056]
在公式4中g
1-y-gy可以以向量表示,该向量不但可以表示基于不同候选结果确定的梯度变化方向,还可以表示梯度变化的大小。也即,该向量的两个端点分别表示当用户执行“点击”或者“不点击”操作时的梯度。向量中的各个点可以表示用户在执行“点击”操作和“不点击”操作变化过程中的梯度变化。因而,当公式4中的噪声因子取值不同时,将会产生不同的更新梯度。具体地,可以基于布尔随机变量或者高斯随机变量来确定噪声因子。
[0057]
根据本公开的一个示例性实现方式,可以基于布尔随机变量来确定噪声因子。在此,布尔随机变量可以表示0和1中的一个数值。具体地,可以基于如下公式5来定义布尔随机变量的取值。
[0058]
pr[u=1]=∈,并且pr[u=0]=1-∈
ꢀꢀꢀ
公式5
[0059]
其中pr表示概率公式,u表示噪声因子,∈表示0至1之间的实数。换言之,公式5表示噪声因子u的数值可以取自1或0,其中u=1的概率为∈,并且u=0的概率为1-∈。
[0060]
在下文中,将分别参见图4a和图4b描述基于布尔随机变量来确定更新梯度的具体示例。图4a示出了根据本公开的一些实现方式用于基于布尔随机变量确定更新梯度的框图400a。如图4a所示,假设用户的真实处理结果为“不点击”310,当u=0时,基于公式4可以确定g=gy。此时,更新梯度410a与基于用户的真实处理结果的真实梯度相同,即,位于梯度变化方向的起点。
[0061]
图4b示出了根据本公开的一些实现方式用于基于布尔随机变量确定更新梯度的框图400b。如图4b所示,假设用户的真实处理结果为“不点击”310,当u=1时,基于公式4确定g=gy (g
1-y-gy)。此时,更新梯度410b为g
1-y
,并且与基于用户的真实处理结果的真实梯度相反,即,位于梯度变化方向的终点。利用本公开的示例性实现方式,可以向服务器设备220提供真实梯度312或者相反梯度322。以此方式,可以以简单并且有效的方式向更新梯度添加噪声数据,由此降低攻击者成功获取敏感信息的概率。
[0062]
在上述示例中,当u=0时的更新梯度410a与真实梯度相同,当u=1时的更新梯度
420b与真实梯度相反。将会理解,尽管相反梯度可以干扰攻击者的判断,然而,过多的干扰将会导致用于实际训练的梯度不够准确,因而难以利用有限的时间和计算资源获得准确的预测模型。因而,应当适当限制出现相反梯度的情况。
[0063]
根据本公开的一个示例性实现方式,为了确保更新梯度在大部分情况下可以表示基于真实处理结果确定的正确梯度,应当进一步限制∈的取值范围。例如,可以定义∈《1/2。此时,攻击者的成功概率为1-∈,并且攻击auc(area under curve,曲线下面积)参数为(1-∈)2 ∈(1-∈)=1-∈。
[0064]
将会理解,攻击auc在本公开的上下文中定义的表示攻击者破解成功率的参数。在攻击者破解真实标签数据的场景中,攻击者可以设置评分函数,对于每个样本可以生成相应的分数t。可以选定阈值t0,如果t》t0,则认为真实标签为1,反之为0。对于已知的t0,可以考虑攻击者的真阳率(true positive rate)或者假阳率(false positive rate)。然而,在不知道阈值t0时,可以遍历所有阈值并且生成真阳率相对于假阳率的曲线。对于与用于生成更新梯度的特定保护方法而言,所生成曲线的auc越大则表示评分函数越准确,面积为1表示完全正确。
[0065]
利用本公开的示例性实现方式,通过限制∈的取值范围,可以使得更新梯度在大多情况下可以反映用户的真实标签,因而使得可以朝向使得预测模型与真实训练数据相一致的方向执行预测。
[0066]
根据本公开的一个示例性实现方式,可以基于高斯随机变量来确定噪声因子。具体地,可以基于如下公式6来确定噪声因子:
[0067][0068]
其中u表示噪声因子,表示分布幅度为∈的高斯分布函数。在下文中,将参见图5描述有关基于高斯随机变量来确定噪声因子的更多细节。
[0069]
图5示出了根据本公开的一些实现方式用于基于高斯随机变量确定更新梯度的框图500。如图5所示,可以基于高斯分布函数510来确定噪声因子u的具体数值。在此,噪声因子u可以以高维数据来表示并且涉及多个方向。由于仅有梯度变化方向330上的梯度有助于获得更好的训练结果,可以将噪声因子u映射至梯度变化方向330,而不考虑其他方向的分量。以此方式,可以从梯度变化方向330上选择具有不同梯度的数值,来作为更新梯度。例如,可以选择位于梯度变化方向330上的与真实梯度312和相反梯度322的距离比值为3:7位置(或者更靠近真实梯度312的其他位置)处的梯度。换言之,在大多数情况下,更新梯度应当位于梯度变化方向330上的更加靠近真实梯度312的位置。
[0070]
利用本公开的示例性实现方式,不必考虑梯度变化方向330以外的其他方向,而是仅在梯度变化方向330上添加噪声。以此方式,一方面可以降低其他方向的噪声分量的相关计算开销,另一方面可以降低其他方向的噪声分量对于训练结果的干扰。在梯度变化方向330上的更为靠近真实梯度312的更新梯度,对于提高预测模型的准确性可以提供有益贡献。更为靠近相反梯度322的更新梯度可以提高攻击者破解过程的难度,进而降低攻击者成功率。
[0071]
根据本公开的一个示例性实现方式,可以进一步限制∈的取值范围,以使得基于高斯随机变量确定的更新梯度更为靠近真实梯度312。噪声因子应当满足如下条件:基于噪
声因子计算的更新梯度更加靠近真实梯度312而不是更加靠近相反梯度322。换言之,更新梯度与真实梯度之间的距离小于更新梯度与相反梯度(也即,一组候选梯度中的不同于梯度的其他候选梯度)之间的距离的概率应当不低于1/2。可以基于目前已知的和/或将在未来开发的方法确定使得u《1/2的∈。此时,攻击者的失败概率为:
[0072][0073]
公式7中的各个符号的含义与上文描述的公式中的含义相同,并且此时攻击auc参数为pr[u《1/2]。
[0074]
相比于已有的向梯度引入多个方向的噪声的技术方案,仅在梯度变化方向上引入噪声可以更加有助于防止攻击者成功。图6示出了根据本公开的一些实现方式的统计数据的框图600,其中纵坐标表示上文描述的攻击auc,而横坐标表示测试auc。在此,测试auc是衡量预测模型的指标,可以基于测试数据集中的测试样本来确定训练好的预测模型是否准确。如图6所示,图例610表示根据本公开的技术方案所确定的攻击auc与测试auc的对比的统计数据,图例620表示根据已有技术方案所确定的攻击uc与测试auc的对比的统计数据。如图6所示,图例610对应的曲线在图例620对应的曲线上方。因而,相比于已有技术方案而言,本公开的技术方案可以在确保预测模型的性能的情况下更好地保护敏感数据。
[0075]
根据本公开的一个示例性实现方式,在已经获得更新梯度之后,可以向服务器设备220发送更新梯度,以使得服务器设备220根据更新梯度来确定在下一迭代过程中用于设置客户端模型的客户端模型参数。根据本公开的一个示例性实现方式,可以迭代地执行上文描述的过程,直到预测模型满足预定的收敛条件。此时,在服务器设备220在每个迭代过程中可以向客户端设备210发送新的参数,以便客户端设备基于新的参数确定梯度和相应的更新梯度。可以不断地重复上述过程,直到满足预定的收敛条件。此时,由于更新梯度包括噪声数据,这使得攻击者难以执行破解过程进而可以保护原始处理结果中的敏感数据。
[0076]
上文已经描述了服务器设备220向客户端设备210发送单一待处理数据120并且获得相应的更新梯度。根据本公开的一个示例性实现方式,可以以批处理方式来执行上文描述的过程。例如,客户端设备210可以从服务器设备220接收包括多个待处理数据的训练数据包。进一步,客户端设备210可以针对训练数据包中的每个待处理数据进行处理。具体地,客户端设备210可以显示每个待处理数据,并且接收用户对于每个待处理数据的处理结果。可以按照上文描述的类似过程来确定与梯度变化方向,并且在确定的梯度变化方向上更新梯度。此时,可以生成多个更新梯度。
[0077]
根据本公开的一个示例性实现方式,可以按照预定的批次大小,来迭代地执行上文描述的过程。假设批次大小为n,则服务器设备可以一次向客户端设备发送n个待处理数据。在经过处理之后,客户端设备可以一次向服务器设备返回n个更新梯度。接着,服务器设
备可以利用接收到的更新梯度来执行训练过程。根据本公开的一个示例性实现方式,服务器设备可以按照更新梯度的方向来更新服务器模型参数。进一步,可以基于更新后的参数来确定向客户端设备发送的客户端设备参数。
[0078]
根据本公开的一个示例性实现方式,可以在连接至服务器的客户端设备处实现上文描述的方法,并且可以迭代地执行该方法,直到达到预定收敛条件。
[0079]
在下文中,参见图7描述各个实体之间的交互过程。图7示出了根据本公开的一些实现方式的用于保护敏感数据的交互过程的框图700。如图7所示,服务器设备220可以向客户端设备210发送710待处理数据。例如,可以一次仅发送一个待处理数据,也可以以批处理的方式一次发送多个待处理数据。客户端设备210可以向用户270显示待处理数据,用户270可以向客户端设备210发送712的处理结果。在接收到处理结果之后,客户端设备210可以基于处理结果的真实值与预测值的比较,来确定714相关的损失梯度。进一步,客户端设备210可以确定相应的梯度变化方向,并且仅在梯度变化方向上更新716梯度。进一步,客户端设备210可以向服务器设备220发送718更新梯度。在接收到更新梯度之后,服务器设备220可以利用更新梯度来执行训练720。
[0080]
将会理解,上文仅以包括二值化分类的标签作为示例描述了用于保护敏感数据的过程。根据本公开的一个示例性实现方式,来自用户的标签还可以包括更多的分类。例如,用户可以对待处理进行评分(例如,1-100的评分),等等。可以类似的方式来确定多个梯度变化方向。假设来自用户的标签涉及k 1个候选分类,此时可以确定与每个候选分类相关联的梯度g0、g1、
…gk
。继而,可以基于g
1-g0、g
2-g0、

、g
k-g0来分别确定多个梯度变化方向。
[0081]
进一步,可以分别利用上文描述的基于布尔随机变量或者高斯随机变量,来确定相应的噪声因子。继而,可以在基于类似的方式,在各个梯度变化方向上确定对应于真实用户标签的更新梯度。将会理解,在此候选分类的数量应当小于训练数据的向量表示的维度,否则过多的梯度变化方向将会导致本公开的方法退化为在各个方向上添加噪声。
[0082]
利用本公开的示例性实现方式,包括用户270的敏感信息的处理结果不会离开客户端设备210,而是在客户端设备210本地被处理以便获得更新梯度。在此,更新梯度仅包括在有助于提高训练效率的梯度变化方向上的噪声数据。相比于在全部方向上添加噪声数据的已有技术方案而言,一方面可以降低处理多个方向上的噪声的相应开销,另一方面还可以确保更新梯度不会被引入过多噪声数据。
[0083]
模型应用架构
[0084]
上文已经描述了的对预测模型130的训练,训练后的预测模型130’可以被提供到如图1所示的模型应用系统152中使用,以用于对输入数据140进行处理。将会理解,尽管训练过程中所使用的更新梯度包括噪声数据,然而仅在梯度变化方向存在噪声数据。进一步,通过使用噪声因子来控制噪声数据的强度,更新梯度与真实梯度的方向一致,因而可以朝向使得预测模型与真实用户标签相一致的方向训练预测模型。以此方式,训练后的预测模型130’可以具有较高的准确性,进而为后续的模型应用过程提供准确依据。
[0085]
根据本公开的一个示例性实现方式,在已经完成模型训练阶段之后,可以使用已经训练好的、具有训练后的参数值的预测模型130’来处理接收到的输入数据。例如,可以向预测模型130’输入待处理数据142。此时,预测模型130’即可输出用户是否会点击待处理数据的预测结果144。具体地,可以仅向用户推送感兴趣的数据。例如,假设预测模型130’表示
用户270总是点击有关天气的推送数据,则可以优先地向用户270推送天气数据。又例如,假设预测模型130’表示用户270很少打开过有关体育新闻的推送数据,则可以降低推送体育新闻的频率。以此方式,训练后的预测模型130’可以具有较高的准确性,进而为后续的推送操作提供判断依据。
[0086]
示例过程
[0087]
图8示出了根据本公开的一些实现方式的用于保护敏感数据的方法800的流程图。具体地,在框810处,可以接收来自服务器设备的待处理数据。
[0088]
在框820处,可以接收用户对于待处理数据的处理结果,处理结果包括用户对于待处理数据的处理过程的敏感数据。
[0089]
在框830处,可以基于处理结果与针对待处理数据的预测结果的比较,确定用于训练服务器设备处的服务器模型的梯度。根据本公开的一个示例性实现方式,为了确定该梯度,可以接收来自服务器设备的用于设置客户端模型的客户端模型参数。进一步,可以基于客户端模型参数和客户端模型处理待处理数据,以获得针对待处理数据的预测结果。
[0090]
根据本公开的一个示例性实现方式,可以向服务器设备发送更新梯度,以使得服务器设备根据更新梯度来确定用于设置客户端模型的客户端模型参数。
[0091]
在框840处,可以在与梯度相关联的变化方向上更新梯度,以生成用于向服务器设备发送的更新梯度。根据本公开的一个示例性实现方式,为了生成更新梯度,可以基于与待处理数据相关联的一组候选结果,确定与梯度相关联的变化方向。继而,可以基于梯度和变化方向,生成更新梯度。
[0092]
根据本公开的一个示例性实现方式,为了确定与梯度相关联的变化方向,可以确定分别与一组候选结果相关联的一组梯度,并且基于一组梯度之间的差异,确定与梯度相关联的变化方向。
[0093]
根据本公开的一个示例性实现方式,为了确定更新梯度,可以确定用于更新梯度的噪声因子,噪声因子表示向梯度引入的噪声数据的强度。继而,可以基于梯度、噪声因子和变化方向来生成更新梯度。
[0094]
根据本公开的一个示例性实现方式,为了确定噪声因子,可以基于布尔随机变量来确定噪声因子,在此噪声因子使得更新梯度等于梯度的概率不低于1/2。
[0095]
根据本公开的一个示例性实现方式,为了确定噪声因子,可以基于高斯随机变量来确定噪声因子。在此,噪声因子使得更新梯度与梯度之间的距离小于更新梯度与一组候选梯度中的不同于梯度的其他候选梯度之间的距离的概率不低于1/2。
[0096]
根据本公开的一个示例性实现方式,待处理数据被包括在来自服务器设备的训练数据包中,以及进一步包括:利用方法800来处理训练数据包中的其他待处理数据。
[0097]
根据本公开的一个示例性实现方式,该方法800在连接至服务器的客户端设备处被执行,并且可以被迭代地执行。
[0098]
示例装置和设备
[0099]
图9示出了根据本公开的一些实现方式的用于保护敏感数据的装置900的框图。如图9所示,装置900包括数据接收模块910、结果接收模块920、梯度确定模块930、以及更新生成模块。
[0100]
根据本公开的一个示例性实现方式,数据接收模块910,配置用于接收来自服务器
设备的待处理数据;结果接收模块920,配置用于接收用户对于待处理数据的处理结果,处理结果包括用户对于待处理数据的处理过程的敏感数据;梯度确定模块930,配置用于基于处理结果与针对待处理数据的预测结果的比较,确定用于训练服务器设备处的服务器模型的梯度;以及更新生成模块940,配置用于在与梯度相关联的变化方向上更新梯度,以生成用于向服务器设备发送的更新梯度。
[0101]
根据本公开的一个示例性实现方式,梯度确定模块930进一步配置用于:接收来自服务器设备的用于设置客户端模型的客户端模型参数;以及基于客户端模型参数和客户端模型处理待处理数据,以获得针对待处理数据的预测结果。
[0102]
根据本公开的一个示例性实现方式,装置900进一步包括发送模块,配置用于向服务器设备发送更新梯度,以使得服务器设备根据更新梯度来确定用于设置客户端模型的客户端模型参数。
[0103]
根据本公开的一个示例性实现方式,更新生成模块940进一步配置用于:基于与待处理数据相关联的一组候选结果,确定与梯度相关联的变化方向;以及基于梯度和变化方向,生成更新梯度。
[0104]
根据本公开的一个示例性实现方式,更新生成模块940进一步配置用于:确定分别与一组候选结果相关联的一组梯度;以及基于一组梯度之间的差异,确定与梯度相关联的变化方向。
[0105]
根据本公开的一个示例性实现方式,更新生成模块940进一步配置用于:确定用于更新梯度的噪声因子,噪声因子表示向梯度引入的噪声数据的强度;以及基于梯度、噪声因子和变化方向来生成更新梯度。
[0106]
根据本公开的一个示例性实现方式,更新生成模块940进一步配置用于:基于布尔随机变量来确定噪声因子,噪声因子使得更新梯度等于梯度的概率不低于1/2。
[0107]
根据本公开的一个示例性实现方式,更新生成模块940进一步配置用于:基于高斯随机变量来确定噪声因子,噪声因子使得更新梯度与梯度之间的距离小于更新梯度与一组候选梯度中的不同于梯度的其他候选梯度之间的距离的概率不低于1/2。
[0108]
根据本公开的一个示例性实现方式,待处理数据被包括在来自服务器设备的训练数据包中,以及该装置900进一步包括:调用模块,配置用于利用上文描述的各个模块来处理训练数据包中的其他待处理数据。
[0109]
根据本公开的一个示例性实现方式,该装置900在连接至服务器的客户端设备处被实现,以及装置900在客户端设备处被迭代地调用。
[0110]
图10示出了能够实施本公开的多个实现方式的设备1000的框图。应当理解,图10所示出的计算设备1000仅仅是示例性的,而不应当构成对本文所描述的实现方式的功能和范围的任何限制。图10所示出的计算设备1000可以用于实现如图1所示的模型训练系统150,也可以实现用于如图1所示的模型应用系统152。
[0111]
如图10所示,计算设备1000是通用计算设备的形式。计算设备1000的组件可以包括但不限于一个或多个处理器或处理单元1010、存储器1020、存储设备1030、一个或多个通信单元1040、一个或多个输入设备1050以及一个或多个输出设备1060。处理单元1010可以是实际或虚拟处理器并且能够根据存储器1020中存储的程序来执行各种处理。在多处理器系统中,多个处理单元并行执行计算机可执行指令,以提高计算设备1000的并行处理能力。
[0112]
计算设备1000通常包括多个计算机存储介质。这样的介质可以是计算设备1000可访问的任何可以获得的介质,包括但不限于易失性和非易失性介质、可拆卸和不可拆卸介质。存储器1020可以是易失性存储器(例如寄存器、高速缓存、随机访问存储器(ram))、非易失性存储器(例如,只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、闪存)或它们的某种组合。存储设备1030可以是可拆卸或不可拆卸的介质,并且可以包括机器可读介质,诸如闪存驱动、磁盘或者任何其他介质,其可以能够用于存储信息和/或数据(例如用于训练的训练数据)并且可以在计算设备1000内被访问。
[0113]
计算设备1000可以进一步包括另外的可拆卸/不可拆卸、易失性/非易失性存储介质。尽管未在图10中示出,可以提供用于从可拆卸、非易失性磁盘(例如“软盘”)进行读取或写入的磁盘驱动和用于从可拆卸、非易失性光盘进行读取或写入的光盘驱动。在这些情况中,每个驱动可以由一个或多个数据介质接口被连接至总线(未示出)。存储器1020可以包括计算机程序产品1025,其具有一个或多个程序模块,这些程序模块被配置为执行本公开的各种实现方式的各种方法或动作。
[0114]
通信单元1040实现通过通信介质与其他计算设备进行通信。附加地,计算设备1000的组件的功能可以以单个计算集群或多个计算机器来实现,这些计算机器能够通过通信连接进行通信。因此,计算设备1000可以使用与一个或多个其他服务器、网络个人计算机(pc)或者另一个网络节点的逻辑连接来在联网环境中进行操作。
[0115]
输入设备1050可以是一个或多个输入设备,例如鼠标、键盘、追踪球等。输出设备1060可以是一个或多个输出设备,例如显示器、扬声器、打印机等。计算设备1000还可以根据需要通过通信单元1040与一个或多个外部设备(未示出)进行通信,外部设备诸如存储设备、显示设备等,与一个或多个使得用户与计算设备1000交互的设备进行通信,或者与使得计算设备1000与一个或多个其他计算设备通信的任何设备(例如,网卡、调制解调器等)进行通信。这样的通信可以经由输入/输出(i/o)接口(未示出)来执行。
[0116]
根据本公开的示例性实现方式,提供了一种计算机可读存储介质,其上存储有计算机可执行指令,其中计算机可执行指令被处理器执行以实现上文描述的方法。根据本公开的示例性实现方式,还提供了一种计算机程序产品,计算机程序产品被有形地存储在非瞬态计算机可读介质上并且包括计算机可执行指令,而计算机可执行指令被处理器执行以实现上文描述的方法。根据本公开的示例性实现方式,提供了一种计算机程序产品,其上存储有计算机程序,程序被处理器执行时实现上文描述的方法。
[0117]
这里参照根据本公开实现的方法、装置、设备和计算机程序产品的流程图和/或框图描述了本公开的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
[0118]
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理单元,从而生产出一种机器,使得这些指令在通过计算机或其他可编程数据处理装置的处理单元执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
[0119]
可以把计算机可读程序指令加载到计算机、其他可编程数据处理装置、或其他设备上,使得在计算机、其他可编程数据处理装置或其他设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其他可编程数据处理装置、或其他设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
[0120]
附图中的流程图和框图显示了根据本公开的多个实现的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
[0121]
以上已经描述了本公开的各实现,上述说明是示例性的,并非穷尽性的,并且也不限于所公开的各实现。在不偏离所说明的各实现的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实现的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其他普通技术人员能理解本文公开的各个实现方式。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献