TripRes:基于交通流量预测的多媒体车联网边缘计算资源预留
1 引言
物联网(IoT)的发展正推动传统车载自组织网络向车联网(IoV)转变,促进了智能交通系统的进一步发展[6]。在车联网系统中,多媒体设备(例如汽车导航系统、行车记录仪和汽车音响系统)产生大量需要处理的数据,以向用户提供道路安全和驾驶舒适性[16]。为了有效处理车联网中的多媒体数据并满足用户需求,一个强大的多媒体信息网络正在车联网系统中发展[20, 31]。
由于多媒体车联网系统中的车辆处于快速移动状态,多媒体车联网系统对低延迟有很高的需求。如果车辆生成的任务数据不能及时处理,将导致用户体验不佳甚至交通事故[9]。然而,由于车辆与云计算中心之间的地理距离较远,将任务数据发送到云进行处理无法满足该需求[4]。在此情况下,边缘计算作为一种新的计算范式被引入,以补充云,提升数据处理性能[2, 29]。边缘计算将计算资源部署在网络边缘,使得数据可以被发送到最近的边缘节点进行处理,从而显著降低了数据传输延迟[25, 32]。通过充分且高效利用资源预留策略,延迟可进一步降低[24]。然而,由于边缘服务器资源有限,在边缘服务器资源不足时,还需预留云中的资源。因此,构建了边云框架以满足低延迟和充足资源的需求。图1展示了边缘-云计算环境下多媒体IoV系统的资源预留框架。
在该框架中,车辆生成多媒体数据,并将这些数据发送至多媒体边缘服务器或云以处理不同的任务。处理完成后,数据会重新发送给道路上的车辆。例如,车辆中的行车记录仪记录下事故图像,并将其发送到多媒体边缘服务器;随后,边缘服务器获知事故发生,便将此信息发送给其他车辆,以通知其前方发生的事件。该过程需要低延迟,因为其他车辆越早接收到信息,就越有充足的时间将不得不采取行动。为了实现低延迟目标,我们需要在多媒体边缘服务器或云中预留资源。此外,为了避免边缘服务器过载,应设置边缘服务器资源使用的阈值。由于交通流量可以反映未来所需的资源数量,例如,交通流量较大的区域比流量较小的区域需要更多的计算资源,因此对边缘节点的资源预留应基于交通流量预测[1, 14]。在该框架中,交通流量可通过道路沿线的多媒体监控摄像头进行跟踪,并记录最近和历史的交通流量信息。这些摄像头将交通流量信息发送到多媒体云,云随后根据未来交通流量信息预测未来的交通流量,并向多媒体边缘服务器发送资源预留请求。
然而,每个区域的交通流量难以预测,因为它受到许多因素的影响(例如天气和节假日)。近年来,随着深度学习方法的快速发展,交通流量预测准确性得到了有效提升[7, 17]。深度学习方法通过组合低层特征来发现数据的分布式特征表示,从而创建更抽象的高层表示以描述属性类别或特征[12, 15]。借助深度学习方法,可以提取历史交通流量的特征,从而精确预测交通流量[21]。
然而,在我们的工作之前,很少有研究使用深度学习方法来预测交通流量,并在多媒体车联网系统中构建资源预留方法。为了满足低延迟和高服务性能的需求,如何准确调度并动态预留适量的资源给边缘服务器上的多媒体服务,仍然是一个挑战。本文针对多媒体IoV系统设计了一种基于交通流量预测的资源预留方法,命名为TripRes。具体而言,本文的主要贡献如下:
- 城市地图被划分为不同的区域,同一区域内的边缘服务器被视为“大型边缘服务器”,以降低边缘服务器地理分布的复杂性。
- 一种称为深度时空残差网络(ST-ResNet)的深度学习模型[33],被用于预测城市的交通流量。
- 所有多媒体服务的卸载目的地通过延迟敏感的传输路径确认来实现。
- 在中国南京使用包含超过1亿多条多媒体监控记录的真实世界大数据集来评估ST-ResNet模型,并进行了大量实验以评估TripRes的性能。
本文其余部分组织如下:第2节描述了本文的相关工作。第3节和第4节介绍了交通流量预测与资源预留的方法。第5节进行了大量实验。在第6节中,我们总结了本文并展望了未来。
2 相关工作
车辆数量的不断增加以及车辆上配备的各种传感器,使得车联网(IoV)成为一个信息丰富的环境,能够提供多种多样的服务[26]。在此系统中,多媒体在自动驾驶、智能导航和环境感知等多种应用中发挥着重要作用。许多先前的研究将车载网络与多媒体相结合。例如,Xiao等人[30]成功扩展了车辆的感知范围,为驾驶员扩大了可视区域。Warabino等人[28]提出了一种用于车对车通信的自适应媒体切换方法。Hu等人[11]提出了一种车际分发系统,可在相邻车辆之间呈现实时媒体内容,以提高驾驶安全性。然而,这些研究仅关注车辆之间的通信。我们的工作还进一步考虑了车辆与路侧单元(RSUs)上的边缘服务器之间的通信,以及车辆与云之间的通信。
边缘计算(EC)得益于其更短的传输距离以及网络边缘相对充足的计算资源。通过边缘计算,实现了减少拥塞、更短的响应时间和降低回传线路能耗的目标[24, 27]。这一有前景的范式已被广泛应用于多种实际场景中。边缘计算在诸多领域表现出色,包括但不限于即时反馈、隐私保护和大数据处理。Bilal等人[3]探讨了边缘计算在视频流和多媒体应用中的潜力与前景。Ngoko和Cérin[18]专注于构建智能家庭服务,并提出了一种称为Qarnot平台的边缘计算模型用于设计智能建筑,其中加热器具备一定的计算能力并连接到互联网。Ren等人[23]将基于移动边缘计算的协同增强现实建模为一种可行方案,以应对受限带宽和高负载带来的挑战。这些先前的研究成功地将边缘计算应用于各种场景,以应对资源约束和降低延迟的挑战。然而,它们均未采用资源预留方法来避免边缘服务器的过载或欠载。
由于车联网(IoV)中边缘服务器的工作负载与交通流量密切相关,因此可以根据交通流量预测提前预留适量的资源。深度学习在以往的研究中已展现出卓越的交通流量预测能力[5]。本文采用深度ST-ResNet作为预测交通流量的有效方法,并基于预测交通流量对大规模边缘计算节点中的多媒体服务资源进行调度。残差网络最初由何和张[10]提出,用于解决深度神经网络训练中的退化问题。张等人[33]基于残差网络提出了ST-ResNet,利用时空数据预测全城人群流动。自ST-ResNet提出以来,越来越多的研究将其应用于不同场景并取得了显著成果。Jia等人[13]提出了一种基于ST-ResNet的环路滤波器,用于高效视频编码。Feichtenhofer等人[8]将残差学习与时空机制相结合,用于检测视频运动,使网络关注时空特征。研究人员宁[19]设计了一种基于ST-ResNet的模型来模拟地铁站的人群,结合节日和天气等外部因素,进而预测进出地铁站的客流。
在我们的工作之前,已有一些研究人员(如张或宁)使用ST-ResNet来预测人流,但尚无人将ST-ResNet应用于交通流量预测。张和宁的研究证明了在车联网系统中使用ST-ResNet预测交通流量的合理性与有效性,并进一步利用预测结果在边缘计算节点上调度计算资源。然而,在设计资源预留策略以实现数据传输和处理的低延迟方面,仍然存在挑战。
3 基于ST-ResNet的多媒体车联网系统交通流量预测
如第1节所述,交通流量预测对于多媒体车联网系统中的资源预留至关重要,因为借助预测的交通流量信息,资源预留可以更加准确和高效。虽然了解某一区域未来的交通流量对资源预留非常有用,但对其进行预测却十分困难,因为交通流量受到时间、空间以及外部因素(例如天气和节假日)等多种因素的影响。这些因素使得交通流量预测具有挑战性。根据以往研究,传统的统计时间序列处理方法在该类任务中表现较弱[33]。此外,由于常见的深度学习模型(如长短期记忆网络(LSTM)或卷积神经网络(CNN))仅考虑历史交通流量数据的一维依赖性,因此这些方法在交通流量预测中难以实现较低的预测误差。然而,ST-ResNet在学习未来交通流量与这些因素之间关系方面表现出强大的能力。
ST-ResNet首先捕捉不同区域交通流量之间的关系,然后捕捉时间依赖性,随后提取外部特征的依赖性,最终将这些依赖性进行整合。利用历史记录,可以对该模型进行训练,并由模型计算出未来交通流量。TripRes的第一部分基于ST-ResNet。
3.1 从多媒体监控记录到交通流量矩阵的转换
由于多媒体监控摄像头仅以一维向量的形式记录车辆经过摄像头时的地理坐标和时间,这些记录无法反映空间特征。为解决此问题,将多媒体监控记录整理为交通流量矩阵,用以表示不同区域和不同时间间隔内的交通流量。
如图2所示,城市地图根据经度和纬度被划分为R × W个方格,地图中的每个方格表示一个区域。如果某个区域位于第i行第j列(i和j从0开始),则可通过公式n = i × W + j进行编号。因此,一个区域有两种表示方式:向量(i,j)或编号n。
在时间间隔t内,一个区域的交通流量是通过该区域的车辆总数。设Ct为在第t个时间间隔内地图上的车辆集合。对于给定区域(i,j),第t个时间间隔的交通流量可定义为
$$
tf_{i,j}(t) = \sum_{n=1}^{|C_t|} I(veh_n),
$$
其中,$I(veh_n)= \begin{cases} 1 & veh_n \in (i,j) \ 0 & veh_n \notin (i,j) \end{cases}$ 表示第n辆vehi是否位于区域(i,j)内;vehi表示第n辆vehi的地理坐标,而vehn ∈(i,j)表示第n辆vehi位于区域(i,j)内,反之亦然;$|\cdot|$表示集合的基数。
交通流量矩阵由不同区域的交通流量组成。设Ft为时间间隔t时的交通流量矩阵,第i行第j列的元素为$tf_{i,j}(t)$(即$F_t = [tf_{i,j}(t)]$)(如图2所示)。交通预测问题定义如下:给定历史交通流量矩阵Fi、i ∈ {1, 2,…, t − 1},预测时间间隔t时的交通流量矩阵。
3.2 捕获空间依赖关系
在深度学习中,卷积通常用于捕捉邻近和遥远区域之间的依赖关系。此过程如图3所示。通过使用具有3 × 3个内核的卷积层,输入中九个相邻区域的依赖关系被捕捉为输出1中的一个元素(即蓝色部分)。然后,该输出被送入另一个卷积,输入中所有25个区域的依赖关系可被捕捉为输出2中的一个元素。因此,通过堆叠卷积,可以捕捉遥远区域甚至全城范围依赖关系。
为了捕捉更多区域之间的依赖关系,应添加更多的卷积。然而在实际中,向网络中添加更多卷积并不总是降低训练损失。相反,由于退化问题,更深的网络可能表现不如适当深度的网络。为解决此问题,ST-ResNet采用了深度残差学习框架。该残差学习框架以一个卷积开始,接着是一系列残差块,可有效应对退化问题,最后以另一个卷积结束。在多媒体IoV系统中,历史交通流量矩阵根据时间间隔被划分为三组,以便进一步处理以捕捉时间依赖性。这三组交通流量矩阵分别表示为$F^{(0)}_c$、$F^{(0)}_p$和$F^{(0)}_q$,对应近期时间、近期历史和远期历史的交通流量,并分别输入到第一个卷积层。不失一般性,令$F^{(0)}$作为第一个卷积层的输入
$$
F^{(1)} = f(W^{(1)} * F^{(0)} + b^{(1)}),
$$
其中$W^{(1)}$和$b^{(l)}$是可学习参数。$F^{(0)}$和$F^{(1)}$分别是卷积的输入和输出;*表示卷积,f是激活函数,通常为“ReLU”。然后将$F^{(1)}$输入到残差块序列中作为
$$
F^{(l+1)} = F^{(l)} + H(F^{(l)};\theta^{(l)}) \quad l= 1, 2,…, L,
$$
其中,$F^{(l)}$和$F^{(l+1)}$分别是第l个残差块的输入和输出;H为残差函数;$\theta^{(l)}$表示第l个残差块中的可学习参数。在本研究中,采用一“ReLU”层与卷积层的堆叠作为残差函数,实验表明其效果优于两个或更多堆叠;L为残差块数量。经过另一次卷积后,近期时间、近期历史和远期历史交通流量矩阵的空间依赖性被分别捕捉为$F^{(L+2)}_c$、$F^{(L+2)}_p$和$F^{(L+2)}_q$。
3.3 获取时间依赖性
正如我们在日常生活中所经历的,一个区域的未来交通流量与近期时间、近期历史和远期历史的交通流量存在关联。例如,两个连续时间间隔之间的交通流量不会相差太大。工作日办公区域的交通流量相似,而与周末的交通流量不同,并且由于冬季昼短夜长,交通拥堵发生的时间相比夏季更早。然而,近期、近期历史和远期历史对交通流量的影响程度各不相同。基于这些事实,对近期时间、近期历史和远期历史交通流量的输出赋予不同的权重。因此,基于参数矩阵的融合定义为:
$$
F_{st} = W_c \circ F^{(L+2)}_c + W_p \circ F^{(L+2)}_p + W_q \circ F^{(L+2)}_q,
$$
其中○是哈达玛积(即逐元素乘法)。$W_c$、$W_p$和$W_q$是可学习的权重,分别用于调整近期时间、近期历史和远期历史的影响程度。
3.4 从外部特征中提取依赖关系
外部特征,例如天气、节假日和事件,显著影响交通流量。就天气而言,高温会显著降低交通流量。暴雨或其他极端天气会影响住宅区和办公区的交通流量。此外,节假日会增加旅游区的交通流量。另外,大型活动(例如国际会议)由于交通管制,会导致某些区域交通流量急剧下降,而在其他区域增加。
时间间隔t的节假日和事件等外部特征可以直接获取,天气信息可通过天气预报获得。ST-ResNet使用两个全连接层来捕捉外部特征的依赖关系,输出表示为$F_{ex}$。
3.5 将外部依赖与时空依赖相结合
在获取外部依赖性和时空依赖性后,可通过双曲正切函数得到第t个时间间隔的预测值$\hat{F}_t$,该函数定义为
$$
\hat{F}
t = \tanh(F
{st} + F_{ex}),
$$
这确保了输出值在范围[−1, 1]内。
使用均方误差(MSE)作为损失函数,其定义为
$$
L(\theta) = |F_t - \hat{F}_t|^2.
$$
该函数仅受所有可学习参数θ(例如,$W^{(1)}$,$b^{(1)}$和t)的约束;$F_t$是第t个时间间隔的真实交通流量矩阵。模型的训练利用历史交通流量矩阵来确定所有可学习参数的一组取值,使得预测的流量矩阵与真实流量矩阵之间的均方误差最小化,即$\theta = \arg\min_\theta L(\theta)$。一旦正确学习了这些参数,将历史交通流量矩阵输入模型后,便可精确预测时间间隔t的交通流量。
4 边缘计算支持的多媒体智能网联汽车中的延迟敏感资源预留
在第3节中,描述了交通预测问题及其解决方案。基于对交通流量的预测,构建了一种资源预留算法。在本节中,首先介绍了资源预留问题的模型。然后,设计了TripRes的第二部分,该部分可以贪婪地解决该问题。
4.1 资源预留模型
如图1所示的框架中,多媒体云向多个边缘服务器发送资源预留请求。如果没有任何一个边缘服务器能够接受某个请求,则该请求由云来接受。使用一个n元组 $\sigma_i = (\sigma_{\text{data_size}}, \sigma_{\text{ins}}, …, \sigma_{\text{key} n})$ 来表示第$i$个车辆在某一时间间隔内请求的资源。元组中的每个元素表示某种特定资源,例如,$\sigma {\text{data_size}}$ 和 $\sigma_{\text{ins}}$ 分别表示第$i$辆车需要传输的数据量和需要执行的指令数。
因此,若将一个区域内的所有边缘服务器视为一个“大型边缘服务器”,并将区域$i$的“大型边缘服务器”记为$V_i$,则区域$i$在时间间隔$t$的资源预留请求可定义为:
$$
S_i^t = (S_{\text{data_size}}, S_{\text{ins}}, …, S_{\text{key}_n}),
$$
其中 $(S_i^t) {\text{key}} = \sum {n=1}^{tf_i^t} (\sigma_n)_{\text{key}}$,$\text{key} \in K = {\text{data_size}, \text{ins}, …, \text{key}_n}$。元组中的元素是资源预留请求所需的特定资源。因此,在第$t$个时间间隔,每个区域请求的资源可以表示为一个张量 $S^t \in \mathbb{R}^{R \times W \times n}$。
类似地,$(S_i^t)_{\text{have}}$ 表示在时间间隔$t$内区域$i$中可接受的最大预留请求数量,可以被定义。不同之处在于,其所有元素均为常数,仅依赖于该区域中服务器自身的属性和时间间隔。
如果向$j$发送了针对区域$i$的预留请求,则可将其表示为$S_i^{j,t}$。对于给定的$i$,若存在某个$j$,使得对于每个键$\text{key} \in K$,均有 $(S_i^t) {\text{key}} \leq (S_j^t) {\text{have}, \text{key}}$,则称其为从$i$到$j$的一个可行预约,并且该预约可写为 $p_i = (i, j, S_i^t)$。此条件记为条件1。
相反,如果对于给定的$i$和每个$j$,存在一个键$\text{key} \in K$使得 $(S_i^t) {\text{key}} > (S_j^t) {\text{have}, \text{key}}$,则资源预留请求可以分为两部分。其中一部分 $(S_i^t)’$ 满足条件1,另一部分可以在云中进行预留。该过程可表示为 $p_i = (i, j, (S_i^t)’)$, $c_i = (i, S_i^t - (S_i^t)’)$。
根据上述定义,资源预留策略可以被定义为由两个张量组成的集合${P, C}$,其中 $P = [p_0, p_1, …, p_{R \cdot W - 1}]$ 和 $C = [c_0, c_1, …]$。$P$的大小是固定的,等于地图中的区域数量(即$R \cdot W$),而$C$具有可变长度,表示发送到云的资源请求数量。
4.2 延迟模型
车辆向多媒体边缘计算服务器传输数据以及数据处理都需要消耗时间。为了实现低延迟,应最小化数据传输和处理的时间开销。图论被应用于不同场景,例如API推荐[22]。本研究中,将边缘网络抽象为一个加权有向图 $G = (V, E, W)$。在该图中,每个节点代表每个区域的“大型边缘服务器”,即 $V = {V_i | 0 \leq i \leq R \times W - 1}$。每两个区域之间存在两条有向边,每条边表示这两个相邻区域之间的通信链路。边的权重表示通过该边关联的两个区域之间传输数据的时间开销。图G的构建过程如图4所示。
边的权重表示沿该边传输数据的时间开销,可通过以下方式计算
$$
w_e = t_d + p_t + q_t,
$$
其中 $t_d$、$p_t$ 和 $q_t$ 分别表示传输延迟、传播延迟和排队延迟。
边的传输延迟是沿该边发送数据所需的时间开销。边$e$的平均最大发送速率表示为$\text{send_rate}_e$。因此,$t_d$ 可通过以下方式计算
$$
t_d = \frac{S_i^{\text{data_size}}}{\text{send_rate}_e}.
$$
由于两个相邻区域之间的距离相对较短(数十公里),且电磁波在信道上的传播速度极高(数十万公里每小时),$p_t$ 是一个小常数。排队延迟$q_t$与信道利用率相关,服从公式 $q_t = \frac{q_{t0}}{1 - U}$,其中$U$为信道利用率,$q_{t0}$是利用率为零时的排队延迟。由该公式可知,当$q_t$较小时,$U$保持稳定。由于目标是避免边缘服务器过载,因此设置了边缘服务器资源使用的阈值,记为$th$。因此,$U$被限制在一个较小的值,$q_t$可视为一个常数。由于$q_{t0}$通常很小,$q_t$也被限制在较小的范围内。
因此,根据公式(9)和上述分析,$w_e$可重写为
$$
w_e = \frac{(S_i^t)_{\text{data_size}}}{\text{send_rate}_e} + \text{Constant},
$$
其中常数 = $p_t + q_t$相对较小。
如果做出了可行预约,或预约的一部分被区域$j$接受,则数据将在区域$j$的计算能力下进行处理,且处理时间可据此计算
$$
pd_j = \frac{(S_i^t)
{\text{ins}}}{\text{process_speed}_j} \quad \text{or} \quad pd_j = \frac{(S_i^t)’
{\text{ins}}}{\text{process_speed}_j},
$$
其中 $\text{process_speed}_j$ 表示区域$j$中中央处理器的平均速度。如果预留无法满足条件1,$pd$将被设为$+\infty$,意味着该预留不可行。
因此,对于给定的$i$,如果来自$i$的预留请求在时间间隔$t$被$j$(部分)接受,则传输和处理数据的总时间开销可通过以下方式计算
$$
\text{time_cost}
{i,t} = \sum
{e \in Tr} w_e + pd_j,
$$
其中,$Tr$ 是预留请求经过的有向边的集合。
4.3 资源预留问题定义
为了实现低延迟,每次预留的时间开销应尽可能最小。此外,由于在云中处理数据会导致高延迟和边缘服务器的欠载,因此也应最小化云所接受的预留请求的总数据大小。另外,由于边缘服务器的过载问题需要得到解决,因此在多媒体边缘服务器中设置了资源使用阈值$th$。因此,资源预留问题被定义为
$$
\min \text{time_cost}
{i,t}, \quad \forall i \in V,
$$
$$
\min \sum
{i=0}^{|C|} (c_i)
1, \text{data_size}.
$$
$$
\text{s.t.} \sum
{i \in V} (S_{ij}^t)
{\text{key}} < (S_j^t)
{\text{have}, \text{key}} \times th, \quad \forall j \in V, \forall \text{key} \in K.
$$
4.4 资源预留问题求解
在资源预留问题的解决方案中,采用了一种简单的贪心策略,以最小化云接受的预留请求的总数据大小:如果存在一个拥有足够资源来接受请求的区域,则该区域接受该预留请求。在第4.2节中,我们了解到
$$
\text{time_cost}
{i,t} = \sum
{e \in Tr} w_e + pd_j
$$
and
$$
w_e = \frac{(S_i^t)_{\text{data_size}}}{\text{send_rate}_e} + \text{Constant}.
$$
根据公式(14)和(15),我们可以得到
$$
\text{time_cost}
{i,t} = \sum
{e \in Tr} \frac{(S_i^t)_{\text{data_size}}}{\text{send_rate}_e} + pd_j + |Tr| \times \text{Constant}.
$$
由于常数根据之前的分析是一个相对较小的值,可以将其视为0。因此,$|Tr| \times \text{常数}$在公式(17)中可以忽略,目标函数可重写为
$$
\text{time_cost}
{i,t} = \sum
{e \in Tr} \frac{(S_i^t)_{\text{data_size}}}{\text{send_rate}_e} + pd_j.
$$
加法的第一部分表示数据从区域$i$传输到区域$j$所经过的最短路径长度,而$pd_j$表示如果请求被区域$j$接受时处理数据所需的时间。因此,最小化$\text{time_cost}_{i,t}$转化为如下问题:寻找一个区域$j$,使得从区域$i$到区域$j$的距离(即最短路径长度)加上处理时间$pd$在所有其他区域中最小。距离与处理时间之和的最小值可以通过Dijkstra最短路径优先(SPF)算法高效求解,该算法已被证明能够以$O(|V|^2)$的时间复杂度解决最短路径问题;通过二叉堆优化,时间复杂度可进一步降低至$O((|V| + |E|)\log_2 |V|)$。在已知区域$i$到其他任意区域的距离后,可根据公式(12)计算出处理时间,并将其与相应的距离相加。最终选择距离与处理时间之和最小的区域$j$作为接受预留请求的区域。如果距离与处理时间的最小和为$+\infty$,则表示满足条件1的区域不存在,因此该请求应由云来接受。
算法1详细描述了寻找最佳资源预留策略的过程。输入包括历史交通流量观测$F_1, F_2…$,$F_{t-1}$、每辆车辆对多媒体服务所需的平均资源$\sigma$、每个区域在时间间隔$t$内的资源$(S^t) {\text{have}}$、所有边的平均最大发送速率$\text{send_rate}$、所有区域中“大型边缘服务器”的CPU平均速度$\text{process_speed}$,以及多媒体边缘服务器中的资源使用阈值$th$。算法1的输出是资源预留策略${P, C}$。首先,将历史交通流量观测输入到训练好的ST-ResNet模型中,以获得未来交通流量$F_t$。其次,将$S$、$C$和用于记录请求未满足区域的记录变量Rec初始化为空集合。接着,针对每个区域$i$,首先更新每个区域所拥有的资源数量,然后计算区域$i$需要预留的资源量。根据$th$,计算出区域$i$可预留的资源数量为$S {\text{have}}$。如果在区域$i$可以进行可行预约,则区域$i$接受该预留请求;否则,部分接受该预留请求,并使用Rec记录该预留请求为未满足,如算法1中的第7到第13行所述。然后,对于所有预留请求未满足的区域,应用SPF算法确定需要资源的区域与其他区域之间的距离。最后,找到区域$j$作为
距离区域$i$最近的区域,并接受该预留请求。如果$j$等于−1,表示没有满足条件的区域,则将资源请求上传至云。最终输出的资源预留策略为${P, S}$。
算法1:TripRes
Input: $F_1, F_2…$,$F_{t-1}$, $\sigma$,$(S^t)_{\text{have}}$,发送_速率,处理_速度,$th$。
Output: 资源预留策略 ${P, C}$。
- 将$F_1, F_2…$、$F_{t-1}$输入ST-ResNet以预测$F_t$
- $P \leftarrow \emptyset$, $C \leftarrow \emptyset$,接收 $\leftarrow \emptyset$
- 对于所有区域$i$执行
- 更新 $(S^t)_{\text{have}}$
- 计算区域$i$的资源预留请求$S_{\text{need}}$,使用$F_t$和$\sigma$
- $S_{\text{have}} \leftarrow (S_i^t)_{\text{have}} \times th$
- 如果 $(S_{\text{need}}) {\text{key}} \leq (S {\text{have}})_{\text{key}}$ 对于每个键 $\text{key} \in K$ 则
- $P \leftarrow P \cup {(i,i,S_{\text{need}})}$
- else
- $P \leftarrow P \cup {(i,i,S_{\text{have}})}$
- $S_{\text{need}} \leftarrow S_{\text{need}} - S_{\text{have}}$ // −为逐元素减法
- Rec $\leftarrow$ Rec $\cup {i}$
- 结束如果
- 结束循环
- 对于所有$i$在Rec中执行
- 构建 $G=(V,E,W)$
- 使用SPF算法找到一个区域$j$,使其距离与处理时间之和最小
- 如果 $j = -1$ 则
- $C \leftarrow C \cup {(i,S_{\text{need}})}$
- else
- $P \leftarrow P \cup {(i,j,S_{\text{need}})}$
- 结束如果
- 结束循环
- 输出 ${P, S}$
图5展示了TripRes的流程图。首先,利用历史交通流量观测来预测第$t$个时间间隔的交通流量。结合预测交通流量以及第$i$辆车希望预留的资源(可通过统计方法获得),可得到所有区域的资源预留请求$S^t$。然后,针对每个区域,检查该区域内的“大型边缘服务器”是否能够接受本地资源预留请求。如果可以,则接受该请求;否则,该区域接受部分请求,并将其未满足的部分记录下来。处理完所有区域后,在那些请求未完全满足的区域中,采用SPF算法寻找能够接受剩余请求的最佳区域。若无法找到这样的区域,则由云来接受该预留请求。
采用二叉堆优化的SPF算法的时间复杂度为$O((|V| + |E|)\log_2 |V|)$,因此总时间复杂度为$O(|V|(|V| + |E|)\log_2 |V|)$。
5 实验评估
在本节中,首先评估TripRes的交通流量预测部分。然后,利用预测交通流量对TripRes的资源预留部分进行评估。
5.1 交通流量预测对比分析
5.1.1 设置。
数据集. 使用了2014年9月1日至2014年9月30日期间中国南京500多个多媒体监控系统的监控记录数据集(如图6所示)。记录总数超过1亿。南京市地图被划分为72 × 24个区域。在该时间跨度内,包含八个节假日(包括周末),这些将作为外部特征使用。
最后三天的记录被选为测试数据,其余的被选为训练数据。
基线模型。 ST-ResNet模型通过以下三种基线模型进行评估。
- HA(历史平均)。 使用相同时间间隔和相同星期几的历史记录的平均值作为预测交通流量。例如,如果我们想要预测星期四上午10:00至10:30之间的交通流量,则计算所有历史上星期四上午10:00至10:30之间交通流量的平均值作为估计值。
- DeepST。 一种用于时空数据的基于深度神经网络的预测模型,同样将交通流量矩阵分为三组。然而,该模型在后续结构中仅使用卷积层。
- CNN(卷积神经网络)。 CNN使用卷积层和激活函数来捕捉空间依赖性。CNN的输入是第$(t - 1)$个时间间隔的交通流量矩阵。
预处理。 首先,根据第3节中的定义,将多媒体监控记录转换为交通流量矩阵。由于tanh是最终的激活函数,它将我们模型的输出限制在[-1, 1]范围内,为了与输出保持一致,使用最小-最大归一化将交通流量矩阵的值缩放到[-1, 1]范围内。在评估误差时,输出结果会被重新转换并与真实的交通流量进行比较。外部特征被转换为独热编码。
超参数。 使用Python库Keras搭建模型,并以TensorFlow作为后端。在残差块中,每个部分的第一个卷积具有64个滤波器和一个3 × 3核,最后一个卷积具有1个滤波器和一个3 × 3核。残差单元的数量设置为4。在ST-ResNet模型中,有5个额外的超参数,即近期历史交通流量矩阵的时间间隔$p$、远期历史交通流量矩阵的时间间隔$q$、近期时间长度$l_c$、近期历史长度$l_p$和远期历史长度$l_q$,它们分别设置为$l_c \in {0, 1, 2, …, 7}$, $l_p \in {0, 1, 2, 3, 4}$, $l_q \in {0, 1, 2, 3}$。实验中采用了一种学习率方案。初始学习率设为0.001,在80个训练轮次后调整为0.0005。在120个训练轮次后,学习率设为0.00005。此外,选择90%的训练数据用于训练模型,
其余10%用作验证数据,根据验证分数来提前停止训练。提前停止后,模型的训练过程将继续使用完整训练数据集,并对模型进行固定数量的训练轮次(即500)。
评估指标。 采用均方根误差(RMSE)作为评估函数,其定义为
$$
\text{RMSE} = \sqrt{\frac{1}{n} \sum_{i=1}^{n} (F_i - \hat{F}_i)^2},
$$
其中$n$为所有可用真实交通流矩阵的数量。$F_i$和$\hat{F}_i$分别为真实值和预测的交通流矩阵。
5.1.2 对比分析。通过改变网络深度、卷积核大小、残差块结构、是否使用外部特征以及是否使用基于参数矩阵的融合,构建了九种ST-ResNet变体。首先,将这九种ST-ResNet变体与另外三种提及的模型在数据集上进行比较。ST-ResNet中近期时间、近期历史和远期历史的长度分别设置为4、2和3。其次,比较ST-ResNet变体之间的性能。结果如表1所示。最后,调整近期时间、近期历史和远期历史的长度以确定最佳设置。
如表格所示,从横向来看,除了L4-E-noFusion外,ST-ResNet的所有变体均超过了三种基线模型,性能提升幅度为2×到10×。其中L4-E变体表现最佳,均方根误差为134.28。该结果表明,ST-ResNet是一种出色的交通流量预测方法。
从垂直方向分析了不同参数和残差单元结构对ST-ResNet性能的影响。在网络深度方面,结果表明,当深度增加时,均方根误差先减小后增大(如图7(a)所示)。该结果表明,更深的网络有助于模型捕捉更多区域之间的依赖关系,表达能力更强。然而,更深并不一定更好,因为在非常深的网络中训练变得困难。
在图7(b)中可以得出结论:较大的卷积核大小会导致更低的均方根误差,因为更大的卷积核意味着卷积具有更宽的感受野。换句话说,卷积核尺寸对捕捉区域间依赖关系的能力有积极影响。然后,残差单元中的卷积数量从一个卷积更改为两个卷积(即L4-E和L4-E-double)。图7(c)展示了残差单元结构、融合以及外部特征的影响。通过比较L4-E和L4-E-double的结果可以看出,由于过拟合问题,残差单元中更多的卷积会导致性能变弱。为了验证近期时间、近期历史和远期历史的影响程度不同的假设,我们尝试将基于参数矩阵的融合替换为单一的加法层,即$F_{st} = F^{(L+2)}_p + F^{(L+2)}_q$。L4-E-noFusion的结果表明,与简单相加相比,基于参数矩阵的融合显著提升了ST-ResNet的性能。因此,当ST-ResNet模型从历史交通流量记录中提取特征时,基于参数矩阵的融合至关重要,并极大地影响预测精度。从L4的结果可以得出结论:外部特征对预测精度有很大影响。具有外部特征的网络性能比没有外部特征的网络性能4×更好。
从结果可以看出,融合对预测精度影响最大。采用基于参数矩阵融合的网络比仅使用单一加法层的网络性能高出8.6×。这表明近期时间、近期历史和远期历史对未来交通流量的影响程度各不相同。外部特征的影响位居其次。将外部特征输入网络后,预测精度可提升4.19×。该结果证实了天气和节日等外部因素会显著影响交通流量的推测。此外,其他三个因素对预测精度的影响较基准模型差1.23×到3.42×。
最后,使用L4-E作为基线,实验近期时间、近期历史和远期历史长度的影响。首先,$l_p$和$l_q$固定为1,$l_c$从0(不使用近期交通流矩阵)变化到7。然后,$l_c$和$l_q$分别固定为4和1,$l_p$从0变化到4。最后,$l_c$和$l_p$设置为4和2,$l_q$从0变化到3。结果如图8所示。
结果表明,近期交通流量对预测有显著影响。较短的近期时间长度会导致较高的预测误差。具体而言,如果模型不包含近期交通流量(即$l_c = 0$),结果非常差,均方根误差达到861.38。当当前时间长度增加时,均方根误差先减小后增大,使得$l_c = 5$具有最佳性能。
在近期历史方面,均方根误差先减小后增大,最后再减小,表明不使用近期历史交通流矩阵的模型性能优于使用$l_p = 2, 3$的模型,但劣于使用$l_p = 1, 4$的模型。当使用$l_p = 1$时,模型性能最佳。关于远期历史,曲线显示$l_q = 1$表现最差,这表明在较短的历史长度中,其依赖关系难以捕捉。
5.2 TripRes性能评估
在本节中,通过仿真模型将TripRes与另外两种资源预留方法进行了比较,并对TripRes的性能进行了详细评估。
5.2.1 实验设置。仿真程序使用Python 3编写,并在Ubuntu 18.04环境中运行。仿真模型中变量的假设如下所列。
- 每个车辆在时间间隔$t$请求预留的资源数量通过每辆车所需的平均资源来模拟,即$\sigma$,其值由范围$[5, 15]$内的均匀分布随机数生成。考虑了五种类型的资源,第一种为数据大小,第二种为指令数量。例如,$\sigma_0$表示每辆车平均请求5千字节到15千字节的数据。
- 在时间间隔$t$,每个区域拥有的资源由正态分布随机生成器生成,均值为$\mu \in {10240, 25600, 30720}$,方差为1。以存储为例,这意味着边缘服务器的平均存储大小为10兆字节、25兆字节或30兆字节。如果生成的值为负数,则将其更改为0。此外,在实验中会改变$\mu$以评估TripRes在不同环境下的性能。
- 每两个相邻区域之间的平均最大发送速率以及“大型边缘服务器”中CPU的平均速度由服从均匀分布的随机数生成器生成,分别分布在$[1, 10]$和$[512, 1024]$之间。这意味着每两个相邻区域之间的平均最大发送速率范围为每秒1到10兆字节,而一个区域中CPU的平均速度范围为512到1,024 MIPS。
- 预测的交通流矩阵$F_t$来自第5.1节中ST-ResNet的输出。如果云接受了预留请求,则时间开销设置为2,000毫秒。
5.2.2 性能比较。在实验中,TripRes与随机资源分配(RRA)方法的两种变体进行了比较。一种是普通的RRA方法,其中每个区域接受自身的预约请求;如果该请求无法被接受,则由云来接受。另一种是RRA-C,其行为类似于普通RRA,但当区域无法接受请求时,会预留部分资源,而剩余部分则由云接受。此外,我们改变了St随机化器的均值$\mu$,以评估TripRes在不同环境下的性能,例如在拥有大量多媒体边缘服务器的城市地区,或在多媒体边缘服务器较少的农村地区。
图9显示了当$\mu = 10,240$时的结果,这意味着边缘服务器的资源有限(例如,计算能力低和存储空间小)。三种方法在最大时间开销方面的表现均较弱。对于TripRes,由于附近边缘服务器资源不足,来自高流量区域车辆的任务会预留远程区域边缘服务器的资源,而这些区域交通顺畅且边缘服务器负载不足。因此,传输延迟在总时间开销中起主要作用。对于RRA和RRA-C,由于本地边缘服务器的资源
由于资源有限,任务会直接传输到云,从而导致高延迟。在平均时间开销方面,TripRes优于其他两种方法,因为TripRes总是优先寻找时间开销最低的预留目的地。此外,TripRes在上传到云的总数据大小方面优于RRA,这意味着边缘服务器的负载不足问题得到了解决,因为TripRes不仅将任务卸载到本地边缘服务器,还将其卸载到具有最小传输和处理任务时间开销的其他边缘服务器。
当$\mu = 25,600$时的结果如图10所示。在此条件下,边缘服务器具有中等资源。TripRes在所有三个方面的表现均优于另外两种方法。当边缘服务器中的资源相对充足时,TripRes的贪心策略展现出避免将任务卸载到云的能力。与RRA和RRA-C分别向云上传47,000千字节和18,000千字节数据相比,TripRes未向云上传任何数据。向云上传更少的数据意味着更低的延迟,从而降低了最大时间开销和平均时间开销。
当$\mu = 30,720$时,即边缘服务器中的资源充足,仿真结果如图11所示。由于资源充足,TripRes选择具有足够资源且时间开销最低的边缘服务器的贪心策略展现出更明显的优势。TripRes在最大时间开销方面比RRA和RRA-C分别提升15×和2×,在平均时间开销方面分别提升27×和31×,并且未向云上传任何数据。
总体而言,无论多媒体边缘服务器中可用资源的数量如何,在所有条件下,TripRes在降低平均时间开销方面的性能均优于现有的RRA和RRA-C方法。此外,当边缘服务器中的资源充足时,TripRes在最大时间开销、平均时间开销和上传到云的总数据大小这三个方面均优于RRA和RRA-C。从结果可以看出,TripRes在资源丰富的场景下表现更佳。总体而言,可以得出结论:TripRes是用于边缘计算支持下的多媒体车联网系统资源预留的一种有效方法。
6 结论与未来工作
为了实现低延迟,并避免在多媒体车联网系统中处理车辆生成的多媒体信息时出现多媒体边缘服务器的过载或欠载,设计了TripRes方法来调度资源预留策略。此外,采用了一种称为ST-ResNet的深度学习方法来预测交通流量,这是TripRes方法中的一个重要组成部分。这使得我们的方法更加强大和有效。未来,我们致力于优化ST-ResNet模型以获得更高的准确性,并改进TripRes方法,进一步降低多媒体车联网系统中的延迟。
1513

被折叠的 条评论
为什么被折叠?



