前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Loki: 通过融合基于规则的模型提高基于学习的实时视频自适应的长尾性能

Loki: 通过融合基于规则的模型提高基于学习的实时视频自适应的长尾性能

作者头像
用户1324186
发布2022-11-07 15:14:30
1.6K0
发布2022-11-07 15:14:30
举报
文章被收录于专栏:媒矿工厂媒矿工厂

来源:ACM MobiCom ’21 论文标题:Loki: Improving Long Tail Performance of Learning-Based Real-Time Video Adaptation by Fusing Rule-Based Models 论文链接:https://dl.acm.org/doi/pdf/10.1145/3447993.3483259 作者:Huanhuan Zhang 内容整理:尹文沛

目录

  • 摘要
  • 1 简介
  • 2 测量和发现
    • 2.1 测量方法
    • 2.2 了解基于学习的设计的局限性
    • 2.3 为什么现有的混合学习方法是无效的?
  • 3 系统概述
  • 4 基于规则的黑箱 Actor
    • 4.1 为什么要“黑盒化” GCC
    • 4.2 黑盒化 GCC 的设计
  • 5 自适应学习 Actor
  • 6 双注意力融合
    • 6.1 结构设计
    • 6.2 训练方法
  • 7 实现和部署
    • 7.1 商业实时视频系统的实现
    • 7.2 大规模部署
  • 8 评估
    • 8.1 系统级评价
    • 8.2 深入探索 Loki
  • 9 相关工作
  • 10 讨论
  • 总结

摘要

最大化实时视频的体验质量(QoE)是一个长期存在的挑战。传统的视频传输协议以少量确定性规则为代表,难以适应异构、高度动态的现代互联网。新兴的基于学习的算法已经显示出应对这一挑战的潜力。然而,我们的测量研究揭示了一个令人担忧的长尾性能问题: 由于内置的探索机制,这些算法往往会受到偶尔发生的灾难性事件的瓶颈。在这项工作中,我们提出了 Loki,它通过将学习模型与基于规则的算法相结合,提高了学习模型的鲁棒性。为了能够在特征层次上进行集成,我们首先将基于规则的算法逆向工程为一个等效的“黑盒”神经网络。然后,我们设计一个双注意特征融合机制,将其与一个强化学习模型融合。我们通过在线学习在一个商业实时视频系统中训练 Loki,并对它进行了超过1.01亿次的视频会话评估,与最先进的基于规则和基于学习的解决方案进行了比较。结果表明,Loki 不仅提高了系统的平均吞吐量,而且显著提高了系统的尾部性能(95% 时,系统的卡顿率降低了26.30% ~ 44.24% ,视频吞吐量提高了1.76% ~ 2.17%)。

1 简介

实时交互视频正变得越来越普遍。从在线教育、远程工作到贸易展览,甚至社交聚会,实时视频正在重塑我们的生活方式,尤其是在2019冠状病毒疾病大流行的情况下。展望不久的将来,由于部署了5G 移动宽带,新的实时视频应用正在出现。例子包括3D 体视频交互 ,机器人遥控操作等等。市场报告预测,实时视频将占互联网视频总流量的17%,到2025年全球将产生高达2173亿美元的收入。

尽管经过了几十年的发展,保证实时视频的体验质量(QoE)仍然是一个公开的挑战。一方面,实时视频对延迟敏感,而且带宽需求很大(例如,1080p 的视频约为5Mbps,4K 视频约为25Mbps)。视频帧的生命周期,从视频捕获,发送方编码,互联网传输,到接收方的解码和渲染,应该在几十毫秒内完成。另一方面,现代互联网正在变得高度异构,包括光纤、 WiFi、 LTE,以及新兴的5G 移动网络,具有非常多样化的带宽和延迟特性。经典的通用数据传输协议(例如,GCC,BBR,Proteus)在同时优化视频比特率和延迟方面遇到了困难。他们受到过度保守的带宽估计的困扰,无法跟踪瞬时网络动态,并且在面对看不见的网络条件时缺乏灵活性。

近年来见证了基于学习的视频传输设计的兴起。与经典的基于规则的协议不同,基于学习的方法通常使用覆盖各种网络条件的大数据集来训练神经网络模型。尽管数据驱动模型通常带来高性能的平均水平,但由于其不可解释和不确定的行为而缺乏健壮性,仍然是生产系统中大规模部署的主要障碍。实际上,不管平均性能如何,一个灾难性 QoE 退化的实例可能会导致用户放弃应用程序。

为了揭示实时视频传输的尾部性能,我们对基于规则和基于学习的算法进行了测量比较。我们的研究导致了两个关键的观察结果: (i)基于学习的方法确实在传输层指标方面表现出增益,例如,更高的吞吐量和更低的平均延迟。然而,令人惊讶的是,这些收益并不一定转化为 QoE 的改善,应用层的帧延迟和帧抖动甚至可能变得更糟。深入分析揭示了原因:使用基于学习的算法,传输层性能指标呈现长尾分布。例如,尽管平均数据包级别的 RTT 很低(例如28.96 ms) ,但是有一小部分数据包的 RTT 过大(例如600 ms)。由于一个视频帧由多个数据包组成,即使是一个单独的离群数据包也会导致较大的帧延迟/抖动,并对播放的平滑性产生不利影响。(ii)基于学习的方法偶尔会输出不准确的带宽估计,特别是严重的超调,这会导致灾难性的行为,例如,跳帧甚至暂时的视频卡顿。我们发现,根本原因在于这些方法,尤其是广泛使用的强化学习算法,本质上是通过试错探索来做决定的。他们寻求最大化长期累积回报的代价是偶尔带宽超调或利用率不足,这导致长尾性能不佳。总之,我们发现基于学习的方法缺乏鲁棒性。

受观察的启发,我们试图回答一个关键问题: 我们能否设计一个实时视频传输算法,在平均性能和尾部性能上都实现高性能。为此,我们提出了 Loki(Loki 是挪威神话中善于变形的人物),一个同时利用基于规则的方法的确定性和基于学习的方法的预测能力的混合模型。当网络条件不稳定时,Loki 会做出保守的视频比特率决策,这是典型的基于规则的方法,以避免灾难性的 QoE 降低。否则,Loki 可以通过强化学习式的探索来充分利用网络容量。

尽管这个想法在高层次上很简单,但是我们为 Loki 确定了两个独特的设计挑战。

(i)如何使基于规则和基于学习的模型兼容,从而“可融合”?前者采用硬编码的“如果-那么”规则,后者采用基于神经网络的黑盒特征表示。以前的工作往往采取一个“时间分割”方案时,整合两者。例如,Orca 大多数时候运行基于规则的传输层协议,而偶尔诉诸于基于学习的 TD3 来调节基本比特率。类似地,OnRL 只有在怀疑学习模型行为异常时才使用基于规则的协议作为备用方案。然而,我们的实验表明,这种多路复用方法未能利用两者的综合能力,往往导致令人不满意的性能(第2节)。相比之下,Loki 的目标是两者之间更深层次的融合和协同。Loki 通过定制的模仿学习模型将基于“白盒”规则的方法(即 GCC)转换为等价的“黑盒”神经网络模型。通过这种方式,两种方法变得兼容,可以在“特征层”而不是决策层进行融合。

(ii) 如何确保特征融合实际上分别捕捉到基于规则和基于学习的模型的优点?为了满足这一要求,我们设计了一种双注意特征融合机制。特别地,Loki 将两个神经网络模型的学习高级特征看作一种注意力或信心系数。它通过在共同确定最优决策时给予更大的权重,优先考虑那些更有信心实现更高 QoE 的特性集。为了实现注意力机制,我们在一个基于最先进的强化学习算法的大型商业交互式视频系统中训练集成模型。经过反复训练,Loki 最终发展成为一个自包含的模型,能够以可靠的方式自动响应新的环境。

我们在一个顶级的商业交互式移动视频系统淘宝中实现并部署了 Loki,该系统可以为数千万用户提供服务。我们还部署了其他 3 种最先进的解决方案: 基于规则的 GCC、基于学习的 OnRL 和用于基准比较的混合 Orca。我们的实验涉及生产系统中的1.01亿个视频会话,总共150年的播放时间。与基线相比,Loki 算法的卡顿率平均降低了13.98% -27.27% ,视频质量平均提高了1.37% -5.71% 。与此同时,Loki 大幅削减了长尾,例如,它减少了百分比 95 的卡顿率26.30% 44.24% 。通过处理长尾 QoE,Loki 比默认的 GCC 平均观看时间增加了2.62% -4.68% ,这可以转化为显著的商业价值。

贡献: Loki 的关键新颖性和技术贡献可以总结如下:

  1. 通过测量研究,我们调查了现代基于学习的实时视频适应算法的长尾性能问题(第2节)。
  2. 我们提出了一个“黑箱化”基于规则的算法的方案,使它们与基于学习的算法兼容和“可融合”(第4节)。该方案可以应用于其他基于规则的协议设计。
  3. 我们设计了一个双重注意机制来紧密协调基于规则和基于学习的模型,使深层特征层次代替决策层次融合(第5,6节)。
  4. 我们在一个商业实时视频系统上实现并部署了 Loki,并与最先进的解决方案进行了比较,验证了它的有效性(第7,8节)。据我们所知,这是第一次基于学习的实时视频适应的现场测试,规模达数亿次。

2 测量和发现

在这一部分,我们提出了一个微观测量研究,以了解目前基于学习的实时视频自适应算法的尾部性能。

2.1 测量方法

测试台实现。我们建立了一个基于 WebRTC 的实时交互式视频系统的仿真测试平台-主流实时视频/音频应用程序采用的事实上的视频通信框架,例如 Google Hangouts,Facebook 和 Amazon Chime。WebRTC 同时实现传输层和应用层协议。在传输层,它封装了一个基于谷歌拥塞控制(GCC)的比特率控制算法,在应用层,它运行一个视频编解码器(例如,H. 264,H. 265) ,为给定的目标比特率生成视频帧。 在我们的试验台设置中,两台 PC 主机通过以太网交换机连接,一台作为视频发送器,另一台作为接收器。发送方使用摄像机捕捉真实世界的场景,这些场景被传递给接收方并实时渲染。我们使用 Linux 流量控制(tc)工具来模拟端到端网络带宽的变化,它遵循从商业实时视频系统收集的跟踪。跟踪覆盖50多个国家的用户,包括细粒度(即1秒粒度)的网络统计(吞吐量、数据包延迟、丢失等)和不同的网络类型(WiFi、4G 和有线线路)。

实时视频传输的最新算法。 我们比较了三种典型的实时视频传输算法: (i) Google 拥塞控制(gCC),这是 WebrTC 框架中默认的、最流行的基于规则的协议。 由于它的比特率直接被视频编解码器视为视频发送比特率,因此被普遍认为是一种视频传输算法。(ii) Concerto,一种基于模拟学习的方法,融合来自传输层和应用层的网络信息,以优化视频比特率控制。(iii) OnRL,一种基于在线强化学习(RL)的实时视频算法,其中包含一个强大的学习机制,即当 RL 模型显示较差的视频质量时,将遗留的基于规则的协议视为“备份”。

2.2 了解基于学习的设计的局限性

我们使用相同的 7 个随机选择的总长度为 5 小时的实时视频跟踪集,对不同的算法进行了实验。Tab 1 中总结了由此产生的传输层和应用程序层性能指标。我们观察到: (i)基于学习的 Concerto 和 OnRL 确实显著改善了传输层的性能,例如,在视频比特率上分别提高了10% ,17% ,在 RTT 上分别下降了44.63% 和30.28% 。此外,OnRL 比 GCC 减少了3.48% 的数据包丢失。分组失速率分别为83.24% 和41.18% 。(ii)我们检查接近人类可感知的 QoE 指标,例如,帧延迟、帧抖动和帧失速率。我们注意到以前的作品,例如 Concerto 和 OnRL,关注于传输度量,但是还没有推导和研究这些 QoE 度量。例如,OnRL 报告数据包失速,但不报告帧失速。我们惊奇地发现,Concerto 和 OnRL 在传输层的增益并不一定转化为应用层的 QoE 改进。帧级 QoE 指标实际上恶化了,即 OnRL 的帧延迟和帧抖动分别增加了11.82% 和23.11% 。更糟糕的是,接近人类可感知视频冻结效果的帧失速率分别比协奏曲 GCC 和 OnRL 分别高3.03 × 和39.73% 。

表1

长尾性能。深入的分析表明,性能差距源于传输层指标的长尾分布。作为展示,我们在同一个视频会话收集的网络跟踪上运行这三种算法,并在图 1 中绘制了 RTT 的 CDF 和 1 秒级粒度的丢包率。我们观察到过长的 RTT (即 > 160 ms)占 GCC 数据包的 1.0% ,相比之下,Concerto 和 OnRL 分别为3.17% 和1.5% 。同样,过大损失率(即 > 10%)的比例分别为0.67% 、8.17% 和2.17% 。正如我们所知道的,视频帧只有在其所有组成数据包到达之后才能渲染和播放。因此,即使是单个丢失或迟发的数据包也可能增加帧延迟,这反过来又会引起连锁效应,因为邻近的帧通常依赖于彼此进行解码。 例如,我们已经确定的情况下,10% 的丢失率或100毫秒的 RTT 可以导致一个大的帧延迟持续1.2秒,这危及视频流畅性。

图1 传输层指标综合发展框架

基于学习的算法会遭遇更灾难性的 QoE 退化事件。为了检查 QoE 下降的严重程度,我们根据以前的研究计算了灾难性事件的发生率,即比特率估计超过 100Kbps 和小于 12 fps 的次数。Tab 1 中的最后两列。汇总了 7 个跟踪的统计信息,归一化为1小时粒度。我们可以观察到: (i)与 GCC 相比,Concerto 和 OnRL 导致更多的比特率超调和过多的帧延迟,因此更多的低 fps 事件,例如 3.13× ,40.38% ,这严重损害了 QoE。尽管 Concerto 有较少的比特率超调,但是超调幅度比 OnRL 大得多,这最终导致更高的丢失率和更高的低 fps 计数。

2.3 为什么现有的混合学习方法是无效的?

集成基于规则和基于学习的方法的想法最近才出现。OnRL 和 Orca 代表了最先进的技术。然而,两者基本上以“时间划分”的方式结合了这两种方法,这缺乏如下所示的鲁棒性。

OnRL 结合了一个过度使用检测器来识别可能的超调并切换到基于保守规则的 GCC,以期减少灾难性行为。然而,我们发现这样的回退操作只有在灾难性事件已经开始之后才起作用。图 2 显示了这个问题: 一个过冲事件从 M0开始,OnRL 检测到这个事件并在 M1切换到 GCC,大约15秒后。OnRL 结合了一个过度使用检测器来识别可能的超调并切换到基于保守规则的 GCC,以期减少灾难性行为。然而,我们发现这样的回退操作只有在灾难性事件已经开始之后才起作用。图2显示了这个问题: 一个过冲事件从 M0 开始,OnRL 检测到这个事件并在 M1 切换到 GCC,大约 15 秒后。

图2 OnRL 表现出比 GCC 更长时间的超调

Orca 使用一个两级控制策略,在基于规则和基于学习的适应之间交替。它最初是为 TCP 拥塞控制设计的。在这里,我们适应它的实时视频比特率控制和重新命名为 Orca-plus 的新版本。更具体地说,为了与 OnRL 进行公平的比较,我们分别用 GCC 和 PPO 取代 Orca 的原始 TCP Cubic 和 TD3 方法。Orca-plus 与 OnRL 保持相同的输入和输出,但其神经网络架构和训练方法遵循原始的 Orca。我们的实验显示,Orca-plus 比 GCC 显示出更多的超调和利用不足,如图 3 所示。最初应用于拥塞控制,Orca 的收获主要依赖于一个巨大的缓冲区来调整它的混合决策。然而,实时视频系统有一个更严格的毫秒级缓冲区,这使得 Orca-plus 没有时间来执行混合决策。这些观察促使我们设计一个更实用的实时视频混合学习算法。

图3 Orca-plus 有更多的超调和利用不足

3 系统概述

图 4 说明了实时视频系统的端到端工作流程和我们的 Loki 体系结构。在实时视频会话过程中,发送方不断地捕获视频图像,将其编码成视频帧,然后将其分组并沿着端到端网络路径发送。接收机可以将数据包重新组合成帧,进行解码、渲染,最后播放视频。实际上,工作流可以是双向的,支持交互式视频应用程序。

图4: Loki 的系统概述

实时视频的 QoE 在很大程度上取决于发送方的比特率控制算法,该算法试图将视频质量与瞬时网络带宽相匹配。然而,现代互联网是高度复杂的,由于无数的异构链接,高度动态的,由于不同的流量模式和移动链接的混合参与。这些因素加在一起使得比特率控制成为一项非平凡的任务,特别是在严格的延迟约束下。

与现有的比特率控制算法不同,Loki 是真正的混合算法,包括两个并行操作的参与者: 一个基于学习的 RL 参与者和一个基于规则的 GCC 参与者,它们通过特征级融合集成到一个神经网络实体中。这些特征包含了大量的神经网络权值,并且保留了关于参与者如何对底层网络条件做出反应的高级表示能力。深度集成是通过基于规则的 GCC 协议的“黑箱化”实现的,其次是双重注意融合设计。

Loki 深度融合架构的好处。通过深度融合基于学习和规则的参与者,Loki 获得了基本的优势: Loki 的双注意融合机制可以通过瞬时混合反应避免灾难性决策。从本质上讲,基于规则的协议采用了加性增加-乘性减少(AIMD)适应的变体,这种适应在探索时速度较慢,但在降解时速度较快。当网络条件突然下降时,GCC 的参与者被训练产生一个更大的注意因子,并在决策中权重更大,使最后的行动更加保守和“安全”。另一方面,当网络恢复时,Loki 可以优先考虑擅长快速探索的基于强化学习的参与者。此外,为了迅速响应网络动态,输入/输出通常在细粒度的毫秒级别上生成。然而,过度的比特率波动可能会破坏用户可感知的 QoE。为了克服这个问题,Loki 设计了平滑相关的奖励函数和训练方法来平滑 agent 的比特率决策,从而提高视频质量。

4 基于规则的黑箱 Actor

我们首先阐明“黑盒化” GCC 的必要性,然后展示我们的黑盒 GCC 设计的细节。

4.1 为什么要“黑盒化” GCC

我们首先在图5(a)中说明了基于规则的 GCC 和基于学习的协议的特征特征。基于白盒规则的 GCC 由几个方程表示,这些方程将每个预定义的网络状态映射到一个特定的比特率决策。映射是一种稀疏的分段函数,缺乏细粒度的特征表示能力。另一方面,基于学习的智能体由精细的神经网络结构构建而成,并融合了具有高级表示能力的特征空间。显然,在特征层面上,白盒版本与基于学习的神经网络模型本质上是不兼容的。虽然它们可以在决策级别结合起来,但是如何在这两者之间进行多路复用本身就是一个非常重要的决策。

图5: 融合选择: (a)使用原始的基于规则的 GCC 的决策级融合。(b)黑箱化 GCC 后的特征级融合

在 Loki 中,我们选择在特性级别将两者深度融合。为此,我们通过将“白盒”GCC 转换为“黑盒”神经网络模型使它们兼容。这使黑盒 GCC 具有特征表示能力。现在我们可以通过一个捕捉两种策略优点的神经网络结构来深入地整合这两种策略,如图5(b)所示。我们可以进一步利用融合的高层特征来确定一个行动,目的是为下层网络条件的最优决策。

4.2 黑盒化 GCC 的设计

乍一看,通过简单的离线监督式学习推导出 GCC 的黑盒版本似乎很简单。例如,在运行 GCC 时,可以记录一组由

\vec{I}

表示的网络状态(包括丢包

\vec{l}_t

、延迟抖动

\vec{j}_t

等)和相应的由

b

表示的最优比特率决策(即 ground-truth 标签)。然后,利用采集到的数据集对神经网络模型进行有监督的训练。然而,我们发现,这样的监督式学习远远没有产生一个忠实的黑盒 GCC 模型。黑箱化基于规则的 GCC 的任务与传统的离线监督式学习任务(如图像分类)有本质区别,后者的决策是“一次性的”,即输出不会影响后续任务实例。相比之下,我们的 GCC 培训实际上是一个在线顺序决策任务,也就是说,输出决策将对下一个状态

\vec{I}_{next}

产生直接影响,等等。

为了应对这一挑战,我们提出了一个在线训练的模仿学习(IL)模型,它可以忠实地模仿 GCC 的行为。与离线监督式学习不同的是,IL 可以处理在线顺序决策问题,同时保留了 ground truth 标签的演示能力。我们在图 6 中说明了 IL 训练框架。具体来说,我们在运行时在 WebRTC 框架内训练黑盒 GCC 模型,黑盒 GCC 和白盒 GCC 并行运行。白色-GCC 生成一个 GCC 比特率(表示为

b

) ,它被认为是专家标签。同时,黑盒 GCC 将生成一个比特率

\hat{b}

。然后,

\hat{b}

将被 WebRTC 框架采用作为目标视频比特率。由于预测的

\hat{b}

是实际执行的,它对后续状态的影响最终会显现出来。现在,我们将详细介绍对于黑盒 GCC 的在线培训至关重要的模块,即输入、输出、神经网络体系结构和定制的损失函数。

图6 黑盒化 GCC 的仿真学习设计

输入和输出。我们指定的输入和决策区间与 GCC 是一致的。在 WebRTC 实时视频传输框架中,RTP 和 RTCP 协议分别用于传输视频数据包和反馈信息。在每个 RTCP 反馈数据包的到达时间

t

时,数据包丢失和数据包延迟抖动的统计

I_t = \{\vec{l}_t,\vec{d}_t \}

, 用作我们模型的输入。至于输出,我们使用底层视频比特率选项作为基本值

\hat{b}_u

,然后指定一个列表作为黑盒 GCC 的输出选项:

\mathcal{V}:\{0.85, 0.89, 0.96, 0.98, 0.99, 1.0005, 1.001, 1.0015, 1.002, 1.0025 \}

遵循 GCC 最初的设计。因此,NN 神经网络模型将生成一个表示为

\mathcal{P}

的概率分布,并通过一个 softmax 函数选择最大概率作为目标。因此,下一个 RTCP 间隔的新比特率

\hat{b}^*

用 Eq(1) 计算。并且

\hat{b}_u

将被最新的

\hat{b}^*

所取代。

\hat{b}^* = \mathcal{V}[max(softmax(\mathcal{P}))] \times \hat{b}_u \qquad (1)

基于神经网络的 IL。我们使用神经网络体系结构来表示黑盒模型。首先将输入

I = (\vec{l}_t,\vec{j}_t)

输入到具有 16 个神经元单元的两个独立的 FC 层,然后将得到的特征输出融合到一个包含网络丢失和延迟信息的高级特征映射中。然后,将熔合层输出送入两个单位大小分别为 64 和 32 的连续 FC。最后,一个带有 softmax 函数的 FC 输出 V 的概率列表,这将与第 6 节详述的 RL Actor 的特征深度融合。

加权损失函数和训练细节。为了训练黑盒 GCC 模型,同时保证它与基于规则的 GCC 模型保持相同的保守行为,我们将经典的交叉熵损失

\mathcal{L}

定制为一个加权函数。具体来说,我们给

\mathcal{L}

更大的权重来惩罚超调。此外,我们利用 IL 的 dagger 训练循环和 adam 优化器来维持训练效果,学习率为

2.5 \times 10^{-3}

,一批数据量为 64,并且使用 LeakyreLU 激活函数。

5 自适应学习 Actor

Loki 中基于学习的参与者是基于一种经典的强化学习算法 PPO。PPO 是一种具有较低训练方差和容易收敛的策略优化算法。 PPO 在实时适应方面的潜力在最近的工作中得到了验证。我们注意到,Loki 可以为其基于学习的参与者采用其他 RL 算法或培训方法。接下来,我们继续描述基于学习的参与者的关键模块和定制设计。

RL agent 的状态和行为。我们将 Loki 的学习参与者看作是一个与网络环境交互并提供即时响应的代理,比如说比特率操作。状态,即 RL 模型的输入,在每个 RTCP 反馈包的到达时间

t

,表示为一个列表

s_t = \{\vec{l}_t, \vec{j}_t. \vec{d}_t,t_t\}

,分别代表包丢失,延迟抖动,延迟,和接收吞吐量。

Action,即 Loki 的输出,表示发送者的目标视频比特率。与无线链路比特率自适应不同,视频比特率在不同级别之间没有固定的边界。因此,比特率水平通常是经验设置。按照这种常见的做法,Loki 的操作是从比特率空间中选择的,其中10个离散的操作经验性地设置如下:

[0.7 Mbps,0.83 Mbps,. . ,1.87 Mbps,2.0 Mbps]

。两个极端的边界值,例如 0.7 Mbps 和 2.0 Mbps,与我们的商业实时视频系统的边界值一致。此外,其他 8 个层次大致相等地分隔在两者之间。 我们注意到 RTCP 反馈的时间周期通常在 50 毫秒左右,虽然视频编解码器不能严格遵循毫秒级粒度的每个比特率更新,但是它将在更长的时间范围内生效,在 loki 中遵循长期折扣奖励机制(Eq(2))。

神经网络结构。按照最先进的 OnRL 模型,我们首先将序列平坦化为

S_t

,然后将它们分别用 64, 32 个单元和 tanh 激活送入两个级联 FC 网络。在简单的特征提取之后,通过线性激活将中间特征反馈到一个包含 10 个单元的 FC 层,用于与 GCC 的神经网络模型进一步的注意力融合(更多细节见第6节)。

RL 的奖励设计。RL 的目标是使长期累积报酬最大化。首先,我们采用经典的幂奖励函数设计,定义为

R = 吞吐量/延迟

。直观地说,

R

反映了同时最大化吞吐量和最小化网络延迟的目标。考虑到在实时视频中,网络丢失和视频平滑性对 QoE 至关重要,我们进一步定制了奖励函数,添加了两个关键指标: 包丢失和视频质量平滑性。更具体地说,Loki 的奖励函数表示如下:

\hat{R} = \alpha \times (throughput - loss)/delay - \beta \times |q_n - q_{n-1}| \qquad (2)

这里,吞吐量由接收机测量,直接影响视频质量。传输层的分组延迟和丢包率表明了 Loki 带宽估计的影响。值得注意的是,这两个指标,即吞吐量和loss,在单位方面是不相容的,但它们属于有意义的范围内,可以被视为数值归一化值之间,即,吞吐量的值通常在 0.5-3 Mbps,loss 在 0.1-3% 的范围。因此,我们将两者直接结合在 reward 函数中。

q_n

q_{n-1}

分别代表混合代理的最新决策和最后的视频比特率。而且,

q_n-q_{n-1}|

用于增强 RL 代理的比特率平滑性,以避免较大的帧抖动。我们添加了两个额外的因子

\alpha,\beta

来将这些指标标准化到一个一致的范围内,以促进模型训练。我们发现,当这些因素分别在5-15和0.2-2范围内时,训练能够很好地收敛。在实际部署中,我们设置

\alpha = 5

\beta = 0.5

。为了使 RL 代理能够充分利用链路带宽,并在延迟在合理范围内(如{ min delay,10ms })时增加其 reward ,我们在 reward 函数中将延迟值设置为链路的最小延迟,使 reward 对区间内的小延迟变化不敏感。基于 RL 的 PPO actor 和基于注意力的特征融合最终要经过一个单一的训练过程,这将在第6.2节中描述。

6 双注意力融合

在这一部分,我们描述了 Loki 的双注意特征融合设计及其训练方法。

6.1 结构设计

基于注意的特征融合广泛应用于机器学习任务,尤其是图像处理领域。 一般来说,它的目的是以自注意的方式整合不同层次的特征(如图像中的位置和 RGB 通道) ,即更多地关注神经网络模型提取的高权重特征,从而提高特征提取能力。

基本注意力融合设计。为了实现 Loki 的利用双方优势的原则,我们将混合比特率自适应建模为一个注意力融合任务,并进一步定制构建了一个双重注意力特征融合体系结构。图 7 显示了详细的工作流程。首先,我们有两个基于神经网络的参与者,即黑盒 GCC 和基于学习的 PPO 参与者。

图7 loki的双重注意特征融合

当一个新的网络状态到达时,

It=(\vec{l}_t,\vec{j}_t)

部分被传递给 GCC 参与者的 NN, 和

S_t = (\vec{l}_t,\vec{j}_t,\vec{d}_t,t_t)

到 PPO actor。然后,两个参与者按照第 4 节和第 5 节描述的自己的神经网络结构进行连续的特征提取,最后通过 softmax 操作输出最后一层特征,分别表示为

\vec{F}_g

\vec{F}_p。特别地,最后一层特性可以被看作是一个概率列表:

\vec{F}_g = [g_1,g_2,...,g_n]

\vec{F}_p = [p1,p2,...,p_n]

,其中每个元素表示产生一个特定比特率动作的概率值。例如,

i

是在 GCC 的输出空间中选择第九个比特率的概率,即第4节中的

V$ 列表。为了深入整合两个 Actor,我们进行如下特征融合:

\vec{F_h} = \vec{F}_g \otimes \vec{F}_p \qquad (3)

其中操作

\otimes

表示元素式乘法,这是注意力融合中使用最广泛的操作。与直接的元素求和和连接相比,

\otimes

对两个参与者的不同特征更具有区分性,更符合我们的任务。通过这种方式,

\vec{F}_h

吸收了两个 Actor 的基本混合特征。

融合领域知识。除了基本的双注意融合,我们发现在典型的实时视频适应中,需要更深入的定制来更好地处理两个独特的问题,即(i)比特率超调和(ii)缓慢恢复。为此,我们观察到基于学习的参与者经常导致超调,而 GCC 经常产生保守的比特率操作。 另一方面,RL 参与者表现良好,能够在网络状况从下降中恢复时快速探索,比 GCC 的“缓慢恢复”更好。因此,我们利用上述领域的知识进一步优化融合

\vec{F}_h

在我们的设计中,

\beta

是一个经验参数,值为 20,

\Gamma

表示基于神经网络的 GCC 的递减因子的边界指数,例如,

\Gamma

在 GCC 的输出列表

\mathcal{V}

中被设置为 4。这两个经验参数的影响将在第 8.2 节进行评估。然后,方程(3)中的注意特征

\vec{F}_h

可更新为:

\vec{F}_h^{*} = f(\vec{F}_g) \otimes \vec{F}_p \qquad (5)

因此,最终的双注意比特率决策应该是:

Bitrate = \mathcal{F}[argmax(\vec{F}_h^{*})] \qquad (6)

值得注意的是,经过适当的训练,基本融合及其适应过程变得完全自动化。与现有的混合式学习设计(如 OnRL,Orca)相比,我们强调 Loki 有两个优势: (i) Loki 是真正的混合式,由两个并行操作的参与者组成,因此两个参与者可以更快地检测特征级和毫秒级粒度的拥塞控制,优于第二级检测和切换操作,如第 2.3 节所观察到的。(ii)随着网络条件的变化,Loki 可以立即生成由两个参与者的注意特征融合共同决定的混合比特率。融合比特率可以自动防止过于离谱的行为,因此它是“安全的”,可以减少灾难性事件。我们将通过微基准实验验证 Loki 的深度“特征级”融合优于现有的“决策级”融合(第8.2节)。

6.2 训练方法

在 Loki 中,我们采用 PPO 的 Actor-Critci 架构来训练。Actor 负责选择一个注意比特率,而 Critic 负责评估 Actor 的政策。在 Loki 中,参与者按照增加优势函数

adv(\mathcal{A})

的方向更新梯度。损失函数

\mathcal{L}(\theta)

表示为:

\mathcal{L}(\theta) = \hat{E}[min(\delta(\theta)adv(\mathcal{A}),clip(\delta(\theta),1 - \varepsilon,1+\varepsilon)adv(\mathcal(A)))] \qquad (7)

其中

\delta(\theta) = \frac{p_{\theta new}(s,a)}{p_{\theta last(s,a)}}

,它表示一个新的策略

p_{\theta new}(s,a)

与它的最后一个

p_{\theta last}(s,a)

的比率。当它超出区间

[1-\varepsilon,1 + \varepsilon ]

(这里

\varepsilon

是一个超参数,我们经验地将它设置为0.2[57])时,等式(7)是通过 clip 操作,使用

\delta(\theta)

来避免激进的策略更新。与直接利用

p_{\theta}(s,a)

的方法相比,

\delta(\theta)

可以使更新策略更加平滑,既保证了 Loki 更高的视频 QoE,又避免了梯度振荡。

另一方面,Critic 网络主要通过产生一个价值函数

\mathcal{V}(s)

来评价 Actor 的策略,而训练效果则通过一个优势函数

adv (\mathcal{A})

来评价,具体如下:

adv(\mathcal{A}) = \hat{\mathcal{R}} + \gamma \mathcal{V}(s_{t+1}) - \mathcal{V}(s_t) \qquad (8)

其中

\mathcal{R}

代表第 5 节中与

\hat{R}

有关的折扣报酬。当Actor 的奖励是好于预期的平均值

V(s_t)

时,

Adv(\mathcal{A})

将更新神经网络权重的方向。这里

\gamma

作为一个衰减因子,定制设置为0.9。

整体训练设置。利用仿真试验台对黑盒 GCC 模型进行训练,然后将模型保存在一个pb模型,大小为8.6 KB。我们直接使用训练后的黑盒模型与基于 PPO 的 Actor 进行进一步的融合。整个模型的大小是 180.2 KB ckpt 格式,并将占用平均 3.83% 的 16 GB 内存训练。为了有效地学习和响应实际的网络条件,我们以在线学习方式训练双重注意融合网络,其中训练位于与商业视频系统相关的服务器集群中(详见第7节)。特别是,当每个会话开始时,用户加载一个预先训练好的模型,以便根据网络条件进行快速适应,并且随着视频会话的继续,随着时间的推移进一步训练其个性化模型。从本质上讲,Loki 的行为类似于在线学习算法 OnRL,它随着动态网络变化而演化,并在整个训练生命周期中不断优化其模型。

7 实现和部署

7.1 商业实时视频系统的实现

图 8 显示了 Loki 的实现工作流程。我们将 Loki 集成到一个主流的商业实时视频应用程序中,这个应用程序被全世界数亿用户用于电子商务直播节目和虚拟交互式购物。APP 由上行链路(即从实时视频流到选择性转发单元(SFU)节点)和下行链路(即从 SFU 到观众)组成。上行链路依赖于实时通信(RTC)协议,这是本文的优化目标。下行链路可被视为一个实时视频内容分发系统,其中每个视频帧可由多个 SFU 重新分发。然而,与视频流媒体服务器不同的是,浏览器的客户端有一个相对较短的缓冲区,持续时间为几百毫秒(最长可达1秒) ,以确保视频帧可以实时观看。实时视频电话系统的体系结构。

具体来说,上行链路建立在 WebRTC 之上,WebRTC 是一个基于 RTP 的实时流框架,由成熟的比特率控制器模块(默认是 GCC)和视频编解码器组成。尽管如此,Loki 还是可以提高下行链路和端到端 APP 视频质量,我们将在 8.1 节中进行验证。我们的实现将 APP 的内置比特率控制器替换为最先进的解决方案: { Loki,OnRL,Orca-plus,GCC4} ,它包含一个比特率控制器库。 理想情况下,这些解决方案应该部署在流媒体端的移动应用程序中。然而,我们发现许多移动设备不支持在设备上的培训,这对于 Loki 的在线学习是至关重要的。此外,移动设备受到其能源和 CPU 资源预算的限制。因此,我们在云服务器集群上部署比特率控制器。在每个视频会话期间,每个发送方(即流媒体端 APP)使用云服务器维护一个控制通道。发送方从接收方收集详细的网络状态(即 RTCP 反馈)并将其发送到服务器。然后服务器立即输出一个比特率操作,并将此决定返回给发送方,该发送方用作下一个发送比特率。控制通道非常轻量级,平均每秒只消耗1.5 KB。为了适应大规模的评估和保证低延迟,我们配置了20个具有内置服务调度和负载平衡功能的云服务器。每台服务器配备65GB 内存和 RedHatLinux 版本的4.8.5,可以同时支持至少50个发送器的在线培训。

在 Loki 的实际部署中,我们还实现了一个备份机制,即在发送方 APP 和服务器集群之间发生连接故障时,让 APP 发送方自动退回到默认的 GCC 控制器,以保证用户在运行时的最坏情况体验。此外,我们注意到 Loki 工作流中的两个关键模块将导致延迟问题。一个是 APP 发送方和查看方之间的链接,另一个是 APP 流媒体/发送方和云服务器之间的链接。 前者产生较高 RTT 的可能性较大,尤其是在高动态网络中。我们将在第8.1节中展示 Loki 在此类网络上的健壮性。后一种延迟通常在10毫秒左右,这对实时视频传输的影响可以忽略不计,这在 OnRL 中得到了证实。

图8 Loki 和3种比较算法在操作系统中的实现

7.2 大规模部署

我们在 APP 直播视频系统上部署了 Loki,并在 16 个国家和 156 个城市进行了 392 个流媒体的大规模现场测试。表2 总结了我们的部署统计数据。大多数流媒体每天至少执行一个现场视频会话,每个现场视频平均有大约3000名实时观众。实地试验持续了 3 个多月(从2021年1月10日到3月16日) ,产生了大约 1.01 亿段视频。我们过滤掉短于 2 秒的视频会话,因为它们不代表任何有意义的 QoE 评估观看体验。最终的评估涉及超过7300万次会议,总播放时间为131.6万小时(150 年)。

表2 商业实时视频系统的部署规模超过3个月

为了进行公平的比较,我们将 392 个视频流随机分为 4 个大小相等的组。在每轮试验(持续24小时)中,我们将比特率控制库中的4个解决方案分配给4组。下一轮,我们随机重新布置作业。经过多轮,每个流媒体将体验所有4个比特率控制器,在统计公平的方式。在这样的设置下,每个比特率控制算法经验超过 1500 万次连接,每个实时视频会话持续超过2小时。

8 评估

在本节中,我们从两个方面评估 Loki: (i)我们通过大规模的现场测试(Sec. 8.1)演示了 Loki 相对于3个基线的优势。(ii)我们对两个关键设计模块(即黑盒 GCC 和基于双重注意的融合)进行深入分析,以了解 Loki 的混合特征级融合的有效性(第8.2节)。

8.1 系统级评价

评估指标。Loki 主要控制运行基于 WebRTC 的实时视频协议栈的流媒体到 SFU 的网络路径,因此我们更加关注这条路径上的指标,即数据包丢失、 RTT 和传输层的吞吐量,以及应用层的 PSNR、 fps、卡顿率(fps < 12)。此外,我们还记录了观众端的指标,包括平均播放时间,每小时的延迟计数(即,计算出现空的播放缓冲区) ,每小时的低视频质量计数(例如,fps 小于5),帧抖动6,和最大化帧抖动。商业 APP 的工程团队也在内部使用这些指标来监控 QoE。

Loki 实现了最大的 QoE。我们在表 3 中总结了所有现场测试会话中的 QoE 相关度量。我们观察到,(i) Loki 在卡顿率方面取得了显著的进步,例如,比 GCC,OnRL 和 Orca-plus 分别减少了13.98% ,27.27% ,15.34% 。同时,视频吞吐量提高了1.37% ,2.07% ,5.71% ,PSNR 提高了0.13% ,1.40% ,0.75% ,平均 fps 基本相同。(ii)更重要的是,loki 显著降低了灾难性事件的比例。在极低的 fps (< 5)表示视频冻结方面,与 OnRL 和 Orca-plus 相比,分别降低了54.55% 和37.5% 。 实验结果验证了 Loki“特征级”融合机制相对于“时间复用”融合机制的优越性。

表3 QoE 指标比较

Loki 显著削减了长尾效应。我们在图 9 中分析了不同指标的尾部分布。显然,Loki 显著减轻了长尾 QoE 效应,特别是与现有的基于学习的解决方案 OnRL 和 Orcaplus 相比。特别是 Loki 显着降低了95% 的 RTT 和损失率,比 OnRL 分别降低了13.26% 和67.37% ,比 Orca-plus 分别降低了14.17% 和31.35% 。此外,它还比基于规则的海湾合作委员会分别提高了6.96% 和1.84%。传输层的尾切增益转化为应用层的更高 QoE 增益。例如,与 GCC、 OnRL 和 Orca-plus 相比,Loki 分别降低了95个百分点的尾部失速率26.30% 、44.24% 、41.39% ,提高了尾部视频吞吐量2.17% 、1.76% 、2.03% 。

图9 Loki 显著改善了视频 QoE,解决了长尾问题

Loki 在不同的网络上表现一致。我们进一步进行分解分析,以显示 Loki 在不同网络环境中的性能,例如,高质量路径(吞吐量高于平均值)与低质量路径,WiFi 与4G,以及3种 RTT 区域(例如,0-100ms,100ms 200ms,和超过200ms)。我们绘制平均 QoE 和相应的标准差。

我们观察到: (i) Loki 在高质量和低质量的网络上保持了最佳的 QoE 性能。在高质量路径上,它有效地降低了平均卡顿率,12.66% ,9.06% 和4.95% ,相对于 GCC,OnRL 和 Orca-plus。此外,对于低质量路径,其优势更加明显,即16.63% 、36.92% 和12.33% 的降低。 (ii) Loki 在 WiFi 及4G 网络均有相对一致的高性能。其他基线算法的性能在两种网络条件下差异很大。例如,GCC 在4G 中的卡顿率方面表现良好,但在 WiFi 中显著下降。Orca-plus 在4G 网络中表现相当不错,但在 WiFi 中的视频吞吐量极低。相比之下,Loki 在 WiFi 中具有最低的失速率和最高的吞吐量。请注意,WiFi 接入占总数的80.38%。

图10 Loki 在不同的网络条件下实现了一致的 QoE 性能

图11 Loki 在不同的 RTT 制度中实现了更好的 QoE 性能

另一方面,在4G 网络中,Loki 的卡顿率非常类似于最有能力的基于学习的 Orca-plus (只有0.11% 的偏差)。这些结果清楚地验证了 Loki 的鲁棒性,这归因于它的混合学习机制。(iii) Loki 在较大的 RTT 区域(例如,超过200ms)上实现了最佳的 QoE,例如,视频吞吐量增加了6.68% ,失速率下降了53.16% ,比最合适的方案 Orca-plus。请注意,较大的 RTT 通常表示较高的网络动态性、较大的缓冲区大小或较长的路径长度。结果再次验证了 Loki 切断长尾的能力。

Loki 间接地为终端用户带来好处。我们收集了观看者端的性能指标,发现 Loki 在大多数 QoE 相关指标上也优于其对应方: 每小时的延迟计数,每小时的低帧质量计数和最大帧抖动显示0.79% -8.04% ,0.63% -9.66% ,1.72% -11.63% 比其他三种方法减少。Loki 的帧抖动比最好的竞争对手(GCC)大(3.21 ms) ,但比最好的(Orca-plus)大14.65 ms。总的来说,帧抖动的几毫秒减少不太可能干扰查看器的 QoE,因为客户端有多达1秒的缓冲来平滑轻微的帧不稳定性。

此外,我们还检查了观众的观看时间,如图 12 所示。Loki 将所有 > 2分钟会议的平均观看时间延长了2.62% ,0.37% ,0.5% ,与 GCC,OnRL 和 Orca + 相比,所有 > 5分钟会议的平均观看时间延长了4.68% ,1.97% ,1.44% 。结果表明,Loki 可以为用户提供更高质量的查看体验。请注意,即使是在观看时间上的轻微增加也会对服务于数百万用户的商业系统产生巨大的影响。

图12 loki 观众观看的时间更长

我们再次强调 Loki 在当前商业 APP 中的优势在运行实时视频传输的流媒体到 SFU 路径中更加突出。SFU 到查看器的下行链路不完全由 Loki 控制。相反,它采用了一种类似于 CDN 的架构,就像在非实时 VoD 流系统中一样。SFU 服务器充当视频分发中心,并执行额外的操作,如帧缓冲和跳过。正在进行的 APP 开发正在尝试使用 WebRTC 重建下行链路,就像上行链路一样。随着这一点的实现,我们期望终端用户的性能将提高到另一个水平。

图13 loki 比 concerto 表现更好

与 Concerto 比较。我们进一步增加了一个试验台实验来比较 Loki 和最近开发的基于离线学习的算法 Concerto。我们从实时视频 APP 中随机选择5个跟踪来运行这两个算法,总共持续约5个小时,并在图13中说明了它们的标准化 QoE 相关度量。我们可以发现 Loki 的性能始终比 Concerto 更好,不仅卡顿率 (fps < 12)下降了65% ,即绝对值下降了1.84% ,而且视频质量也更高,比如视频吞吐量提高了13% ,fps 提高了1.5% 。更令人惊讶的是,Loki 还显著降低了低 fps (< 5)计数的67% 。这些结果进一步证实了 Loki 的健壮性。

8.2 深入探索 Loki

在这一部分中,我们在仿真试验台上进行了第 2 节详述的微基准测试实验,以研究 Loki 中不同设计模块的贡献。值得注意的是,本地测试平台还包含一个类似于现实世界部署的基于云的结构,我们在其中部署比特率控制器库和详细的受控算法。

黑盒 GCC 的克隆影响。现在我们演示了黑盒 GCC 忠实地克隆和替换原来的白盒对应物,以方便 Loki 的混合体系结构。 特别地,我们使用从 APP 收集的 20 小时随机选择的网络跟踪来训练一个黑盒模型。作为一个健全性检查,我们运行两个模型在另外3个随机选择的网络跟踪在训练中看不到。我们重复每个实验 3 次,然后记录应用层 QoE 指标。从图 14 中,我们可以观察到黑盒 GCC 显示了几乎相同的性能与其白盒对应物,例如,相似的吞吐量和 fps,只有轻微的偏差帧抖动(40毫秒比36毫秒) ,在用户端没有差异。

图14 黑盒和真正的 GCC 显示高度一致的 QoE

图 15 进一步显示了黑盒 GCC 与白盒 GCC 在同一样本网络跟踪上重复运行3次的瞬时带宽估计。我们做了两个观察: (i)黑盒 GCC 的行为类似于香草 GCC,即,表现出快速下降和缓慢恢复,这表明它已经通过模仿学习掌握了白盒的决策机制。(ii)虽然带宽估计曲线并不完全一致,但这些是预期的随机性,因为即使我们在同一网络跟踪中重复白盒 GCC,输出时间序列也不完全一致。如图 15 所示,3次重复 GCC1,GCC2和 GCC3之间的比特率预测差距平均为0.145 Mbps,与它们与黑盒 GCC 之间的差距即0.156 Mbbs 相当。

图15 黑盒和真正 GCC 的带宽估计

理解 Loki 的双重注意力融合。我们现在揭示了 Loki 的双注意融合模型的操作细节,以了解其在各种网络条件下的鲁棒性背后的原因。我们在图 16 中展示和可视化了两个典型的网络条件变化,其中我们做了以下观察: (i)在图16(a)中,当带宽增加时,如虚线框中突出显示的,GCC 产生过度保守的比特率,而基于 RL 的参与者进行快速探索以恢复。图底部的注意力热图表明,当前的注意力(“红色区域”)集中在“高比特率”区域,即双注意力融合机制自动优先 RL 代理的决策。(ii)在第二种情况下,如图16(b)所示,当带宽突然下降时,GCC 以乘法方式快速降低其比特率,而 RL 参与者仍然保持其高比特率估计一段时间。在这种情况下,Loki 会自动生成一个比特率,这个比特率更接近 GCC 的行为,也就是说,集中注意力的红色区域位于比特率较低的区域。总之,Loki 的双注意融合机制可以敏捷地测量潜在的网络条件变化,并生成可靠的混合比特率决策以最好地匹配网络条件,从而防止偶尔但致命的过度/低估行为。 理解洛基的双重注意力融合。我们现在揭示了 Loki 的双注意融合模型的操作细节,以了解其在各种网络条件下的鲁棒性背后的原因。我们在图16中展示和可视化了两个典型的网络条件变化,其中我们做了以下观察: (i)在图16(a)中,当带宽增加时,如虚线框中突出显示的,GCC 产生过度保守的比特率,而基于 RL 的参与者进行快速探索以恢复。图底部的注意力热图表明,当前的注意力(“红色区域”)集中在“高比特率”区域,即双注意力融合机制自动优先 RL 代理的决策。(ii)在第二种情况下,如图16(b)所示,当带宽突然下降时,GCC 以乘法方式快速降低其比特率,而 RL 参与者仍然保持其高比特率估计一段时间。在这种情况下,Loki 会自动生成一个比特率,这个比特率更接近 GCC 的行为,也就是说,集中注意力的红色区域位于比特率较低的区域。总之,Loki 的双注意融合机制可以敏捷地测量潜在的网络条件变化,并生成可靠的混合比特率决策以最好地匹配网络条件,从而防止偶尔但致命的过度/低估行为。

图16 loki 的注意力机制

消融实验。我们进一步运行了一个消融实验来证明 Loki 的基于注意的融合学习的好处,并将其与三种主流的融合机制进行了比较。 为了公平比较,我们只修改了融合设计,其他部分保持不变。(a)“平均融合”: 使用两个参与者的比特率决定的平均值作为最终比特率; (b)“切换融合”: 在两个参与者之间切换,例如,使用一个参与者一段时间,然后在检测到异常结果时切换到另一个参与者。一个有代表性的解决方案是 OnRL,我们在这个实验中实施; (c)“早期融合”: 在早期学习过程中连接两个 actor 的特征,然后通过级联神经网络层继续提取联合特征; (d) Loki 基于注意力的后期融合方式。我们在相同的1小时网络跟踪下验证了上述4种方法的 QoE 性能,然后在图 17 中绘制了 3 个归一化 QoE 指标。 我们观察到,(i)一般而言,“特征级”融合机制,即早期融合和 Loki 的注意力后期融合,优于两种“决策级”融合设计,即 Average 和 Switch。 平均方案只是不兼容的参与者之间的一种硬组合,并没有考虑到精细的特征特征。至于 Switch 融合,任何时候只有一个参与者运行,因此 Switch 不能同时利用两个参与者的好处,例如,正在使用的 RL 参与者不能及时发现异常行为,并导致其决策的滞后效应,如第2.3节所观察到的。对于两个“特征级”设计,早期融合显示比 Loki 低 52.71% 的吞吐量和高 66.67% 的帧抖动。由于两个参与者有不同的输入,因此在特征提取之初融合两个不相容的输入是无效的。

图17 loki 的消融实验

Loki 注意参数的影响。我们考察了 Loki 在不同参数构型下的注意融合。(4)包括增大的

\beta

(即

\beta_1 = 1

\beta_2 = 10

\beta_3 = 20

)和阈值

Γ

(即

Γ1 = 3,Γ2 = 4,Γ3 = 5

)。表4中的结果表明 Loki 对于更大的

\beta

表现更好,也就是说,

\beta_2

\beta_3

都是零卡顿。请注意,更大的

\beta

将使等式(4)中的

e ^ \beta * \vec{F}_g

在训练时出界。此外,当

Γ

从4减少到3时,卡顿率增加,

Γ_3 = 5

比 GCC 输出列表

\mathcal{V}

中的比特率方差边界 4 更大,从而导致更大的卡顿率。在我们所有的现场测试和微基准测试中,我们都采用

β = 20,Γ = 4

作为缺省配置。

9 相关工作

实时视频传输正在推动数字社会中的许多重要应用。与有多秒播放缓冲的视频流不同,实时视频的延迟要求更为严格,大约只有几百毫秒。大量的研究致力于优化实时视频的服务质量,同样的设计目标,即设计一个比特率控制器,产生适当的视频分辨率和帧速率,以匹配瞬时网络条件。 提出的方法一般分为两类: (i)经典的基于规则的设计,和(ii)现代的基于学习的自适应算法。基于规则的算法通常使用分组丢失和延迟指标作为网络状况的关键指标,并基于启发式 AIMD 类算法进行适应。尽管如此,一套普遍规定的规则很难适应日益多样化的现代互联网。为了克服这些限制,近年来出现了基于学习的设计。举几个例子,Concerto,OnRL,LiveNAS 和 NEMO 旨在优化直播视频流,电话和广播服务。 Pensieve,ABRL 和 Puffer 的目标是通过内容传送网络(CDN)的视频点播流。这些算法通常定制一个深度学习模型,特别是广泛使用的强化学习,用于视频比特率控制。

最近,混合基于规则和基于学习的协议的想法正在获得关注。例如,Orca 建议定期交替使用基于规则和基于学习的决策来提高传统 TCP 性能。OnRL 在其学习代理检测到异常 QoE 时切换到基于规则的协议。Stick 设计通过调整其缓冲区边界,在“决策级”而不是“特征级”将基于 RL 的模型与传统的基于缓冲区的方法融合,从而改善视频流中基于缓冲区的 ABR QoE。这种时间复用设计的局限性在我们的实验结果中是显而易见的(第2节)。相比之下,Loki 代表了一个更深层次的融合方案,允许两个规则同步工作,共同确定比特率,安全地探索网络带宽,而不会造成长尾故障。

融合学习已经成为许多深度学习任务的一个关键组成部分,例如图像分类、目标检测和场景分割,这些任务通常汇集来自不同分支或层次的不同层次的特征。一般来说,融合学习模型要么遵循早期融合,要么遵循晚期融合体系结构。早期融合通常通过对原始输入特征进行简单的连接或求和操作,而后期融合则直接在最后一个特征层上执行。近年来,另一种基于注意机制的特征融合引起了人们的广泛关注。这些算法模拟人类的注意行为,通过自适应地整合来自相同输入的不同局部特征,例如,位置注意和通道注意。与以前针对视频内容处理的工作不同,Loki 采用了注意机制,使基于规则和基于学习的模型能够进行混合决策。 我们的设计可以扩展到解决更广泛类型的基于学习的网络协议的长尾性能问题。

10 讨论

Loki的泛化能力。Loki 的“特性级别”集成提供了一个结合不同视频传输方法优势的框架。作为第一个实例,我们的 Loki 设计实现了基于规则的 GCC 和基于 RL 的 PPO 之间的融合。尽管如此,该框架可用于集成任何其他基于规则的算法,例如 Cubic,BBR,PCC 家族和任何 RL 代理算法,例如 A3C,DDPG,SAC 和 TD3。其关键在于忠实地对规则算法进行黑箱化,包括两个步骤: (i)分别收集和归纳规则算法的输入信号和决策信息作为神经网络模型的输入和输出。(ii)根据规则协议的特点定制神经网络结构,并在实际系统中对模型进行训练。然后,我们可以采用 loki 的双注意机制进行“特征级”融合。

Loki 的现场训练。Loki 目前依赖于云服务器来支持培训,这是由于缺乏在设备上的轻量级神经网络培训 API,以及对消耗大量终端设备有限资源的担忧(第7节)。然而,随着越来越多的移动设备配备了专门的神经处理单元(NPU) ,移动设备上的神经网络训练将很快变得实用。作为未来的工作,我们将开发一个在设备上的混合学习框架,并将 Loki 的基于云的培训转化为在设备上的学习,以避免部署培训服务器的开销。

其他设计。在 Loki 中,我们尝试对基于规则的算法进行黑箱化,以便将其与基于学习的模型融合。存在可供选择的设计,例如,将神经网络模型白箱化,并将其与基于规则的算法融合。然而,与监督式学习模型相比,白箱化 RL 模型是很困难的。更重要的是,即使我们有一个白箱 RL 模型,它也只能在“决策级”与基于规则的协议集成,因为白箱模型中没有隐藏的特征。另一方面,在最近的工作中已经探索了安全强化学习算法,旨在处理铁路勘探阶段的安全问题。乍一看,安全的 RL 可以解决 Loki 实时视频传输中的鲁棒性问题。然而,我们发现现有的安全 RL 算法表现得像“决策级”融合策略,例如,当选择的操作被重新评估时,让屏蔽者修正操作,以可能导致性能降低。正如我们在图17中所证实的,“决策级”融合机制不如 Loki 的“特征级”融合。

总结

我们设计并评估了 Loki,这是一个健壮的混合解决方案,它通过深度“特征”级别,而不是“决策”级别融合,将基于学习和基于规则的实时视频自适应算法结合在一起。现实世界的部署和大规模的现场评估表明,Loki 可以大大提高最先进的基于学习的算法的尾部性能。通过这种方式,Loki 解决了人们对基于学习的算法可靠性的普遍关注,从而为它们在商业实时视频系统中的部署铺平了道路。我们相信在特征层融合基于规则和基于学习的算法的设计范式可以帮助提高通用数据驱动网络协议的鲁棒性。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-10-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 媒矿工厂 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 摘要
  • 1 简介
  • 2 测量和发现
    • 2.1 测量方法
      • 2.2 了解基于学习的设计的局限性
        • 2.3 为什么现有的混合学习方法是无效的?
        • 3 系统概述
        • 4 基于规则的黑箱 Actor
          • 4.1 为什么要“黑盒化” GCC
            • 4.2 黑盒化 GCC 的设计
            • 5 自适应学习 Actor
            • 6 双注意力融合
              • 6.1 结构设计
                • 6.2 训练方法
                • 7 实现和部署
                  • 7.1 商业实时视频系统的实现
                    • 7.2 大规模部署
                    • 8 评估
                      • 8.1 系统级评价
                        • 8.2 深入探索 Loki
                        • 9 相关工作
                        • 10 讨论
                        • 总结
                        相关产品与服务
                        云直播
                        云直播(Cloud Streaming Services,CSS)为您提供极速、稳定、专业的云端直播处理服务,根据业务的不同直播场景需求,云直播提供了标准直播、快直播、云导播台三种服务,分别针对大规模实时观看、超低延时直播、便捷云端导播的场景,配合腾讯云视立方·直播 SDK,为您提供一站式的音视频直播解决方案。
                        领券
                        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档