发明内容
有鉴于此,本发明的目的在于提供一种雾计算中区块链协助的联邦学习主动内容缓存方 法。
为达到上述目的,本发明提供如下技术方案:
一种雾计算中区块链协助的联邦学习主动内容缓存方法,该方法包括以下步骤:
S1:一种基于区块链的联邦学习主动边缘缓存架构;
S2:基于用户选择的FL方案;
S3:基于上下文感知的对抗性自动编码器的内容流行度预测算法;
S4:联合区块链技术保护数据安全性方案。
进一步,在步骤S1中,建立基于区块链的联邦学习主动边缘缓存模型。该发明结合了物 联网设备、雾计算、远程云和区块链技术。在该系统模型中,提出了一种区块链协助的基于 联邦学习的主动边缘缓存方案,可以有效保护用户隐私和提高内容缓存命中率。
进一步,在步骤S2中,为了解决终端设备的资源异构性,提出了一种基于用户选择的联 邦学习主动边缘缓存算法。基于用户选择的FL方案具体包括以下几个步骤:
1)用户选择:相对于传统FL框架随机选择参与模型训练的客户端,本发明提出了以下 两步客户端选择方案。首先,新的资源请求步骤要求随机客户端将自己的资源信息(例如无 线信道状态、计算能力以及与当前训练任务相关的数据资源大小)通知雾服务器。然后,雾 服务器在之后的客户端选择步骤中引用该信息,以估计模型分发、更新以及上传步骤所需的 时间,并确定参与模型训练的客户端。在客户端选择步骤中的目标是允许服务器在指定的期 限内聚合尽可能多的客户端更新,即在每一轮中使用更大比例的客户端可以节省全局模型训 练所需的时间,以实现理想的性能。
2)模型下载:基于步骤1的结果,一组物联网用户S被选择用于参与第r轮的联邦学习 训练过程。接下来所选用户从雾服务器下载初始的全局模型参数wr,并基于本地数据训练该 模型。
3)FL模型训练:存储在所选用户设备中的数据集为H={H1,H2,H3,…,Hs},其中Hs表示第s个用户的本地数据集,数据大小为fs=|Hs|,f为所选用户设备中整个数据集的大小。与经典的FL算法一样,目标是最小化损失函数l(w):
其中lj(w)为数据集H中第j个数据在模型参数w训练下的预测损失,Ls(w)表示用户s 的本地损失函数。最小化本地损失函数Ls(w)的加权平均等价于优化FL训练中的损失函数 l(w)。
4)模型更新上传:将本地训练完的模型更新参数
上传至雾服务器以便于全局模型的 更新。在该发明中,为了保证数据传输的安全性,物联网用户首先将经过验证后的本地模型 更新参数上传至区块链,然后雾服务器从区块链上获取用于全局模型更新的参数。
5)权重聚合:物联网用户上传本地模型更新参数之后,雾节点通过计算所有接收到的本 地模型
的加权总和,生成新的全局模型w
r+1。生成的新的全局模型将用于下一轮模型训 练,r表示FL中的通信轮数。本发明采用加权平均算法对模型进行聚合,参数聚合的权值取 决于本地训练数据的数量:
其中α为学习速率。
进一步,在步骤S3中,C-AAE通过将AE转换成生成模型,将GAN添加到AE架构 中。该方法以对抗损失训练AE,使隐空间分布适应任意先验。GANs构建了两个神经网络, 即生成网络G和判别网络D。G使用一个随机数向量作为输入,并在输出处生成输入。D用 于区分从G生成的样本和从输入数据提取的样本。GAN在G与D之间的对抗性可以表示为:
重构阶段和正则化阶段是C-AAE训练过程中的两个阶段。在重构阶段,AE用来更新编 码器。首先,z由生成网络q(z|x)生成,然后,z被输入到解码器,输出
由z重构,在x和
之间计算重构误差。在正则化阶段,首先由对抗网络更新判别网络D,以区分真实的先验 样本和生成的样本。其次,为了欺骗判别网络D,更新生成网络G。
进一步,在步骤S4中,物联网用户基于本地数据集进行模型训练,模型训练结束后,用 户将调用接口合约将更新的梯度参数上传到区块链。接口合约将首先调用身份合约来验证边 缘节点以及物联网用户的身份,然后将参数作为交易上传到分布式账本,交易将随机和定期 地进行验证。如果一项交易被验证成功,它将被视为有效,否则,它将被视为无效。通过调 用信任合约,上传虚假梯度的物联网用户将受到惩罚。
本发明的有益效果在于:本文提出了一种区块链协助的FL主动内容缓存方法。首先, 考虑到实际网络中用户设备的资源约束,提出了一种基于用户选择的FL方案,以有效提高 FL的训练过程,减少模型训练的时间。其次,使用上下文感知的对抗性自动编码器(Contextual-aware Adversarial Autoencoders,C-AAE)来预测高度动态的内容流行度。该模型通 过将自动编码器(AutoEnocoder,AE)转化为生成模型,将对抗网络添加到AE架构中,有助于 从用户的历史请求和上下文信息中学习深度潜表征,获取用户与内容之间的隐式关系,提高 预测精度。最后,基于区块链技术设计四种面向去中心化实体的智能合约,用于记录和验证 交易,以确保数据的安全性。
本发明的其他优点、目标和特征在某种程度上将在随后的说明书中进行阐述,并且在某 种程度上,基于对下文的考察研究对本领域技术人员而言将是显而易见的,或者可以从本发 明的实践中得到教导。本发明的目标和其他优点可以通过下面的说明书来实现和获得。
具体实施方式
以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露 的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加 以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精 神下进行各种修饰或改变。需要说明的是,以下实施例中所提供的图示仅以示意方式说明本 发明的基本构想,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。
其中,附图仅用于示例性说明,表示的仅是示意图,而非实物图,不能理解为对本发明 的限制;为了更好地说明本发明的实施例,附图某些部件会有省略、放大或缩小,并不代表 实际产品的尺寸;对本领域技术人员来说,附图中某些公知结构及其说明可能省略是可以理 解的。
本发明实施例的附图中相同或相似的标号对应相同或相似的部件;在本发明的描述中, 需要理解的是,若有术语“上”、“下”、“左”、“右”、“前”、“后”等指示的方位 或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不 是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此附图 中描述位置关系的用语仅用于示例性说明,不能理解为对本发明的限制,对于本领域的普通 技术人员而言,可以根据具体情况理解上述术语的具体含义。
图1描述了一个物联网主动边缘缓存架构。该架构主要包括云计算中心、雾服务器、物 联网设备。将配备雾服务器的边缘节点视为无线缓存实体,它具有到云计算中心的可靠回程 链接。物联网设备和边缘节点之间通过无线链路进行通信。由于每个雾节点的存储容量有限, 因此需要建立一个模型来选择缓存的内容。假设每个边缘节点最多可以存储F个内容,当物 联网用户在边缘节点的覆盖范围内时,它们将从该节点请求内容。如果请求的内容缓存在雾 节点,内容将直接从边缘节点传输到物联网设备,从而可以有效提高内容交付速率和用户体 验。否则,物联网用户必须从云计算中心获取请求的内容。在该系统模型中,每个边缘节点 涵盖多个物联网设备,一段时间后,边缘节点将连接到云计算中心以更新缓存的内容和模型。 为了提高缓存命中率和保护数据隐私,该系统结合联邦学习进行设计。
图2描述了基于区块链协助的联邦学习主动内容缓存模型。区块链作为分布式账本,将 模型和训练参数记录为一笔交易。分散的实体将向区块链提交数据,并定期进行核查,以确 保系统的安全。边缘节点维护一个全局模型,该模型被发送到连接的物联网设备进行训练。 边缘节点将接收终端设备上传的更新梯度,并将这些梯度聚合起来,以更新全局模型。最后, 根据每个用户的推荐列表,服务器选择前F位最受欢迎的内容缓存至边缘节点。
交易的数据结构由物联网用户提交的本地训练模型梯度的哈希值、涉及联邦学习过程的 物联网设备和边缘节点的身份以及签名组成。此外,还包括事务的时间戳。
本发明为去中心化实体设计了四种智能合约,用于记录和验证交易:
1.身份合约(Identity Contract):负责管理每个实体,包括分布式物联网用户和边缘节点;
2.接口合约(Submission Contract):为物联网用户提供向区块链提交梯度参数的接口;
3.验证合约(Verification Contract):负责选择共识节点和交易验证;
4.信任合约(Credit Contract):负责网络参与者的奖惩。
物联网用户基于本地数据集进行模型训练,模型训练结束后,用户将调用接口合约将更 新的梯度参数上传到区块链。接口合约将首先调用身份合约来验证边缘节点以及物联网用户 的身份,然后将参数作为交易上传到分布式账本。系统将定期调用验证合约,负责交易的验 证过程。在验证合约中,我们采用的是委托权益证明共识机制。主要思想是通过投票选出若 干个代理人节点,由这些代理人节点负责打包区块并进行区块的验证。如果一项交易被验证 成功,它将被视为有效,否则,它将被视为无效。通过调用信任合约,上传虚假梯度的物联 网用户将受到惩罚。
图3描述了基于用户选择的FL训练流程。在传统的FL框架中,FL协议迭代地要求随机客户端从服务器下载可训练模型,并使用自己的本地数据更新模型,然后将更新后的模型 上传到服务器,同时要求服务器聚合多个客户端更新以进一步改进模型。虽然该协议中的客 户端不公开自己的私有数据,但当某些客户端计算资源有限或无线信道条件较差时,整个训 练过程会变得效率低下,从而导致缓存性能的下降。为了解决这个问题,本发明提出了一种 新的FL协议,即基于用户选择的FL方案,它能有效地与具有异构资源的客户端协同工作。 基于用户选择的FL方案具体包括以下几个步骤:
1)用户选择
相对于传统FL框架随机选择参与模型训练的客户端,本发明提出了以下两步客户端选 择方案。首先,新的资源请求步骤要求随机客户端将自己的资源信息(例如无线信道状态、 计算能力以及与当前训练任务相关的数据资源大小)通知雾服务器。然后,雾服务器在之后 的客户端选择步骤中引用该信息,以估计模型分发、更新以及上传步骤所需的时间,并确定 参与模型训练的客户端。在模型分发步骤中,用于训练的全局模型以广播的方式从边缘节点 分发到选定的客户端,因为它可以有效地将相同的内容(即全局模型)传输到客户端。在模 型更新和上传步骤中,被选择的客户端并行更新模型,然后将更新参数上传到服务器以进行 模型聚合,直到模型收敛到一定的精度。
在客户端的选择过程中,网络中的客户端数量为K,表示为
是在 资源请求步骤中随机选择的客户端数量,即
C∈(0,1]表示每轮训练中随机客 户端接收到资源请求的比例。
表示在客户端选择步骤中所选客户的指 标序列,其中k
i∈K′,|S|≤|K′|。在更新和上传步骤中,客户端按S的顺序上传本地模型更新 参数。在联邦学习过程中,每一轮训练的截止时延为T
round,T
final为全局模型训练的最终截止 时延,T
cs和T
agg分别为客户端选择和模型聚合步骤所需的时间,T
s d表示模型分发所需的时间, 它取决于被选择的客户端S,
和
分别表示第k个客户端更新和上传模型所花费的时间。 这些客户端相关参数可以根据资源请求步骤中通知的资源信息确定。
因此,在客户端选择方案中,为了接受尽可能多的客户端更新,可以通过最大限度地选 择客户端数量来实现,即maxS|S|。该发明定义了从本地模型训练开始直到第ki个客户端完 成模型更新和上传过程的估计运行时间,表示如下:
由于客户端按顺序上传本地模型更新,T
i UL是总的模型更新上传的时间。相反,当前面的客户 端在上传更新参数时,其他用户可以进行模型更新,因此,如果单个用户的模型更新时间
在之前的运行时间Θ
j-1之内,则总的模型更新时间T
i UD不会增加。因此,客户端选择步骤可 以表述为关于S的最大化问题:
maxS|S|
s.t.Tround≥Tcs+Ts d+Θ|S|+Tagg (7)
为了解决上述带有背包约束的最大化问题,提出了一种基于贪婪算法的启发式算法,如 表1所示。通过迭代地将花费模型上传和更新时间最少的客户端添加到S,直到运行时间t达 到截止时延Tround。
表1基于用户选择的联邦学习方案
2)模型下载
基于步骤1的结果,一组物联网用户S被选择用于参与第r轮的联邦学习训练过程。下 一步是,所选用户从雾服务器下载初始的全局模型参数wr,并基于本地数据训练该模型,如 图3,步骤(2)所示。
3)FL模型训练
在提出的FL方案中,第三步是利用物联网用户的本地数据训练模型,如图3,步骤(3) 所示。网络中存储在所选用户设备中的数据集为H={H1,H2,H3,…,Hs},其中Hs表示第s个 用户的本地数据集,数据大小为fs=|Hs|,f为所选用户设备中整个数据集的大小。与经典的 FL算法一样,目标是最小化损失函数l(w):
其中lj(w)为数据集H中第j个数据在模型参数w训练下的预测损失,Ls(w)表示用户s的本 地损失函数。最小化本地损失函数Ls(w)的加权平均等价于优化FL训练中的损失函数l(w)。
4)模型更新上传
如图3,步骤(4)所示,第四步是将本地训练完的模型更新参数
上传至雾服务器以便于 全局模型的更新。在本发明中,为了保证数据传输的安全性,物联网用户首先将经过验证后 的本地模型更新参数上传至区块链,然后雾服务器从区块链上获取用于全局模型更新地参数。 与计算成本相比,通信成本在FL中占主导地位,为了降低通信成本,节省上传时间,由于 上行速度比下载速度慢,模型可以在上传到雾服务器之前进行压缩。
5)权重聚合
物联网用户上传本地模型更新参数之后,第五步是通过计算所有接收到的本地模型
的 加权总和,生成新的全局模型w
r+1,如图3,步骤(5)所示。生成的新的全局模型将用于下一轮 模型训练,r表示FL中的通信轮数。本发明采用加权平均算法对模型进行聚合,参数聚合的 权值取决于本地训练数据的数量:
其中α为学习速率。在训练得到共享的全局模型之后,每个雾服务器预测它的流行内容,然 后发送一个列表给远端云服务器,远端云服务器存储所有缓存内容的列表,以备将来替换使 用。
C-AAE模型架构顶层是一个AE,它能够学习一个隐编码z,以一种无监督的学习方式 将其输入X映射到输出
底层是一个对抗网络,它主要用于区分样本是由指定分布的用户 生成的还是来自AE的隐编码z。用户内容请求矩阵X用作输入数据,是物联网用户的内容 检索历史,由样本变量x组成,其中
m和c分别为连接的用户数和内容数。此外,未来将请求哪些内容可能取决于物联网用户的上下文信息。在本方案中,使用了物联网用户 的上下文信息
以用于预测上下文相关的内容流行度,
附加在X中。C-AAE模型的输出是
即填充预测值的重构输入。C-AAE通过将AE转换成生成模型,将GAN添加到AE 架构中。该方法以对抗损失训练AE,使隐空间分布适应任意先验。GANs构建了两个神经网 络,即生成网络G和判别网络D。G使用一个随机数向量作为输入,并在输出处生成输入。 D用于区分从G生成的样本和从输入数据提取的样本。GAN在G与D之间的对抗性可以表 示为:
重构阶段和正则化阶段是C-AAE训练过程中的两个阶段。在重构阶段,AE用来更新编 码器,编码器是最小化输入x的重构误差。首先,z由生成网络q(z|x)生成,然后,z被输入到解码器,输出
由z重构,在x和
之间计算重构误差。在正则化阶段,首先由对抗网络更新判别网络D,以区分真实的先验样本和生成的样本。然后,为了欺骗判别网络D,更新 生成网络G,隐码是判别网络必须考虑的,它以真实的先验分布p(z)的形式分布。这个生成 网络也是AE的解码器。
输出由对抗网络附加在编码器中,遵循p(z)分布,z可以由判别网络得到,z′由P(z)绘 制。采用反向传播的方法对判别网络的权值进行调整,同时,对生成网络的参数进行了更新, 这个过程是重复的。当训练过程结束时,生成模型由解码器AE定义,p(z)映射到数据分布 pd(x)。因此,C-AAE的正则化可以通过q(z)与p(z)的匹配来实现,其中q(z)是聚合后的 后验,p(z)是任意的先验,q(z)可以由下式得到:
其中,p(x)为模型分布,判别网络的损失函数为:
其中,b为块大小(minibatch size),本发明使用的对抗生成网络为:
在上述模型的设计中,输入矩阵是二进制用户内容请求矩阵X,1和0分别表示用户感 兴趣的内容和不感兴趣的内容。该发明将用户的历史请求内容标记为感兴趣的内容。事实上, 不感兴趣的内容很难识别,因为未知的内容和不感兴趣的内容混杂在未请求的内容中,将所 有未请求的内容标记为不感兴趣的内容是一种偏见预测。因此,该发明通过随机抽样机制标 记未知的内容对应的缺失条目,随机抽样的概率与客户对内容的偏好有关。使用提出的 C-AAE模型来预测这些缺失的值,C-AAE从输入矩阵X中学习隐编码Z,然后,X可以从Z 中恢复以生成
X的行和列都不完整,
为预测的缺失项矩阵。通过对预测的内容进行 排序,输出中得分最高的内容将被选择为雾服务器中的缓存内容。本发明算法的复杂度取决 于C-AAE模型的复杂度,其复杂度为O(h),h为C-AAE模型中隐含层的大小。表2中列出了完整的算法概述。
表2区块链协助的联邦学习主动内容缓存方案
最后说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施 例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进 行修改或者等同替换,而不脱离本技术方案的宗旨和范围,其均应涵盖在本发明的权利要求 范围当中。