CN116707851A - 数据上报的方法及终端设备 - Google Patents
数据上报的方法及终端设备 Download PDFInfo
- Publication number
- CN116707851A CN116707851A CN202211457859.6A CN202211457859A CN116707851A CN 116707851 A CN116707851 A CN 116707851A CN 202211457859 A CN202211457859 A CN 202211457859A CN 116707851 A CN116707851 A CN 116707851A
- Authority
- CN
- China
- Prior art keywords
- data
- hash
- result
- scrambling
- character
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 113
- 238000004364 calculation method Methods 0.000 claims abstract description 34
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 23
- 230000006870 function Effects 0.000 claims description 98
- 230000002776 aggregation Effects 0.000 claims description 37
- 238000004220 aggregation Methods 0.000 claims description 37
- 230000008569 process Effects 0.000 claims description 28
- 230000015654 memory Effects 0.000 claims description 26
- 238000012417 linear regression Methods 0.000 claims description 22
- 238000004590 computer program Methods 0.000 claims description 15
- 238000005520 cutting process Methods 0.000 claims description 7
- 238000003860 storage Methods 0.000 claims description 7
- 238000004891 communication Methods 0.000 description 42
- 230000006854 communication Effects 0.000 description 42
- 238000012545 processing Methods 0.000 description 30
- 238000007726 management method Methods 0.000 description 26
- 239000010410 layer Substances 0.000 description 21
- 239000011159 matrix material Substances 0.000 description 14
- 238000010295 mobile communication Methods 0.000 description 13
- 238000010586 diagram Methods 0.000 description 12
- 238000005516 engineering process Methods 0.000 description 8
- 230000009467 reduction Effects 0.000 description 6
- 238000013528 artificial neural network Methods 0.000 description 4
- 230000007774 longterm Effects 0.000 description 4
- 230000005236 sound signal Effects 0.000 description 4
- 230000001133 acceleration Effects 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 238000005457 optimization Methods 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 238000012216 screening Methods 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 2
- 230000003416 augmentation Effects 0.000 description 2
- 230000006399 behavior Effects 0.000 description 2
- 210000000988 bone and bone Anatomy 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000011946 reduction process Methods 0.000 description 2
- 238000007619 statistical method Methods 0.000 description 2
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 2
- 230000005856 abnormality Effects 0.000 description 1
- 230000004931 aggregating effect Effects 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 230000007175 bidirectional communication Effects 0.000 description 1
- 238000013529 biological neural network Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 210000004556 brain Anatomy 0.000 description 1
- 210000004027 cell Anatomy 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 239000012792 core layer Substances 0.000 description 1
- 230000002354 daily effect Effects 0.000 description 1
- 238000013480 data collection Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000003203 everyday effect Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 235000011389 fruit/vegetable juice Nutrition 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 230000005484 gravity Effects 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000004807 localization Effects 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 210000002569 neuron Anatomy 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 230000003094 perturbing effect Effects 0.000 description 1
- 230000005855 radiation Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 150000003839 salts Chemical class 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000001356 surgical procedure Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
- 238000012549 training Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Abstract
本申请提供了一种数据上报的方法及终端设备,属于网络信息安全领域。该方法包括:获取整串数据;根据预设步长参数对上报数据进行划分,获取前串数据;随机选取哈希函数,利用哈希函数对前串数据和整串数据进行哈希计算,分别获取第一哈希结果和第二哈希结果;根据预设的加扰算法,对第一哈希结果和第二哈希结果进行加扰,分别获取对应的第一加扰结果和第二加扰结果;向云侧设备发送用户报告,用户报告包括第一加扰结果、第二加扰结果、步长参数以及哈希函数对应的索引随机数。该方法通过在端侧对样本加噪声,在云侧通过带有不同噪声的相同样本来抵消噪声影响,以获取原始数据,在保证隐私数据安全的基础上,提高了云侧获取数据的准确性。
Description
技术领域
本申请涉及网络信息安全领域,尤其涉及一种数据上报的方法及终端设备。
背景技术
随着终端技术的发展,终端设备在人们的日常生活和工作中发挥着越来越重要的作用。以手机为例,其目前已经成为使用率最高的电子产品。在日常应用中,手机会收集、处理并保存用户的很多隐私信息,例如地理位置、文字习惯等。在人工智能(artificialintelligence,AI)技术成熟后,手机厂商推出了各自的智能助手服务,目的是为了向用户提供更加贴合需求的服务。其中,智能助手服务的准确性依赖于手机厂商AI模型的准确度。为了提升AI模型的准确度,带给用户更好的体验,一些情形下,手机厂商会发起用户体验参与计划,并且会收集参与该计划的用户数据用于AI模型的改善。
然而,在上述数据收集过程中,隐私数据是始终存在的争议点。此外,上报数据的准确性也对AI模型的优化起着至关重要的重要。因此,如何在保证用户隐私数据安全的基础上,提升云端获取的数据的准确性,成为亟待解决的问题。
发明内容
本申请实施例提供了一种数据上报的方法及终端设备,通过在端侧对样本加噪声(或称加扰),在云侧通过带有不同噪声的相同样本来抵消噪声影响,以恢复原始数据,在保证隐私数据安全的基础上,提高了云侧获取数据的准确性。
第一方面,提供了一种数据上报的方法,应用于终端设备,所述方法包括:
获取上报数据对应的整串数据;
根据预设步长参数对上述上报数据进行划分,获取前串数据,所述步长参数用于指示针对所述整串数据进行截断获取前串数据时的截断位置;
随机选取哈希函数,并利用所述哈希函数对所述前串数据进行哈希计算,获取第一哈希结果,以及利用所述哈希函数对所述整串数据进行哈希计算,获取第二哈希结果;
根据预设的加扰算法,对所述第一哈希结果和所述第二哈希结果进行加扰,分别获取对应的第一加扰结果和第二加扰结果;
向云侧设备发送用户报告,所述用户报告包括所述第一加扰结果、所述第二加扰结果、所述步长参数以及所述哈希函数对应的索引随机数。
根据实现方式提供的数据上报的方法,通过在端侧对样本加噪声,在云侧通过带有不同噪声的相同样本来抵消噪声影响,以恢复原始数据,在保证隐私数据安全的基础上,提高了云侧获取数据的准确性。此外,本申请实施例提供的数据上报的方法中所涉及的算法的时间开销和哈希值函数的输出位数基本无关,能够带来数据获取精度与效率之间的平衡。并且,由于本申请实施例提供的数据上报的方法中采用了上报数据的整串信息,因而通过算法筛选出的字符串的估计频率更加准确,假阳性的概率更低。
结合第一方面,在第一方面的某一实现方式中,所述方法还包括:
根据预设步长对所述整串数据进行等长划分。
结合第一方面,在第一方面的某一实现方式中,所述预设步长为1。
结合第一方面,在第一方面的某一实现方式中,所述方法还包括:
对所述第一加扰结果和/或所述第二加扰结果进行十六进制编码。
结合第一方面,在第一方面的某一实现方式中,所述上报数据对应的数据类型为汉字字符。
第二方面,提供了一种数据上报的方法,应用于云侧设备,所述方法包括:
获取多个用户报告,所述用户报告包括第一加扰结果、第二加扰结果、步长参数以及哈希函数对应的索引随机数,所述步长参数用于指示针对所述整串数据进行截断获取前串数据时的截断位置,所述索引随机数用于随机选择哈希函数,所述哈希函数用于对所述整串数据和所述前串数据进行哈希计算;
根据随机索引数和所述步长参数,对所述多个用户报告中的所述第一加扰结果进行分类;
对同一类中的多个所述第一加扰结果中对应比特上的值进行求和,获取聚合结果;
根据预设的加扰概率对所述聚合结果进行解扰,获取每一长度的前串对应的解扰期望结果;
通过线性回归算法将预设单元候选集中的字符逐一与所述解扰结果进行拟合,获取终端设备上报的原始数据。
结合第二方面,在第二方面的某一实现方式中,所述通过线性回归算法将预设单元候选集中的字符逐一与所述解扰结果进行拟合,具体包括:
采用预设的多个哈希函数分别对所述单元候选集中的每一个字符进行哈希计算,并且获取每一字符对应的多个哈希结果;
将所述每一字符对应的多个哈希结果分别与所述截断位置为1时对应的聚合结果进行比对;
将相似度大于预设阈值的字符作为第一候选字符。
结合第二方面,在第二方面的某一实现方式中,所述方法还包括:
将所述第一候选字符逐一与所述单元候选集中的每一字符进行组词;
采用预设的多个哈希函数分别对组词进行哈希计算,并且获取每一组词对应的多个哈希结果;
将所述每一组词对应的多个哈希结果分别与所述截断位置为2时对应的聚合结果进行比对;
将相似度大于预设阈值的字符作为第二候选字符。
结合第二方面,在第二方面的某一实现方式中,所述方法还包括:
将所述第二候选字符逐一与所述单元候选集中的每一字符进行组词,获取三字词;
采用预设的多个哈希函数分别对组词进行哈希计算,并且获取每一所述三字词对应的多个哈希结果;
将所述每一所述三字词对应的多个哈希结果分别与所述截断位置为3时对应的聚合结果进行比对;
将相似度大于预设阈值的字符作为第三候选字符;
重复上述过程,直至将M字词对应的哈希结果与所述截断位置为M时对应的聚合结果进行比对,并将相似度大于预设阈值的字符作为期望候选字符,其中,M为整串数据对应的字符数量减1。
结合第二方面,在第二方面的某一实现方式中,所述方法还包括:
将所述期望候选字符逐一与所述单元候选集中的每一字符进行组词,获取整词;
采用预设的多个哈希函数分别对所述整词进行哈希计算,并且获取每一所述整词对应的多个哈希结果;
将所述每一所述整词对应的多个哈希结果分别与所述截断位置为M+1时对应的聚合结果进行比对;
将相似度大于预设阈值的字符作为期望原始字符。
结合第二方面,在第二方面的某一实现方式中,所述方法还包括:
对所述第一加扰结果和/或所述第二加扰结果进行十六进制解码。
结合第二方面,在第二方面的某一实现方式中,所述上报数据对应的数据类型为汉字字符。
第三方面,提供了一种终端设备,包括:
一个或多个处理器;
一个或多个存储器;
所述一个或多个存储器存储有一个或多个计算机程序,所述一个或多个计算机程序包括指令,当所述指令被所述一个或多个处理器执行时,使得所述终端设备执行如第一方面中某一实现方式所述的方法。
第四方面,提供了一种云侧设备,包括:
一个或多个处理器;
一个或多个存储器;
所述一个或多个存储器存储有一个或多个计算机程序,所述一个或多个计算机程序包括指令,当所述指令被所述一个或多个处理器执行时,使得所述云侧设备执行如第一方面中某一实现方式所述的方法。
第五方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行程序指令,所述计算机可执行程序指令在被计算机上运行时,使所述计算机执行如上述第一方面中任一实现方式所述的方法。
第六方面,提供了一种计算机程序产品,所述计算机程序产品包括计算机程序代码,当所述计算机程序代码在计算机上运行时,使所述计算机执行如上述第一方面中任一实现方式所述的方法。
附图说明
图1为为一种复制直达场景下的信息交互的示意图。
图2为本申请实施例提供的一种数据上报的方法适用的系统架构的示意图。
图3为本申请实施例提供的一种终端设备100的结构示意图。
图4为本申请实施例提供的一种终端设备100的软件结构框图。
图5为本申请实施例提供的一种云侧设备200的示意性结构图。
图6为本申请实施例提供的一种数据上报的示意性流程图。
图7A为本申请实施例提供的另一种数据上报的方法的示意性流程图。
图7B为本申请实施例提供的一种获取候选字符的原理示意图。
图8为本申请实施例提供的一种数据上报过程中数据变化的示意图。
图9为本申请实施例提供的又一种数据上报的方法的示意性流程图。
图10为本申请实施例提供的又一种数据上报的方法的示意性流程图。
具体实施方式
需要说明的是,本申请实施例的实施方式部分使用的术语仅用于对本申请的具体实施例进行解释,而非旨在限定本申请。在本申请实施例的描述中,除非另有说明,“/”表示或的意思,例如,A/B可以表示A或B;本文中的“和/或”仅仅是一种描述关联障碍物的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,在本申请实施例的描述中,除非另有说明,“多个”是指两个或多于两个,“至少一个”、“一个或多个”是指一个、两个或两个以上。
以下,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”特征可以明示或者隐含地包括一个或者更多个该特征。
在本说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本申请的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其它一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其它方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其它方式另外特别强调。
结合背景技术中的介绍,为了为终端用户提供更好的体验,搜集用户手机信息进行智能分析是必要的。比如,以荣耀复制直达场景为例,在用户复制某个信息后,终端设备中的智能助手会推荐下一步可能需要跳转的应用(application,App)。为了使得智能助手推荐的应用更为准确,对于参与了体验计划的用户,其复制的信息可能会被上传到云端用于AI模型训练。在一些情形下,该复制直达场景中的数据上报过程可以参见图1。
示例性的,如图1所示,为一种复制直达场景下的信息交互的示意图。以上报剪切板中的内容为例,该流程具体可以包括以下步骤:
S101,终端设备获取剪切板内容。
S102,获取语义实体词和词典,其中,语义实体词可以包括自定义此和/或热词。
S103,判断是否能够识别语义实体词。
在一些实施例中,可以基于词典检测是否能够识别语义实体词。其中,当判断结果为“是”,也即能够识别语义实体词时,接下来可以执行步骤S104a;当判断结果为“否”,也即无法识别语义实体词时,接下来可以执行步骤S104b。以下首先针对判断结果为“是”的流程分支进行介绍。
S104a,将不同语义实体关联对应的服务决策或服务推荐。
S105a,终端设备弹出应用推荐列表。
其中,该应用推荐列表可以包括与语义实体关联的应用,也即用户下一步可能想要跳转进行信息的粘贴的应用。
S106a,判断是否选择推荐的应用。
其中,当判断结果为“是”时,接下来可以执行步骤S107a;当判断结果为“否”时,接下来可以执行步骤S107c。
在一些实施例中,当上述步骤S103中的判断结果为“否”时的流程分可以包括以下步骤S104b至步骤S109b:
S104b,监测应用,读取剪切板。
S105b,将当前语义实体确定为新语义实体,记录至本地词典。
S106b,(闲时)更新词典,包括词典中的自定义此或者热词等。
S107b,通过差分加噪调用(WordFilter),对该当前语义实体进行加噪。
之后,可以将加噪后的数据(包括实体语义词)上报至云端,云端接收到数据之后,可以执行以下步骤S108b和S109b:
S108b,云端对接收到的数据进行降噪处理和线性回归处理。
其中,经过该降噪处理和线性回归处理之后,云端可以获取上报数据对应的原汁数据。
S109b,云端基于获取的原始数据对实体库词典进行更新和下发。
接下来,回到步骤S106a中判断结果为“否”的流程分支,该流程分支可以包括以下步骤S107c和步骤S108c:
S107c,监测剪切板,记录关联应用。
S108c,生成推荐应用关联。
其中,步骤S107c和步骤S108c可以在终端设备的后台进行。
当步骤S106a中判断结果为“是”时,其对应的流程分支可以包括以下步骤S107a和步骤S108a:
S107a,记录选择的应用。
S108a,推荐应用排序优化。
之后,可以继续执行步骤S104a,也即将不同语义实体关联至对应的服务决策或服务推荐。
在一些实施例中,终端设备还可以将语义实体关联的服务决策或服务推荐上报至云端,示例性的,该流程具体可以包括以下步骤S109a至步骤S112:
S109a,终端设备(闲时)将服务决策或服务推荐的本地模型/梯度进行上传。
S110,终端设备对上报数据进行差分加噪调用。
之后,终端设备可以将加噪处理之后的数据上报至云端,云端可以执行以下步骤S111和步骤S112:
S111,云端对接收到的上报数据进行降噪处理和线性回归处理,获取上报数据对应的原始数据。
S112,云端对服务决策或服务推荐模型,或者对服务决策或服务推荐梯度进行更新,并将更新后的模型或梯度下发至终端设备。
值得注意的是,在上述流程中,终端设备在将数据上报至云侧之前,会通过差分加噪调用对上报数据进行处理,而云侧在接收到上报数据之后,可以通过降噪处理和线性回归处理恢复出原始数据,由于恢复出的候选信息中仅会保留被大量用户上传的信息,而这些信息一般为非隐私信息,因而通过该方法能够实现对上报的隐私数据的保护。
示例性的,如图2所示,为本申请实施例提供的一种数据上报的方法适用的系统架构的示意图。该系统架构可以包括终端设备100和云侧设备200。
其中,终端设备100还可以被称为用户设备(user equipment,UE)、移动台(mobilestation,MS)、移动终端(mobile terminal,MT)等,是一种向用户提供语音/数据连通性的设备,例如,具有无线连接功能的手持式设备、车载设备等。目前一些终端设备100的举例可以为:手机(mobile phone)、平板电脑、笔记本电脑、掌上电脑、移动互联网设备(mobileinter device,MID)、可穿戴设备,虚拟现实(virtual reality,VR)设备、增强现实(augment reality,AR)设备、工业控制(industrial control)中的无线终端、无人驾驶(self driving)中的无线终端、远程手术(remote medical surgery)中的无线终端、智能电网(smart grid)中的无线终端、运输安全(transportation safety)中的无线终端、智慧城市(smart city)中的无线终端、智慧家庭(smart home)中的无线终端设备等。
本申请实施例中的终端设备100可以根据用户体验计划或其他的AI服务,将终端设备100中保存的数据作为上报数据,或者从其他设备中获取上报数据。
在一些实施例中,终端设备100可以按照预设的规则进行数据上报,其中,该预设的规则可以有多种,比如可以包括:当终端设备100出厂时,可以设定每隔一周上报一次终端设备上安装的软件名称,这样每隔一周终端设备可以将该终端设备上安装的所有软件的软件名称作为上报数据上报给云侧设备200。再比如,终端设备100还可以在接收到上报请求时,上报数据,例如终端设备100可以接收云侧设备200发送的上报请求,该上报请求可以携带需要上报的数据信息,之后终端设备100获取上报请求所指示的数据信息对应的数据作为上报数据。
在一些实施例中,本申请实施例的上报数据可以是任意字符,尤其可以是汉字字符,该汉字字符可以按照其二进制编码进行上报。
云侧设备200例如可以指网络设备,该云侧设备200又可以被称为云侧、云端、云端服务器、服务器等。
云侧设备200和终端设备100之间建立有通信连接。该通信连接例如可以是任何基于通信技术标准的无线通信方式,如长期演进(long term evolution,LTE)通信、车联网(vehical to everything,V2X)、第五代移动通信技术(the 5th generation,5G)以及未来可能存在的通信方式等。本申请实施例对此不作限定。
示例性的,如图3所示,为本申请实施例提供的一种终端设备100的结构示意图。
终端设备100可以包括处理器110,外部存储器接口120,内部存储器121,通用串行总线(universal serial bus,USB)接口130,充电管理模块140,电源管理模块141,电池142,天线1,天线2,移动通信模块150,无线通信模块160,音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,传感器模块180,按键190,马达191,指示器192,摄像传感器193,显示屏194,以及用户标识模块(subscriber identification module,SIM)卡接口195等。其中传感器模块180可以包括压力传感器180A,陀螺仪传感器180B,气压传感器180C,磁传感器180D,加速度传感器180E,距离传感器180F,接近光传感器180G,指纹传感器180H,温度传感器180J,触摸传感器180K,环境光传感器180L,骨传导传感器180M等。
可以理解的是,本发明实施例示意的结构并不构成对终端设备100的具体限定。在本申请另一些实施例中,终端设备100可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processingunit,GPU),图像信号处理器(image signal processor,ISP),控制器,存储器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
其中,控制器可以是终端设备100的神经中枢和指挥中心。控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110中的存储器为高速缓冲存储器。该存储器可以保存处理器110刚用过或循环使用的指令或数据。如果处理器110需要再次使用该指令或数据,可从所述存储器中直接调用。避免了重复存取,减少了处理器110的等待时间,因而提高了系统的效率。
在一些实施例中,处理器110可以包括一个或多个接口。接口可以包括集成电路(inter-integrated circuit,I2C)接口,集成电路内置音频(inter-integrated circuitsound,I2S)接口,脉冲编码调制(pulse code modulation,PCM)接口,通用异步收发传输器(universal asynchronous receiver/transmitter,UART)接口,移动产业处理器接口(mobile industry processor interface,MIPI),通用输入输出(general-purposeinput/output,GPIO)接口,用户标识模块(subscriber identity module,SIM)接口,和/或通用串行总线(universal serial bus,USB)接口等。
I2C接口是一种双向同步串行总线,包括一根串行数据线(serial data line,SDA)和一根串行时钟线(derail clock line,SCL)。在一些实施例中,处理器110可以包含多组I2C总线。处理器110可以通过不同的I2C总线接口分别耦合触摸传感器180K,充电器,闪光灯,摄像传感器193等。例如:处理器110可以通过I2C接口耦合触摸传感器180K,使处理器110与触摸传感器180K通过I2C总线接口通信,实现终端设备100的触摸功能。
I2S接口可以用于音频通信。在一些实施例中,处理器110可以包含多组I2S总线。处理器110可以通过I2S总线与音频模块170耦合,实现处理器110与音频模块170之间的通信。在一些实施例中,音频模块170可以通过I2S接口向无线通信模块160传递音频信号,实现通过蓝牙耳机接听电话的功能。
PCM接口也可以用于音频通信,将模拟信号抽样,量化和编码。在一些实施例中,音频模块170与无线通信模块160可以通过PCM总线接口耦合。在一些实施例中,音频模块170也可以通过PCM接口向无线通信模块160传递音频信号,实现通过蓝牙耳机接听电话的功能。所述I2S接口和所述PCM接口都可以用于音频通信。
UART接口是一种通用串行数据总线,用于异步通信。该总线可以为双向通信总线。它将要传输的数据在串行通信与并行通信之间转换。在一些实施例中,UART接口通常被用于连接处理器110与无线通信模块160。例如:处理器110通过UART接口与无线通信模块160中的蓝牙模块通信,实现蓝牙功能。在一些实施例中,音频模块170可以通过UART接口向无线通信模块160传递音频信号,实现通过蓝牙耳机播放音乐的功能。
MIPI接口可以被用于连接处理器110与显示屏194,摄像传感器193等外围器件。MIPI接口包括摄像传感器串行接口(camera serial interface,CSI),显示屏串行接口(display serial interface,DSI)等。在一些实施例中,处理器110和摄像传感器193通过CSI接口通信,实现终端设备100的拍摄功能。处理器110和显示屏194通过DSI接口通信,实现终端设备100的显示功能。
GPIO接口可以通过软件配置。GPIO接口可以被配置为控制信号,也可被配置为数据信号。在一些实施例中,GPIO接口可以用于连接处理器110与摄像传感器193,显示屏194,无线通信模块160,音频模块170,传感器模块180等。GPIO接口还可以被配置为I2C接口,I2S接口,UART接口,MIPI接口等。
USB接口130是符合USB标准规范的接口,具体可以是Mini USB接口,Micro USB接口,USB Type C接口等。USB接口130可以用于连接充电器为终端设备100充电,也可以用于终端设备100与外围设备之间传输数据。也可以用于连接耳机,通过耳机播放音频。该接口还可以用于连接其他终端,例如AR设备等。
可以理解的是,本发明实施例示意的各模块间的接口连接关系,只是示意性说明,并不构成对终端设备100的结构限定。在本申请另一些实施例中,终端设备100也可以采用上述实施例中不同的接口连接方式,或多种接口连接方式的组合。
充电管理模块140用于从充电器接收充电输入。其中,充电器可以是无线充电器,也可以是有线充电器。在一些有线充电的实施例中,充电管理模块140可以通过USB接口130接收有线充电器的充电输入。在一些无线充电的实施例中,充电管理模块140可以通过终端设备100的无线充电线圈接收无线充电输入。充电管理模块140为电池142充电的同时,还可以通过电源管理模块141为终端供电。
电源管理模块141用于连接电池142,充电管理模块140与处理器110。电源管理模块141接收电池142和/或充电管理模块140的输入,为处理器110,内部存储器121,外部存储器,显示屏194,摄像传感器193,和无线通信模块160等供电。电源管理模块141还可以用于监测电池容量,电池循环次数,电池健康状态(漏电,阻抗)等参数。在其他一些实施例中,电源管理模块141也可以设置于处理器110中。在另一些实施例中,电源管理模块141和充电管理模块140也可以设置于同一个器件中。
终端设备100的无线通信功能可以通过天线1,天线2,移动通信模块150,无线通信模块160,调制解调处理器以及基带处理器等实现。
天线1和天线2用于发射和接收电磁波信号。终端设备100中的每个天线可用于覆盖单个或多个通信频带。不同的天线还可以复用,以提高天线的利用率。例如:可以将天线1复用为无线局域网的分集天线。在另外一些实施例中,天线可以和调谐开关结合使用。
移动通信模块150可以提供应用在终端设备100上的包括2G/3G/4G/5G等无线通信的解决方案。移动通信模块150可以包括至少一个滤波器,开关,功率放大器,低噪声放大器(low noise amplifier,LNA)等。移动通信模块150可以由天线1接收电磁波,并对接收的电磁波进行滤波,放大等处理,传送至调制解调处理器进行解调。移动通信模块150还可以对经调制解调处理器调制后的信号放大,经天线1转为电磁波辐射出去。在一些实施例中,移动通信模块150的至少部分功能模块可以被设置于处理器110中。在一些实施例中,移动通信模块150的至少部分功能模块可以与处理器110的至少部分模块被设置在同一个器件中。
调制解调处理器可以包括调制器和解调器。其中,调制器用于将待发送的低频基带信号调制成中高频信号。解调器用于将接收的电磁波信号解调为低频基带信号。随后解调器将解调得到的低频基带信号传送至基带处理器处理。低频基带信号经基带处理器处理后,被传递给应用处理器。应用处理器通过音频设备(不限于扬声器170A,受话器170B等)输出声音信号,或通过显示屏194显示图像或视频。在一些实施例中,调制解调处理器可以是独立的器件。在另一些实施例中,调制解调处理器可以独立于处理器110,与移动通信模块150或其他功能模块设置在同一个器件中。
无线通信模块160可以提供应用在终端设备100上的包括无线局域网(wirelesslocal area networks,WLAN)(如无线保真(wireless fidelity,Wi-Fi)网络),蓝牙(bluetooth,BT),全球导航卫星系统(global navigation satellite system,GNSS),调频(frequency modulation,FM),近距离无线通信技术(near field communication,NFC),红外技术(infrared,IR)等无线通信的解决方案。无线通信模块160可以是集成至少一个通信处理模块的一个或多个器件。无线通信模块160经由天线2接收电磁波,将电磁波信号调频以及滤波处理,将处理后的信号发送到处理器110。无线通信模块160还可以从处理器110接收待发送的信号,对其进行调频,放大,经天线2转为电磁波辐射出去。
在一些实施例中,终端设备100的天线1和移动通信模块150耦合,天线2和无线通信模块160耦合,使得终端设备100可以通过无线通信技术与网络以及其他设备通信。所述无线通信技术可以包括全球移动通讯系统(global system for mobile communications,GSM),通用分组无线服务(general packet radio service,GPRS),码分多址接入(codedivision multiple access,CDMA),宽带码分多址(wideband code division multipleaccess,WCDMA),时分码分多址(time-division code division multiple access,TD-SCDMA),长期演进(long term evolution,LTE),BT,GNSS,WLAN,NFC,FM,和/或IR技术等。所述GNSS可以包括全球卫星定位系统(global positioning system,GPS),全球导航卫星系统(global navigation satellite system,GLONASS),北斗卫星导航系统(beidounavigation satellite system,BDS),准天顶卫星系统(quasi-zenith satellitesystem,QZSS)和/或星基增强系统(satellite based augmentation systems,SBAS)。
终端设备100通过GPU,显示屏194,以及应用处理器等实现显示功能。显示屏194用于显示图像,视频等。
终端设备100可以通过ISP,摄像传感器193,视频编解码器,GPU,显示屏194以及应用处理器等实现拍摄功能。
数字信号处理器用于处理数字信号,除了可以处理数字图像信号,还可以处理其他数字信号。例如,当终端设备100在频点选择时,数字信号处理器用于对频点能量进行傅里叶变换等。视频编解码器用于对数字视频压缩或解压缩。NPU为神经网络(neural-network,NN)计算处理器,通过借鉴生物神经网络结构,例如借鉴人脑神经元之间传递模式,对输入信息快速处理,还可以不断的自学习。
外部存储器接口120可以用于连接外部存储卡,例如Micro SD卡,实现扩展终端设备100的存储能力。外部存储卡通过外部存储器接口120与处理器110通信,实现数据存储功能。例如将音乐,视频等文件保存在外部存储卡中。内部存储器121可以用于存储计算机可执行程序代码,所述可执行程序代码包括指令。
终端设备100可以通过音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,以及应用处理器等实现音频功能。例如音乐播放,录音等。
压力传感器180A用于感受压力信号,可以将压力信号转换成电信号。陀螺仪传感器180B可以用于确定终端设备100的运动姿态。磁传感器180D包括霍尔传感器。终端设备100可以利用磁传感器180D检测翻盖皮套的开合。加速度传感器180E可检测终端设备100在各个方向上(一般为三轴)加速度的大小。当终端设备100静止时可检测出重力的大小及方向。还可以用于识别终端姿态,应用于横竖屏切换,计步器等应用。接近光传感器180G可以包括例如发光二极管(LED)和光检测器,例如光电二极管。发光二极管可以是红外发光二极管。终端设备100通过发光二极管向外发射红外光。环境光传感器180L用于感知环境光亮度。终端设备100可以根据感知的环境光亮度自适应调节显示屏194亮度。指纹传感器180H用于采集指纹。温度传感器180J用于检测温度。触摸传感器180K,也称“触控面板”。触摸传感器180K可以设置于显示屏194,由触摸传感器180K与显示屏194组成触摸屏,也称“触控屏”。触摸传感器180K用于检测作用于其上或附近的触摸操作。骨传导传感器180M可以获取振动信号。
此外,终端设备100还包括气压传感器180C和距离传感器180F。其中,气压传感器180C用于测量气压。在一些实施例中,终端设备100通过气压传感器180C测得的气压值计算海拔高度,辅助定位和导航。
距离传感器180F,用于测量距离。终端设备100可以通过红外或激光测量距离。在一些实施例中,拍摄场景,终端设备100可以利用距离传感器180F测距以实现快速对焦。
示例性的,终端设备100的软件系统可以采用分层架构,事件驱动架构,微核架构,微服务架构,或云架构。本申请实施例以分层架构的Android系统为例,示例性说明终端设备100的软件结构。图4是本申请实施例的终端设备100的软件结构框图。
分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,将Android系统分为四层,从上至下分别为应用程序层,应用程序框架层,安卓运行时(Android runtime),系统库,内核层,硬件抽象层(hardwareabstraction layer,HAL)以及硬件层。
应用程序层可以包括一系列应用程序包。如图4所示,应用程序包可以包括相机,日历,地图,WLAN,音乐,短信息,图库,通话,导航,蓝牙,视频等应用程序。
应用程序框架层为应用程序层的应用程序提供应用编程接口(applicationprogramming interface,API)和编程框架。应用程序框架层包括一些预先定义的函数。如图4所示,应用程序框架层可以包括窗口管理器,内容提供器,电话管理器,资源管理器,通知管理器,配置同步模块、差分隐私模块等。
窗口管理器用于管理窗口程序。窗口管理器可以获取显示屏大小,判断是否有状态栏,锁定屏幕,截取屏幕等。
内容提供器用来存放和获取数据,并使这些数据可以被应用程序访问。所述数据可以包括视频,图像,音频,拨打和接听的电话,浏览历史和书签,电话簿等。
视图系统包括可视控件,例如显示文字的控件,显示图片的控件等。视图系统可用于构建应用程序。显示界面可以由一个或多个视图组成的。例如,包括短信通知图标的显示界面,可以包括显示文字的视图以及显示图片的视图。
电话管理器用于提供终端设备100的通信功能。例如通话状态的管理(包括接通,挂断等)。
资源管理器为应用程序提供各种资源,比如本地化字符串,图标,图片,布局文件,视频文件等等。
通知管理器使应用程序可以在状态栏中显示通知信息,可以用于传达告知类型的消息,可以短暂停留后自动消失,无需用户交互。比如通知管理器被用于告知下载完成,消息提醒等。通知管理器还可以是以图表或者滚动条文本形式出现在系统顶部状态栏的通知,例如后台运行的应用程序的通知,还可以是以对话窗口形式出现在屏幕上的通知。例如在状态栏提示文本信息,发出提示音,终端振动,指示灯闪烁等。
Android Runtime包括核心库和虚拟机。Android runtime负责安卓系统的调度和管理。
核心库包含两部分:一部分是java语言需要调用的功能函数,另一部分是安卓的核心库。
应用程序层和应用程序框架层运行在虚拟机中。虚拟机将应用程序层和应用程序框架层的java文件执行为二进制文件。虚拟机用于执行障碍物生命周期的管理,堆栈管理,线程管理,安全和异常的管理,以及垃圾回收等功能。
系统库可以包括多个功能模块。例如:表面管理器(surface manager),媒体库(Media Libraries),三维图形处理库(例如:OpenGL ES),2D图形引擎(例如:SGL)等。
表面管理器用于对显示子系统进行管理,并且为多个应用程序提供了2D和3D图层的融合。
媒体库支持多种常用的音频,视频格式回放和录制,以及静态图像文件等。媒体库可以支持多种音视频编码格式,例如:MPEG4,H.264,MP3,AAC,AMR,JPG,PNG等。
三维图形处理库用于实现三维图形绘图,图像渲染,合成,和图层处理等。
2D图形引擎是2D绘图的绘图引擎。
内核层是硬件和软件之间的层。内核层至少包含显示驱动,摄像传感器驱动,音频驱动,传感器驱动。
示例性的,如图5所示,为本申请实施例提供的一种云侧设备200的示意性结构图。该云侧设备200可以包括第二数据采集模块201、配置管理模块202、差分隐私服务模块203等,其中,差分隐私服务模块203还可以具体包括降噪模块2031和回归模块2032。
在一些实施例中,第二数据采集模块201用于与终端设备100进行通信连接,具体可以用于接收终端设备100发送的上报数据。配置管理模块202用于针对终端设备上报数据配置相关参数,比如云侧设备200可以通过配置管理模块202预先针对不同类型的上报数据配置不同的参数,之后,可以通过发送模块204发送至终端设备100。终端设设备100需要上报某一类型的数据时,可以根据预获取的配置参数,对该类型的数据进行配置,之后上报至云侧设备200。
在一些实施例中,差分隐私服务模块203可以用于在获取终端设备100的上报数据之后,通过其具体包括的降噪模块2031和回归模块2032,对该上报数据进行降噪处理和线性回归处理,从而获取终端设备100上报的原始数据。
需要说明的是,图5所示的云侧设备200包括的模块类型仅为示例,在实际应用中,云侧设备200还可以包括其他更多类型的模块,比如统计分析模块、聚合汇总模块等等,不同的模块可以用于执行不同的功能,其中,各个模块的功能将在下文进行更为详细的介绍,此处暂不详述。
为了更好地理解本申请实施例提供的数据上报的方法,以下结合终端设备和云侧设备中的功能模块之间的数据流向,对该方法进行示例性的介绍。
示例性的,如图6所示,为本申请实施例提供的一种数据上报的示意性流程图。该流程的执行主体可以包括对应于上述图3和图4所示的终端设备以及对应于上述图5中的云侧设备。
在一些实施例中,云侧设备的配置管理模块可以预先针对不同类型的上报数据进行配置,获取不同类型上报数据对应的配置参数,该配置参数可以用于后续终端设备对上报数据进行处理和上报,也可以用于云侧设备对上报数据进行降噪处理,以获取与原始数据匹配的候选数据等。其中,不同类型的上报数据例如可以包括:单属性-分类数据、单属性-热词数据、多属性-位置数据、多属性-时序数据等。这里的单属性或多属性可以具体指在对该类型数据进行加扰(也即对应于上文中的加噪)时对应的加扰维度,比如对于单属性-分类数据来说,当后续终端设备对该数据进行加扰时,可以对其进行一维加扰,即在一维上对该数据增加扰动;再比如,对于多属性-位置数据来说,当后续终端设备对该数据进行加扰时,可以对其进行二维加扰,如在位置对应的X轴和Y轴上对该数据进行增加扰动。
在一些实施例中,云侧设备的配置管理模块可以将配置的配置参数下发至终端设备,终端设备可以通过其配置同步模块获取该配置参数,并将该配置参数存储于本地,以便后续对不同类型的上报数据进行处理和上报。
在一些实施例中,终端设备可以通过其包括的第一数据采集模块获取需要上报云侧设备的上报数据。其中,终端设备获取上报数据的方式可以有多种,比如:(1)终端设备可以通过第一数据采集模块读取用户开启或使用某一应用程序的信息,之后将该应用程序的相关信息经过处理后上报至云侧设备;(2)终端设备可以通过第一数据采集模块读取剪切板中的信息,该剪切板中的信息例如可以是用户复制且粘贴至其他应用中的信息,之后终端设备可以将该剪切板中的信息经过处理后上报至云侧设备;(3)终端设备可以通过第一数据采集用户在某一时间或某一时间段的应用使用情况,之后将对应的时间信息和应用使用情况等经过处理后上报至云侧设备;(4)终端设备还可以通过第一数据采集模块读取用户的位置信息,如通过读取地图应用中的位置信息或定位应用中的位置信息等,之后将该位置信息经过处理后上报至云侧设备。
需要说明的是,上述介绍中的几种获取上报数据的方式仅为示例,在实际应用中,第一数据采集模块还可以获取更多其他类型的上报数据,本申请实施例对此不作限定。
在一些实施例中,第一数据采集模块可以将获取的上报数据传输至差分隐私模块,由该差分隐私模块根据上报数据的类型,选择对应的配置参数对其进行加扰处理,使得上报数据得以匿名化处理,避免泄露用户的隐私信息。
在一些实施例中,当终端设备需要对某一类型的数据进行上报时,该终端设备的差分隐私模块可以从配置同步模块查询并获取与该类型对应的配置参数,之后,基于该配置参数对该类型的数据进行加扰处理。示例性的,终端设备的差分隐私模块可以包括预设的几种数据类型,例如包括单属性-分类数据、单属性-热词数据、多属性-位置数据、多属性-时序数据等。可选地,该差分隐私模块包括的数据类型可以与云侧设备的差分隐私服务模块包括的数据类型一致。
示例性的,单属性-分类数据例如可以指用户使用的应用对应的类型,比如视频类型、聊天类型、购物类型等等。在一些用户使用应用程序,且终端设备需上报该应用程序相关数据的场景下,该上报数据可以被归类为单属性-分类数据。例如,当用户使用微信聊天软件,且终端设备向云侧设备上报该信息时,终端设备可以将该微信聊天软件归类为单属性-分类类型的数据。之后,终端设备还可以通过差分隐私模块中的加扰模块对该数据(也即聊天类型的应用)进行加扰处理,使其在一定概率下被加扰为其他类型的应用,之后再上报至云侧设备。
示例性的,单属性-热词数据例如可以指与大量被上报的词语或文本等相关的数据。在一些用户粘贴文字文本,且终端设备需上报该文字文本类型相关数据的场景下,该上报数据可以被归类为单属性-热词数据。例如,当用户将某一应用中的文字复制之后,终端设备可能需要将该文字信息上报至云侧设备,以获取用户期望粘贴该文字的应用,在上报之前,终端设备可以将该文字信息归类为单属性-热词类型的数据。之后,终端设备还可以通过差分隐私模块的加扰模块对该文字信息进行加扰处理,使其在一定概率下成为与原始文字不相同的文字信息,之后再上报至云侧设备。
示例性的,多属性-位置数据例如可以指包含位置信息的数据。在终端设备上报的数据中包括位置信息时,差分隐私模块可以将该上报数据归类为多属性-位置类型的数据。之后,终端设备还可以通过差分隐私模块的加扰模块对该位置信息进行加扰处理,使其在一定概率下成为与原始位置对应的坐标不相同的信息,之后再上报至云侧设备。
示例性的,多属性-时序数据例如可以指包含时间信息的数据。在终端设备上报的数据中包括时间信息时,差分隐私模块可以将该上报数据归类为多属性-时间类型的数据。之后,终端设备还可以通过差分隐私模块的加扰模块对该时间信息进行加扰处理,使其在一定概率下成为与时间不相同的信息,之后再上报至云侧设备。
在一些实施例中,差分隐私模块对数据进行加扰处理之后,可以将处理后的加扰上报数据传输至该终端设备的数据上报模块;数据上报模块通过终端设备与云侧设备之间的通信连接,将加扰上报数据传输至云侧设备。
在一些实施例中,云侧设备可以通过第二数据采集模块接收终端设备上报的加扰上报数据。之后,第二数据采集模块可以将加扰上报数据传输至聚合汇总模块,由聚合汇总模块进行聚合,并进一步通过统计分析模块、和差分隐私服务模块等对上报数据进行解扰处理、概率分析处理和线性回归处理等,最终获取终端设备上报的原始数据。
其中,终端设备对上报数据的具体处理过程,以及云侧设备对上报数据的具体处理过程将在下文进行介绍,此处暂不赘述。
需要说明的是,本申请实施例提供的数据上报的方法,云侧设备在对数据进行解扰处理等获取原始数据的过程中,能够实现对信息出现概率或信息被重复上报概率大于一定阈值的数据进行原始数据的恢复。而在实际应用中,通常认为如果一个信息被上报的重复次数足够多,那么该信息不是一个隐私信息,例如网红景点、网络热词等;如果一个信息被上报的重复次数不够多,那该信息可能是一个隐私信息,例如人名、电话号码等。因此,通过本申请实施例提供的数据上报的方法,可以仅针对不是隐私信息的数据进行恢复,进而能够有效地保护用户的隐私信息。
以下结合附图7A和附图8,对本申请实施例提供的数据上报方法中,如何对上报数据基于加扰处理对数据进行处理,以及云侧如何基于解扰处理获取原始数据的过程进行具体介绍。
示例性的,如图7A所示,为本申请实施例提供的另一种数据上报的方法的示意性流程图。图8为与图7A所示流程对应的一种具体的字符串示例。图7A中的流程可以具体包括以下步骤:
S701,依据步长为1,将原始字符串等长划分,获取划分后的第一字符串。
其中,步长的具体数值可以灵活设置,本步骤中的步长为1仅为示例,在实际应用中,步长也可以是其他数值,本申请实施例对此不作限定。
在一些实施例中,原始字符串可以是终端设备通过第一数据采集模块获取的数据,比如从剪贴板获取的数据。本申请实施例中的原始字符串例如可以是汉字字符串。为了便于理解,下文将以该原始字符串为图8中终端设备侧所示的“并刀如水月吴盐胜霜雪”为例进行介绍。
在一些实施例中,根据步长划分后获取的第一字符串例如可以参见图8终端设备侧所示的“并|刀|如|水|月|吴|盐|胜|霜|雪”。
S702,在第一字符串中按照StepIndex随机截断位置,获取前串。
其中,该StepIndex可以用于指示在第一字符串中的截断位置,该StepIndex可以是小于原始字符串长度的随机数。比如,以图8所示的截断位置是2为例,此时StepIndex=2。截断之后获取的前串字符对应于原始字符串中的前两个字符,也即“并刀”。
S703,随机选择第k个随机哈希函数对前串和原始字符串进行哈希计算,并获取前串对应的第一哈希结果和原始字符串对应的第二哈希结果。
在一些实施例中,终端设备随机选择第k个随机(记为kRandom)哈希函数的方式例如可以包括:终端设备从预设的哈希函数数据库中选择其中的第k个随机哈希函数,其中,预设的哈希函数数据库可以包括多个不同的哈希函数。利用不同哈希函数对前串或原始字符串进行哈希计算后,可以获取长度相同的哈希结果。
示例性的,参见图8中的示例,在一种实施例中,根据第k个随机哈希函数对前串字符串进行哈希计算之后,获取的第一哈希结果例如可以为:01010100…0101。根据第k个随机哈希函数对原始字符串进行哈希计算之后,获取的第二哈希结果例如可以为:1000100…1101。
S704,根据扰动概率f_pro对第一哈希结果对应的bloomfilter结果和第二哈希结果对应的bloomfilter结果分别进行扰动,获取对应的第一扰动数据和第二扰动数据。
在一些实施例中,当获取第一哈希结果和第二哈希结果之后,可以获取该第一哈希结果对应的bloomfilter结果,以及第二哈希结果对应的bloomfilter结果,之后,对第一哈希结果对应的filter结果进行加扰,以及对第二哈希结果对应的filter结果进行加扰。加扰时可以根据哈希结果对应到某个比特,比如哈希结果(第一哈希结果或第二哈希结果)为0101,那么通过bloomfilter就可以将其转变为0000100000000000,也即哈希结果范围为0至15,用16个比特来标识,其中,哈希结果为0101,对应的十进制为5,则在第5个位置置1;之后,即可对0000100000000000的每个比特进行加扰,加扰后的结果例如可以为0000100010000001。
其中,扰动概率可以为预设的概率值,比如10%。当扰动概率为10%时,可以用于指示每个比特都有10%的概率被扰动为其他信息,也即数据的具体数值或者数据含义会偏离原始数据。
在一些实施例中,终端设备可以利用预设的加扰算法对第一哈希结果的每个比特和第二哈希结果的每个比特进行加扰。在本申请实施例中,加扰也可以被描述为加噪。
在一些实施例中,本申请实施例中采用的加扰算法可以是终端设备预先配置的,例如终端设备出厂时设置的。可选地,该加扰算法还可以是终端设备从网络端获取的,例如由服务器下发的。可选地,该加扰算法还可以是终端设备通过其他当时获取的,本申请实施例对加扰算法的具体获取方式不作限定。
示例性的,以图8所示的第一哈希结果为例,经过扰动处理之后,其由原始的哈希结果(也即第一哈希结果01010100…0101),改变为不同的二进制字符串(也即改变为第一字符串01101100…0001)。以第三个比特为例,在第一哈希结果中第三个比特的(二进制)值为0,而在第一字符串中第三个比特的(二进制)值被扰动为1,说明第三个比特恰为该10%扰动概率,数据偏离原始数据。
S705,对第一扰动数据和第二扰动数据分别进行十六进制编码。
其中,对第一扰动数据和第二扰动数据分别进行十六进制编码能够压缩上报数据,进而节省通信资源。
示例性的,如图8所示,对第一扰动数据进行十六进制编码之后,对应获取的结果可以为:6C…1;对第二扰动数据进行十六进制编码之后,对应获取的结果可以为:64…F。
需要说明的是,本申请实施例中对扰动数据进行十六进制编码为可选步骤,在一些实施例中,终端设备基于与云侧之间的协商,也可以不对扰动数据进行十六进制编码或者可以采用其他方式对扰动数据进行编码,本申请实施例对此不作限定。
S706,生成用户报告,该用户报告包括第一扰动数据和第二扰动数据分别进行十六进制编码后的结果,以及包括StepIndex和第k个随机哈希函数对应的随机数。
其中,用户报告又可以被称为差分隐私报告。该用户报告包括终端设备侧经过加扰处理后的上报数据。或者,该用户报告包括终端设备侧经过加扰处理及编码处理(如十六进制编码)后的上报数据。
在一些实施例中,该用户报告还可以包括用于指示前串截断位置的参数StepIndex,以及进行哈希计算时所采用的哈希函数指示参数,如kRandom(表示哈希函数数据库中的第k个哈希函数)。
之后,终端设备可以通过其与云侧之间的通信连接,将该用户报告发送至云侧设备。云侧设备接收到用户报告之后,可以对该基于用户报告进行聚合、加扰以及线性拟合等处理,获取终端设备上报的原始数据。示例性的,云侧的具体流程可以包括以下步骤S707至步骤S710:
S707,接收多个终端设备发送的用户报告,该多个用户报告如包括用户报告1,用户报告2,……,用户报告N。
在一些实施例中,云侧设备可以接收多个终端设备发送的上报数据(即用户报告),不同终端设备发送的上报数据例如可以表示不同用户的终端设备使用习惯或者行为习惯等。多个用户报告例如可以对应于参与AI体验计划的多个用户,通过对多个用户对应的上报数据进行处理分析,实现对AI模型的优化云侧,更加准确地预测用户行为习惯,改善用户的终端设备使用体验。
S708,对多个用户报告进行聚合,生成聚合报告。
在一些实施例中,云侧设备对多个用户报告进行聚合之前,还可以对用户报告中包括的数据进行解编码,如对十六进制进行解编码,获取二进制的加扰结果(如第一加扰结果、第二加扰结果)。
在一些实施例中,云端设备可以根据前串对应的截断参数、哈希函数对应的索引随机数kRandom以及用户报告中携带的场景信息(如地区、文字类型标识等),获取上报数据的类型。其中,上报数据的类型例如可以包括汉字、数字、标签等,本申请实施例主要以上报数据是汉字为例进行介绍。
在一些实施例中,云侧设备对多个用户报告进行聚合的方式可以包括以下过程:(1)云侧设备按照前串长度(如参数StepIndex)对用户报告进行分类,具有相同前串长度的用户报告被分为一类;之后,根据终端设备进行哈希计算时采用的哈希函数(如kRandom)对用户报告进行二次分类,将使用相同哈希函数进行了哈希计算的用户报告分为一类,此时得到的同类用户报告中的上报数据均具有相同数量字符(或长度)的前串和相同的哈希函数。(2)对同类用户报告进行聚合,具体地,将同类的各用户报告中的第一加扰结果中的每个对应比特位上的数值进行求和,以及将同类的各用户报告中的第二加扰结果中的每个对应比特位上的数值进行求和。例如,假设同类的三份用户报告中的第一加扰结果(或第二加扰结果)分别为“0100”、“1111”、“1101”,那么聚合之后的聚合结果就为“2”、“3”、“1”、“2”。
应理解,由于步长参数为随机设置的小于整串数据长度的值,因而,在上报数据较多时,对第一加扰结果进行上述分类之后,会存在每一步长参数对应的前串数据,也即会存在步长参数为1(前串只有一个字符)的前串数据、步长参数为2(前串有两个字符)的前串数据、步长参数为3(前串有三个字符)的前串数据……步长为M(前串有M个字符)的前串数据。其中,M可以为整串数据对应的字符数量减1。也就是说,经过分类后可以获得每一步长参数对应的前串数据的第一哈希结果。
在一些实施例中,由于对同类用户报告中的加扰结果的相同比特求和后,聚合结果中每个比特的和可以视为由加扰部分(该比特恰好为被加扰的数据,如恰好符合10%的加扰概率)和非加扰部分(该比特未被加扰的数据,如恰好符合90%的非加扰概率)两者求和得到的,因此,可以根据预设的加扰概率,求得解扰之后的该求和的期望值,也即可以通过随机响应技术对终端设备上报的加扰数据进行解扰。
具体地,解扰的过程可以包括:由聚合后的结果除以加扰概率,得出未加扰时各比特上“1”的数量。比如,以上述聚合结果是2312为例,该聚合结果说明,在采用加扰概率加扰之后,云侧获取的数据中,有2份用户报告的加扰结果中第一个比特上的(二进制)值是“1”,有3份用户报告的加扰结果中第二各比特上的(二进制)值为“1”,有1份用户报告的加扰结果中第三个比特上的(二进制)值为“1”,有2份用户报告的加扰结果中第四个比特上的(二进制)值为“1”。但是该聚合结果是在每个比特上的(二进制)值存在一定加扰概率的情况下获取的,也就是第一个比特至第四个比特中,每份用户报告的每个比特都存在一定加扰概率偏离了原始结果,如存在10%的加扰概率,将原始的1加扰为0,所以通过将聚合结果除以加扰概率,可以获取解扰后的期望结果。以第一比特上的值为例,假设该3份用户报告的加扰结果中第一比特上原始值是0的有x份,那么原始值为1的则有(3-x)份,由于云侧接收到的三分用户报告里第一比特上是1的有2份,假设加扰概率为10%,那么可以得到以下公式(1-1):
x*10%+(3-x)*90%=2 (1-1)
解上述公式,可以得到x为0.875,也就是说,原始数据中3份报告中的第一比特位上,可能有0.875个为0,其余为1,该结果也即解扰后的期望结果。
S709,按照哈希函数对应的聚合结果,获取不同前串对应的计数矩阵。
其中,这里的不同前串可以具体指包括不同数量字符的前串。
在一些实施例中,每个比特上的期望结果均可以通过上述介绍的随机响应技术进行解扰。如果原始字符串的最大字长为10,那么可以得到10份聚合结果,分别是前串长度分别为1至9的聚合结果和整个字符串的聚合结果。
之后,可以按照所有用户报告对应的哈希函数,生成各前串字符的数量对应的计数矩阵,其中,本申请实施例中的计数矩阵也可以被描述为聚合报告。
在一些实施例中,计数矩阵的行号可以对应于哈希函数索引的随机数kRandom,也就是不同行可以对应不同的哈希函数;每一行的具体数值可以分别对应不同长度的前串对应的期望结果。示例性的,如果哈希函数的个数为100,哈希的最大结果为1000,那么每个计数矩阵就可以是100*1000的二维数组。
示例性的,以如图8所示的包括9个字符的字符串为例,获取的计数矩阵例如可以对应于计数矩阵1、计数矩阵2,…,计数矩阵9和计数矩阵0。其中,计数矩阵1可以包括Q行,Q行中的每一行可以对应不同的哈希函数,每一行的具体数值可以是前串为1时对应的期望结果,该期望结果可以理解为原始字符串的前一个字符对应的解扰后的各比特上出现1的次数;计数矩阵2可以包括Q行,Q行中的每一行可以对应不同的哈希函数,每一行的具体数值可以是前串为2时对应的期望结果,该期望结果可以理解为原始字符串的前两个字符对应的解扰后的各比特上出现1的次数;依次类推,计数矩阵0可以包括Q行,Q行中的每一行可以对应不同的哈希函数,每一行的具体数值可以是整个字符串对应的期望结果,该期望结果可以理解为原始的整串字符对应的解扰后的各比特上出现1的次数。
需要说明的是,上述通过随机响应技术进行解扰的过程是基于概率进行的,因而该方式可以筛选出被大量上报的信息,但在该方式下,用户的隐私数据(数量较少)一般与加扰的噪声无法区分,所以结果中保留的大部分是热词(也即大量用户上报的相同信息),该信息通常为非隐私数据,最终使得用户的隐私信息得以被保护。
S710,通过对候选单元集中的预设字符进行线性回归计算,获取原始字符串。
其中,候选单元集例如可以是全量字典,或者常用字字典、常用字数据库等。为了便于理解,以下以候选单元集是全量字典为例进行介绍。
在一些实施例中,云侧设备可以采用全量字典对聚合报告中的字符进行逐一检测,通过线性回归算法拟合获取原始数据。该方式可以具体包括以下过程:
(1)对全量字典中的每个字符进行哈希计算。例如,当聚合报告来自于中文地区,则可以使用汉语字典,如果字典中有30000个汉字,那么会对这30000个汉字进行逐一计算,也即对每一个汉字都利用所有的(如上述介绍的Q个)哈希函数进行哈希计算,得到计算结果。之后,可以将得到的计算结果与解扰后的前串长度为1所对应的聚合报告中的期望结果进行比对。
例如,假设哈希函数的数量Q为100,那么利用这100个哈希函数分别对全量字典中的候选字进行计算,可以获取每个字对应的100个哈希计算结果。以哈希结果转换为十进制为例,假设哈希计算输出的最大结果为1000,那么就可以得到100个1~1000的数,例如“89”、“754”、”42”等。之后,使用以上结果对照聚合后的二维数组,也即从第一行取第89列的数,从第二行取754列的数,依次操作。将取到的100个结果与预先设置的阈值进行比较,如果大于该阈值,就认为该候选字出现在报告中的概率大。
之所以通过上述(1)中的比较,可以获取出现概率较大的候选字,其原理在于:在终端设备侧对前串字符和整串字符进行哈希计算时,如图7B所示,会针对不同的字符输出同的哈希值,比如假设哈希计算得到的结果包括8个比特,当对“并”进行哈希计算时,若Hash(“并”)=3,则表示第3个比特中的数值为“1”;当对(其他上报的用户报告中的)“你”进行哈希计算时,若Hash(“你”)=4,则表示第4个比特中的数值为“1”。之后,终端设备侧按照预设的加扰概率对“并”、“你”对应的哈希结果进行加扰,如当“并”对应的第一个比特恰好符合加扰概率时,那么原始数据“0”会被加扰为“1”,当“你”对应的第一个比特和第八个比特恰好符合加扰概率时,那么原始数据“0”会被加扰为“1”,按照该过程,就可以得到加扰后的信息。之后,当云侧对前串为1的字符对应的加扰结果进行聚合(如对应的哈希函数索引随机数为kRandom),也即获取“并”和“你”对应的各比特位求和后的结果;之后,根据预设的加扰概率获取解扰后的前串为1对应的期望结果(如图7B所示的:20110001),也即获取“并”、“你”等字符在相同哈希函数下分别对应的每个比特中1出现的次数。之后,按照线性回归的拟合思路,对全量词典中的每个字符逐一采用每个预设的哈希函数进行哈希计算,比如当采用全量字典中的字符“并”时,计算得到Hash(“并”)=3,说明“并”在经过哈希处理之后,在第三个比特上的值为1,那么可以与前述期望结果中对应行的第三个比特上的数据进行比较,如果期望结果中的第三个比特的值与全量字典的“并”经相同哈希函数(kRandom)处理后的值相似,则将该字符作为候选字符;然而,如果在另外一些场景下,期望结果中对应行的第三个比特上的值为0,或者与全量字典的“并”经相同哈希函数(kRandom)处理后的值不相似,那么则认为“并”这个字符与原始字符串的第一个字符不匹配,后续不会将其列为候选字符。
需要说明的是,为了便于理解,上述仅以两份前串为1的用户报告进行举例,在实际应用中,云侧对针对大量的上报数据进行数据,也就是说,聚合之后的期望结果中每个比特上的数值可能为较大的值,因而,此时无法直观地对全量字典中每个字符的哈希结果与期望结果进行对比。那么就可以通过线性拟合的方式,获取全量字典中每一字符对应的频次,通过频次与预设的频次阈值之间的关系,获取候选字符。具体来说,云侧可以获取全量字典中各字符分别对应的在不同哈希函数下的二进制字符串。之后,可以利用各字符分别对应的在不同哈希函数下的二进制字符串乘以频次,使其结果等于上报数据中前串在不同哈希函数下的期望结果,求得频次,若频次大于或等于预设的频次阈值,则认为该频次对应的全量字典中的字符在上报数据中出现的次数较多,可以将其列为候选字符,并可以将该候选字符存储至候选字符数据库。
(2)结合上述介绍的原理,对于前串字符数量为1时,在对全量字典中所有字进行处理后,可以得到所有通过阈值筛选的候选字。之后,可以继续对这些候选字进行线性回归,通过线性回归进一步筛选出概率较高的候选字。
(3)将通过上述(1)和(2)中的两轮筛选后得到的候选字进行整词拼接,拼接方法包括:将每个候选字与全量字典中的所有字进行拼接,拼接为2字词。之后,对这些2字词重复进行以上(1)、(2)中的操作,其中,不同的是(2)中使用的不是前串长度为1的聚合报告,而是整词聚合报告,目的就是还原出报告中所有2字词语。之后,可以将筛选出的2字词放入后候选词库中。
(4)重复以上(1)至(3)中的操作,分别还原出2字前串、3字整词、3字前串、4字整词、…、9字前串、10字整词,并将所有的筛选结果放入到候选词库中。
通过上述过程,最终得到的候选词库就是通过该方法还原出的用户样本,这些回归结果中仅保留了被大量上报的内容,无法恢复少量上报的内容,从而保护了用户的隐私信息。
以下结合一个更为具体的示例,对云侧设备通过线性回归拟合获取原始字符串的过程进行介绍。
在一种可能的情形下,假设经过聚合之后获取的聚合报告中,第一比特上出现1的概率为87%,出现0的概率为23%。那么可以将全量字典中的每一个字均利用所有的哈希函数进行计算,并且针对计算获取的多个哈希结果,分析这些哈希结果中第一比特上的1和0的比例,如果该比例与聚合报告中的比例相似度高于预设阈值,那么可以将该字作为候选字。
示例性的,本申请实施例中通过线性回归对全量字典中的汉字与原始字符串中的字符进行拟合时,所涉及的公式可以参见以下公式(1-2):
其中,上文提到的计数矩阵可以记为输出向量B;参数矩阵A是各个候选字使用不同hash算法下的比特结果。在一些实施例中,可以通过线性回归方法求解多元一次方组A*X=B,得到的向量X就是待求的各个候选字符串的出现频率。
在一些实施例中,可以通过Java common math的commons.math3.linear库,完成线性回归操作。通过线性回归操作得到了候选字符串的出现频率,出现频率高于阈值的则认为是有可能的候选项目。
根据本申请实施例提供的数据上报的方法,通过在端侧对样本加噪声,在云侧通过带有不同噪声的相同样本来抵消噪声影响,以恢复原始数据,在保证隐私数据安全的基础上,提高了云侧获取数据的准确性。此外,本申请实施例提供的数据上报的方法中所涉及的算法的时间开销和哈希值函数的输出位数基本无关,能够带来数据获取精度与效率之间的平衡。并且,由于本申请实施例提供的数据上报的方法中采用了上报数据的整串信息,因而通过算法筛选出的字符串的估计频率更加准确,假阳性的概率更低。
示例性的,如图9所示,为本申请实施例提供的又一种数据上报的方法的示意性流程图。该流程可以包括以下步骤:
S901,获取上报数据对应的整串数据。
在一些实施例中,终端设备可以根据预设步长对所述整串数据进行等长划分。示例性的,该所述预设步长例如可以为1。
S902,根据预设步长参数对上述上报数据进行划分,获取前串数据,该步长参数用于指示针对整串数据进行截断获取前串数据时的截断位置。
其中,这里的预设步长参数可以对应于上文中的StepIndex。前串数据例如可以对应于“并刀”,其中,当StepIndex为2时,其截断位置可以对应于整串数据的前两个字符。
S903,随机选取哈希函数,并利用哈希函数对前串数据进行哈希计算,获取第一哈希结果,以及利用哈希函数对整串数据进行哈希计算,获取第二哈希结果。
在一些实施例中,可以预设有多个不同的哈希函数,例如可以预设有哈希函数数据库,该哈希函数数据库可以包括多个不同的哈希函数(如Q个,Q例如可以为100)。
在一些实施例中,随机选取的哈希函数可以用索引随机数来表示,该索引随机数例如可以对应于上文中的kRandom。
S904,根据预设的加扰算法,对第一哈希结果和第二哈希结果进行加扰,分别获取对应的第一加扰结果和第二加扰结果。
其中,关于加扰的具体介绍可以参见上文中的相关内容,此处不再赘述。
S905,向云侧设备发送用户报告,该用户报告包括第一加扰结果、第二加扰结果、步长参数以及哈希函数对应的索引随机数。
在一些实施例中,终端设备在发送用户报告之前,还可以对所述第一加扰结果和/或所述第二加扰结果进行十六进制编码,之后可以在用户报告中携带第一加扰结果和/或第二加扰结果对应的十六进制编码后的信息。
在一些实施例中,上报数据对应的数据类型为汉字字符。
根据本申请实施例提供的数据上报的方法,通过在端侧对样本加噪声,在云侧通过带有不同噪声的相同样本来抵消噪声影响,以恢复原始数据,在保证隐私数据安全的基础上,提高了云侧获取数据的准确性。
示例性的,如图10所示,为本申请实施例提供的又一种数据上报的方法的示意性流程图。该流程可以包括以下步骤:
S1001,获取多个用户报告,该用户报告包括第一加扰结果、第二加扰结果、步长参数以及哈希函数对应的索引随机数,该步长参数用于指示对整串数据进行截断获取前串数据时的截断位置,索引随机数用于随机选择哈希函数,哈希函数用于对整串数据和前串数据进行哈希计算。
S1002,根据随机索引数和步长参数,对多个用户报告中的第一加扰结果进行分类。
应理解,由于步长参数为随机设置的小于整串数据长度的值,因而,在上报数据较多时,会存在每一步长参数对应的前串数据,也即会存在步长参数为1(前串只有一个字符)的前串数据、步长参数为2(前串有两个字符)的前串数据、步长参数为3(前串有三个字符)的前串数据在……步长为M(前串有M个字符)的前串数据。其中,M可以为整串数据对应的字符数量减1。
也就是说,经过分类后可以获得每一步长参数对应的前串数据的第一哈希结果。
S1003,对同一类中的多个第一加扰结果中对应比特上的值进行求和,获取聚合结果。
S1004,根据预设的加扰概率对聚合结果进行解扰,获取每一长度的前串对应的解扰期望结果。
S1005,通过线性回归算法将预设单元候选集中的字符逐一与解扰结果进行拟合,获取终端设备上报的原始数据。
在一些实施例中,所述通过线性回归算法将预设单元候选集中的字符逐一与所述解扰结果进行拟合,具体包括:采用预设的多个哈希函数分别对所述单元候选集中的每一个字符进行哈希计算,并且获取每一字符对应的多个哈希结果;将所述每一字符对应的多个哈希结果分别与步长参数(也即截断位置)为1时对应的聚合结果进行比对;将相似度大于预设阈值的字符作为第一候选字符。
在一些实施例中,所述方法还包括:将所述第一候选字符逐一与所述单元候选集中的每一字符进行组词;采用预设的多个哈希函数分别对组词进行哈希计算,并且获取每一组词对应的多个哈希结果;将所述每一组词对应的多个哈希结果分别与步长参数(也即截断位置)为2时对应的聚合结果进行比对;将相似度大于预设阈值的字符作为第二候选字符。
在一些实施例中,所述方法还包括:将所述第二候选字符逐一与所述单元候选集中的每一字符进行组词,获取三字词;采用预设的多个哈希函数分别对组词进行哈希计算,并且获取每一所述三字词对应的多个哈希结果;将所述每一所述三字词对应的多个哈希结果分别与步长参数(也即截断位置)为3时对应的聚合结果进行比对;将相似度大于预设阈值的字符作为第三候选字符;重复上述过程,直至将M字词对应的哈希结果与步长参数(也即截断位置)为M时对应的聚合结果进行比对,并将相似度大于预设阈值的字符作为期望候选字符,其中,M为整串数据对应的字符数量减1。
在一些实施例中,所述方法还包括:将所述期望候选字符逐一与所述单元候选集中的每一字符进行组词,获取整词;采用预设的多个哈希函数分别对所述整词进行哈希计算,并且获取每一所述整词对应的多个哈希结果;将所述每一所述整词对应的多个哈希结果分别与步长参数(也即截断位置)为M+1时对应的聚合结果进行比对;将相似度大于预设阈值的字符作为期望原始字符。
在一些实施例中,所述方法还包括:对所述第一加扰结果和/或所述第二加扰结果进行十六进制解码。
在一些实施例中,所述上报数据对应的数据类型为汉字字符。
根据本申请实施例提供的数据上报的方法,通过在端侧对样本加噪声,在云侧通过带有不同噪声的相同样本来抵消噪声影响,以恢复原始数据,在保证隐私数据安全的基础上,提高了云侧获取数据的准确性。此外,本申请实施例提供的数据上报的方法中所涉及的算法的时间开销和哈希值函数的输出位数基本无关,能够带来数据获取精度与效率之间的平衡。并且,由于本申请实施例提供的数据上报的方法中采用了上报数据的整串信息,因而通过算法筛选出的字符串的估计频率更加准确,假阳性的概率更低。
基于同样的技术构思,本申请实施例还提供了一种终端设备,包括一个或多个处理器;一个或多个存储器;所述一个或多个存储器存储有一个或多个计算机程序,所述一个或多个计算机程序包括指令,当所述指令被所述一个或多个处理器执行时,使得计算机或处理器执行上述任一个方法中的一个或多个步骤。
基于同样的技术构思,本申请实施例还提供了一种云侧端设备,包括一个或多个处理器;一个或多个存储器;所述一个或多个存储器存储有一个或多个计算机程序,所述一个或多个计算机程序包括指令,当所述指令被所述一个或多个处理器执行时,使得计算机或处理器执行上述任一个方法中的一个或多个步骤。
基于同样的技术构思,本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有计算机可执行程序指令,所述计算机可执行程序指令在被计算机上运行时,使得计算机或处理器执行上述任一个方法中的一个或多个步骤。
基于同样的技术构思,本申请实施例还提供了一种包含指令的计算机程序产品,所述计算机程序产品包括计算机程序代码,当所述计算机程序代码在计算机上运行时,使得计算机或处理器执行上述任一个方法中的一个或多个步骤。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其它可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者通过所述计算机可读存储介质进行传输。所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如,固态硬盘(solid state disk,SSD))等。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,该流程可以由计算机程序来指令相关的硬件完成,该程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法实施例的流程。而前述的存储介质包括:ROM或随机存储记忆体RAM、磁碟或者光盘等各种可存储程序代码的介质。
以上所述,仅为本申请实施例的具体实施方式,但本申请实施例的保护范围并不局限于此,任何在本申请实施例揭露的技术范围内的变化或替换,都应涵盖在本申请实施例的保护范围之内。因此,本申请实施例的保护范围应以所述权利要求的保护范围为准。
Claims (15)
1.一种数据上报的方法,其特征在于,应用于终端设备,所述方法包括:
获取上报数据对应的整串数据;
根据预设步长参数对所述上报数据进行划分,获取前串数据,所述步长参数用于指示针对所述整串数据进行截断获取前串数据时的截断位置;
随机选取哈希函数,并利用所述哈希函数对所述前串数据进行哈希计算,获取第一哈希结果,以及利用所述哈希函数对所述整串数据进行哈希计算,获取第二哈希结果;
根据预设的加扰算法,对所述第一哈希结果和所述第二哈希结果进行加扰,分别获取对应的第一加扰结果和第二加扰结果;
向云侧设备发送用户报告,所述用户报告包括所述第一加扰结果、所述第二加扰结果、所述步长参数以及所述哈希函数对应的索引随机数。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
根据预设步长对所述整串数据进行等长划分。
3.根据权利要求2所述的方法,其特征在于,所述预设步长为1。
4.根据权利要求1-3中任一项所述的方法,其特征在于,所述方法还包括:
对所述第一加扰结果和/或所述第二加扰结果进行十六进制编码。
5.根据权利要求1-4中任一项所述的方法,其特征在于,所述上报数据对应的数据类型为汉字字符。
6.一种数据上报的方法,其特征在于,应用于云侧设备,所述方法包括:
获取多个用户报告,所述用户报告包括第一加扰结果、第二加扰结果、步长参数以及哈希函数对应的索引随机数,所述步长参数用于指示对整串数据进行截断获取前串数据时的截断位置,所述索引随机数用于随机选择哈希函数,所述哈希函数用于对所述整串数据和所述前串数据进行哈希计算;
根据随机索引数和所述步长参数,对所述多个用户报告中的所述第一加扰结果进行分类;
对同一类中的多个所述第一加扰结果中对应比特上的值进行求和,获取聚合结果;
根据预设的加扰概率对所述聚合结果进行解扰,获取每一长度的前串对应的解扰期望结果;
通过线性回归算法将预设单元候选集中的字符逐一与所述解扰结果进行拟合,获取终端设备上报的原始数据。
7.根据权利要求6所述的方法,其特征在于,所述通过线性回归算法将预设单元候选集中的字符逐一与所述解扰结果进行拟合,具体包括:
采用预设的多个哈希函数分别对所述单元候选集中的每一个字符进行哈希计算,并且获取每一字符对应的多个哈希结果;
将所述每一字符对应的多个哈希结果分别与所述截断位置为1时对应的聚合结果进行比对;
将相似度大于预设阈值的字符作为第一候选字符。
8.根据权利要求7所述的方法,其特征在于,所述方法还包括:
将所述第一候选字符逐一与所述单元候选集中的每一字符进行组词;
采用预设的多个哈希函数分别对组词进行哈希计算,并且获取每一组词对应的多个哈希结果;
将所述每一组词对应的多个哈希结果分别与所述截断位置为2时对应的聚合结果进行比对;
将相似度大于预设阈值的字符作为第二候选字符。
9.根据权利要求8所述的方法,其特征在于,所述方法还包括:
将所述第二候选字符逐一与所述单元候选集中的每一字符进行组词,获取三字词;
采用预设的多个哈希函数分别对组词进行哈希计算,并且获取每一所述三字词对应的多个哈希结果;
将所述每一所述三字词对应的多个哈希结果分别与所述截断位置为3时对应的聚合结果进行比对;
将相似度大于预设阈值的字符作为第三候选字符;
重复上述过程,直至将M字词对应的哈希结果与所述截断位置为M时对应的聚合结果进行比对,并将相似度大于预设阈值的字符作为期望候选字符,其中,M为整串数据对应的字符数量减1。
10.根据权利要求9所述的方法,其特征在于,所述方法还包括:
将所述期望候选字符逐一与所述单元候选集中的每一字符进行组词,获取整词;
采用预设的多个哈希函数分别对所述整词进行哈希计算,并且获取每一所述整词对应的多个哈希结果;
将所述每一所述整词对应的多个哈希结果分别与所述截断位置为M+1时对应的聚合结果进行比对;
将相似度大于预设阈值的字符作为期望原始字符。
11.根据权利要求6-10中任一项所述的方法,其特征在于,所述方法还包括:
对所述第一加扰结果和/或所述第二加扰结果进行十六进制解码。
12.根据权利要求6-11中任一项所述的方法,其特征在于,所述上报数据对应的数据类型为汉字字符。
13.一种终端设备,其特征在于,包括:
一个或多个处理器;
一个或多个存储器;
所述一个或多个存储器存储有一个或多个计算机程序,所述一个或多个计算机程序包括指令,当所述指令被所述一个或多个处理器执行时,使得所述终端设备执行如权利要求1至5中任一项所述的方法。
14.一种云侧设备,其特征在于,包括:
一个或多个处理器;
一个或多个存储器;
所述一个或多个存储器存储有一个或多个计算机程序,所述一个或多个计算机程序包括指令,当所述指令被所述一个或多个处理器执行时,使得所述云侧设备执行如权利要求6至12中任一项所述的方法。
15.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机可执行程序指令,所述计算机可执行程序指令在被计算机上运行时,使所述计算机执行如权利要求1至12中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211457859.6A CN116707851B (zh) | 2022-11-21 | 2022-11-21 | 数据上报的方法及终端设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211457859.6A CN116707851B (zh) | 2022-11-21 | 2022-11-21 | 数据上报的方法及终端设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116707851A true CN116707851A (zh) | 2023-09-05 |
CN116707851B CN116707851B (zh) | 2024-04-23 |
Family
ID=87822739
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211457859.6A Active CN116707851B (zh) | 2022-11-21 | 2022-11-21 | 数据上报的方法及终端设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116707851B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110768936A (zh) * | 2018-07-27 | 2020-02-07 | 华为技术有限公司 | 隐私数据的上报方法、装置与存储介质 |
CN112711648A (zh) * | 2020-12-23 | 2021-04-27 | 航天信息股份有限公司 | 一种数据库字符串密文存储方法、电子设备和介质 |
WO2022052776A1 (zh) * | 2020-09-10 | 2022-03-17 | 华为技术有限公司 | 一种人机交互的方法、电子设备及系统 |
WO2022083536A1 (zh) * | 2020-10-21 | 2022-04-28 | 华为技术有限公司 | 一种神经网络构建方法以及装置 |
-
2022
- 2022-11-21 CN CN202211457859.6A patent/CN116707851B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110768936A (zh) * | 2018-07-27 | 2020-02-07 | 华为技术有限公司 | 隐私数据的上报方法、装置与存储介质 |
WO2022052776A1 (zh) * | 2020-09-10 | 2022-03-17 | 华为技术有限公司 | 一种人机交互的方法、电子设备及系统 |
WO2022083536A1 (zh) * | 2020-10-21 | 2022-04-28 | 华为技术有限公司 | 一种神经网络构建方法以及装置 |
CN112711648A (zh) * | 2020-12-23 | 2021-04-27 | 航天信息股份有限公司 | 一种数据库字符串密文存储方法、电子设备和介质 |
Also Published As
Publication number | Publication date |
---|---|
CN116707851B (zh) | 2024-04-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113163470B (zh) | 对特定路线上的特定位置进行识别的方法及电子设备 | |
CN111178546B (zh) | 机器学习模型的搜索方法及相关装置、设备 | |
CN108605205A (zh) | 用于确定电子装置的位置的设备和方法 | |
CN112287234B (zh) | 信息检索方法、装置及存储介质 | |
CN114881711B (zh) | 基于请求行为进行异常分析的方法及电子设备 | |
CN113312543A (zh) | 基于联合学习的个性化模型训练方法、电子设备和介质 | |
CN117592021A (zh) | 账号登录的方法及电子设备 | |
CN114500241A (zh) | 一种异常复位处理的方法及终端设备 | |
US20220292122A1 (en) | Data Processing Method and Apparatus | |
CN116707851B (zh) | 数据上报的方法及终端设备 | |
CN114173286B (zh) | 确定测试路径的方法、装置、电子设备及可读存储介质 | |
Klus et al. | Crowdsourcing solutions for data gathering from wearables | |
CN116861066A (zh) | 应用推荐方法和电子设备 | |
CN111339513B (zh) | 数据分享的方法和装置 | |
CN116561085A (zh) | 图片分享方法和电子设备 | |
CN116033344B (zh) | 地理围栏的确定方法、设备及存储介质 | |
CN116437293B (zh) | 地理围栏的建立方法、服务器及通信系统 | |
CN116049478B (zh) | 一种应用程序推荐方法、装置及用户设备 | |
CN115712745B (zh) | 一种用户标注数据的获取方法、系统及电子设备 | |
CN116027941B (zh) | 业务推荐方法和电子设备 | |
CN116095223B (zh) | 通知显示方法和终端设备 | |
CN116738073B (zh) | 常驻地的识别方法、设备及存储介质 | |
WO2023061357A1 (zh) | 数据处理方法、相关装置及通信系统 | |
CN116311311B (zh) | 电子表格生成方法、装置、电子设备及可读存储介质 | |
CN117128985A (zh) | 点云地图更新的方法及设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |