数据处理方法、客户端、服务器及存储介质
技术领域
本发明涉及计算机技术领域,尤其涉及数据处理方法、客户端、服务器及存储介质。
背景技术
在相关技术中,为了解决用户隐私保护问题,按照一定概率修改上传数据结果,使得上传的数据不能完全对应一个用户的真实数据情况。但是隐私保护不彻底,还是上传了大量真实数据到服务器,导致数据的保护效果不好。
发明内容
本发明实施例提供一种数据处理方法、客户端、服务器及存储介质,能够针对待处理数据在客户端进行数据保护处理后发给服务器,不会造成数据泄露,提高了数据安全性。
本发明实施例的技术方案是这样实现的:
第一方面,本发明实施例提供一种数据处理方法,包括:
客户端确定待处理数据对应的数据保护模型;
获取所述数据保护模型中属于所述客户端的第一函数;
采用所述第一函数,对所述待处理数据进行数据保护处理,得到第一处理结果;
将所述第一处理结果发送给服务器,以使所述服务器采用所述数据保护模型中属于所述服务器的第二函数对所述第一处理结果进行处理,得到第二处理结果。
第二方面,本发明实施例提供一种数据处理方法,包括:
服务器接收客户端发送的第一处理结果;其中,所述第一处理结果为,客户端对应的数据保护模型中属于所述客户端的第一函数,对待处理数据进行数据保护处理得到的;
采用所述数据保护模型中的第二函数对所述第一处理结果进行处理,得到第二处理结果。
第三方面,本发明实施例提供一种客户端,包括:
第一确定模块,用于客户端确定待处理数据对应的数据保护模型;
第一获取模块,用于获取所述数据保护模型中属于所述客户端的第一函数;
第一保护模块,用于采用所述第一函数,对所述待处理数据进行数据保护处理,得到第一处理结果;
第一发送模块,用于将所述第一处理结果发送给服务器,以使所述服务器采用所述数据保护模型中属于所述服务器的第二函数对所述第一处理结果进行处理,得到第二处理结果。
第四方面,本发明实施例提供一种服务器,包括:
第一接收模块,用于服务器接收客户端发送的第一处理结果;其中,所述第一处理结果为,客户端对应的数据保护模型中属于所述客户端的第一函数,对待处理数据进行数据保护处理得到的;
第一处理模块,用于采用所述数据保护模型中的第二函数对所述第一处理结果进行处理,得到第二处理结果。
第五方面,本发明实施例提供一种存储介质,存储有可执行指令,用于引起处理器执行时,实现上述第一方面数据处理方法,或,实现上述第二方面数据处理方法。
本发明实施例具有以下有益效果:通过先采用数据保护模型中本地的第一函数对待处理数据进行处理,以使得到的第一处理结果是进行数据保护处理后的,不会暴露隐私数据,然后,将第一处理结果发送给服务器,在服务器中采用数据保护模型中的第二函数对第一处理结果进行处理,得到最终的处理结果,如此,将数据保护模型拆分为两个部分,一部分在客户端进行数据保护处理,以得到不会暴露隐私数据的第一处理结果,然后,将不会暴露隐私数据的第一处理结果传递给服务器,以使服务器对接收到的处理结果进行二次处理,得到最终的处理结果,从而提高了数据安全性。
附图说明
图1是本发明实施例提供的数据处理系统的一个可选的架构示意图;
图2A是本发明实施例提供的数据处理系统的另一个可选的架构示意图;
图2B是本发明实施例提供的数据处理的系统的结构示意图;
图3A是本发明实施例提供的数据处理方法的实现流程示意图;
图3B是本发明实施例提供的数据处理方法的另一实现流程示意图;
图3C是本发明实施例提供的数据处理方法的交互示意图;
图3D是本发明实施例提供的数据处理方法的另一交互示意图;
图4是本发明实施例提供的数据处理方法的应用场景示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,所描述的实施例不应视为对本发明的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
在以下的描述中,所涉及的术语“第一\第二\第三”仅仅是是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一\第二\第三”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本发明实施例能够以除了在这里图示或描述的以外的顺序实施。
除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本发明实施例的目的,不是旨在限制本发明。
对本发明实施例进行进一步详细说明之前,对本发明实施例中涉及的名词和术语进行说明,本发明实施例中涉及的名词和术语适用于如下的解释。
1)数据库(Hive),是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张表,并提供类结构化查询语言(Structured Query Language,SQL)查询功能。
2)序列化,是将对象状态转换为可保持或传输的格式的过程。与序列化相对的是反序列化,它将流转换为对象。这两个过程结合起来,可以轻松地存储和传输数据。
3)服务器设备(Server Kit),提供计算服务的设备。由于服务器需要响应服务请求,并进行处理,因此一般来说服务器应具备承担服务并且保障服务的能力。服务器的构成包括处理器、硬盘、内存、系统总线等,和通用的计算机架构类似,但是由于需要提供高可靠的服务,因此在处理能力、稳定性、可靠性、安全性、可扩展性、可管理性等方面要求较高。
4)边缘梯度,梯度是有方向的,和边缘的方向总是正交(垂直)的。图像梯度的作用是得到图像边缘信息,以便进一步进行处理,在图象处理领域有一些使用很广泛的类梯度算子,比如Sobel算子,Scharr算子。边缘是不同区域的分界线,是周围(局部)像素有显著变化的像素的集合,有幅值与方向两个属性。边缘上的灰度变化平缓,边缘两侧的灰度变化较快,图像的边缘一般指局部不连续的图像特征(某个小局部出现不连续的情况。打个比方,比如说是蓝的,突然变为白色,这时候就会产生边缘)。一般是局部亮度变化最显著的部分,所以说边缘就是变化最显著的部分,灰度值的变化,颜色分量的突变以及纹理结构的突变都可构成边缘信息。图像梯度的最重要性质是,梯度的方向在图像灰度最大变化率上,可以反映出图像边缘上的灰度变化。
5)梯度,是一个向量,由一组正交的方向导数组成,表示函数在该点处的方向导数沿着该方向取得最大值,即函数在该点处沿着该方向变化最快,变化最大。
6)区块链(Blockchain):由区块(Block)形成的加密的、链式的交易的存储结构。
7)区块链网络(Blockchain Network):通过共识的方式将新区块纳入区块链的一系列的节点的集合。
在相关技术中,数据分析和建模系统都是将数据由客户端上传或者上报到公司服务器。通常需要这些数据,提高用户体验;比如,可以根据数据分析,洞察用户需求,设计更好的软件使用体验;通过数据建模,精准投放广告,精准推荐内容,提高用户使用效率;控制系统风险,通过对应用程序(Application,app)使用习惯分析,判断用户是否为真实自然人使用(非机器人(robot),非养号),预判恶意用户,预估用户风险。但是这种方式有很多弊端:首先,公司很难以完美的安全的保护用户隐私,只能在效率和安全性之间寻求平衡。一方面,如果数据管理过于严格,会导致公司审批流程冗长,开发周期加长,也会导致项目参与人员人数减少,降低整体项目推进速度;另一方面,如果数据管理宽松,会导致拥有数据权限的员工过多,增加数据安全教育和监控的压力和疏漏风险;其次,微信生态每小时产生数以吨计的成本,如果数据全部留存,会导致每年耗费在数据存储上的成本变成天文数字。为了解决用户隐私保护问题,在相关技术中使用的“差分隐私”方法,按照一定概率修改上传数据结果,使得上传的数据不能完全对应一个用户的真实数据情况。没有给出隐私保护的程度,即只能控制修改的比例,但是并没有方法给出修改的数据多大程度上保护了隐私。100条记录中,可能只需要任意保存1条就能推断出用户的家庭住址,即便是修改了99条记录也造成了隐私泄露;对数据修改以后,只能保证简单的数据统计没有误差。对互联网公司的常用模型来说,模型越复杂,对应同样的数据修改程度,误差会逐渐累加,降低模型效果;这样,在采用这种方案的情况下,还是上传了大量真实数据到服务器,无法对于彻底保护用户的隐私,导致用户体验不够好。
针对上述技术问题,本发明实施例提供一种数据处理方法、设备及存储介质,对于待处理数据,首先,基于该待处理数据来源信息,确定数据保护模型的标识,从而确定出该数据保护模型中属于客户端的第一函数和属于服务器的第二函数;然后,采用第一函数对待处理数据进行数据保护处理,得到第一处理结果,并将该第一处理结果发送给服务器,最后,服务器对该第一处理结果采用第二函数进行再次处理,这样,数据计算在本地完成,不会上传数据到服务器,只通过接口调用的形式发送统计结果或者预测结果,不会造成隐私泄露。
下面说明本发明实施例提供的数据处理的设备的示例性应用,本发明实施例提供的设备可以实施为笔记本电脑或平板电脑等各种类型的设备,也可以实施为服务器。下面,将说明设备实施为设备或服务器时示例性应用。
参见图1,图1是本发明实施例提供的数据处理系统的一个可选的架构示意图,为实现支撑一个示例性应用,数据保护模型101包括属于客户端11的第一函数111和的属于服务器12的第二函数112;对于客户端获取到的待处理数据,首先,采用在本地端,采用第一函数111对该待处理数据113进行数据保护处理,得到不暴露用户隐私的第一处理结果114;然后,将第一处理结果1144发送给服务器12,服务器12采用第二函数112对第一处理结果进行数据保护处理,得到最终的第二处理结果,如此,将数据保护模型101拆分为两个部分,将待处理数据在客户端进行隐私处理之后,在上传至服务器,服务器对接收到的处理结果进行二次处理,得到最终的结果,从而降低了隐私泄露的概率,提高了数据安全性。
本发明实施例也可结合区块链技术实现,区块链(Blockchain)是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层。
区块链底层平台可以包括用户管理、基础服务、智能合约以及运营监控等处理模块。其中,用户管理模块负责所有区块链参与者的身份信息管理,包括维护公私钥生成(账户管理)、密钥管理以及用户真实身份和区块链地址对应关系维护(权限管理)等,并且在授权的情况下,监管和审计某些真实身份的交易情况,提供风险控制的规则配置(风控审计);基础服务模块部署在所有区块链节点设备上,用来验证业务请求的有效性,并对有效请求完成共识后记录到存储上,对于一个新的业务请求,基础服务先对接口适配解析和鉴权处理(接口适配),然后通过共识算法将业务信息加密(共识管理),在加密之后完整一致的传输至共享账本上(网络通信),并进行记录存储;智能合约模块负责合约的注册发行以及合约触发和合约执行,开发人员可以通过某种编程语言定义合约逻辑,发布到区块链上(合约注册),根据合约条款的逻辑,调用密钥或者其它的事件触发执行,完成合约逻辑,同时还提供对合约升级注销的功能;运营监控模块主要负责产品发布过程中的部署、配置的修改、合约设置、云适配以及产品运行中的实时状态的可视化输出,例如:告警、监控网络情况、监控节点设备健康状态等。
参见图2A,图2A是本发明实施例提供的数据处理系统的另一个可选的架构示意图,包括区块链网络20(示例性示出了作为原生节点的服务器200)、监测系统30(示例性示出归属于监测系统30的客户端设备300及其图形界面301),下面分别进行说明。
区块链网络20的类型是灵活多样的,例如可以为公有链、私有链或联盟链中的任意一种。以公有链为例,任何业务主体的电子设备例如用户终端和服务器,都可以在不需要授权的情况下接入区块链网络20;以联盟链为例,业务主体在获得授权后其下辖的电子设备(例如终端/服务器)可以接入区块链网络20,此时,成为区块链网络20中的一类特殊的节点即客户端节点。
需要指出地,客户端节点可以只提供支持业务主体发起交易(例如,用于上链存储数据或查询链上数据)功能,对于区块链网络20的原生节点的功能,例如下文所述的排序功能、共识服务和账本功能等,客户端节点可以缺省或者有选择性(例如,取决于业务主体的具体业务需求)地实现。从而,可以将业务主体的数据和业务处理逻辑最大程度迁移到区块链网络20中,通过区块链网络20实现数据和业务处理过程的可信和可追溯。
区块链网络20接收来自业务主体(例如图2A中示出的监测系统30)的客户端节点(例如,图2A中示出的归属于监测系统30的客户端设备300)提交的交易,执行交易以更新账本或者查询账本,并在终端设备的用户界面(例如,客户端设备300的图形界面301)显示执行交易的各种中间结果或最终结果。
下面以监测系统接入区块链网络以实现有害气体数据的上链为例说明区块链网络的示例性应用。
监测系统30的客户端设备300接入区块链网络20,成为区块链网络20的客户端节点。客户端设备300通过传感器获取待处理数据,并采用客户端设备300中的第一函数对待处理数据进行隐私保护处理,得到第一处理结果,并且,将第一处理结果传递给区块链网络20中的服务器200;在已对客户端设备300部署上传逻辑或用户进行操作的情况下,客户端设备300根据待处理数据/同步时间查询请求,生成对应更新操作/查询操作的交易,在交易中指定了实现更新操作/查询操作需要调用的智能合约、以及向智能合约传递的参数,交易还携带了监测系统30签署的数字签名(例如,使用监测系统30的数字证书中的私钥,对交易的摘要进行加密得到),并将交易广播到区块链网络20。其中,数字证书可由监测系统30向认证中心31进行登记注册得到。
区块链网络20中的原生节点,例如服务器200在接收到交易时,对交易携带的数字签名进行验证,数字签名验证成功后,根据交易中携带的监测系统30的身份,确认监测系统30是否是具有交易权限,数字签名和权限验证中的任何一个验证判断都将导致交易失败。验证成功后签署原生节点自己的数字签名(例如,使用原生节点的私钥对交易的摘要进行加密得到),并继续在区块链网络20中广播。
区块链网络20中具有排序功能的节点接收到验证成功的交易后,将交易填充到新的区块中,并广播到区块链网络中20提供共识服务的节点。
区块链网络20中的提供共识服务的节点对新区块进行共识过程以达成一致,提供账本功能的节点将新区块追加到区块链的尾部,并执行新区块中的交易:对于提交待处理数据的处理结果的交易,更新状态数据库中新增待处理数据的处理结果对应的键值对;对于查询同步时间的交易,从状态数据库中查询同步时间对应的键值对,并返回查询结果。对于得到的同步时间,客户端设备300可显示于图形界面301中。
区块链网络20中的原生节点可从区块链中读取新增待处理数据的处理结果,并将新增待处理数据的处理结果呈现于原生节点的监测页面,原生节点也可以利用在区块链存储的新增待处理数据的处理结果,对数据进行恢复,以实现对原始数据的统计等操作。
在实际应用中,可为区块链网络20的不同原生节点设置不同的功能,例如设置服务器200具有数据保护处理功能和记账功能,比如,服务器对于客户端上传的第一处理结果进行二次处理,并对得到的第二处理结果进行记录或存储等。对于该情况,可在交易过程中,服务器200接收客户端设备300发送的对于待处理数据进行数据保护处理的第一处理结果,采用服务器200中的第二函数对第一处理结果进行再次处理,得到不暴露数据隐私的第二处理结果;如此,将数据保护模型拆分为两个部分,将待处理数据在客户端进行隐私处理之后,即在客户端实现了对于待处理数据的一级隐私保护处理,然后,将不会暴露隐私数据的第一处理结果再上传至服务器,服务器对接收到的处理结果进行二次处理,得到最终的结果,从而降低了隐私泄露的概率,提高了数据安全性。
参见图2B,图2B是本发明实施例提供的数据处理的系统的结构示意图,图2B所示的设备400包括:至少一个处理器410、存储器450、至少一个网络接口420和用户接口430。设备400中的各个组件通过总线系统440耦合在一起。可理解,总线系统440用于实现这些组件之间的连接通信。总线系统440除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图2B中将各种总线都标为总线系统440。
处理器410可以是一种集成电路芯片,具有信号的处理能力,例如通用处理器、数字信号处理器,或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,其中,通用处理器可以是微处理器或者任何常规的处理器等。
用户接口430包括使得能够呈现媒体内容的一个或多个输出装置431,包括一个或多个扬声器和/或一个或多个视觉显示屏。用户接口430还包括一个或多个输入装置432,包括有助于用户输入的用户接口部件,在一些示例中键盘、鼠标、麦克风、触屏显示屏、摄像头、其他输入按钮和控件。
存储器450可以是可移除的,不可移除的或其组合。示例性的硬件设备包括固态存储器,硬盘驱动器,光盘驱动器等。存储器450可选地包括在物理位置上远离处理器410的一个或多个存储设备。
存储器450包括易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。非易失性存储器可以是只读存储器(Read Only Memory,R OM),易失性存储器可以是随机存取存储器(Random Access Memory,RAM)。本发明实施例描述的存储器450旨在包括任意适合类型的存储器。
在一些实施例中,存储器450能够存储数据以支持各种操作,这些数据的示例包括程序、模块和数据结构或者其子集或超集,下面示例性说明。
操作系统451,包括用于处理各种基本系统服务和执行硬件相关任务的系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务;
网络通信模块452,用于经由一个或多个(有线或无线)网络接口420到达其他计算设备,示例性的网络接口420包括:蓝牙、无线相容性认证、和通用串行总线(UniversalSerial Bus,USB)等;
呈现模块453,用于经由一个或多个与用户接口430相关联的输出装置431(例如,显示屏、扬声器等)使得能够呈现信息(例如,用于操作外围设备和显示内容和信息的用户接口);
输入处理模块454,用于对一个或多个来自一个或多个输入装置432之一的一个或多个用户输入或互动进行检测以及翻译所检测的输入或互动。
在一些实施例中,本发明实施例提供的装置可以采用软件方式实现,图2B示出了存储在存储器450中的数据处理的客户端455,其可以是程序和插件等形式的软件,包括以下软件模块:第一确定模块4551、第一获取模块4552、第一保护模块4553和第一发送模块4554;存储器450中的数据修复的服务器456,其可以是程序和插件等形式的软件,包括以下软件模块:第一接收模块4561和第一处理模块4562;这些模块是逻辑上的,因此根据所实现的功能可以进行任意的组合或进一步拆分。将在下文中说明各个模块的功能。
在另一些实施例中,本发明实施例提供的装置可以采用硬件方式实现,作为示例,本发明实施例提供的装置可以是采用硬件译码处理器形式的处理器,其被编程以执行本发明实施例提供的数据处理方法,例如,硬件译码处理器形式的处理器可以采用一个或多个应用专用集成电路(Application Specific Integ rated Circuit,ASIC)、DSP、可编程逻辑器件(Programmable Logic Device,P LD)、复杂可编程逻辑器件(ComplexProgrammable Logic Device,CPLD)、现场可编程门阵列(Field-Programmable GateArray,FPGA)或其他电子元件。
将结合本发明实施例提供的设备的示例性应用和实施,说明本发明实施例提供的数据处理方法。
本申请实施例提供一种数据处理方法,应用于客户端,参见图3A,图3A是本发明实施例提供的数据处理方法的实现流程示意图,结合图3A示出的步骤进行说明:
步骤S301,客户端确定待处理数据对应的数据保护模型。
在一些实施例中,所述数据保护模型是与待处理数据相匹配的,根据所述待处理数据的来源信息,确定数据保护模型的标识,从而确定待处理数据对应的数据保护模型。所述来源信息用于表明产生所述待处理数据的来源。比如,待处理数据的来源信息表明该待处理数据是来自于社交应用程序,那么基于此,确定能够对该来自于社交应用程序的待处理数据进行数据保护处理的数据保护模型的标识。在一个具体例子中,如果来源信息表明待处理数据来自于实现统计的系统,那么基于此确定能够实现数据统计功能的数据保护模型。
步骤S302,获取所述数据保护模型中属于所述客户端的第一函数。
在一些实施例中,所述数据保护模型中属于所述客户端的第一函数,可以是第一函数存储于所述本地客户端,也可以是第一函数不存储于所述本地客户端,但是在客户端中可以采用该第一函数进行数据处理等。
步骤S303,采用所述第一函数,对所述待处理数据进行数据保护处理,得到第一处理结果。
在一些实施例中,首先,将所述待处理数据作为所述第一函数的变量的输入;然后,基于调整后的参数,对所述待处理数据进行编码,得到编码后的数据;最后,将所述编码后的数据作为所述第一处理结果。将待处理数据作为第一函数的输入,得到第一处理结果;可以理解为,采用第一函数对待处理数据进行编码,得到不会暴露用户隐私的第一处理结果。
步骤S304,将所述第一处理结果发送给服务器,以使所述服务器采用所述数据保护模型中属于所述服务器的第二函数对所述第一处理结果进行处理,得到第二处理结果。
在一些实施例中,所述第一处理结果是对待处理数据进行重新编码之后得到的,所以第一处理结果不会暴露待处理数据中的隐私数据,这样将不会暴露隐私数据的第一处理结果发送给服务器,保证了在发送过程中,数据的安全性。而且发送给服务器之后,服务器对第一处理结果进行再次处理,得到最终的第二处理结果。
在本发明实施例中,通过先采用数据保护模型中本地的第一函数对待处理数据进行处理,然后,将第一处理结果发送给服务器,在服务器中采用数据保护模型中的第二函数对第一处理结果进行处理,得到最终的处理结果,这样,数据的保护处理过程在本地完成,不会将未进行数据保护处理的原始数据上传到服务器,而且对于已经进行保护处理的数据只通过接口调用的形式发送统计结果或者预测结果至服务器,不会造成待处理数据中的隐私数据的泄露。
在一些实施例中,对于任一待训练的数据保护模型进行训练,以得到能够对待处理数据进行数据保护处理的数据保护模型,在步骤S301之前,所述方法还包括以下步骤,如图3B所示,图3B是本发明实施例提供的数据处理方法的另一实现流程示意图,结合图3A,进行以下说明:
步骤S321,确定表征待训练的数据保护模型的目标函数。
在一些实施例中,待训练的数据保护模型可以是任意一种系统中的数据保护模型,比如,对数据进行计数,求和,求均值,求最大值等,机器学习模型(如逻辑回归,随机森林或递归决策树等),神经数据保护模型,深度学习模型,以及基于上述模型所实现的强化学习模型、增强学习模型、生成模型或对抗生成模型等。
步骤S322,将所述目标函数拆分为应用于客户端的第一子函数和应用于服务器的第二子函数。
在一些实施例中,所述第一子函数用于对已标注标签的样本数据进行边缘处理,所述第二子函数用于对边缘处理的结果进行合并。在一个具体例子中,基于目标函数的功能对目标函数进行拆分,将目标函数拆分为功能不能的两个子函数。所述已标注标签的样本数据为标记有用户需求的数据,比如,用户需求是统计点击过广告或购买过产品的用户,那么将一批数据中点击过广告或购买过产品的数据进行标签批注,作为已标注标签的样本数据,用于后续对数据的分析过程中。
步骤S323,根据包含初始化参数的第一子函数、所述样本数据和所述样本数据的设定结果,确定损失函数。
在一些实施例中,首先,采用包含初始化参数的第一子函数对所述样本数据进行处理,得到样本处理结果;然后,基于所述样本处理结果和所述设定结果,确定所述损失函数;在一个具体例子中,对于样本数据x
i,采用第一子函数
对样本数据x
i进行处理,得到样本处理结果
然后,基于该样本处理结果
和样本数据的设定结果y,采用
得到损失函数L,其中,初始化参数是W
l-1。
步骤S324,基于所述损失函数,对所述第一子函数中除表征待处理数据的变量外的参数进行调整,得到所述第一函数。
在一些实施例中,基于所述损失函数,对所述第一子函数中除表征待处理数据的变量外的参数的取值进行调整,如此,根据损失函数表征的真值和处理结果的差距,基于该差距,对第一子函数中除表征待处理数据的变量外的参数的取值进行调整,可以是调大或者调小,使得最终确定的目标值,能够使第一子函数对应的损失函数最小;将除表征待处理数据的变量外的参数的取值为最终确定的目标值的第一子函数,确定为第一函数;比如,除表征待处理数据的变量外的参数为Q,为参数Q最终确定的目标值为10,那么将参数取值为10的第一子函数,确定为第一函数。
步骤S325,获取所述第一函数对所述样本数据进行处理的第三处理结果。
在一些实施例中,将所述样本数据作为所述第一函数的变量的输入;基于调整后的参数,对所述样本数据进行编码,得到第三处理结果。
步骤S326,将调整后的参数、所述损失函数和所述第三处理结果发送给服务器,以使所述服务器得到所述第二函数,以得到所述数据保护模型。
在一些实施例中,首先,确定所述损失函数关于所述调整后的参数的梯度;即,对损失函数关于调整后的参数求偏导,得到表征损失函数关于所述调整后的参数的梯度,然后,将所述调整后的参数、所述梯度和第三处理结果发送给服务器,以使所述服务器得到所述第二函数,以得到所述数据保护模型。将调整后的参数和梯度发送给服务器之后,服务器基于调整后的参数和梯度,确定第二子函数中除表征待处理数据的变量外的目标参数,以得到第二函数。
上述步骤S321至步骤S326,给出了将任一待训练的数据保护模型训练为能够对待处理数据进行数据保护处理,使得到的处理结果不会暴露待处理数据的隐私,而且在对于待训练的数据保护模型进行训练的过程中,是依赖全量数据实现的,所以能够避免出现数据丢失问题和误差产生,提高了对处理后的数据进行恢复的正确度。
在一些实施例中,为了减少造成数据处理拥堵的情况,在步骤S324之后,所述方法还包括以下步骤:
第一步,确定所述待训练的数据保护模型所属网络的边缘节点。
在一些实施例中,待训练的数据保护模型所属网络的边缘节点,比如,待训练的数据保护模型所处的网络包括中心节点和大量的边缘节点,而且大量的其他数据的处理过程集中在中心节点进行。
第二步,将所述第一函数存储于所述边缘节点中。
这样,将第一函数存储在边缘节点中,不需要用待训练的数据保护模型所属网络的中心节点来实现对于数据的保护处理过程,这样采用待训练的数据保护模型所属网络的边缘节点实现对数据的保护处理过程,从而减少了造成数据处理拥堵的情况。
本申请实施例提供一种数据处理方法,应用于服务器和客户端,参见图3C,图3C是本发明实施例提供的数据处理方法的交互示意图,结合图3C所示的步骤,进行以下说明:
步骤S331,客户端确定待处理数据对应的数据保护模型。
步骤S332,客户端获取所述数据保护模型中属于所述客户端的第一函数。
步骤S333,客户端采用所述第一函数,对所述待处理数据进行数据保护处理,得到第一处理结果。
步骤S334,客户端将所述第一处理结果发送给服务器。
在一些实施例中,在客户端完成对于待处理数据的数据保护过程,比如,对待处理数据进行编码,以使得到的第一处理结果不会暴露待处理数据中的隐私数据,然后通过接口调用的方式,将第一处理结果发送给服务器;这样,将进行隐私保护后的第一处理结果发送给服务器,提高了数据的安全性。
步骤S335,服务器接收客户端发送的待处理数据的第一处理结果。
在一些实施例中,第一处理结果为,采用所述待处理数据对应的数据保护模型中属于所述客户端的第一函数,进行数据保护处理得到的。
步骤S336,服务器采用所述数据保护模型中的第二函数对所述第一处理结果进行处理,得到第二处理结果。
在一些实施例中,当服务器接收到第一处理结果之后,采用属于服务器的数据保护模型中,第二函数对第一处理结果进行再次处理,比如,对第一处理结果进行再次编码,得到第二处理结果。
在本发明实施例中,对于待处理数据的数据保护处理的过程中,客户端和服务器交互,即待处理数据发送至客户端,以使客户端采用第一函数对待处理数据进行保护处理,并将处理后的第一处理结果发送给服务器;然后,服务器采用第二函数对第一处理结果进行再次处理,得到最终的处理结果,即第二处理结果;这样,将数据保护模型拆分为两个部分,将待处理数据在客户端进行隐私处理之后,即在客户端实现了对于待处理数据的隐私保护处理,然后,将不会暴露隐私数据的第一处理结果再上传至服务器,服务器对接收到的处理结果进行二次处理,得到最终的结果,从而降低了隐私泄露的概率,提高了数据安全性。
在一些实施例中,对于任一待训练的数据保护模型,依据样本数据和初始化参数进行训练,以得到训练好的数据保护模型,即能够对待处理数据进行隐私保护处理的数据保护模型,参见图3D,图3D是本发明实施例提供的数据处理方法的另一交互示意图,结合图3D所示的步骤,进行以下说明:
步骤S341,客户端确定表征待训练的数据保护模型的目标函数。
比如,表征待训练的数据保护模型的目标函数为f(*,W)。
步骤S342,客户端将所述目标函数拆分为应用于客户端的第一子函数和应用于服务器的第二子函数。
在一些实施例中,所述第一子函数用于对已标注标签的样本数据进行边缘处理,所述第二子函数用于对边缘处理的结果进行合并。比如,将目标函数为f(*,W)拆分为第一子函数f1(*,W1)和第二子函数f2(*,W2)。其中,第二子函数对于第一子函数的输出结果进行合并计算。
步骤S343,客户端根据包含初始化参数的第一子函数、所述样本数据和所述样本数据的设定结果,确定损失函数。
在一些实施例中,将样本数据和初始化参数进行序列化之后,发送至客户端,这样在客户端对序列化的数据进行解码,以实现根据包含初始化参数的第一子函数、所述样本数据和所述样本数据的设定结果,确定损失函数。
步骤S344,客户端基于所述损失函数,对所述第一子函数中除表征待处理数据的变量外的参数进行调整,得到所述第一函数。
比如,对第一子函数f1(*,W1)中的W1的取值进行调整,以使该损失函数最小,将W1的取值调整后的第一子函数作为所述第一函数。
步骤S345,客户端获取所述第一函数对所述样本数据进行处理的第三处理结果。
比如,采用第一函数对样本数据x
i进行处理,得到边缘结果(即第三处理结果)
步骤S346,客户端将调整后的参数、损失函数和所述第三处理结果发送给服务器。
在一些实施例中,客户端针对损失函数,确定该损失函数关于所述调整后的参数的梯度,将所述调整后的参数、梯度和第三处理结果发送给服务器,以使所述服务器得到所述第二函数,以得到所述数据保护模型。或者,客户端将第三结果、损失函数和调整后的参数发送给服务器。
步骤S347,服务器确定表征待训练的数据保护模型的目标函数中第二子函数。
在一些实施例中,在服务器中,确定表征待训练的数据保护模型的目标函数中第二子函数,即该第二子函数属于服务器,比如,第二子函数存储于服务器中,或者第二子函数未存储于服务器,但是该第二子函数供所述服务器调用。
步骤S348,服务器根据接收到的客户端发送的调整后的参数、损失函数和第三处理结果,确定第二子函数中除表征待处理数据的变量外的目标参数,得到所述第二函数。
在一些实施例中,所述步骤S348可以通过以下步骤实现:
第一步,基于所述第三处理结果和所述样本数据对应的设定结果,确定样本损失函数。
第二步,确定所述样本损失函数关于所述第二子函数中除表征待处理数据的变量外的参数的目标梯度。
比如,样本损失函数为L
y,所述第二子函数中除表征待处理数据的变量外的参数为W
2,对样本损失函数关于第二子函数中的待处理数据的变量外的参数W
2求偏导,得到目标梯度为
第三步,获取所述损失函数关于所述调整后的参数的第一梯度;比如,对损失函数L关于调整后的参数W
1求偏导,得到该第一梯度
第四步,对所述目标梯度所述第一梯度进行求和,得到调整值。
所述调整值表征所述目标参数和所述调整后的参数之间差距;比如,对多次迭代过程中产生的目标梯度所述第一梯度进行求和,即得到
其中,W包括W
1和W
2。
第五步,基于所述调整值和所述调整后的参数,确定所述目标参数。
比如,对调整值
和调整后的参数W
1,进行求和,得到目标参数W
2。当样本数据为多个时,W取值为从1至l,那么目标参数W
l为调整值
和调整后的参数W
l-1之和。
第六步,将所述第二子函数中除表征待处理数据的变量外的参数,替换为所述目标参数,得到所述第二函数。
在一些实施例中,所述三处理结果为所述第一函数对已标注标签的样本数据进行处理得到的;所述调整后的参数为对所述目标函数中的第一子函数中除表征待处理数据的变量外的参数进行调整得到的。
从步骤S341至步骤S348,通过客户端和服务器相互交互,实现了对于任意待训练的数据保护模型的训练过程,客户端对于获取到的待训练的数据保护模型和参数(比如,深度学习网络里面的参数),结合本地边缘数据,确定边缘损失函数对应的梯度,并将处理结果发送至服务器,以使服务器用当前模型对样本数据进行评估,若处理结果与设定结果不符,则服务器继续搜集样本数据,以及处理结果对应的梯度,加总以更新该模型;如此,训练好的数据保护模型拆分为两个部分,一部分应用于客户端,一部分应用于服务器,即,当需要采用该数据保护模型对于待处理数据进行处理时,将待处理数据在客户端进行隐私处理之后,即在客户端实现了对于待处理数据的隐私保护处理,然后,将不会暴露隐私数据的第一处理结果再上传至服务器,服务器对接收到的处理结果进行二次处理,得到最终的结果,从而降低了隐私泄露的概率,提高了数据安全性;而且在对于模型训练的过程中优化依赖全量数据,不会出现数据丢失问题和误差产生,那么当需要对数据进行恢复时,恢复的效果更好。
下面,将说明本发明实施例在一个实际的应用场景中的示例性应用,以对任一应用程序中用户之间的交互数据进行隐私保护为例,进行说明。
本发明实施例提供一种数据处理方法,所述方法可以通过以下两个阶段实现:
第一阶段,将搜集到的样本、样本对应的模型信息发送到客户端,并采集客户端数据用于确定数据保护模型以及该数据保护模型的参数,过程如下:
第一步,设定训练待训练的数据保护模型的学习环境。
在一个具体例子中,手机端在应用程序上由C++语言开发,服务器端样本数据和历史数据保存于数据库,模型信息和参数存放于服务器,便于存取快速更新。
第二步,将待训练的数据保护模型的目标函数拆分为第一目标子函数和第二目标子函数。
在一个具体例子中,假设表征待训练的数据保护模型的目标函数为f(*,W),将待训练的数据保护模型拆分为用于边缘计算的第一目标子函数f1(*,W1)和用于合并计算的第二目标子函数f2(*,W2),则待训练的数据保护模型等价于f(*,W)=f(*,W1,W2)=f2(f1(*,W1),W2)。其中,W1,W2分别为第一目标子函数中的除表征待处理数据的变量外的参数和第二目标子函数中的除表征待处理数据的变量外的参数。
第三步,将第一目标子函数和第二目标子函数中除表征待处理数据的变量外的参数,初始化为随机数。
比如,对W1,W2进行初始化。
第四步,搜集满足预设数量的已标注的样本数据,将f1,W1序列化后发送至客户端,基于该已标注的样本数据和样本数据的损失函数对W1进行调整,并将采用包含调整后的参数的第一函数、所述损失函数关于W1的梯度对已标注的样本数据进行处理的第三处理结果f1(*,W1)及第三结果对应的样本损失函数的目标梯度发往服务器。
在一个具体例子中,所述目标梯度为第三结果对应的样本损失函数关于除表征待处理数据的变量外的参数的偏导数。
第五步,服务器对梯度和调整后的参数加总,以更新W2。
所述梯度包括目标梯度和损失函数关于W1的梯度。
在一些可能的实现方式中,上述梯度和W的确定过程,可以通过如下算法实现:
1)初始化:随机选择W1,W2的值;
2)按照l从1开始增加到L循环,在循环过程;其中,L为迭代次数。
3)搜集样本数据,直至样本数据的数量达到B个,记抽取到的样本下为b=0,1,…,B-1;
4)更新损失函数
其中,该损失函数表示包含初始化参数的第一子函数对所述样本数据进行处理,得到样本处理结果,所述样本处理结果与所述设定结果之间的差距。
6)将边缘结果和边缘梯度发送至服务器,确定服务端的样本损失函数关于W
2的目标梯度
7)服务器搜集B个目标梯度,确定第一子函数中除表征待处理数据的变量外的目标参数
其中,Δ为梯度下降的学习率,n为的学习步长。
至此,循环结束,所得WL即为模型训练所得的参数,保存为W。
重复以上第一步至第五步的过程,在遍历过程中根据已标注的样本数据,对待训练的数据保护模型进行训练,以得到训练好的数据保护模型(即数据保护模型)、第一参数和第二参数,直至该第一参数和第二参数收敛,使得数据保护模型的损失最小,最后,将数据保护模型和收敛的第一参数和第二参数应用于第二阶段中;如此,在不用将数据上传服务器的情况下,对设定的统计指标、机器学习模型或深度学习模型进行计算或者更新;而且对网络参数和数据保护模型的优化依赖全量数据,不会出现数据丢失问题和误差产生,效果更好。
第二阶段,根据第一阶段中获得的数据保护模型、第一参数和第二参数,在客户端(比如,客户端的边缘节点中),对已标注的样本数据进行处理,进一步将该处理结果用于服务器中;如此,对于数据的处理和待训练的数据保护模型的训练依赖全量数据,不会出现数据丢失问题和误差产生,那么当需要恢复数据时,对于数据的恢复效果更好。
在一些可能的实现方式中,对每个用户i,在用户设备端根据用户本地数据x,计算不暴露隐私的结果h=f1(x,W1),将结果发送到服务器。服务器进一步根据f2(h,W2)计算最终结果(即第二处理结果)。
至此,完成了待训练的数据保护模型的训练过程,得到训练好的数据保护模型,这样,在待处理数据不用上传服务器的情况下,对需要训练的模型(比如,对待处理数据进行统计的统计指标、机器学习模型或深度学习模型等)进行计算或者更新等;而且对于待处理数据的数据保护处理过程在用户手机本地完成,不需要上传数据到服务器,只通过接口调用的形式发送统计结果或者预测结果,不会造成隐私泄露;最后,因为在对待训练的数据保护模型进行训练的过程依赖全量数据,不会出现数据丢失问题和误差产生,那么当需要对预处理结果进行恢复时,恢复的效果更好。
在一些实施例中,得到训练好的数据保护模型之后,当需要对待处理数据进行数据保护处理时,如图4所示,手机客户端41获取到待处理数据42,并基于该待处理数据42的来源信息,比如,来源于社交应用程序(APP)43,确定与该来源信息相匹配的数据保护模型中属于手机客户端41的第一函数,采用第一函数对待处理数据42进行数据保护处理,使得到的第一处理结果中不会暴露用户的隐私数据;然后,客户端41将第一处理结果发送给服务器44,服务器44采用数据保护模型中属于服务器的第二函数对第一处理结果进行二次处理,这样得到的最终的第三处理结果;如此,将数据保护模型拆分为两个部分,一部分应用于客户端,一部分应用于服务器,对于用户数据的数据保护处理过程在用户手机本地端完成,不会上传数据到服务器,只通过接口调用的形式发送统计结果或者预测结果,从而避免了用户隐私的泄露。
下面继续说明本发明实施例提供的数据处理的客户端455的实施为软件模块的示例性结构,在一些实施例中,如图2B所示,存储在存储器440的数据处理的客户端455中的软件模块可以包括:
第一确定模块4451,用于客户端确定待处理数据对应的数据保护模型;
第一获取模块4552,用于获取所述数据保护模型中属于所述客户端的第一函数;
第一保护模块4553,用于采用所述第一函数,对所述待处理数据进行数据保护处理,得到第一处理结果;
第一发送模块4554,用于将所述第一处理结果发送给服务器,以使所述服务器采用所述数据保护模型中属于所述服务器的第二函数对所述第一处理结果进行处理,得到第二处理结果。
在一些实施例中,所述第一确定模块4451,还用于:根据所述待处理数据的来源信息,确定数据保护模型的标识;
所述第一获取模块4552,还用于:根据所述数据保护模型的标识,获取所述数据保护模型中属于所述客户端的第一函数。
在一些实施例中,所述第一确定模块4451,还用于:
确定表征待训练的数据保护模型的目标函数;
将所述目标函数拆分为应用于客户端的第一子函数和应用于服务器的第二子函数;其中,所述第一子函数用于对已标注标签的样本数据进行边缘处理,所述第二子函数用于对边缘处理的结果进行合并;
根据包含初始化参数的第一子函数、所述样本数据和所述样本数据的设定结果,确定损失函数;
基于所述损失函数,对所述第一子函数中除表征待处理数据的变量外的参数进行调整,得到所述第一函数;
获取所述第一函数对所述样本数据进行处理的第三处理结果;
将调整后的参数、所述损失函数和所述第三处理结果发送给服务器,以使所述服务器得到所述第二函数,以得到所述数据保护模型。
在一些实施例中,所述第一确定模块4451,还用于:
采用包含初始化参数的第一子函数对所述样本数据进行处理,得到样本处理结果;
基于所述样本处理结果和所述设定结果,确定所述损失函数。
在一些实施例中,所述第一确定模块4451,还用于:
确定所述损失函数关于所述调整后的参数的梯度;
将所述调整后的参数、所述梯度和所述第三处理结果发送给服务器,以使所述服务器得到所述第二函数,以得到所述数据保护模型。
在一些实施例中,所述第一确定模块4451,还用于:
确定所述待训练的数据保护模型的边缘节点;
将所述第一函数存储于所述边缘节点中。
在一些实施例中,如图2B所示,存储在存储器440的数据处理的服务器456中的软件模块可以包括:
第一接收模块4561,用于服务器接收客户端发送的待处理数据的第一处理结果;其中,所述第一处理结果为,采用所述待处理数据对应的数据保护模型中属于所述客户端的第一函数,进行数据保护处理得到的;
第一处理模块4562,用于采用所述数据保护模型中的第二函数对所述第一处理结果进行处理,得到第二处理结果。
本发明实施例提供一种存储有可执行指令的存储介质,其中存储有可执行指令,当可执行指令被处理器执行时,将引起处理器执行本发明实施例提供的方法。
在一些实施例中,存储介质可以是FRAM、ROM、PROM、EPROM、EE PROM、闪存、磁表面存储器、光盘、或CD-ROM等存储器;也可以是包括上述存储器之一或任意组合的各种设备。
在一些实施例中,可执行指令可以采用程序、软件、软件模块、脚本或代码的形式,按任意形式的编程语言(包括编译或解释语言,或者声明性或过程性语言)来编写,并且其可按任意形式部署,包括被部署为独立的程序或者被部署为模块、组件、子例程或者适合在计算环境中使用的其它单元。
作为示例,可执行指令可以但不一定对应于文件系统中的文件,可以可被存储在保存其它程序或数据的文件的一部分,例如,存储在超文本标记语言(H yper Text MarkupLanguage,HTML)文档中的一个或多个脚本中,存储在专用于所讨论的程序的单个文件中,或者,存储在多个协同文件(例如,存储一个或多个模块、子程序或代码部分的文件)中。
作为示例,可执行指令可被部署为在一个计算设备上执行,或者在位于一个地点的多个计算设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算设备上执行。
综上所述,通过本发明实施例对于待处理数据,首先,客户端确定待处理数据对应的数据保护模型;然后,获取所述数据保护模型中属于所述客户端的第一函数;采用所述第一函数,对所述待处理数据进行数据保护处理,得到第一处理结果;最后,将所述第一处理结果发送给服务器,以使所述服务器采用所述数据保护模型中属于所述服务器的第二函数对所述第一处理结果进行处理,得到第二处理结果;如此,将数据保护模型拆分为两个部分,一部分在本地端进行数据保护处理,以得到不会暴露隐私数据的第一处理结果,然后,将不会暴露隐私数据的第一处理结果传递给服务器,以使服务器对接收到的处理结果进行二次处理,得到最终的处理结果,从而提高了数据安全性。
以上所述,仅为本发明的实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和范围之内所作的任何修改、等同替换和改进等,均包含在本发明的保护范围之内。