MECC: A Mobile Edge Collaborative Caching Framework Empowered by Deep Reinforcement Learning
随着智能城市和5G的快速发展,用户对互联网服务的需求呈指数级增长。通过协作内容共享,可以打破单边缘服务器(ES)的存储限制。然而,当移动用户需要通过多个区域下载整个内容时,独立决定不同区域中的ES的缓存内容可能会导致冗余缓存。此外,在用户移动期间频繁切换通信连接也会导致重传延迟。作为人工智能领域的一种革命性方法,深度强化学习(DRL)在解决高维和网络资源管理相关问题方面取得了巨大成功。因此,我们将协作缓存与DRL相结合,构建一个智能边缘缓存框架,以实现云与ES之间的协作缓存。在这个缓存框架中,首先设计了一个基于联邦机器学习的用户行为预测模型来描述移动用户的内容偏好和移动轨迹。接下来,为了实现ESs的高效资源聚合,设计了一种用户行为感知的动态协作缓存域(DCCD)构建和管理机制,将ESs划分为簇,选择簇头,并设置重聚类规则。然后,提出了一种基于DRL的内容缓存和传输算法,从全局角度确定DCCD中ESs的缓存内容,并为用户规划传输路径,从而减少冗余内容和传输延迟。特别是当当前DCCD无法满足用户请求时,提出了跨域内容交付策略,允许其他DCCD中的ES向用户提供和转发内容,避免了从云请求服务所造成的流量压力和延迟。仿真结果表明,该协作缓存框架可以在内容命中率和服务延迟方面提高用户满意度。
缓存网络中用户行为的分析已被广泛讨论。Ndikumana等人在自主汽车网络中做出缓存决策之前预测了用户的特征[7]。Divine等人提出了一种基于乘客特征的自动控制系统[8]。Mahmood等人通过考虑可实现数据速率的历史统计数据,开发了一种概率缓存方案,用于在边缘节点存储内容块[9]。为了提高预测精度,Xia等人根据用户过去的长期和短期轨迹提出了一种位置预测方法[10]。考虑到时空因素,Cheng等人设计了一种马尔可夫预测方法[11]。此外,许多研究(如[12,13])表明,使用FL预测用户行为可以减少边缘和用户之间传输的数据量,从而缓解传输压力,保护用户隐私。然而,在缓存网络中,当前有关行为预测的工作仅限于本地区域中的单个用户,并且忽略了跨区域用户请求的内容的相似性,这导致ES缓存重复的内容。
在协作缓存方案中,内容请求可以由本地或邻居ESs提供。Furqan等人为5G网络设计了一种协作缓存方案,以提高缓存利用率[1]。Song等人在雾计算下利用高级信息中心网络原理开发了一种智能协作缓存方案[2]。Wang等人利用以信息为中心的网络,提出了一种具有社会意识的雾网络,它允许ESs在本地区域缓存内容[5]。尽管这些工作探索了协作边缘缓存模式,但它们没有为ESs提供特定的内容缓存方案,导致低命中率和缓存利用率。
为了解决这个问题,基于整数线性规划(ILP)、启发式算法或半启发式算法设计了几种缓存算法[4-5]。其中,基于ILP的方法可以得到最优解,但求解时间相对较长[6]。启发式方法可以快速解决问题,但可能陷入局部最优。相比之下,DRL算法通过不断从复杂环境中学习,可以快速解决高维和网络资源管理相关的问题。因此,Zhong等人提出了一种基于深度参与者-批评者DRL的多代理缓存框架,以最小化总体传输延迟[3]。Chien等人设计了一种基于移动边缘计算的协作缓存方法,该方法由Q-learning提供支持[14]。虽然上述工作实现了缓存和传送方案的联合优化,但它们只考虑局部区域的独立优化,而忽略了通过边缘协作可以提高缓存性能。
为此,我们允许多个ESs形成协作缓存网络,并使用DRL根据用户行为联合优化ESs的内容缓存和交付策略。
如图1所示,MECC框架包括一个内容中心服务器(CCS)、多个ES和MUE。MUE通过无线链路与ESs通信,ESs通过可靠的回程链路与CCS连接。区域被定义为ES服务(覆盖)的区域。我们假设区域没有重叠。ES从CCS下载内容,在本地缓存这些内容,并将内容交付给MUE。考虑到跨区域用户的移动性,MUE在下载完整内容之前会经过多个区域。因此,本文提出了一个协作缓存域,以避免冗余缓存和内容重新传输。
具体来说,可以根据用户的时变行为将多个ESs聚集到一个组中,这些ESs覆盖的区域被定义为DCCD。为了构建高效稳定的DCCD,我们首先使用在ESs和MUE之间执行的FL,根据内容偏好和移动轨迹预测用户行为。然后,CCS收集所有ES的预测结果,将ES相应地划分为DCCD。在形成的DCCD中,我们使用DRL来优化内容缓存和交付策略,即分别决定应在ES上缓存哪些内容以及如何将请求的内容交付给MUE。这些策略以列表的形式存储在ES上(即缓存解决方案列表)。当MUE请求内容时,直接连接的ES会将请求的内容与缓存解决方案列表进行比较,并确定内容是否可以由当前DCCD传递。如果没有,我们将引入跨域内容交付策略,以允许其他DCCD中的ES向用户提供和转发内容。我们提议的框架的详细描述如下。
FL:federal learning 联邦学习
由于传统的基于云的方法(MUE应将所有数据传输到集中的云位置)难以满足日益严格的隐私保护和信息共享要求,因此提出了基于FL的用户行为预测模型,以预测用户的移动轨迹和内容偏好。预测过程如图2的步骤1-4所示。
ES首先向MUE传输初始区域共享模型。然后,MUE利用其请求内容和轨迹的本地历史数据来训练区域共享模型,并获得更新的模型。接下来,MUE将更新模型的参数发送回ES。最后,专家系统汇总来自MUE的所有更新模型的参数,并构建更新的区域共享模型。重复上述步骤,直到获得令人满意的区域共享模型。同时,区域内MUE的内容偏好和预测轨迹存储在ES中。
请注意,通过使用FL,只将用户行为预测模型的参数上传到ESs,这样可以避免泄露用户生成的私有数据,并减少用户与边缘节点之间的流量压力。如图2的步骤5和10所示,预测结果存储在ES中,并进一步用于构建DCCD,以及确定缓存和交付策略。具体预测过程如下。
步骤1:初始模型下载:由于ES需要知道每个MUE的内容偏好和运动轨迹,所有MUE都应该执行FL训练过程。因此,大量的训练节点可以保证更准确的模型。然而,具有高移动性的跨区域用户可能在完成FL培训之前离开本地区域。面对这个问题,ES允许MUE直接使用从上一地区的ES下载的模型,并在当前地区继续FL训练过程。因此,可以加快区域共享模式的培训进程。
步骤2:FL模型的分布式训练:在接收到的初始模型的基础上,MUE利用其请求内容和轨迹的本地历史数据来训练区域共享模型,然后收敛到更新的模型。在训练过程中,我们的目标是平衡训练时间和预测精度。
步骤3:上传更新模型的参数:MUE获取更新模型后,将本地模型的参数上传到ES。为了减少传输延迟,模型可以在上传到ES之前使用统一量化编码方法进行压缩[12]。
步骤4:集中式模型聚合:ES通过对本地模型的所有接收参数进行加权聚合,生成新的区域共享模型。当前的区域共享模式将用于下一轮培训。由于联邦平均(FedAVG)算法可以增加局部训练时间并减少小批量大小[12],因此我们将其应用于我们提出的MECC框架中。在聚合过程中,每个MUE利用其历史数据本地计算其区域共享模型的平均梯度。然后ES通过取加权平均和来聚集这些计算的梯度,并应用更新梯度。为MUE设置权重时,ES会为训练时间较长的MUE分配较高的权重。重复上述过程直到整个训练过程收敛,然后最终建立用户行为预测模型。
在用户行为预测的基础上,CCS首先基于AGglomerative NESting(AGNES)聚类算法对ESs进行聚类[7]。聚类原则是将具有相似行为的用户分类到一个类别中,并将这些用户所属的ES合并到一个DCCD中。然后CCS选择域中服务负载较低的ES作为簇头。因此,部署在集群头节点上的服务器充当域管理服务器(DMS),负责维护DCCD的稳定性。如图2的步骤5-9所示,该过程的具体描述如下。
第1步:用户行为信息收集:ESs将区域用户行为、用户密度及其能耗信息的预测结果上传至CCS。
步骤2:DCCD建立:首先,CCS根据预测的用户内容偏好,使用自组织地图(SOM)分类算法[7]将用户分类到不同的职业,例如学生和农民。根据用户职业,整个地理区域可划分为若干功能区,如学校区和农场区。然后CCS计算每个功能区域的平均用户密度,并选择用户密度相对较高的区域作为初始聚类,并通过应用AGNES聚类算法开始聚类过程。在合并过程中,有多个初始簇,它们逐渐合并到最近的区域。请注意,A区域只能合并到一个簇中。重复合并过程,直到形成所有簇。每个集群被视为一个DCCD。
步骤3:簇头选择:如图所示。图1和图3中,除了记录所有ESs的缓存内容和工作状态以维护集群结构之外,集群头节点上的DMS还充当DRL代理,负责决定缓存和交付策略。
因此,与其他ESs相比,DMS消耗更多的能量。出于这个原因,我们更倾向于选择服务负载较低的ESs作为集群头,从而使DMS具有更大的可用计算能力。CCS向ESs发送群集信息,包括DCCD中所有ESs的地址、连接状态和负载。通过分析聚类信息,ES确定它们属于哪个DCCD以及哪个边缘节点成为簇头(即,哪个ES成为DMS)。
步骤4:DCCD再生:当用户行为发生显著变化时,为了保证MUE的服务体验,需要自适应地更新DCCD的结构。如图2的步骤9所示,在生成DCCD和相应的簇头之后,DMS定期计算DCCD的服务失败率。服务失败意味着当前DCCD中的缓存内容无法满足其覆盖用户的内容请求。CCS监控所有DCCD的服务故障率,并为DCCD设置可容忍的最大服务故障率(MSFR)。如果DCCD的服务故障率高于MSFR,CCS将执行步骤1以重新生成DCCD。DCCD再生过程中的数据通信协议如图3的过程(a)所示。
通过以上步骤,我们建立了一个合理的边缘协作域。接下来,我们需要在生成的DCCD的基础上获得高效的内容缓存和交付策略。
在本节中,针对DCCD提出了一种基于深度确定性策略梯度(DDPG)的内容缓存和交付算法。
通常,缓存框架的性能需要从多个维度进行衡量。一方面,高的内容命中率表明ESs可以缓存更多有价值的内容并充分利用存储资源。另一方面,低延迟反映了用户可以更快地获得请求的内容。在本文中,由于DCCD通过多个ES之间的协作缓存和内容共享为跨区域用户提供缓存服务,因此我们应该从全局角度衡量DCCD的总体缓存性能。因此,我们将平均命中率和延迟的加权和定义为域的服务满意度指数(SSID)。
为了解决内容缓存和交付的耦合优化问题,我们将此服务过程表述为双时间尺度模型[4]。这意味着内容缓存策略和交付策略分别在大时间尺度和小时间尺度上制定。我们假设优化目标是在服务延迟和ESs存储容量的约束下提高SSID。然而,内容缓存和交付的耦合优化已被证明是一个NP难题[15]。因此,我们将其转化为马尔可夫决策过程(MDP)。
通常,DCCD的状态被建模为马尔可夫链,其中每个时隙对应于一个状态。马尔可夫链连续地产生独立的连续状态。DMS尝试不同的缓存和交付策略,并从周围环境中学习最佳策略。
为了描述MDP,其基本元素,包括状态空间、动作空间和奖励,定义如下。
状态空间:DCCD的状态包括MUE的位置、请求的内容、内容偏好、移动轨迹和ES缓存状态。
Action Space:它包括内容缓存和内容交付策略,它们分别决定ESs上缓存的内容和内容交付路径。
奖励:奖励用于获得最大SSID。因此,SSID被定义为DRL代理的奖励。
通过调查和分析,我们可以得出结论,整数线性规划、启发式算法和半启发式算法都是为了寻找离散联合优化问题的最优解。与上述方法不同,所提出的基于DDPG的算法可以不断地从复杂环境中学习,从而做出行动决策。算法的过程如图2的步骤10-12所示,关键过程可解释如下:
步骤1:每个代理从状态空间确定状态S,并获取其特征向量。
步骤2:动作A从当前演员网络中的动作空间中获得。
步骤3:执行动作A,获得新状态S’,奖励R,判断S’是否为终端状态。
步骤4:将样本放入体验回放池。
步骤5:从体验回放池中抽取下一个状态、动作、奖励和下一个动作;然后计算当前目标Q值。
步骤6:通过梯度反向传播更新当前批评者网络和当前参与者网络的所有参数。
步骤7:将最新的网络参数复制到目标网络。
缓存和交付策略制定过程中的数据通信协议如图3的过程(b)所示。它描述了节点之间的信息交互:DMS首先决定ESs的缓存内容,并根据所提出的基于DDPG的优化算法规划到DCCD中MUE的传输路径;该策略存储在ES和DMS上的缓存解决方案列表中。参考该列表,ESs缓存来自CCS的内容并侦听来自MUE的内容请求。如果要缓存的内容已存储在ES中,则不会再次下载该内容。最后,如图3的过程(c)所示,当MUE请求内容时,直接连接的ES将该请求与缓存解决方案列表进行比较,并确定当前DCCD和内容交付模式是否可以交付内容。
在DCCD中,有两种域内内容交付模式:
如果根据缓存解决方案列表,当前DCCD无法满足请求,我们将进一步引入跨域内容交付策略,以允许其他DCCD中的ESs向MUE提供和转发内容。如图1DMS3的步骤4和5所示,向相邻的DCCD广播内容请求。这允许相邻DCCD中的DMS2找到相应的缓存内容,并将内容f转发到当前DCCD中ES5。在接收到内容f之后,ES5最终将内容f转发给MUE。跨域内容交付中的通信协议如图3(d)所示。
为了验证所提出的MECC框架和缓存算法的性能,我们使用Python构建了一个仿真环境,并使用TensorFlow平台实现了所提出的基于DDPG的边缘协作缓存和交付算法(DDPG-CoCaching)。为了进行比较,以下两种缓存算法用于基线:
随机非协作缓存算法(Random Non-Collaborative Caching Algorithm,随机缓存):ESs仅单独提供本地缓存服务,很少考虑彼此缓存和共享内容。此外,内容缓存和交付策略是随机制定的。
基于DDPG的非协作缓存算法(DDPG缓存):ESs根据DDPG学习算法制定内容缓存和交付策略。与随机缓存类似,它只允许ESs独立提供服务。
在相同的输入下,我们首先比较了DDPG CoCaching和DDPG Caching的收敛性。如图4所示,我们可以看到DDPG CoCaching比DDPG Caching需要更多的训练步骤才能达到收敛。原因是,由于DDPG CoCaching考虑了ESs之间的协作,因此其训练环境也更加复杂。然而,DDPG CoCaching具有较低的训练损失,这与缓存性能(延迟和命中率)有关。较低的训练损失表明,在收敛后,DDPG CoCaching比DDPG caching具有更好的缓存性能。
事实上,内容缓存和交付过程中累积的延迟远大于培训过程,后者在用户可接受的范围内。因此,在模型收敛后,可获得以下性能分析数据。
接下来,我们比较这三种算法在平均内容命中率和延迟以及SSID方面的性能,如图5和6所示。
首先,我们将所有DCCD的平均延迟作为性能指标。如图5所示,所提出的DDPG CoCaching算法具有最小延迟。这是因为在MECC框架下,随着缓存容量的增加,ESs可以通过调查用户行为的规律性来缓存更有价值的内容,从而提前决定应该缓存哪些内容。域内和跨域递送模式可以尽可能满足边缘MUE的内容请求。然而,在随机缓存中,没有学习过程,内容缓存和交付策略是随机制定的。在随机缓存下,ESs可能无法缓存流行内容,需要实时从CCS下载请求的内容,从而导致高延迟。而DDPG缓存具有加速策略制定过程的学习能力,可以选择性地缓存热门内容,但无法实现边缘节点缓存资源的共享。换句话说,DDPG缓存仅允许ES为其连接的MUE提供缓存服务。因此,当直接连接的ES无法满足MUE的内容请求时,连接的ES应该从CCS下载请求的内容,这也会导致很大的响应延迟。
然后,我们将内容命中数与总用户请求的比率定义为内容命中率,以衡量ESs的缓存效率。从图5我们可以发现,当ES的缓存容量相对较低时,不同算法的平均内容命中率是相似的。随着缓存容量的增加,我们提出的DDPG CoCaching明显优于其他缓存。结果表明,所提出的DDPG CoCaching可以减少重复缓存,缓存更有效的内容。原因在于,它联合利用多个边缘节点的缓存能力,并从用户的内容请求历史中提取和学习行为特征,从而通过FL精确预测内容偏好。相比之下,随机缓存遵循静态规则,忽略了内容偏好的变化。虽然DDPG Caching也使用DRL来考虑内容偏好的影响,但其学习过程只关注当前的ES,导致ES之间缓存了大量重复内容。
最后,我们比较了不同算法的SSID。如上所述,SSID是DCCD中平均命中率和延迟的加权和。如图6所示,所提出的算法具有最高的SSID。这是因为通过DCCD的构建以及缓存和交付策略的联合优化,MECC框架利用了ESs之间的协作缓存和DRL的学习能力,以保证低服务延迟,同时确保高内容命中率。
在本文中,我们探讨了边缘服务器的缓存容量聚合,并设计了一个基于DRL的MECC框架,使多个ESs能够为高速移动服务提供定制的缓存服务。我们首先设计了一个基于FL的用户行为预测模型来表征用户内容偏好和移动轨迹。然后,基于预测的用户行为,提出了动态协作缓存域(DCCD)的构建和管理机制。它将ESs划分为簇,选择簇头,并设置重簇规则,以便在ESs之间有效地聚合和共享缓存资源。对于已建立的DCCD,我们提出了一种基于DRL的内容缓存和交付算法,以进一步提高缓存利用率并规划更好的交付路径。最后,我们引入了一种跨域内容交付策略,以在边缘完成用户的内容请求。仿真结果表明,所提出的MECC在内容命中率和总体系统延迟方面优于随机缓存和DDPG缓存。在未来的工作中,我们可以利用用户终端的缓存能力,并讨论云边缘终端协作网络架构中的缓存问题。