[1] Zhang H, Zhou A, Lu J, et al. OnRL: improving mobile video telephony via online reinforcement learning[C]. Proceedings of the 26th Annual International Conference on Mobile Computing and Networking, 2020: 1-14.
实时视频通话与点播VoD的不同
- VoD客户端通常保持几十秒的播放缓冲区,因此它们对短期(如ms级)的网络动态不敏感。相比之下,视频通话对瞬间的网络流量的细微变化更敏感,模拟器中难以对网络进行如此细致的仿真。
- VoD会话的大部分信息是事先知道的,例如,视频块和缓冲区的大小。相比之下,视频通话内容总是即时产生的。设计的算法系统需要在非常短的时间段内迅速作出反应。
离线学习存在的问题?
- 模拟器很难模拟绝对真实的网络环境
- 算法受到学习环境的限制,一旦运行在训练中未见过的环境中,算法性能可能骤降
为此,作者设计了一个名为OnRL,基于在线强化学习的实时视频通话系统。OnRL将许多单独的agent直接放入单个视频通话系统中,这些agent实时做出码率决策,并不断更新模型。然后,OnRL将这些agent聚集在一起,形成一个高层次的RL模型,以帮助每个个体对看不见的网络条件做出反应。
主要要解决的三个难点
- 如何实现并行的在线学习?
- 如何解决目标码率与实际发送速率之间存在差异的问题?
- 如何解决RL在线训练初期不稳定的问题?
1. 如何实现并行的在线学习?
在传统的离线学习中,人们可以将收集到的许多单条网络trace串联在一起,最后送入模拟器来训练RL模型。通过这种方式,RL模型可以在不同的环境丰富其经验,并收敛到一个具有从所有用户那里学到经验的通用模型。
然而,在本文的在线学习中,有大量同时运行的视频会话,在此期间,模型需要随着每个会话的实时发展而不断更新。因此,本文最关键的挑战在于如何从串行的离线学习转变为并行的在线学习。
- 个性化在线学习——以PPO算法为基础设计一个新的RL模型,将一个个独立的RL模型与不同用户相关联。模型在用户使用的过程中不断迭代更新,使得每个用户都在自己个性化的网络环境下更新出不同的RL模型。
- 学习聚合——按照联邦学习的原则汇总所有用户的经验,从而形成一个高水平的模型,可以对在个性化迭代中没有覆盖到的网络状况作出反应。
整个学习过程在以上两个阶段之间往复,以便在个体化经验和群集智能之间取得平衡。
1.1 个性化在线学习
![截屏2021-08-12 下午8.56.18](https://tva1.sinaimg.cn/large/008i3skNly1gteavev2jvj60ui0gojtm02.jpg)
- 基于PPO的RL模型(baseline)
State
S t = ( l ⃗ t , d ⃗ t , i ⃗ t , t t ) S_{t}=\left(\vec{l}_{t}, \vec{d}_{t}, \vec{i}_{t}, t_{t}\right) St=(lt,dt,it,tt)
- l ⃗ t \vec{l}_{t} lt —— 丢包
- d ⃗ t \vec{d}_{t} dt —— 延迟
- d ⃗ t \vec{d}_{t} dt —— 延迟间隔(即两个连续的RTP数据包在接收方的到达间隔和在发送方的离开间隔之间的差值)
- t t t_{t} tt —— 接收端的吞吐量
Action
A : { 0.1 M b p s , 0.2 M b p s , ⋯ , 2.5 M b p s } \mathcal{A}:\{0.1 M b p s, 0.2 M b p s, \cdots, 2.5 M b p s\} A:{0.1Mbps,0.2Mbps,⋯,2.5Mbps}
代表视频编码器的目标输出比特率
Reward
r t = α × ∑ n = 1 N q n − β × ∑ n = 1 N l n − η × ∑ n = 1 N d n − φ × ∑ n = 1 N − 1 ∣ q n − q n − 1 ∣ r_{t}=\alpha \times \sum_{n=1}^{N} q_{n}-\beta \times \sum_{n=1}^{N} l_{n}-\eta \times \sum_{n=1}^{N} d_{n}-\varphi \times \sum_{n=1}^{N-1}\left|q_{n}-q_{n-1}\right| rt=α×n=1∑Nqn−β×n=1∑Nln−η×n=1∑Ndn−φ×n=1∑N−1∣qn−qn−1∣
-
N N N 代表一个State下的RTP数据包的数量
-
q n q_{n} qn 是在接收方测量的吞吐量,它与视频质量直接相关
-
l n l_{n} ln 是传输层的数据包丢失率
-
d n d_{n} dn 是传输层的数据包延迟
-
最后一项是通过惩罚大的比特率波动来保证视频的平稳性。
如何统一各个不同量级的变量?
通过调整参数α、β、η、φ的值将这些指标归一到一个一致的范围。在OnRL的实际部署中,它们被分别设定为50、50、10、30。
网络结构
采用两层全连接层,神经元个数分别为64、32。
CNN和LSTM性能不佳的原因分析
CNN擅长提取由复杂的空间信息组成的图像特征,而这些信息在OnRL的状态空间中并不存在。
LSTM对推理考虑到长期历史影响的时间序列数据更有用,但实时视频通话的性能更依赖于瞬时的网络条件。
- 训练
- 批量更新,而非单一输入更新
存在的问题:如前所述,OnRL需要对每个输入实例作出反应,以适应实时的带宽变化。通常情况下,产生响应的同时也会更新网络参数。然而,这种频繁的更新将在很大程度上增加学习时间,并反过来减慢响应速度。
因此,作者设计了一个批量更新策略。特别是,学习agent缓冲了最近的<state、action、reward>记录。只有当缓冲区超过规定大小时,agent才会将缓冲区送入网络以更新网络参数。通过这种方式,代理可以实时执行细粒度的反应,同时运行在线学习。
- 平滑更新
存在的问题:policy网络更新前后差异过大可能导致相邻时间内过于跳跃的码率决策,不利于QoE
对此,OnRL在进行梯度更新时采用如下损失函数,利用clip()进行裁剪
L
(
θ
)
=
E
^
[
min
(
p
θ
(
s
,
a
)
p
θ
o
l
d
(
s
,
a
)
A
^
,
clip
(
p
θ
(
s
,
a
)
p
θ
o
l
d
(
s
,
a
)
,
1
−
ε
,
1
+
ε
)
A
^
)
]
L(\theta)=\hat{\mathbb{E}}\left[\min \left(\frac{p_{\theta}(s, a)}{p_{\theta_{o l d}}(s, a)} \hat{A}, \operatorname{clip}\left(\frac{p_{\theta}(s, a)}{p_{\theta_{o l d}}(s, a)}, 1-\varepsilon, 1+\varepsilon\right) \hat{A}\right)\right]
L(θ)=E^[min(pθold(s,a)pθ(s,a)A^,clip(pθold(s,a)pθ(s,a),1−ε,1+ε)A^)]
1.2 学习聚合
- 聚合方法
采用加权模型聚合法。
![截屏2021-08-12 下午11.30.35](https://tva1.sinaimg.cn/large/008i3skNly1gtefby9lxsj612q0cwgnw02.jpg)
- 平均聚合: λ k = 1 K \lambda_{k}=\frac{1}{K} λk=K1 for k ∈ [ 1 , K ] k \in[1, K] k∈[1,K]
- 优先聚合:对于每一个用户 k k k ,令 λ k = p ( p ∈ [ 0 , 1 ] ) \lambda_{k}=p\ (p \in[0,1]) λk=p (p∈[0,1]) , λ m = 1 − p K − 1 , ∀ m ≠ k \lambda_{m}=\frac{1-p}{K-1}, \forall m \neq k λm=K−11−p,∀m=k
- 效果
![截屏2021-08-13 下午6.06.41](https://tva1.sinaimg.cn/large/008i3skNly1gtfbmgbv34j60x40baq4y02.jpg)
- 左图是采用简单的平均聚合的结果,在卡顿和吞吐量上有44.9%和7.3%的提升。这一结果表明,OnRL的学习聚合阶段在利用群体经验后确实有助于提高QoE。
- 右图是采用优先聚合的结果,优先级模型的不同加权值对QoE指标有一定影响。对于已经有一个训练好的模型的用户来说,通过使用中等聚合权重(即接近0.5)来平衡其个人经验和其他人的经验是比较好的,能达到最佳QoE。
2. 如何解决目标码率与实际发送速率之间存在差异的问题?
![截屏2021-08-12 下午11.38.26](https://tva1.sinaimg.cn/large/008i3skNly1gtefk4st2ij60ik0bcjsk02.jpg)
MMSys的比赛中也有提及类似问题 https://2021.acmmmsys.org/rtc_challenge.php
![截屏2021-08-12 下午11.39.39](https://tva1.sinaimg.cn/large/008i3skNly1gtefldmmhfj61no08e41v02.jpg)
2.1 差异来源
![截屏2021-08-13 上午11.22.03](https://tva1.sinaimg.cn/large/008i3skNly1gtezw9dxcqj60om096ab202.jpg)
-
为保证低延时,当pacer queue积累了大量数据包时,它往往需要提高发送码率以加快队列的排空,此时发送码率可能会高于目标码率
-
源视频本身分辨率较低时,pacer可能没有足够多的视频数据去满足目标码率,此时发送码率就会低于目标码率
![截屏2021-08-13 上午11.24.34](https://tva1.sinaimg.cn/large/008i3skNly1gtezyuw3tcj60ie0b4dh002.jpg)
可以发现,当pacer队列积累了许多数据包,pacer将采用高于目标比特率 x x x 的发送比特率 p p p 。相反,当队列几乎为空时,由于没有填充物,实际发送速率通常下降到0。
2.2 导致的问题
存在的问题:RL的action不一定能被有效执行,action和reward有时不能严格对应,造成模型向错误方向更新。
2.3 解决方法
- 一方面,向state中增加代表发送码率与目标码率差异的 g t g_{t} gt,用新的state代替原state:
g t = x t − p t g_{t}=x_{t}-p_{t} gt=xt−pt
S t ′ = ( l ⃗ t , d ⃗ t , i ⃗ t , t t , g t ) S_{t}^{\prime}=\left(\vec{l}_{t}, \vec{d}_{t}, \vec{i}_{t}, t_{t}, g_{t}\right) St′=(lt,dt,it,tt,gt)
- 另一方面,一旦它检测到一个大的差异( ∣ g t ∣ > 0.5 M b p s \left|g_{t}\right|>0.5 \mathrm{Mbps} ∣gt∣>0.5Mbps),OnRL将把之前的RL action视为损坏,并通过在累积奖励中施加一个低权重系数(默认为0.5)来降低该action的影响。
通过这种方式,OnRL可以学习 g t g_{t} gt 的动态变化,然后通过自动调整其奖励操作来降低影响。
2.4 效果
![截屏2021-08-13 下午5.51.31](https://tva1.sinaimg.cn/large/008i3skNly1gtfb5vvafwj60uq09emy602.jpg)
通过将偏差作为RL的额外输入,在吞吐量(0.02Mbps)和PSNR(1.68dB)略有牺牲的情况下,卡顿明显下降了55.4%,丢包率下降了10.3%,因此,得出结论,得益于学习action的执行偏差,因此,即使模型的action没有被严格执行,也能达到很高的性能。
3. 如何解决RL在线训练初期不稳定的问题?
存在的问题:典型的RL模型是采用试错法学习的,但与基于模拟的训练不同,通过失败积累经验对在线训练来说是不可接受的。而在线上运行时,任何错误的action都可能导致交互式视频的严重质量下降。特别是在会话初期,RL的不断探索与试错可能导致出现严重的网络拥塞。
因此,需要解决的问题就是如何在保持学习能力的同时降低灾难性探索对QoE的影响?
解决方案:一个确保在线学习可靠性的直接解决方案是将启发式算法和RL算法结合起来,即一旦RL的决策变得过于激进,就切换到保守的算法。
系统框架如下:
![截屏2021-08-13 下午1.01.53](https://tva1.sinaimg.cn/large/008i3skNly1gtf2s4u1ooj60ti0cuabg02.jpg)
这个系统需要解决两个混合控制所带来的问题:
-
如何确定启用GCC的时机?
-
启用GCC算法时,RL的学习被中断,且对网络状况的变化变得不知情。
解决方案:对此,分别设计了一个安全状况检测器和调整了reward的设置。
3.1 安全状况检测器
类似GCC基于延迟的检测机制,基本思想是检测最近收到的延迟序列是否呈现上升趋势。如果是这样,将命令OnRL从RL切换到GCC。
定义包间间隔 Δ d ( t i ) \Delta d\left(t_{i}\right) Δd(ti)
Δ
d
(
t
i
)
=
(
a
i
−
a
i
−
1
)
−
(
s
i
−
s
i
−
1
)
\Delta d\left(t_{i}\right)=\left(a_{i}-a_{i-1}\right)-\left(s_{i}-s_{i-1}\right)
Δd(ti)=(ai−ai−1)−(si−si−1)
则时间间隔T内的包间间隔可表示为
{
Δ
d
(
t
0
)
,
Δ
d
(
t
1
)
,
…
,
Δ
d
(
t
T
)
}
\left\{\Delta d\left(t_{0}\right), \Delta d\left(t_{1}\right), \ldots, \Delta d\left(t_{T}\right)\right\}
{Δd(t0),Δd(t1),…,Δd(tT)}
对其进行指数加权平均
D
(
t
i
)
=
∑
i
=
1
T
2
−
i
×
Δ
d
(
t
T
−
i
)
D\left(t_{i}\right)=\sum_{i=1}^{T} 2^{-i} \times \Delta d\left(t_{T-i}\right)
D(ti)=i=1∑T2−i×Δd(tT−i)
其中,时间越近的延迟,在
D
(
t
i
)
D\left(t_{i}\right)
D(ti) 中的权重就越大。
一旦 D ( t i ) D\left(t_{i}\right) D(ti) 超过阈值 γ ( t ) \gamma(t) γ(t) ,滤波器预测QoE下降的高风险,然后切换到GCC。由于GCC对延迟敏感,其控制策略将立即降低当前的发送比特率,从而缓解风险状况。一旦条件恢复到安全状态(即没有延迟增长的趋势),RL策略将进行控制。
阈值
γ
(
t
)
\gamma(t)
γ(t) 的更新策略如下
γ
(
t
i
)
=
γ
(
t
i
−
1
)
+
k
γ
×
(
∣
D
(
t
i
)
∣
−
γ
(
t
i
−
1
)
)
\gamma\left(t_{i}\right)=\gamma\left(t_{i-1}\right)+k_{\gamma} \times\left(\left|D\left(t_{i}\right)\right|-\gamma\left(t_{i-1}\right)\right)
γ(ti)=γ(ti−1)+kγ×(∣D(ti)∣−γ(ti−1))
3.2 切换惩罚
每个切换事件都被配置为agent奖励函数中的一个额外惩罚。通过这种方式,它将学会适当的行动,从而在未来尽可能少地切换到GCC。
具体来说,设计了一个自适应的惩罚参数
η
′
\eta^{\prime}
η′ 来取代奖励函数中原有的默认
η
\eta
η 。
r
t
=
α
×
∑
n
=
1
N
q
n
−
β
×
∑
n
=
1
N
l
n
−
η
′
×
∑
n
=
1
N
d
n
−
φ
×
∑
n
=
1
N
−
1
∣
q
n
−
q
n
−
1
∣
r_{t}=\alpha \times \sum_{n=1}^{N} q_{n}-\beta \times \sum_{n=1}^{N} l_{n}-\eta^{\prime} \times \sum_{n=1}^{N} d_{n}-\varphi \times \sum_{n=1}^{N-1}\left|q_{n}-q_{n-1}\right|
rt=α×n=1∑Nqn−β×n=1∑Nln−η′×n=1∑Ndn−φ×n=1∑N−1∣qn−qn−1∣
η ′ = η × 2 ϵ , subject to ϵ = latency / 10 \eta^{\prime}=\eta \times 2^{\epsilon}, \text { subject to } \epsilon=\text { latency } / 10 η′=η×2ϵ, subject to ϵ= latency /10
3.3 效果
![截屏2021-08-13 下午6.22.04](https://tva1.sinaimg.cn/large/008i3skNly1gtfc1idgwfj60uk06iq3r02.jpg)
该表总结了纯RL和混合两种方案在相同的1小时内运行时的性能。观察到,Robust-RL可以显著提高鲁棒性:卡顿和丢包分别降低了56.9%和63.5%。另一方面,Robust-RL在保持相同的吞吐量的同时,将PSNR提高了3.57dB。
4. 具体部署
![截屏2021-08-13 下午1.50.03](https://tva1.sinaimg.cn/large/008i3skNly1gtf467fh5kj60pq0j8q5602.jpg)
在运行中的Taobao-Live的基础上实现了OnRL,并将其作为一个测试版应用发布给用户。Taobao-Live建立在WebRTC之上,这是一个实时视频通信框架,内置支持视频编解码器和传输层协议(即GCC)。
理想情况下,OnRL的组件应该在Taobao-Live应用程序中实现。然而,由于缺乏在移动设备上训练RL神经网络的API支持,引入了一个RL cloud server作为辅助服务器。
4.1 个性化学习阶段
在每个电话会话中,发送方保持连接并与RL服务器交换信息。它从接收方收集RTCP反馈(即丢包、延迟、吞吐量等),并将其发送给RL服务器作为OnRL的输入。然后,OnRL处理输入并向发送方返回一个动作(即目标视频比特率),然后由Taobao-Live执行。同时,服务器上的OnRL模块定期更新其控制策略以实现在线学习。
4.2 学习聚合阶段
此外,部署了一个后端服务器,以每天一次的频率进行学习聚合(通常在用户活动最少的清晨)。
5. 测试与评估
![截屏2021-08-13 下午6.32.54](https://tva1.sinaimg.cn/large/008i3skNly1gtfccj5cvoj60w40b0myp02.jpg)
将三个离线训练的模型(包括在模拟器中训练的Concerto和PPO模型(简称PPOs),以及在测试平台上训练的PPO模型(简称PPO t))和OnRL整合到Taobao-Live系统中。然后,在一个随机选择的用户身上运行这些模型。
-
左图显示OnRL实现了最好的QoE。
-
右图OnRL也显示出最小的延迟和丢失率,这证实了其应对不同网络的能力。
- OnRL的优势在处理网络波动较大的状况时变得更加突出。以图3为例,OnRL在4G状况下的丢包率明显低于WebRTC
其余测试结果详见paper原文
6. 局限与展望
-
由于缺乏RL训练的移动平台,关键的设计模块位于远程云服务器而不是移动设备中。
-
学习聚合方面,未来可考虑按照不同的应用场景对用户进行分组,细化聚合的方法。
-
评估结果表明,RL在处理波动很大的方面表现出明显的优势,但在稳定的网络条件下,有时表现得不如启发式的方法。未来可能可以考虑根据网络动态变化的程度来整合强化学习和启发式,