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

人员流动性的安全预测方法、系统、客户端设备及服务器

2022-06-30 01:26:06 来源:中国专利 TAG:


1.本发明属于计算机技术领域,具体涉及到一种人员流动性的安全预测方法、系统、客户端设备及服务器。


背景技术:

2.随着智能移动设备(如智能手机、手表等)的广泛应用,以及其日益增强的数据收集能力,人们的移动数据被大量收集。对收集到的数据进行分析和利用,比如人员流动性预测,可以更好地提升人们的生活质量,已经引起了学术界和工业界的特别关注。人员流动性预测是指预测人们在他们不断移动的区域中的下一个位置。其预测结果在智能交通、城市规划的社会经济模型、移动通信中的资源管理、个性化推荐系统、移动医疗服务等方面具有重要意义。例如,通过预测人们倾向于去的下一个地点,政府可以设计更好的交通规划和调度策略来缓解交通拥堵;出租车平台可以更好地预测用户出行并提供更好的服务;甚至可以预测罪犯的下一个公共安全地点,提前做好准备等等。
3.随着计算机技术的飞速发展和神经网络研究的逐渐深入,许多企业为用户提供应用广泛的神经网络预测服务。然而,目前的神经网络预测服务存在隐私泄露的风险。现有的神经网络预测服务需要用户提供自己的敏感信息给服务提供方,或者服务提供方将其独有的神经网络存储在用户的设备上。一旦信息泄露,则会给用户或服务提供方的财产和隐私造成不可估量的损失。为了解决上述的隐私保护问题,同态加密、安全多方计算和差分隐私都是常用技术。同态加密使得神经网络中的线性运算可以直接在加密数据上执行,但是同态加密的计算和存储开销都比较大,因此效率较低。差分隐私通过在数据中加入扰动来隐藏样本的特征,但导致的问题是对神经网络的准确率会产生影响。安全多方计算(secure multipartycomputation,smc)允许多个参与方在不实际共享输入的同时对数据进行运算。smc的基础密码协议包括不经意传输(oblivious transfer protocol,ot)、乱码电路(garbled circuits,gc)、秘密共享(secret sharing,ss)等。神经网络中的运算主要包括线性运算和非线性的激活函数计算。非线性的运算往往是通过近似转换成线性运算,或者用gc实现。因此许多机器学习隐私保护的方案都是混合多个smc的基础密码协议构建的。而在基于秘密共享的安全多方计算方案中,每个额外的参与方都会增加通信开销和被攻击的风险。
4.目前还没有人将人员流动性预测和隐私保护结合起来,而已有的方案对激活函数的计算方法要么是通过乱码电路(garbled circuits,gc)实现,要么是用近似的方式将非线性函数转换成线性的来计算;前者的效率和可重用性低,后者对神经网络的准确率有一定影响。


技术实现要素:

5.本发明提供一种人员流动性的安全预测方法、系统、客户端设备及服务器,以解决现有人员流动性预测不够安全有效且通信开销较大的问题。
6.基于上述目的,本发明实施例提供了一种人员流动性的安全预测方法,包括:获取客户端所属用户的轨迹数据,并根据所述轨迹数据随机分成第一秘密共享数据;根据所述轨迹数据、服务器端传输的第二秘密共享数据以及可信第三方产生的第一随机数集合应用安全交互协议与所述服务器端交互进行预训练的人员流动性预测模型的推理,获取第一推理结果,其中所述第二秘密共享数据是所述服务器端对所述人员流动性预测模型的模型参数随机分成得到的;接收所述服务器端根据所述第一秘密共享数据、所述模型参数以及可信第三方产生的第二随机数集合对所述人员流动性预测模型进行交互推理获取的第二推理结果,并结合所述第一推理结果和所述第二推理结果获取预测结果。
7.可选的,所述安全交互协议包括:乘法至加法转换协议、安全sigmoid协议、安全tanh 协议、安全softmax协议以及安全重加协议的至少其中之一。
8.可选的,所述轨迹数据包括当前轨迹数据和历史轨迹数据,所述根据所述轨迹数据、服务器端传输的第二秘密共享数据以及所述第一随机数集合应用安全交互协议与所述服务器端交互进行预训练的人员流动性预测模型的推理,获取第一推理结果,包括:根据所述当前轨迹数据、所述第二秘密共享数据以及所述第一随机数集合应用安全交互协议与所述服务器端交互进行门控循环单元的推理,得到第一门控输出,同时在所述服务器端获得第二门控输出;根据所述历史轨迹数据、所述第一门控输出、所述服务器端秘密共享的所述第二门控输出、所述第二秘密共享数据以及所述第一随机数集合应用安全交互协议与所述服务器端交互进行历史注意模块的推理,得到第一归一化输出,同时在所述服务器端获得第二归一化输出;根据所述第一门控输出、所述第一归一化输出、所述服务器端秘密共享的所述第二门控输出和所述第二归一化输出、所述第二秘密共享数据以及所述第一随机数集合应用安全交互协议与所述服务器端交互进行全连接层的处理,得到所述第一推理结果。
9.可选的,所述门控循环单元包括:重置门、更新门、候选状态输出以及更新方式,分别满足以下关系式:
10.r
t
=σ(w
ir
*x
t
b
ir
w
hr
*h
t-1
b
hr
),
11.z
t
=σ(w
iz
*x
t
b
iz
w
hz
*h
t-1
b
hz
),
[0012][0013][0014]
其中,w
ir
,b
ir
,w
hr
,b
hr
,w
iz
,b
iz
,w
hz
,b
hz
,w
in
,b
in
,w
hn
,b
hn
为模型参数,x
t
为第 t个时间步的输入向量,h
t-1
为前一个时间步t-1保存的信息,r
t
为重置门的第t个时间步的输出,z
t
为更新门的第t个时间步的输出,n
t
表示第t个时间步的新的记忆内容,h
t
为第t个时间步保存的信息。
[0015]
基于同一发明构思,本发明实施例还提出了一种人员流动性的安全预测方法,包括:获取预训练的人员流动性预测模型的模型参数,并根据所述模型参数随机分成第二秘密共享数据;根据所述模型参数、客户端传输的第一秘密共享数据以及可信第三方产生的第二随机数集合应用安全交互协议与所述客户端交互进行预训练的人员流动性预测模型的推理,获取第二推理结果,其中所述第一秘密共享数据是所述客户端对客户端所属用户的轨迹数据随机分成得到的;将所述第二推理结果传输至所述客户端,以便所述客户端结合交互推理过程中获取的第一推理结果与所述第二推理结果获取预测结果。
[0016]
可选的,所述第一秘密共享数据包括当前轨迹共享数据和历史轨迹共享数据,所
述根据所述模型参数、客户端传输的第一秘密共享数据以及可信第三方产生的第二随机数集合应用安全交互协议与所述客户端交互进行预训练的人员流动性预测模型的推理,获取第二推理结果,包括:根据所述当前轨迹共享数据、所述模型参数以及所述第二随机数集合应用安全交互协议与客户端交互进行门控循环单元的推理,得到第二门控输出,同时在所述客户端获得第一门控输出;根据所述历史轨迹共享数据、所述第二门控输出、所述客户端秘密共享的所述第一门控输出、所述模型参数以及所述第二随机数集合应用安全交互协议与所述客户端交互进行历史注意模块的推理,得到第二归一化输出,同时在所述客户端获得第一归一化输出;根据所述第二门控输出、所述第二归一化输出、所述客户端秘密共享的所述第一门控输出和所述第一归一化输出、所述模型参数以及所述第二随机数集合应用安全交互协议与所述客户端交互进行全连接层的处理,得到所述第二推理结果。
[0017]
基于同一发明构思,本发明实施例还提出了一种客户端设备,包括:第一数据获取单元,用于获取客户端所属用户的轨迹数据,并根据所述轨迹数据随机分成第一秘密共享数据;第一预测单元,用于根据所述轨迹数据、服务器端传输的第二秘密共享数据以及可信第三方产生的第一随机数集合应用安全交互协议与所述服务器端交互进行预训练的人员流动性预测模型的推理,获取第一推理结果,其中所述第二秘密共享数据是所述服务器端对所述人员流动性预测模型的模型参数随机分成得到的;结果获取单元,用于接收所述服务器端根据所述第一秘密共享数据、所述模型参数以及可信第三方产生的第二随机数集合对所述人员流动性预测模型进行交互推理获取的第二推理结果,并结合所述第一推理结果和所述第二推理结果获取预测结果。
[0018]
基于同一发明构思,本发明实施例还提出了一种服务器,包括:第二数据获取单元,用于获取预训练的人员流动性预测模型的模型参数,并根据所述模型参数随机分成第二秘密共享数据;第二预测单元,用于根据所述模型参数、客户端传输的第一秘密共享数据以及可信第三方产生的第二随机数集合应用安全交互协议与所述客户端交互进行预训练的人员流动性预测模型的推理,获取第二推理结果,其中所述第一秘密共享数据是所述客户端对客户端所属用户的轨迹数据随机分成得到的;数据发送单元,用于将所述第二推理结果传输至所述客户端,以便所述客户端结合交互推理过程中获取的第一推理结果与所述第二推理结果获取预测结果
[0019]
基于同一发明构思,本发明实施例还提出了一种人员流动性的安全预测系统,包括:可信第三方、前述的客户端设备和前述的服务器。
[0020]
基于同一发明构思,本发明实施例还提出了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上任意一项中所述的方法。
[0021]
本发明的技术效果为,从上面所述可以看出,本发明实施例提供的一种人员流动性的安全预测方法、系统、客户端设备及服务器,通过获取客户端所属用户的轨迹数据,并根据所述轨迹数据随机分成第一秘密共享数据;根据所述轨迹数据、服务器端传输的第二秘密共享数据以及可信第三方产生的第一随机数集合应用安全交互协议与所述服务器端交互进行预训练的人员流动性预测模型的推理,获取第一推理结果,其中所述第二秘密共享数据是所述服务器端对所述人员流动性预测模型的模型参数随机分成得到的;接收所述服务器端根据所述第一秘密共享数据、所述模型参数以及可信第三方产生的第二随机数集
合对所述人员流动性预测模型进行交互推理获取的第二推理结果,并结合所述第一推理结果和所述第二推理结果获取预测结果,能够实现安全有效的预测,在保证准确率的同时,减小通信开销。
附图说明
[0022]
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0023]
图1为本发明实施例中的人员流动性的安全预测方法的流程示意图;
[0024]
图2为本发明实施例中的人员流动性预测模型的结构示意图;
[0025]
图3为图1中的步骤s12的方法示意图;
[0026]
图4为本发明实施例中的多个不同方案下top1和top5的准确率示意图;
[0027]
图5为本发明实施例中的客户端和服务器端运行不同方案的总运行时间示意图;
[0028]
图6为本发明实施例中的客户端的各子过程的时间消耗示意图;
[0029]
图7为本发明实施例中的服务器端的各子过程的时间消耗示意图;
[0030]
图8为本发明实施例中的不同方案的整体运行时间示意图;
[0031]
图9为本发明实施例中的客户端设备的结构示意图;
[0032]
图10为本发明实施例中的另一人员流动性的安全预测方法的流程示意图;
[0033]
图11为本发明实施例中的服务器的结构示意图;
[0034]
图12为本发明实施例中电子设备示意图。
具体实施方式
[0035]
为使本公开的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本公开进一步详细说明。
[0036]
需要说明的是,除非另外定义,本发明实施例使用的技术术语或者科学术语应当为本公开所属领域内具有一般技能的人士所理解的通常意义。本发明实施例中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变后,则该相对位置关系也可能相应地改变。
[0037]
本发明实施例还提供了一种人员流动性的安全预测方法。本发明实施例的安全预测方法应用于客户端设备。客户端设备可以是智能手机、手表、移动终端等智能移动设备。如附图1所示,人员流动性的安全预测方法包括:
[0038]
步骤s11:获取客户端所属用户的轨迹数据,并根据所述轨迹数据随机分成第一秘密共享数据。
[0039]
在本发明实施例中,客户端所属用户的轨迹数据包括当前轨迹数据和历史轨迹数
据。每一个轨迹数据包括位置、时间以及用户id。在客户端对需要与服务器端秘密共享的轨迹数据随机分成第一秘密共享数据。因此第一秘密共享数据包括当前轨迹共享数据和历史轨迹共享数据。在步骤s11中,还需要对轨迹数据进行归一化的预处理,具体的预处理方法与现有的神经网络模型的数据预处理的方法相同,在此不再赘述。
[0040]
步骤s12:根据所述轨迹数据、服务器端传输的第二秘密共享数据以及可信第三方产生的第一随机数集合应用安全交互协议与所述服务器端交互进行预训练的人员流动性预测模型的推理,获取第一推理结果,其中所述第二秘密共享数据是所述服务器端对所述人员流动性预测模型的模型参数随机分成得到的。
[0041]
在本发明实施例中,在步骤s12之前,人员流动性预测模型已经在服务器端完成预训练。第一随机数集合由可信第三方随机产生并传输至客户端,而可信第三方可以是应用标准正态分布或均匀分布来随机产生随机数。
[0042]
本发明实施例的人员流动性预测模型应用注意递归模型deepmove,其框架如图2所示,人员流动性预测模型分为特征提取和嵌入、递归和历史注意、预测三个阶段。默认第一阶段由客户端自行完成。所有的轨迹数据都先由多模态嵌入层嵌入,将时空特征和个人特征联合嵌入到密集表示中,以帮助建模复杂的过渡。密集表示能更好地捕捉精确的语义时空关系,另一个优点是这种密集表示总是低维的,有利于后续的计算。
[0043]
递归和历史注意阶段包括递归模块和历史注意模块两部分。当前轨迹数据由递归模块处理,对复杂的序列信息进行建模;历史注意模块对历史轨迹进行处理,提取运动的规律性。递归模块以门控循环单元(gated recurrent unit,gru)为基本循环单元,输入包含时空信息的当前轨迹数据,来捕获当前轨迹中包含的复杂序列信息或长期依赖关系。历史注意力模块跟循环模块并行,来捕捉人类移动的多层次周期性。历史注意模块首先根据包含时空信息的历史轨迹数据,用注意候选生成器来生成用户移动性的规律;然后用注意力选择器对循环层的隐藏结果和用户移动规律进行移动性状态的匹配。然后将递归模块和历史注意模块两部分结果拼接,作为预测阶段的输入。预测阶段则由几个完全连接层和一个输出层组成,即可得出最终的预测结果。在本发明实施例中,注意候选生成器是以gru为基本单元;注意力选择器采用注意力机制的点积模型。
[0044]
在本发明实施例中,所述门控循环单元包括:重置门、更新门、候选状态输出以及更新方式,分别满足以下关系式:
[0045]
重置门(reset gate):r
t
=σ(w
ir
*x
t
b
ir
w
hr
*h
t-1
b
hr
),
[0046]
更新门(up-date gate):z
t
=σ(w
iz
*x
t
b
iz
w
hz
*h
t-1
b
hz
),
[0047]
候选状态:
[0048]
更新方式:
[0049]
其中,w
ir
,b
ir
,w
hr
,b
hr
,w
iz
,b
iz
,w
hz
,b
hz
,w
in
,b
in
,w
hn
,b
hn
为模型参数,x
t
为第t个时间步的输入向量,h
t-1
为前一个时间步t-1保存的信息,r
t
为重置门的第t个时间步的输出,z
t
为更新门的第t个时间步的输出,n
t
表示第t个时间步的新的记忆内容,h
t
为第t个时间步保存的信息,表示矩阵点乘。
[0050]
注意力机制的计算主要分为两步,一是在所有输入信息上计算注意力分布,二是根据注意力分布来计算输入信息的加权平均,满足以下关系式:
[0051][0052][0053]
其中,att(x,q))为计算的加权平均结果,αn为注意力分布,s(xn,q)为注意力打分函数,一般有加性模型、点积模型、缩放点积模型和双线性模型,本发明实施例应用点积模型进行计算,即5(xn,q)=x
nt
q。
[0054]
本发明实施例的安全交互协议包括:乘法至加法转换协议、安全sigmoid协议、安全tanh 协议、安全softmax协议以及安全重加协议的至少其中之一。安全交互协议均是在两方间执行,每方的输入都是各自的私有数据或者计算产生的秘密共享值,经过协议之后,产生新的秘密共享值。协议过程中涉及的随机值都是在由第三方事先生成,即在初始化阶段离线执行。其中,<>表示加性秘密共享,[]表示乘性秘密共享,下标1表示为客户端的共享数据,下标2 表示为服务器端的共享数据。
[0055]
乘法至加法转换协议(mul_to_add)的主要思想是两个参与方在不知道彼此数据的前提下,计算出两方数据的乘积。具体来说,参与方a拥有x,参与方b拥有y,进行协议之后,双方分别获得<xy>1,<xy>2。运行协议之前,参与方a拥有随机数a、c1,参与方b拥有随机数b、c2;参与方a在本地计算p1=x-a,参与方b在本地计算p2=y-b,然后双方交换数据p1和p2;参与方a在本地计算<xy>1=c1 a*p2,参与方b在本地计算<xy>2=c2 b*p1 p1*p2。具体表示如下:
[0056]
mul_to_add
[0057]
a:x1、a、c1,b:x2、b、c2;
[0058]
p1=x1-a,p2=x2-b;
[0059]
双方交换p1和p2,然后分别计算:
[0060]
ans1=c1 a*p2,ans2=c2 b*p1 p1*p2
[0061]
则ans1 ans2=x1*x2。
[0062]
验证正确性:
[0063]
ans1 ans2=c1 a*p2 c2 b*p1 p1*p2
[0064]
=c1 c2 a*(x2-b) b*(x1-a) (x2-b)*(x1-a)
[0065]
=c1 c2 a*x2-a*b b*x1-a*b x1*x2 a*b-a*x2-b*x1
[0066]
=x1*x2。
[0067]
本发明实施例的sigmoid的计算公式为:其中的x值被客户端和服务器端加性秘密共享,即x=<x>1 <x>2。则公式可以变形为:
[0068][0069]
如此对于本发明实施例的安全sigmoid协议,输入:客户端有<x>1、a、c1,服务器
端有<x>2、b、c2;输出:客户端和服务器端分别获得[σ(x)]1和[σ(x)]2,其中σ(x)=[σ(x)]1·
[σ(x)]2。安全sigmoid协议过程描述如下:
[0070]
首先服务器端计算λ2并发送给客户端,
[0071]
然后客户端计算λ1并发送给服务器端,
[0072]
之后服务器端执行计算:客户端执行计算:
[0073]
验证正确性:
[0074][0075]
其中,a、b、c1、c2是由可信第三方离线生成并发送给客户端和服务器端的,满足: a
·
b=c1 c2。双方均有x的秘密共享值。
[0076]
本发明实施例的安全tanh协议的实现主要基于安全sigmoid。本发明实施例的tanh的计算公式为:
[0077][0078]
如此本发明实施例的安全tanh协议,输入:客户端有<x>1、a、c1,服务器端有<x>2、 b、c2;输出:客户端和服务器端分别获得<tanh(x)>1和<tanh(x)>2,其中 tanh(x)=<tanh(x)>1 <tanh(x)>2。安全tanh协议过程描述如下:
[0079]
首先双方分别调用安全sigmoid函数,分别输入2*<x>1,2*<x>2,分别得到输出记为[y]1,[y]2;
[0080]
然后双方调用mul_to_add函数,分别输入[y]1,[y]2,分别得到输出<z>1,<z>2;
[0081]
之后客户端执行计算<tanh(x)>1=2*<z>1,服务器端执行计算<tanh(x)>2=2*<z>
2-1。
[0082]
验证正确性:
[0083]
<tanh(x)>1 <tanh(x)>2=2*<z>1 2*<z>
2-1
[0084]
=2*(<z>1 <z>2)-1=2*[y]1*[y]
2-1
[0085]
=2*σ(2*<x>1 2*<x>2)-1=2*σ(2*x)-1=tanh(x)。
[0086]
本发明实施例的softmax的计算公式为:
[0087][0088]
其中的s(xn,q)为注意力打分函数,s(xn,q)=x
nt
q。
[0089]
如此对于本发明实施例的安全softmax协议,输入:客户端有[x]1={[x1]1,...,[xn]1},服务器端有[x]2={[x1]2,...,[xn]2};输出:客户端和服务器端分别获得<softmax(x)>1和<softmax(x)>2。安全softmax协议过程描述如下:
[0090]
首先客户端选择一个随机数r,并对执行计算[xi′
]1=r*[xi]1,
[0091]
然后对双方分别输入[xi′
]1,[xi]2,调用mul_to_add函数,分别得到输出<yi>1,<yi>2;
[0092]
之后客户端执行计算服务器端执行计算
[0093]
然后双方恢复分母d=rec(<d>1,<d>2);
[0094]
对客户端执行计算服务器端执行计算
[0095]
验证正确性:
[0096][0097]
通过实验发现如果一直按照以上各安全交互协议计算,过程中会出现某些值超过计算机能够表示的最大限度,即极大值或极小值,从而无法计算,导致计算精度急剧下降,因此设计了安全重加协议(re_add)。对于本发明实施例的安全重加协议,输入:客户端有<x>1,服务器端有<x>2;输出:客户端和服务器端分别获得<x

>1和<x

>2。安全重加协议过程描述如下:
[0098]
首先客户端选择一个随机数r,并计算mid=<x>
1-r,并发送给服务器端,则<x

>1=r;然后服务器端执行计算<x

>2=mid <x>2。
[0099]
验证正确性:<x

>1 <x

>2=mid <x>2 r=<x>
1-r <x>2 r。
[0100]
其中,客户端选取的随机数r的范围限定在0-1之间,这是因为在训练神经网络之前会对数据先进行预处理。数据预处理能够消除不同特征之间的相关性,降低神经网络的训练难度,提高训练效率。常用的方法为归一化,即是将数据映射到[0,1[或则[-1,1[之间,或者是映射为均值为0,方差为1的标准正态分布。因为神经网络的数据往往具有尺度不变性,所以数据预处理后才能获得比较理想的结果。本发明实施例的计算过程虽然是神经网络的推理过程,不会涉及训练的梯度问题,但是神经网络的参数都是在归一化后的数据上训练得到的,所以本发明实施例的过程中出现的数据也应该尽量符合归一化的要求,因此将随机数的范围进行限定。
[0101]
以下将各安全交互协议贯穿到人员流动性预测模型的预测推理计算过程中。计算的初始,客户端输入私有数据,即轨迹数据(包括时间和地点);服务器端则输入神经网络
(人员流动性预测模型)即的模型参数。需要注意的是,双方的输入数据都是各自私有的,且整个计算过程双方不会获得对方输入的数据。
[0102]
在步骤s12中,可选地,如图3所示,包括:
[0103]
步骤s121:根据所述当前轨迹数据、所述第二秘密共享数据以及所述第一随机数集合应用安全交互协议与所述服务器端交互进行门控循环单元的推理,得到第一门控输出,同时在所述服务器端获得第二门控输出。
[0104]
门控循环单元包括:重置门、更新门、候选状态输出以及更新方式,在步骤s121中客户端根据当前轨迹数据、第二秘密共享数据以及第一随机数集合应用安全交互协议与服务器端依次交互进行四个部分的计算推理。门控循环单元各部分的推理计算过程分别如下:输入:客户端有x={x1,...,xn},服务器端有w
ir
,,b
ir
,w
hr
,b
hr
,w
iz
,b
iz
,w
hz
,b
hz
,w
in
,b
in
,w
hn
,b
hn
,输出:双方分别得到输出结果<h>1={<h1>1,...,<hn>1},<h>2={<h1>2,...,<hn>2}。
[0105]
对于每个循环t∈{1,...,n}有:
[0106]
重置门(reset gate):
[0107]
首先双方调用mul_to_add(x
t
,w
ir
)函数,得到其中
[0108]
然后双方调用mul_to_add(h
t-1
,w
hr
)函数,得到其中
[0109]
之后客户端执行计算:
[0110]
服务器端执行计算:
[0111]
最后双方调用安全sigmoid然后得到的输出作为输入再调用mul_to_add函数,分别得到<r
t
>1 <r
t
>2。
[0112]
更新门(up-date gate):
[0113]
首先双方调用mul_to_add(x
t
,w
iz
),得到其中
[0114]
然后双方调用mul_to_add(h
t-1
,w
hz
),得到其中
[0115]
之后客户端执行计算:
[0116]
服务器端执行计算:
[0117]
最后双方调用安全sigmoid然后得到的输出作为输入再调用 mul_to_add,分别得到<z
t
>1 <z
t
>2。
[0118]
候选状态(candidate status):
[0119]
首先双方调用mul_to_add(x
t
,w
in
),得到其中
[0120]
然后双方调用mul_to_add(h
t-1
,w
hn
),得到其中
[0121]
之后服务器端执行计算:
[0122]
然后双方调用had_to_add得到
[0123]
双方再调用had_to_add得到
[0124]
最后客户端执行计算:
[0125]
服务器端执行计算:
[0126]
更新方式(status update):
[0127]
双方调用had_to_add(0.5-<z
t
>1,<n
t
>2),得到
[0128]
双方调用had_to add(<n
t
>1,0.5-<z
t
>2),得到
[0129]
双方调用had_to_add(<z
t
>1,<n
t
>2),得到
[0130]
双方调用had_to_add(<n
t
>1,<z
t
>2),得到
[0131]
客户端执行计算:
[0132][0133]
服务器端计算:
[0134][0135]
通过应用上述的门控循环单元各部分的推理计算过程,客户端根据当前轨迹数据、第二秘密共享数据以及第一随机数集合应用安全交互协议与服务器端依次交互进行四个部分的计算推理,得到第一门控输出;与此同时,服务器端通过与客户端的交互推理,得到第二门控输出。需要说明的是,客户端与服务器端交互进行门控循环单元的推理过程中可以根据需要增加安全重加协议的运用。例如,可以是仅在门控循环单元(gru)的最终输出部分使用一次重回(re_add)运算,也可以在gru的每次输出都使用re_add运算,也可以在所有mul_to_add 函数的每次输出都使用re_add运算,还可以在与服务器端的每次交互后都使用re_add运算。
[0136]
步骤s122:根据所述历史轨迹数据、所述第一门控输出、所述服务器端秘密共享的所述第二门控输出、所述第二秘密共享数据以及所述第一随机数集合应用安全交互协议与所述服务器端交互进行历史注意模块的推理,得到第一归一化输出,同时在所述服务器端获得第二归一化输出。
[0137]
由于注意候选生成器是以gru为基本单元,而注意力选择器采用注意力机制的点积模型。如此,在步骤s122中,首先客户端根据历史轨迹数据、第二秘密共享数据以及第一随机数集合应用安全交互协议与服务器端交互进行注意候选生成器中的门控循环单元的推理,得到第一候选输出,同时在所述服务器端获得第二候选输出。然后根据第一候选输出、第一门控输出、服务器端秘密共享的所述第二门控输出和第二候选输出、所述第一随机数集合以及第二秘密共享数据应用安全交互协议与所述服务器端交互进行安全注意力模型(attn)的推理,得到第一归一化输出,同时在服务器端获得第二归一化输出。客户端应用
安全交互协议与所述服务器端交互进行注意候选生成器中的门控循环单元的推理的过程与步骤s121的推理过程类似,在此不再赘述。安全注意力模型的推理过程如下:输入:客户端有<x>1={<x1>1,...,<xn>1},<y>1={<y1>1,...,<ym>1};服务器端有<x>2={<x1>2,...,<xn>2},<y>2={<y1>2,...,<ym>2};输出:客户端和服务器端分别获得<softmax(x
t
y)>1,<softmax(x
t
y)>2。
[0138]
for j∈{1,...,m}
[0139]
for i∈{1,...,n}
[0140]
双方分别输入<xi>
1t
,<yj>2,调用mul_to_add函数,分别得到输出<f1i>1,<f1i>2;
[0141]
双方分别输入<yj>
1t
,<xi>2,调用mul_to_add函数,分别得到输出<f2i>1,<f2i>2;
[0142]
客户端执行计算:
[0143]
服务器端执行计算:
[0144]
最后对双方输入[sm
i,j
]1,[sm
i,j
]2,调用安全softmax函数,即可得到<softmax(x
it
yj)>1,<softmax(x
it
yj)>2。
[0145]
此处的<x>1和<y>1分别表示客户端的第一候选输出和第一门控输出,而<x>2和<y>2分别表示服务器端的第二候选输出和第二门控输出。<softmax(x
it
yj)>1,<softmax(x
it
yj)>2分别为客户端获取的第一归一化输出和服务器端获取的第二归一化输出。
[0146]
需要说明的是,客户端与服务器端交互进行安全注意力模型的推理过程中也可以根据需要增加安全重加协议的运用。例如,可以是仅在安全注意力模型(attn)的最终输出部分使用一次重回(re_add)运算,也可以在所有mul_to_add函数的每次输出都使用re_add运算,还可以在与服务器端的每次交互后都使用re_add运算。
[0147]
步骤s123:根据所述第一门控输出、所述第一归一化输出、所述服务器端秘密共享的所述第二门控输出和所述第二归一化输出、所述第二秘密共享数据以及所述第一随机数集合应用安全交互协议与所述服务器端交互进行全连接层的处理,得到所述第一推理结果。
[0148]
在本发明实施例中,客户端与服务器端交互进行全连接层(fc)的处理之前,需要在客户端进行第一门控输出和第一归一化输出的拼接,得到第一拼接输出,同时在服务器端进行第二门控输出和第二归一化输出的拼接,得到第二拼接输出。然后在客户端根据第一拼接输出、服务器端秘密共享的第二拼接输出、第二秘密共享数据以及第一随机数集合应用安全交互协议与服务器端交互进行全连接层的处理。全连接层的处理过程如下:输入:客户端有<x>1,服务器端有<x>2,w
fc
,b
fc
,输出:客户端和服务器端分别获得<y>1,<y>2。
[0149]
首先双方调用mul_to_add(<x>1,w
fc
),得到输出<ans>1,<ans>2。则<y>1=<ans>1;
[0150]
然后服务器端执行计算:<y>2=<ans>2 b
fc
<x>2*w
fc

[0151]
安全性验证:<y>1 <y>2=<ans>1 <ans>2 b
fc
<x>2*w
fc
[0152]
=<x>1*w
fc
<x>2*w
fc
b
fc
=x*w
fc
b
fc

[0153]
此处的<x>1和<x>2分别表示为客户端的第一拼接输出和服务器端的第二拼接输出。<y>1和<y>2分别表示客户端得到的第一推理结果和服务器端得到的第二推理结果。
[0154]
需要说明的是,客户端与服务器端交互进行全连接层的处理过程中也可以根据需要增加安全重加协议的运用。例如,可以在所有mul_to_add函数的每次输出都使用re_add运算,也可以在与服务器端的每次交互后都使用re_add运算。
[0155]
步骤s13:接收所述服务器端根据所述第一秘密共享数据、所述模型参数以及可信第三方产生的第二随机数集合对所述人员流动性预测模型进行交互推理获取的第二推理结果,并结合所述第一推理结果和所述第二推理结果获取预测结果。
[0156]
在本发明实施例中,在步骤s12中客户端根据轨迹数据、服务器端传输的第二秘密共享数据以及第一随机数集合应用安全交互协议与服务器端交互进行预训练的人员流动性预测模型的推理并获取第一推理结果的同时,在服务器端根据第一秘密共享数据、模型参数以及可信第三方产生的第二随机数集合对人员流动性预测模型进行交互推理并获取第二推理结果。服务器端将获取的第二推理结果发送至客户端。在步骤s13中,客户端接收服务器端发送的第二推理结果,并结合在客户端获得的第一推理结果获取预测结果。预测结果指示客户端所属用户可能的地点及对应的概率。
[0157]
在本发明实施例中,正确性是计算安全交互协议可行性的一部分。以下通过试验验证七发明实施例的人员流动性的安全预测方法的正确性。初始化阶段可以离线完成,对人员流动性预测模型deepmove的性能影响很小,因此省略了初始化的实验。为了评估deepmove的性能,使用python3实现它,并在intel core i7的计算机上以2.8ghz和16gb ram执行 deepmove,在tesla k80和62gb ram的服务器上执行deepmove。实验数据是公开的 foursquare签到数据,foursquare签到数据记录了一段时间某地用户的签到数据,每条数据包括用户id、时间、用户位置和兴趣点。根据用户的相邻记录生成会话,过滤掉记录量和会话量较少的用户。以下从准确率、运行时间和通信量三个方面对方案效果进行评估。
[0158]
图4分别给出了多个不同方案下top1和top5的准确率。其中,图4中的a)为方案r-0 到方案r-6的top1的准确率,图4中的b)为方案r-0到方案r-6的top5的准确率,图4中的 c)为方案r-7、方案r-8以及方案ora的top1和top5的准确率。top1是指预测的第一个可能的地点中有真实地点,top5是指预测的前五个可能的地点中有真实地点。方案r-0到方案r-8 应用的是本发明实施例的人员流动性的安全预测方法进行的预测,不同之处在于重加(re_add)的使用。方案r-0表示没有使用re_add的方案,r-1表示只在gru和attn的最终输出部分分别使用了一次re_add的方案,r-2表示只在gru的最终输出部分使用了一次re_add的方案, r-3表示只在attn的最终输出部分使用了一次re_add的方案,r-4表示在gru的每次输出都使用了re_add的方案,r-5表示在r-4的基础上再在attn的最终输出部分使用了一次re_add的方案,r-6表示在r-5的基础上再在所有mul_to_add的每次输出都使用re_add的方案,r-7表示只在所有mul_to_add的每次输出都使用re_add的方案,r-8表示在每次交互后都使用re_add 的方案。方案ora则代表应用原始模型的预测。随机数的产生有两种方式,一种是产生均匀分布uniform的随机数,另一种是产生标准正太分布normal的随机数。图4中分别用这两种随机值对以上的方案进行实验。图4中的结果均是执行十次以上的结果平均
值。
[0159]
从图4中的a)和b)中可知,无论是均匀分布的随机值还是标准正态分布的随机值,对方案r-0到方案r-6的准确率并没有明显的优势,且准确率都十分低,几乎可以忽略不计。而图4中的c)中均匀分布的随机值在方案r-7和方案r-8中的准确率都可以达到跟方案ora持平,但标准正态分布的随机值则只在方案r-8下的准确率较高。因此在后续的实验中选择均匀分布的随机值。
[0160]
另外,通过对比方案r-0、方案r-7、方案r-8可以发现,re_add的添加对于预测准确率的提高有十分显著的作用,在完全不使用re_add时,准确率可以说是约等于零,而添加了re_add 之后,准确率可以达到跟原始模型结果一致。但从方案r-1到方案r-6可以看出re_add的添加位置十分关键,并不是只要使用了re_add,准确率就一定有保障。未添加re_add前,双方计算的过程中由于多次添加了随机数a、b、c1、c2,并且其中涉及倒数和指数运算,双方的中间值常常会出现极大值或者极小值的情况,但中间值的和却很小,所以通过re_add能保证双方的中间值都在较小的范围内,从而确保了计算的准确率。
[0161]
图5展示了在客户端和服务器端运行不同方案的总运行时间。此处的运行时间并不包括双方交互的传输过程。从图5可知,方案ora在客户端和服务器端的运行时间上相差不大,而方案r-0到方案r-8在客户端和服务器端的运行时间上趋势一致,几乎都相差了大约3s的时间。虽然在客户端的运行时间高于服务器端的运行时间,但也均在6s以内即可执行一次预测。双方共同执行一次的时间也不超过7s,这个时间虽然远高于方案ora,但也是完全可接受的。
[0162]
结合图4和图5可以看出,添加上re_add在时间上并没有添加很大的负担,差别仅仅在大约1s,但准确率上却有极大的提高。
[0163]
接下来分析一下本发明实施例的人员流动性的安全预测方法中涉及的各安全交互协议和子阶段。表1中展示了不同安全交互协议在客户端(local)和服务器端(server)的运行时间。
[0164]
表1不同安全交互协议在local和server的运行时间
[0165] mul1mul2mul3sigmoidre_addtanhlocal单次运行时间26.0442928.9231925.2498848.9080713.78187101.3744server单次运行时间5.5931414.6837336.95331913.660593.0650328.90889
[0166]
其中的mul1、mul2、mul3都是mul_to_add的应用,区别是输入的数据维度不同,因此也进行分别统计。mul1、mul2、mul3的运行时间较为相近,相差在3ms之内。只需要双方交换一次数据,即客户端本地(local)发送一份数据给服务器端(server),而服务器端也发送一份数据给客户端,这两者的先后顺序没有关系。除了发送数据的时间外,不存在额外的等待时间。相对来说,sigmoid和tanh的运行时间较长,sigmoid的计算中涉及指数和倒数,也只需要交换一次数据,但需要由服务器先发送数据,客户端再发送。而tanh的实现除了需要调用sigmoid外,还需要mul,因此交互2次数据,第一次有发送顺序的要求,第二次则没有。
[0167]
softmax的计算时间虽短,但也需要交互两轮,双方调用mul交互,再交互恢复出d值,都没有时间先后要求。re_add的时间消耗最短,仅需双方交互一次数据,同样也没有时间先后顺序。
[0168]
表2中展示了不同方案在不同子阶段和总共的通信量。门控循环单元(gru)、安全
注意力模型(attn)、全连接层(fc)三个子阶段中,fc的通信量最低,最多也不超过1.5kb。 gru和attn的通信量占了总通信量(all)的主体。从方案r-0到方案r-8,发现随着re_add 的调用次数增多,通信量也随着增多。即使是在每个交互后都添加了re_add的总通信量也在 20mb以内,在可以接受的范围内。可见re_add确保了准确率,并且在通信量上没有带来很大的负担。
[0169]
表2不同方案在不同子阶段和总的通信量
[0170] gru(mb)attn(mb)fc(kb)all(mb)r-03.534.000.57.53r-14.016.020.7510.03r-34.014.540.758.56r-55.206.020.511.22r-711.747.501.2519.24r-814.127.401.2521.52
[0171]
图6和图7分别展示了客户端和服务器端三个子过程的时间。无论是客户端还是服务器端,时间占比都是从attn、gru、fc依次降低。这是因为attn过程中需要计算每段路径的相似度,并进行排序比较,因此时间略长。
[0172]
图8展示了在网速4.8mb下不同方案的整体运行时间。整体的运行时间处于18s到45s 之间,也就是不到1min的时间内,即可完成某个用户的未来路径预测,时间是很可观的。而整个时间中占比较大的是传输的时间,双方本地运行的时间较短。传输时间更多取决于传输的网速,实验中的4.8mb在现实中比较居中,在实际使用中可以设置更高速的网络来进行数据的传输。
[0173]
本发明实施例的人员流动性的安全预测方法是基于秘密共享的安全deepmove神经网络隐私保护方法,针对deepmove的执行过程设计了几个的安全交互协议,这些安全交互协议允许双方对数据进行转换和计算,执行神经网络推理。通过将历史路径和模型参数随机分成秘密部分,从而在参与者不知道元数据的情况下执行计算,而不泄露任何一方的数据,不会损害数据隐私。具体来说,为人员流动性预测模型中的非线性函数的计算如sigmoid、tanh、 softmax设计了安全高效的两方安全交互协议;针对计算中出现的精度问题,设计了安全有效的解决方案;还在半诚实对手模型中证明了协议的安全性。结合实验证明,安全交互协议对推理精度没有影响,准确率未降低,且计算和通信开销较小。
[0174]
本发明实施例通过获取客户端所属用户的轨迹数据,并根据所述轨迹数据随机分成第一秘密共享数据;根据所述轨迹数据、服务器端传输的第二秘密共享数据以及可信第三方产生的第一随机数集合应用安全交互协议与所述服务器端交互进行预训练的人员流动性预测模型的推理,获取第一推理结果,其中所述第二秘密共享数据是所述服务器端对所述人员流动性预测模型的模型参数随机分成得到的;接收所述服务器端根据所述第一秘密共享数据、所述模型参数以及可信第三方产生的第二随机数集合对所述人员流动性预测模型进行交互推理获取的第二推理结果,并结合所述第一推理结果和所述第二推理结果获取预测结果,能够实现安全有效的预测,在保证准确率的同时,减小通信开销。
[0175]
基于同一发明构思,本发明实施例还提供了一种客户端设备。如附图9所示,客户端设备包括:第一数据获取单元、第一预测单元和结果获取单元。其中,
[0176]
第一数据获取单元,用于获取客户端所属用户的轨迹数据,并根据所述轨迹数据随机分成第一秘密共享数据;
[0177]
第一预测单元,用于根据所述轨迹数据、服务器端传输的第二秘密共享数据以及可信第三方产生的第一随机数集合应用安全交互协议与所述服务器端交互进行预训练的人员流动性预测模型的推理,获取第一推理结果,其中所述第二秘密共享数据是所述服务器端对所述人员流动性预测模型的模型参数随机分成得到的;
[0178]
结果获取单元,用于接收所述服务器端根据所述第一秘密共享数据、所述模型参数以及可信第三方产生的第二随机数集合对所述人员流动性预测模型进行交互推理获取的第二推理结果,并结合所述第一推理结果和所述第二推理结果获取预测结果。
[0179]
为了描述的方便,描述以上客户端设备时以功能分为各种模块分别描述。当然,在实施本发明实施例时可以把各模块的功能在同一个或多个软件和/或硬件中实现。
[0180]
上述实施例的客户端设备用于实现前述实施例中相应的方法,并且具有相应的方法实施例的有益效果,在此不再赘述。
[0181]
本发明实施例还提供了一种人员流动性的安全预测方法。本发明实施例的安全预测方法应用于服务器端,如附图10所示,人员流动性的安全预测方法包括:
[0182]
步骤s21:获取预训练的人员流动性预测模型的模型参数,并根据所述模型参数随机分成第二秘密共享数据。
[0183]
在本发明实施例中,在步骤s21之前,在服务器端根据历史数据对人员流动性预测模型进行训练,获取收敛的人员流动性预测模型的模型参数。在步骤s21中服务器端根据预训练的人员流动性预测模型的模型参数随机分成第二秘密共享数据,以便后续与客户端进行交互处理。
[0184]
步骤s22:根据所述模型参数、客户端传输的第一秘密共享数据以及可信第三方产生的第二随机数集合应用安全交互协议与所述客户端交互进行预训练的人员流动性预测模型的推理,获取第二推理结果,其中所述第一秘密共享数据是所述客户端对客户端所属用户的轨迹数据随机分成得到的。
[0185]
在本发明实施例中,在步骤s22之前,第二随机数集合由可信第三方随机产生并传输至客户端,而可信第三方可以是应用标准正态分布或均匀分布来随机产生随机数。
[0186]
客户端所属用户的轨迹数据包括当前轨迹数据和历史轨迹数据,对应的,第一秘密共享数据包括当前轨迹共享数据和历史轨迹数据。在步骤s22中,可选地,首先根据所述当前轨迹共享数据、所述模型参数以及所述第二随机数集合应用安全交互协议与客户端交互进行门控循环单元的推理,得到第二门控输出,同时在所述客户端获得第一门控输出。安全交互协议包括:乘法至加法转换协议、安全sigmoid协议、安全tanh协议、安全softmax协议以及安全重加协议的至少其中之一。服务器端应用安全交互协议与客户端进行的门控循环单元的推理过程与前述步骤s121中的方法相同,在此不再赘述。
[0187]
然后根据所述历史轨迹共享数据、所述第二门控输出、所述客户端秘密共享的所述第一门控输出、所述模型参数以及所述第二随机数集合应用安全交互协议与所述客户端交互进行历史注意模块的推理,得到第二归一化输出,同时在所述客户端获得第一归一化输出。由于注意候选生成器是以gru为基本单元,而注意力选择器采用注意力机制的点积模型。如此,首先服务器端根据历史轨迹共享数据、模型参数以及第二随机数集合应用安全交
互协议与客户端交互进行注意候选生成器中的门控循环单元的推理,得到第二候选输出,同时在客户端获得第一候选输出。然后根据第二候选输出、第二门控输出、客户端秘密共享的第一门控输出和第一候选输出、第二随机数集合以及模型参数应用安全交互协议与客户端交互进行安全注意力模型(attn)的推理,得到第二归一化输出,同时在客户端获得第一归一化输出。服务器端应用安全交互协议与客户端交互进行注意候选生成器中的门控循环单元的推理以及安全注意力模型的推理的具体过程与前述步骤s122的推理过程类似,在此不再赘述。
[0188]
最后根据所述第二门控输出、所述第二归一化输出、所述客户端秘密共享的所述第一门控输出和所述第一归一化输出、所述模型参数以及所述第二随机数集合应用安全交互协议与所述客户端交互进行全连接层的处理,得到所述第二推理结果。在本发明实施例中,服务器端与客户端交互进行全连接层(fc)的处理之前,需要在服务器端进行第二门控输出和第二归一化输出的拼接,得到第二拼接输出,同时在客户端进行第一门控输出和第一归一化输出的拼接,得到第一拼接输出。然后在服务器端根据第二拼接输出、客户端秘密共享的第一拼接输出、模型参数以及第二随机数集合应用安全交互协议与客户端交互进行全连接层的处理,最终在服务器端得到第二推理结果,同时在客户端得到第一推理结果。
[0189]
需要说明的是,服务器端与客户端交互进行门控循环单元(gru)、安全注意力模型(attn)以及全连接层(fc)的推理过程中可以根据需要增加安全重加协议的运用。例如,可以是仅在门控循环单元的最终输出部分使用一次重回(re_add)运算,也可以在gru的每次输出都使用re_add运算;可以仅在安全注意力模型(attn)的最终输出部分使用一次重回(re_add)运算,也可以在所有mul_to_add函数的每次输出都使用re_add运算,还可以在与服务器端的每次交互后都使用re_add运算。
[0190]
步骤s23:将所述第二推理结果传输至所述客户端,以便所述客户端结合交互推理过程中获取的第一推理结果与所述第二推理结果获取预测结果。
[0191]
服务器端将步骤s22中得到的第二推理结果发送至客户端,以便在客户端结合第二推理结果与客户端本地得到的第一推理结果获取预测结果。预测结果指示客户端所属用户可能的地点及对应的概率。
[0192]
上述对本技术特定实施例进行了描述。在一些情况下,在本发明实施例中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
[0193]
基于同一发明构思,本发明实施例提供了一种服务器。如附图11所示,服务器包括:第二数据获取单元、第二预测单元和数据发送单元。其中,
[0194]
第二数据获取单元,用于获取预训练的人员流动性预测模型的模型参数,并根据所述模型参数随机分成第二秘密共享数据;
[0195]
第二预测单元,用于根据所述模型参数、客户端传输的第一秘密共享数据以及可信第三方产生的第二随机数集合应用安全交互协议与所述客户端交互进行预训练的人员流动性预测模型的推理,获取第二推理结果,其中所述第一秘密共享数据是所述客户端对客户端所属用户的轨迹数据随机分成得到的;
[0196]
数据发送单元,用于将所述第二推理结果传输至所述客户端,以便所述客户端结
合交互推理过程中获取的第一推理结果与所述第二推理结果获取预测结果。
[0197]
为了描述的方便,描述以上服务器时以功能分为各种模块分别描述。当然,在实施本发明实施例时可以把各模块的功能在同一个或多个软件和/或硬件中实现。
[0198]
上述实施例的服务器用于实现前述实施例中相应的方法,并且具有相应的方法实施例的有益效果,在此不再赘述。
[0199]
基于同一发明构思,本发明实施例还提供了一种人员流动性的安全预测系统,该安全预测系统包括可信第三方、前述的客户端设备和前述的服务器。本发明实施例中的安全预测系统提供一个人员流动性预测模型,应用deepmove框架,通过客户端设备和服务器的交互,实现安全的人员流动性预测推理。deepmove框架在不降低预测准确率的情况下,既保护了用户数据的隐私,又保护了预测神经网络参数的隐私。服务器用其内部模型提供预测服务,客户端设备只需要调用服务器提供的应用程序接口(application program interface,api)即可实现预测,它将自己的数据传输给服务器,对自己的数据进行预测。服务器和客户端设备通过共同执行安全协议来实现安全预测。服务器输入的是神经网络的参数,客户端设备所属用户输入的是其要预测的私有数据。而可信第三方只负责生成安全协议运算中需要的随机数,并不参与具体的安全协议运算,也就是说可信第三方可以是轻服务器,甚至是个人电脑。
[0200]
客户端设备和服务器交互进行预训练的人员流动性预测模型的推理之前,可信第三方用于应用均匀分布或标准正态分布离线产生第一随机数集合和第二随机数集合,并将第一随机数集合传输至客户端设备,以及将第二随机数集合传输至服务器。客户端设备本地获取有客户端所属用户的轨迹数据,客户端设备根据所述轨迹数据随机分成第一秘密共享数据。服务器获取有预训练的人员流动性预测模型的模型参数,服务器根据所述模型参数随机分成第二秘密共享数据。
[0201]
客户端设备和服务器交互进行预训练的人员流动性预测模型的推理过程中,客户端设备根据所述轨迹数据、第二秘密共享数据以及第一随机数集合应用安全交互协议与服务器交互进行预训练的人员流动性预测模型的推理,获取第一推理结果。与此同时,服务器根据所述第一秘密共享数据、所述模型参数以及第二随机数集合对所述人员流动性预测模型进行交互推理获取的第二推理结果。
[0202]
具体地,客户端设备和服务器交互进行预训练的人员流动性预测模型的推理过程分为门控循环单元的推理、历史注意模块的推理以及全连接层的处理,其中,历史注意模块的推理包括门控循环单元的推理和安全注意力模型的推理。安全交互协议包括:乘法至加法转换协议、安全sigmoid协议、安全tanh协议、安全softmax协议以及安全重加协议的至少其中之一。轨迹数据包括当前轨迹数据和历史轨迹数据,对应的第一秘密共享数据包括当前轨迹共享数据和历史轨迹共享数据。
[0203]
在本发明实施例中,首先客户端设备根据所述当前轨迹数据、所述第二秘密共享数据以及所述第一随机数集合应用安全交互协议与所述服务器交互进行门控循环单元的推理,得到第一门控输出。同时,服务器根据所述当前轨迹共享数据、所述模型参数以及所述第二随机数集合应用安全交互协议与客户端交互进行门控循环单元的推理,得到第二门控输出。更具体的方法参见前述的方法实施例部分,在此不再赘述。
[0204]
然后,客户端设备根据所述历史轨迹数据、所述第一门控输出、所述服务器端秘密
共享的所述第二门控输出、所述第二秘密共享数据以及所述第一随机数集合应用安全交互协议与所述服务器端交互进行历史注意模块的推理,得到第一归一化输出,同时在所述服务器端获得第二归一化输出。同时,服务器根据所述历史轨迹共享数据、所述第二门控输出、所述客户端秘密共享的所述第一门控输出、所述模型参数以及所述第二随机数集合应用安全交互协议与所述客户端交互进行历史注意模块的推理,得到第二归一化输出。更具体的方法参见前述的方法实施例部分,在此不再赘述。
[0205]
最后客户端设备根据所述第一门控输出、所述第一归一化输出、所述服务器秘密共享的所述第二门控输出和所述第二归一化输出、所述第二秘密共享数据以及所述第一随机数集合应用安全交互协议与所述服务器交互进行全连接层的处理,得到所述第一推理结果。服务器根据所述第二门控输出、所述第二归一化输出、所述客户端秘密共享的所述第一门控输出和所述第一归一化输出、所述模型参数以及所述第二随机数集合应用安全交互协议与所述客户端交互进行全连接层的处理,得到所述第二推理结果。更具体的方法参见前述的方法实施例部分,在此不再赘述。
[0206]
基于同一发明构思,本发明实施例还提供了一种电子设备,该电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上任意一实施例所述的方法。
[0207]
图12示出了本实施例所提供的一种更为具体的电子设备硬件结构示意图,该设备可以包括:处理器1201、存储器1202、输入/输出接口1203、通信接口1204和总线1205。其中处理器1201、存储器1202、输入/输出接口1203和通信接口1204通过总线1205实现彼此之间在设备内部的通信连接。
[0208]
处理器1201可以采用通用的cpu(central processing unit,中央处理器)、微处理器、应用专用集成电路(application specific integrated circuit,asic)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本发明各方法实施例所提供的技术方案。
[0209]
存储器1202可以采用rom(read only memory,只读存储器)、ram(random accessmemory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器1202 可以存储操作系统和其他应用程序,在通过软件或者固件来实现本发明各方法实施例所提供的技术方案时,相关的程序代码保存在存储器1202中,并由处理器1201来调用执行。
[0210]
输入/输出接口1203用于连接输入/输出模块,以实现信息输入及输出。输入输出/模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。
[0211]
通信接口1204用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如usb、网线等)实现通信,也可以通过无线方式(例如移动网络、wifi、蓝牙等)实现通信。
[0212]
总线1205包括一通路,在设备的各个组件(例如处理器1201、存储器1202、输入/输出接口1203和通信接口1204)之间传输信息。
[0213]
需要说明的是,尽管上述设备仅示出了处理器1201、存储器1202、输入/输出接口1203、通信接口1204以及总线1205,但是在具体实施过程中,该设备还可以包括实现正常运
行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本发明实施例方案所必需的组件,而不必包含图中所示的全部组件。
[0214]
所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本公开的范围被限于这些例子;在本技术的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本发明的不同方面的许多其它变化,为了简明它们没有在细节中提供。
[0215]
本发明旨在涵盖落入本技术的宽泛范围之内的所有这样的替换、修改和变型。因此,凡在本发明的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本公开的保护范围之内。
再多了解一些

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

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

相关文献