Mobility-Aware Cooperative Caching inV ehicular Edge Computing Based on Asynchronous Federated and Deep Reinforcement Learning
要解决的问题 Mobility-Aware、Cooperative Caching
背景 VEC(Vehicular Edge Computing)
方法 FL、DRL
文章的主要问题
1.车辆的移动,对于本地模型上传、全局模型的精度产生影响;用户数据隐私考虑。
- 用到异步联邦学习提高全局模型精度和保护用户数据隐私。
2.车辆的高移动性,先前请求内容可能会很快过时
- 用到FL中的全局模型,结合VU提前预测到可能的内容,缓存在合适的RSU路边站点。
3.本地存储有限,超出请求导致延时
- 用到DRL构建一种机制来决策联合缓存的方案。
围绕受欢迎内容如何预测,如何存储。即FL训练模型并使用全局模型预测内容;然后DRL来决策联合缓存的方案。
II.RELATED WORK
该部分主要是介绍对于VEC的其他研究方案。
主要论述了2个部分。一部分是非联合缓存,一部分是联合的缓存。但两种方式都没有同时考虑到VU的隐私性和机动性去设计联合缓存方案。
III.SYSTEM MODEL
A. System Scenario
提出一个三层的VEC架构:
- MBS top tier
存储大量的数据,当VU在本地和邻近RSU没有找到时会请求MBS,并直接与UV连接。 - RSUs mid tier
VU首先访问该站点,但该站点容量有限。对于访问到本都RSU时,直接返回数据;对于访问到的是邻近的RSU时,会先发到本地RSU再发给VU。 - VUs btn tier(文章是vehicles,我觉得应该是一个东西)
存储自己的历史数据,包括个人信息等。同时他会对内容有评级,用来表示感兴趣程度。
B. Mobility Model of Vehicles
提出一个场景模型,主要有轮次、车辆、车辆速度
在第 r 轮中,有 Nr 辆车,每辆车为 Vir (1 ≤ i ≤ Nr ),每辆车的速度为 Uir 。
有一个U的概率密度函数
f
(
U
i
r
)
=
{
e
−
1
2
π
α
2
(
U
i
r
−
α
)
2
2
π
σ
2
(
e
r
f
(
U
m
a
x
−
μ
σ
2
)
−
e
r
f
(
U
m
i
n
−
μ
σ
2
)
)
U
m
i
n
≤
U
i
r
≤
U
m
a
x
,
0
o
t
h
e
r
w
i
s
e
.
f(U_i^r)=\left\{\begin{matrix}\frac{e^{-\frac{1}{2\pi\alpha^2}(U_i^r-\alpha)^2}}{\sqrt{2\pi\sigma^2}(erf(\frac{U_{max}-\mu}{\sigma\sqrt2})-erf(\frac{U_{min}-\mu}{\sigma\sqrt2}))}\\[6pt]U_{min}\leq U_i^r\leq U_{max},\\[6pt]0&otherwise.\end{matrix}\right.
f(Uir)=⎩
⎨
⎧2πσ2(erf(σ2Umax−μ)−erf(σ2Umin−μ))e−2πα21(Uir−α)2Umin≤Uir≤Umax,0otherwise.
C. Communication Model
提到 信道增益
两种链路V2R 和 V2B
以及二者的 传输速率 计算
IV. COOPERATIVE CACHING SCHEME
提出协同缓存方案。三步走:
A. Asynchronous Federated Learning (5steps)
1)Select Vehicles
选择的车辆能有足够的时间在本地RSU参与联邦学习
T
r
,
i
s
t
a
y
i
n
g
>
T
t
r
a
i
n
i
n
g
+
T
i
n
f
e
r
e
n
c
e
T_{r,i}^{staying}>T_{training}+T_{inference}
Tr,istaying>Ttraining+Tinference
2)Download Model
由本地RSU下载全局model到被选中的所有车辆中
3)Local Training
- 首先对各个表示解释一下
w:模型
r:轮次;
k:迭代次数;
i:具体车辆
W:权重矩阵;
b:偏置矩阵;
e,d:编码,解码
n:应该是采集的数据,文中说 |n| = number of data
-
本地训练是将下载的全局模型作为初始模型,进行 k 次迭代,达到规定的迭代次数后,上传到本地的RSU中,具体来说:
①.对输入数据进行编码,解码。 f(·)和 g(·)
z ( x ) = f ( W i , k r , e x + b r , e ) z(x)=f\left(W^{r,e}_{i,k}x+b^{r,e}\right) z(x)=f(Wi,kr,ex+br,e) 、 x ^ = g ( W i , k r , d z ( x ) + b i r , d ) \hat{x}=g\left(W^{r,d}_{i,k}z(x)+b^{r,d}_i\right) x^=g(Wi,kr,dz(x)+bir,d)②.计算损失 l ( ω i , k r ; x ) = ( x − x ^ ) 2 l\left(\omega_{i,k}^r;x\right)=(x-\hat{x})^2 l(ωi,kr;x)=(x−x^)2
求了个平均 l o c a l l o s s f u n c t i o n f o r i t e r a t i o n k = f ( ω i , k r ) = 1 ∣ n i , k r ∣ ∑ x ∈ n i , k r l ( ω i , k r ; x ) local\ loss\ function\ for\ iteration\ k=f (\omega_{i,k}^r)=\dfrac{1}{\left|n_{i,k}^r\right|}\sum\limits_{x\in n_{i,k}^r}l\left(\omega^r_{i,k};x\right) local loss function for iteration k=f(ωi,kr)= ni,kr 1x∈ni,kr∑l(ωi,kr;x)
③.然后计算了 正则化局部损失函数,为了使得与原始的模型保持不是太大的偏差
g ( ω i , k r ) = f ( ω i , k r ) + ρ 2 ∥ ω r − ω i , k ∥ 2 g\left(\omega_i,k^r\right)=f\left(\omega_{i,k}^r\right)+\dfrac{\rho}{2}\left\|\omega^r-\omega_{i,k}\right\|^2 g(ωi,kr)=f(ωi,kr)+2ρ∥ωr−ωi,k∥2
④.然后就是计算梯度,但是有一些stragglers,他在之前的轮次(r)中由于时间原因没能提交model,影响了全局model的整合。他会在 本论次 中将这些delayed梯度加到当前的梯度中
∇ ζ i , k r = ∇ g ( ω i , k r ) + β ∇ g i d \nabla\zeta_{i,k}^r=\nabla g(\omega_{i,k}^r)+\beta\nabla g_i^d ∇ζi,kr=∇g(ωi,kr)+β∇gid
此处的g(w)是 上式3 中的梯度,gid是delayed的梯度
⑤.最后就是模型更新了
ω i , k + 1 r = ω r − η l r ∇ ζ i , k r \omega^r_{i,k+1}=\omega^r-\eta^r_l\nabla\zeta^r_{i,k} ωi,k+1r=ωr−ηlr∇ζi,kr
4)Upload Model
迭代次数带到规定e次后,V完成本地训练上传本地模型到RSU
5)Asynchronous aggregation
本地RSU根据收到的本地模型更新全局模型。具体来说,它根据每个车辆的权重对所有收到的本地模型进行加权平均,以获得更新后的全局模型。
ω
r
=
ω
r
−
1
+
d
i
r
d
r
χ
i
ω
i
r
,
\omega^r=\omega^{r-1}+\frac{d_i^r} {d^r}\chi_i\omega_i^r,
ωr=ωr−1+drdirχiωir,
异步聚合权重Xi 的计算。受两个部分的影响:
一是:车辆在覆盖区域能走过的距离,越长则权重越高,因为有更多的时间参与到训练。
二是:与本地USR的内容传输延迟,越小也权重越高.(如果从本地 RSU 到 Vir的内容传输延迟较小,则其本地模型也应占用较大的权重进行聚合以减少内容传输延迟。
χ
i
=
μ
1
(
L
s
−
P
i
r
)
+
μ
2
s
R
R
,
i
r
\chi_i=\mu_1(L_s-P_i^r)+\mu_2\dfrac{s}{R_{R,i}^r}
χi=μ1(Ls−Pir)+μ2RR,irs
然后可能是每个内容的大小s不便计算或者不是这个原因,
提到了另外一种计算方式:
χ
i
=
μ
1
(
L
s
−
P
i
r
)
L
s
+
μ
2
R
R
,
i
r
max
k
∈
N
r
(
R
R
,
k
r
)
\chi_i=\mu_1\dfrac{(L_s-P_i^r)}{L_s}+\mu_2\dfrac{R_{R,i}^r}{\max_{k\in N^r}\left(R_{R,k}^r\right)}
χi=μ1Ls(Ls−Pir)+μ2maxk∈Nr(RR,kr)RR,ir
B. Popular Content Prediction
这部分价绍热门内容预测算法,主要分为 4步 去完成。
4步理解如下:
- 先对所有车辆现有内容感兴趣度做出矩阵初始化表示R
- 经过cos similarity计算,筛选出各自喜好比较类似的VUs,选出最好的K个
- 对这K个的矩阵行进行合并,得到矩阵HK,并可以认为非零评分的内容就是Vir的感兴趣的内容,选出FC个内容上传到RSU
- 然后由RSU,从所有上传的内容中选出FC个内容作为受欢迎的内容
具体文章段落是:
1) Data Preprocessing
介绍了两种矩阵:
① 评分二维矩阵:每一行代表一个VU对所有内容的评分。
原始抽象的R矩阵经过AE输出模型的重建R^矩阵
② 个人信息矩阵:每一行代表一个VU的个人信息
2) Cosine Similarity
将1)中提到的两种矩阵经过组合为Hir 矩阵。
再通过余弦相似性计算VU之间的相似性。
能进行相似性的计算,同时需要该VU的非0评价内容数在所有VU中占到前 1/m ,也就是active VUs
sim
a
,
b
r
,
i
=
cos
(
H
i
r
(
a
,
:
)
,
H
i
r
(
b
,
:
)
)
=
H
i
r
(
a
,
:
)
⋅
H
i
r
(
b
,
:
)
T
∥
H
(
a
,
:
)
∥
2
×
∥
H
i
r
(
b
,
:
)
∥
2
\text{sim}_{a,b}^{r,i}=\cos\left(\boldsymbol{H}_{i}^{r}(a,:),\boldsymbol{H}^{r}_{i}(b,:)\right)\\ =\dfrac{\boldsymbol{H}^r_{i}(a,:)\cdot\boldsymbol{H}^r_{i}\left(b,:\right)^{T}}{\left\|\boldsymbol{H}\left(a,:\right)\right\|_{2}\times\left\|\boldsymbol{\boldsymbol{H}}^r_{i}(b,:)\right\|_{2}}
sima,br,i=cos(Hir(a,:),Hir(b,:))=∥H(a,:)∥2×∥Hir(b,:)∥2Hir(a,:)⋅Hir(b,:)T
并每个VU选出前K个与自己最相似的VU,作为邻接VU,双方的偏好一定程度上能相互反映,
就是比较相似吧。
3) Interested Contents
该部分做的是将那些与其邻接的VU的rating矩阵重新构成一个新的评分矩阵HK
应该可以理解为从最开所有评分矩阵R中,提取与自己最相似的那些VU的评分矩阵出来
然后可以认为矩阵中那些有评分(即非零)的内容就为其感兴趣的内容
再选出FC个最好的内容作为预测的感兴趣的内容上传到本地RSU。(FC应该是数量)
4) Popular Contents
本地RSU对所有车辆上传的内容进行比较,也是选出FC个内容作为受欢迎的内容。
此处选出的内容不再是感兴趣的内容(个人),而是受欢迎的内容(群体)。
C. Cooperative Caching Based on DRL
1) DRL Framework
包括三个部分
a) State
s(t) = (s1; s2; : : : ; sc)对FC个内容进行排序的集合
b) Action
用 a(t)的0/1值表示是否对更新本地存储内容
具体来说
- a(t) = 1 时
本地RSU从Fc中选出n个内容,并与现存较低排名的内容进行交换。形成新的状态s(t + 1);
邻近RSU则是根据FC中不属于s(t + 1)中的c个内容进行存储 - a(t) = 0 时
本地RSU不会进行存储内容变化;
邻近RSU的存储方式与 = 0一样。
c) Reward
用r(t)函数表述该时段,所有车辆请求内容的延迟
由于内容的存放的位置不同,产生的延迟有三种:直接在本地RSU,在附近RSU,在MBS。延迟计算就是 d = s / R = 内容大小 / 速率
具体计算如下:
在本地RSU :
d
R
,
i
,
f
r
=
s
R
R
,
i
r
,
d_{R,i,f}^r =\dfrac{s}{R_{R,i}^r},
dR,i,fr=RR,irs,
在附近RSU:
d
ˉ
R
,
i
,
f
r
=
s
R
R
,
i
r
+
s
R
R
−
R
\bar{d}^r_{R,i,f} = \dfrac{s}{R^r_{R,i}} + \dfrac{s}{R_{R-R}}
dˉR,i,fr=RR,irs+RR−Rs
在MBS:
d
B
,
i
,
f
r
=
s
R
B
,
i
r
d^r_{B,i,f} = \dfrac{s}{R^r_{B,i}}
dB,i,fr=RB,irs
然后给每种情况下的产生的延迟一个类似权值的
λ
\lambda
λ产生一辆车Vi单个内容f的延迟计算r(t):
r
i
,
f
r
(
t
)
=
{
e
−
λ
1
d
H
,
i
,
f
f
∈
s
(
t
)
e
−
(
λ
1
d
R
,
i
,
f
r
+
λ
2
d
⃗
R
,
i
,
f
)
f
∈
s
n
(
t
)
e
−
λ
3
d
M
,
i
,
f
r
f
∉
s
(
t
)
and
f
∉
s
n
(
t
)
r_{i,f}^{r}(t)=\begin{cases}e^{-\lambda_1d_{H,i,f}}&f\in s(t)\\[1ex]e^{-\left(\lambda_1d_{R,i,f}^{r}+\lambda_2\vec{d}_{R,i,f}\right)}&f\in s_n(t)\\[2ex]e^{-\lambda_3d_{M,i,f}^r}&f\not\in s(t)\text{and}f\not\in s_n(t)\end{cases}
ri,fr(t)=⎩
⎨
⎧e−λ1dH,i,fe−(λ1dR,i,fr+λ2dR,i,f)e−λ3dM,i,frf∈s(t)f∈sn(t)f∈s(t)andf∈sn(t)
合并所有车辆的传输延迟得到:
r
(
t
)
=
∑
i
=
1
N
r
∑
f
=
1
F
i
r
r
i
,
f
r
(
t
)
r(t)=\sum_{i=1}^{N^r}\sum_{f=1}^{F_i^r}r^r_{i,f}(t)
r(t)=∑i=1Nr∑f=1Firri,fr(t)
2) DRL Algorithm
**要先了解DQN算法,**主要的思想是: y i = r i + γ D max a ∈ { 0 , 1 } Q ′ ( s i , a ; θ ′ ) y^i=r^i+\gamma_D\max\limits_{a\in\{0,1\}}Q'(s^i,a;\theta') yi=ri+γDa∈{0,1}maxQ′(si,a;θ′) , L ( θ ) = 1 I ∑ i = 1 I [ ( y i − Q ( s i , a i , θ ) ) 2 ] L(\theta)=\dfrac{1}{I}\sum_{i=1}^I\left[(y^i-Q(s^i,a^i,\theta))^2\right] L(θ)=I1∑i=1I[(yi−Q(si,ai,θ))2],得到损失函数,对θ梯度下降,然后更新θ。
- 补充Q-learning算法
https://blog.csdn.net/itplus/article/details/9361915?spm=1001.2014.3001.5506
- 补充MDP问题
https://zhuanlan.zhihu.com/p/159621634
- 补充 DQN 算法:
DQN(Deep Q-Network)算法是一种深度强化学习算法,旨在通过学习价值函数来解决强化学习中的控制问题。基于Q-learning算法,通过使用深度神经网络来逼近Q值函数,从而能够在更复杂的环境中处理高维度状态空间和行动空间。具体而言,DQN算法通过以下步骤进行学习:
1、神经网络输入状态信息,输出每个动作的Q值;
2、采用ε-greedy等方法选择动作;
3、执行动作,观察新的状态和奖励;
4、将新的状态和奖励存储到replay buffer中;
5、从replay buffer中随机抽取一批经验样本,并利用样本更新神经网络的参数;
6、重复以上步骤,直到达到预设的终止条件。DQN算法的核心是使用深度神经网络来逼近Q值函数,通过反向传播算法来优化网络参数,使得网络输出的Q值能够更加准确地估计每个动作的价值。同时,DQN算法使用replay buffer来存储历史经验样本,通过随机抽样来减小数据的相关性和偏差,提高学习效果。DQN算法在各种强化学习问题上都有着良好的表现,如Atari游戏、机器人控制、自动驾驶等。
该部分从DQN算法开始讲,他把Q值分成 V状态值函数 和 A动作优势函数 来计算。
为了得到较好的动作函数值,首先把RSU把s(t) 作为预测网络的输入,生成V (s(t); θ) 和A(s(t); a; θ) 。同时为了减少Q(s(t); a; θ) 取值范围,减去了一个平均A 具体如下:往后就适合DQN算法一样了,他就是把Q值函数变成了 V 和 A,然后用目标和预测构造损失函数,使用梯度下降。
后面的部分是一些实验对比