作者
:Abdelhak Bentaleb; Mehmet N. Akcay 等

来源
:IEEE Transactions on Multimedia (TMM 2022)

论文题目
:BoB: Bandwidth Prediction for Real-Time Communications Using Heuristic and Reinforcement Learning

论文链接
:https://ieeexplore.ieee.org/iel7/6046/4456689/09926128.pdf

项目链接
:https://github.com/NUStreaming/BoB
带宽预测在任何实时通信(RTC)服务或应用中都是至关重要的,这个组件决定了有多少媒体数据可以被实时发送。随后,视频和音频编码器动态地适应比特率,以达到最佳的质量,而不会造成网络拥挤,导致数据包丢失或延迟。到目前为止,一些RTC服务已经部署了谷歌提出的基于启发式的拥塞控制算法(GCC),它在某些情况下表现良好,但在其他一些情况下表现不佳。在本文中,我们利用强化学习的进展,提出了一种用于RTC的混合带宽预测器 BoB(Bang on Bandwidth)。在RTC会话开始时,BoB使用一种基于启发式的方法。然后,它切换到基于学习的方法。与ACM MMSys'21关于RTC带宽估计挑战的两个获胜方案相比,BoB准确地预测了可用带宽,并提高了不同网络条件下的带宽利用率。BoB的源码实现是公开的,可供进一步测试和研究。
目录
  • 背景介绍
  • 算法设计
    • 总体框架
    • 系统设计
    • 接收端控制器
    • 基于学习的速率控制器
    • 自适应选择器
    • 发送端基于丢包的控制器
  • 算法验证
    • 验证指标
    • 实验结果
  • 总结

背景介绍

实时通信 (RTC) 服务占当今互联网流量的很大一部分,例如 2020 年仅 Zoom 平台每天就有 3 亿人参加会议,比 2019 年增长了 50%;而在 Facebook Messenger 应用上,2021 年每天有 1.5 亿人次视频通话。凭借无处不在的连接性和更高效的视频和音频编解码器,RTC 服务不断发展壮大。
如今,RTC 被用于一系列应用,例如视频游戏、视频会议、电子学习和实时沉浸式体验共享。不用说,RTC 是我们生活中不可或缺的一部分,因为它使我们能够在远程工作的同时与世界其他地方保持联系,由于 COVID-19 大流行,这已成为新常态。然而,这并不意味着用户对 RTC 服务的体验质量 (QoE) 总是很好。有时,用户仍然会遭受模糊、低质量或失真的视频、高延迟或视频冻结和音频丢失的困扰。迄今为止,已经进行了大量研究来改善 RTC 服务中的 QoE。这些努力提供了几种解决方案,可分为三大类:
  1. 传输层的拥塞控制优化,其主要目的是提供准确的带宽估计;
  2. 视频编解码器(例如 H.26x、VPx 和 AV1)的比特率选择优化,努力为每个帧调整比特率(通过应用层的速率控制)以适应瞬时网络容量变化;
  3. 结合拥塞控制和比特率选择优化的混合技术。尽管编解码器速率控制取得了进步,但准确的带宽估计仍然是一个悬而未决的问题。它在维持良好的 QoE 方面起着关键作用,因为编解码器会根据此估计分配更多或更少的比特。
如果实际带宽被高估或低估,这可能不利于 QoE。现有的启发式算法可能在某些网络环境中运行良好,但在其他网络环境中效果不佳,这是由于动态、复杂和多样化的带宽波动。这些启发式算法主要参考 Google 拥塞控制 (GCC) 算法,该算法实现了两个规则,考虑聚合实时传输协议 (RTP, RFC 3550) 反馈信息来估计带宽。第一条规则是在发送方实现的基于丢失的速率控制器,而第二条规则是在接收方实现的基于延迟的速率控制器。
深度强化学习 (DRL) 最近已成为许多网络问题的关键解决方案,例如比特率自适应和 RTC 中的拥塞控制、调度和带宽预测。利用基于学习的方法掌握和动态适应各种环境的力量,我们设计了 BoB(Bang on Bandwidth)—— RTC 的带宽预测器。BoB 位于接收器处,通过吸取经验并在考虑视频质量和数据包延迟/丢失的同时快速响应网络条件的变化,完全自动运行。它使用 actor-critic 网络进行模型训练和近端策略优化 (PPO),并使用 clip 和 Adam 优化器在每个时间间隔进行策略更新。由于冷启动问题(即在会话开始时没有足够的数据可用),直接在带宽预测的上下文中使用 DRL 需要一定程度的谨慎。原因是 DRL 方法通常使用大量数据离线训练,然后在线使用有限数据。离线和在线环境之间的这种差距导致由于采用次优而导致的性能不一致动作。为了避免这个问题,BoB 包含一个自适应选择器用于最初使用基于启发式的带宽预测控制器。一旦收集到足够的输入数据,它就会切换到基于学习的控制器。请注意,我们可能会在本文中交替使用估计和预测,同时保持一个小而重要的区别。估计来自使用简单平滑的原始测量和/或样本技术,而预测是从平滑的使用基于学习的技术获取值和/或其他数据。本文的贡献有三方面:
  1. 我们设计了BoB,一种接收端混合带宽 RTC 的预测解决方案,它将基于启发式的控制器(受 GCC 算法启发)与一个 DRL 控制器。BoB的主要特点是利用 DRL 在适应多样化网络方面的优势仅使用基于启发式的控制器时的条件在 RTC 会话开始时输入数据是稀缺;
  2. 我们提出了一种自适应技术来选择启发式和基于学习的控制器,以避免使用 DRL 时的不准确操作;
  3. 我们在微软的 OpenNetLab 平台 AlphaRTC 上实现了 BoB 并验证其性能提升与最近最先进的解决方案对比。为了训练 BoB 的 DRL 模型,我们将 BoB 纳入 RTC GYM 模拟 RTC 环境,随后使用模型使用真实网络进行评估(在线 BoB 模型推理)。我们也评估BoB 在真实网络环境中使用 OpenNetLab 公共互联网测试平台。评估结果表明,BoB 实现了良好的预测准确性,高利用率和用户体验指标。

算法设计

预测带宽是其中一项关键任务直接影响用户体验的RTC。重要的问题是如何准确地进行带宽预测,考虑从实时收集的信息传输协议(RTP、RFC 3550)数据包。信息包括发送/接收时间和数据包大小可以是与每个收到的 RTP 数据包一起收集。这个信息是用于计算接收速率、数据包延迟和数据包损失,全部用作输入以确定有多少可用现在有带宽,很快就会有网络路径。通常,执行带宽预测使用基于启发式的方案(例如,基于 GCC)。在一个基于学习的方法,上述输入被转化为状态和奖励(QoE),然后映射到行动(带宽预测)。BoB 实现了以下优势两种执行带宽预测任务的方法是下面解释。

总体框架

BoB 的整体工作流程如图 1 所示,包括两个阶段:BoB测试和BoB训练。
1. BoB 训练阶段
我们使用基于 ns-3 和 WebRTC 实现的 AlphaRTC GYM 模拟器。该模拟器模拟 WebRTC 会话,利用各种从现实环境中收集的网络痕迹,例如比利时 4G/LTE、挪威 3G/HSDPA 和纽约大学 LTE。每个网络跟踪由一个吞吐量值、往返时间 (RTT) 和数据包丢失比率。我们将 BoB 实现为带宽预测模块在 RTC GYM 内。在 WebRTC 会话期间,模拟器收集和计算统计数据(例如,接收速率、数据包延迟和丢失)来自每个收到的 RTP 数据包,然后这些统计数据输入 BoB,BoB 反过来预测每个决策时刻的带宽。发送预测带宽通过 RTP 控制协议(RTCP、RFC 3550)发送给发送者反馈来调整编码率。在离线阶段,我们训练我们基于学习的 BoB 模型(参考 DRL 图 2 中的控制器,更多细节在后续章节中给出)该模型将在测试阶段使用。我们注意到那是因为我们的实验是用一个短的视频样本,我们没有在训练过程中重新训练 BoB 模型测试阶段。但是,如果需要时,可以对其进行再定期训练。
2. BoB 测试阶段
我们将 AlphaRTC 实现与 BoB 控制器一起用于接收端混合带宽预测器,如图 1 中蓝色突出显示的那样。该系统由(RTP)发送器和(RTP)接收器组成。发送方通过以下方式启动与接收方的 RTC 视频会话创建一个 UDP 套接字来发送 RTP 数据包和接收 RTCP 反馈。拥塞控制改编自 GCC 和包括两个控制器:基于损失的控制器和混合控制器BoB 控制器(它被称为混合型,因为它同时具有启发式基于延迟的控制器和基于学习的 DRL 控制器)。BoB 控制器放置在接收器处,负责基于 BoB 带宽预测器计算比特率 ()输出,然后反馈给发送者。相反,基于损失的控制器放置在发送方并负责用于计算目标发送速率(用 表示)。这目标比特率 被馈送到视频编码器,它试图以尽可能接近目标的比特率对视频进行编码。然后将编码的视频转发到数据包定速器负责调节编码器产生的比特率当编码视频的码率偏离目标时。在这里,编码器不能像起搏率。如果视频编码器产生的比特率高于目标,然后起搏器被允许在更高的速率以减轻发送方的排队延迟。在另一方面,填充/前向纠错(FEC)可以是如果需要,在某些情况下添加。这样,在平均,发送速率预计等于目标比特率 。

系统设计

BoB 是一种在接收器上实施的混合速率控制解决方案,用于改善 RTC 系统的 QoE。它结合了基于启发式速率控制器和基于 DRL 的控制器的优势来预测带宽。如图 1 所示,BoB 以网络路径的历史数据包级别统计数据作为输入,其中我们用 表示接收率,用 表示数据包延迟间隔,用 表示数据包丢失率和 个最近的预测带宽样品 。它输出下一个第 t 个时间窗的预测(用 表示),用 (以毫秒为单位)表示,其中 和 是一个 RTC 会话的时间窗口总数。然后使用 RTCP 反馈消息将预测的带宽值发送给发送方,该消息又传递给编码器。之后,编码器使用这个值作为目标比特率,并根据这个目标对帧进行编码。因此,BoB 控制接收率并有助于避免可能导致 QoE 不佳的问题。简而言之,BoB 通过利用 DRL 的力量取代了传统的、仅基于启发式的速率控制器(例如,基于无迹卡尔曼滤波器)。在离线训练阶段,它使用传入数据包(在传输层)的过去和当前信息作为神经网络的输入。由于 DRL 的性质,BoB 可能会在某些角落(未发现的)情况下偏离正确的决定,这些情况主要发生在 RTC 会话开始时。出于这个原因,我们开发了一个简单但强大的自适应选择器,可以在启发式控制器和基于 DRL 的控制器之间进行运行时切换。自适应选择器在开始时使用基于启发式的控制器当 DRL 控制器表现不佳时的 RTC 会话由于有限的会话数据和不正确的利用动作。然后,它最多切换到 DRL 控制器一次的角落案例被覆盖并且预测值变得准确。具体来说,它使用当前百分比值和百分比阈值(即固定为 30%),即根据经验调整为基于启发式和 DRL 控制器之间的切换点。当前百分比值为根据预测中的差异和平均值计算启发式和 DRL 控制器给出的带宽值。
如图 2 所示,每个端点(发送方或接收方)运行它的控制器。接收器运行 BoB 控制器,而发件人运行一个基于损失的控制器。接下来,我们描述接收方 BoB 控制器和发送方基于损失的详细控制器。

接收端控制器

在这里,我们描述了 BoB 控制器,它由 (i) 基于延迟的(启发式)控制器、(ii) DRL 控制器和 (iii) 自适应选择器组成。
基于延迟(启发式)的速率控制器
在每一次窗口 ,基于延迟的速率控制器预测带宽 如算法 1 中所述。在该算法中, 和 是数据包到达卡尔曼滤波器的系数,其是根据我们的经验进行调整的, 是控制器的状态, 是接收率最后测量的 毫秒 (ms), 是 由速率控制区域确定的附加值。这基于延迟的控制器首先使用数据包到达过滤器将接收到的数据包划分并分组为 200 毫秒的窗口然后计算斜率因子(用 表示)基于接收到的数据包组之间的延迟梯度和判断延迟变化的趋势。之后, 被馈送到自适应阈值,它设置了使用的阈值过度使用检测器。然后,过度使用检测器会产生一个信号驱动网络状态(用表示):未充分使用,过度使用或正常,基于 和阈值的正常值(见图 2)。网络然后将状态映射到控制器状态增加,减少或者保持使用 AIMD 算法来预测当前根据当前网络状态的可用带宽。如果控制器状态减少,则控制器设置速率控制区域以声明 NearMax。一旦控制器状态变为增加,速率控制区域处于状态 NearMax,控制器设置 。否则,如果控制器状态增加,速率控制区域处于状态对于 MaxUnknown,控制器设置 ,所以,控制器根据速率控制区域增加 。

基于学习的速率控制器

BoB 实现了一个 RL 智能体,它与环境交互,包含 RTC 系统中发送方和接收方之间的通信过程。对于 BoB 模型训练,数据包级统计信息(输入)在期间定期收集 的固定时间窗口并聚合为 环境状态。随后,智能体预测表示动作值的带宽。正式地,RL 智能体与定义状态空间的环境交互用表示。在每个时间窗口,RL 智能体从环境中接收状态 并且然后采取行动(下一个带宽预测时间窗口 ),同时它收到奖励 。智能体的基本目标是找到最优策略 将状态映射到动作,最大化总体奖励(即找到最大化奖励的带宽接收速率,同时最小化数据包丢失和延迟)。在采取带宽预测行动后,BoB 环境观察新的接收速率,丢包,延迟和预测的带宽,并过渡到下一个状态 ,同时更新奖励 。DRL 控制器如图 4 所示。
动作空间
在每个时间窗口 ,BoB 策略 将 映射到一个动作空间,其值范围在 0.01 和 8 Mbps 之间。具体来说,
表示适当的带宽预测范围,因此输出是一个 维向量,通过变为状态动作概率的向量,然后 将状态映射到一个合适的动作即按照概率选取。
奖励函数
奖励 计算后采取的每项行动都是为了确保 BoB 可以从中学习过去的经历,它反映了带宽的性能 根据用户 QoE 的预测精度,在每一个时间窗口,我们定义 如下:
智能体在收到更多数据包时获得奖励(实现更高的 QoE)并在数据包延迟/丢失增加时受到惩罚(导致较低的 QoE)。

自适应选择器

自适应选择器的目的是决定何时在启发式之间切换和基于学习的速率控制器。有了这个功能,我们启用混合带宽预测并增加 DRL 控制器的长期精度。带宽预测可能不准确(因为带宽数据不足造成的低估;即,传输从发送方到接收方的数据包)在一个开始会话,因为从 DRL 控制器返回的值位于那个时间主要与训练数据集有关。

发送端基于丢包的控制器

发送器和接收器控制器相辅相成选择合适的比特率。基于损失的控制器位于在发送方,负责选择发送速率基于丢包率。在每个时间窗口 中,发送方收到来自接收方的 RTCP 反馈消息携带预测的带宽 和丢失率 在接收器计算,发送端据此选择发送率 如下:

算法验证

将 BoB 与三种方法进行了比较:启发式方法、ACM MMSys'21 挑战的获胜者(Gemini)和亚军(HRCC)。

验证指标

我们测试了 BoB 和其他方法的效果使用了以下评估指标:
1)带宽预测误差和精度
带宽预测误差和精度是根据对称平均绝对百分比误差 (sMAPE),sMAPE 是一种基于百分比(或预测带宽值 () 和之间的相对误差总样本 的实际网络配置值 (),其公式如下:
2)网络得分
网络得分(用 表示)由三个指标的组合计算得出:延迟得分、丢包得分和接收速率得分,如下所示:
此处
3)视频分数
4)总分

实验结果

不同网络下的带宽预测结果展示如图 5 所示,平均 QoE 分数和分数细节分别如图 6 和图 7 所示。在所有考虑的实验中,BoB 在大多数性能指标中表现更好,并且优于 Gemini、HRCC 和 Heuristic 解决方案在各种网络条件下,这主要是由于 BoB 的结合启发式和基于学习的控制器的设计用于 RTC 的带宽预测和比特率选择系统。
图 5 不同网络情况的带宽预测效果展示
图 6 平均 QoE 总分数
图 7 QoE 分数细节

总结

我们开发了一个接收端混合带宽预测器对于 RTC 服务,命名为 BoB。混合预测是使用启发式和基于学习的控制器实现的,启发式使用延迟过滤器,而基于学习的机制使用 DRL actor-critic 网络与 PPO 和用于模型训练和策略更新的 Adam 优化器。为了执行带宽预测任务,BoB 使用每个会话开始时基于启发式的控制器然后切换到基于学习的控制器以获得更多准确的带宽预测。因此,BoB 可以实现更高的接收率,减少数据包延迟和丢失比,有助于更好的用户体验。在每个时间窗口,BoB收集包级数据,包括接收速率、包延迟、包丢失和最后八个预测带宽值作为神经网络的输入状态网络预测下一个时期的带宽。BoB已经集成到AlphaRTC中,结果展示了 BoB 在 RTC 带宽预测方面的优越性。BoB 的实现了 15.62% 和 27.87%的带宽预测准确率相比Gemini和HRCC(ACM MMSys'21 挑战的冠军和亚军)。
继续阅读
阅读原文