基于机器学习的带宽估计在淘宝直播中的探索与实践

人工智能 机器学习 新闻
本文主要分享 2018-2021 年期间,大淘宝技术内容中台音视频基础技术团队,基于机器学习的带宽预测算法在淘宝直播的业务背景下的探索与大规模实践的成果。

背景

常见的媒体传输中带宽估计的算法有 GCC/BBR/PCC/QUBIC 等,主要基于传统的基于策略的算法白盒地根据历史网络数据以及主动探测等方法来推算当前网络的可用带宽。这种固化的算法逻辑难以应对复杂的网络特性,也无法区分拥塞丢包与随机丢包。于是我们希望借鉴机器学习的思想,使用大量的线上网络数据训练一个黑盒模型,替代传统算法来灵活应对不同的网络环境。

本文主要分享 2018-2021 年期间,大淘宝技术内容中台音视频基础技术团队,基于机器学习的带宽预测算法在淘宝直播的业务背景下的探索与大规模实践的成果。

Concerto:媒体传输层与媒体编解码层的协奏

2018年,淘宝直播基于 WebRTC 直播推拉流解决方案已经十分成熟。主播端与淘宝直播服务器均基于开源 WebRTC 实现实时音视频流的媒体编解码与传输。主播的摄像头与麦克风所采集的音视频,经由媒体编码器进行数据压缩,再由媒体传输协议 RTP/RTCP 封装成数据包传输给 MCU 服务器,再经过 CDN 分发给淘宝直播的观众。通常服务器间的网络相对比较稳定,因此主播的移动设备推流到 MCU 这“第一公里”的传输质量,就决定了 CDN 分发给直播间内所有观众的视频质量上限。

为了评估淘宝直播“第一公里”的音视频传输表现,我们整理分析了 2018 年 6 月整月直播的推流埋点数据,总计超过100 万小时的直播时长,遍布全球 57 个国家 749 个城市,覆盖 5 种网络制式(WiFi, 4G, 3G, LTE, 2G),512 个运营商及 934 种手机型号。埋点数据可以充分反映真实网络世界的延迟尖刺与突发丢包状况,对于评估低延迟直播的表现也至关重要。根据 ITU G.114 标准,要达到实时视频通话程度的服务质量,端到端全链路需要丢包率 <= 1% 且 RTT(Round Trip Time) <= 300ms。而直播场景中,约 20% 的场次平均丢包率 > 1%,约 10% 的场次平均 RTT > 300ms。我们将丢包率 > 1% 或 RTT > 300ms 的场次定义为传输质量亚健康的场次,从地理分布来看,所有国家的亚健康场次占比均超过 12%;从网络制式来看,WiFi 网络下的亚健康场次占比最低为 12%,远优于 4G(34%)、3G(54%) 网络,且 WiFi 网络在总场次中占比为 73%。

直播场景中主播端向网络发送的数据量,主要由媒体编解码层的视频编码器与媒体传输层的拥塞控制算法决定。WebRTC 中的网络传输层拥塞控制算法 GCC(Google Congestion Control) 单纯用于传输协议时,我们发现它能保持极低的延迟和几乎0丢包的表现。而视频传输场景,一次短暂的带宽降低可能造成持续几分钟的低画质视频。其中的原因有:视频编码码率难以严丝合缝的按照 GCC 的评估执行;视频编码码率的变化跟不上 GCC 的变化;间歇性的视频流量模式也会影响 GCC 对带宽的评估。

因此,我们基于机器学习的机制设计并实现了 Concerto,通过加强与传输层的互动,来进行对带宽的评估。它的输入既包括历史的传输层丢包率、包间延迟,也包含编码层的编码码率、接收码率等。它的输出即下一时间段(我们的设计为 1 秒)内的带宽预测值。这个预测值既会成为下一阶段的编码码率,也会成为发送码率。从上层逻辑来讲,Concerto 同时知晓两层的状态,就能推导出每场会话的特征。为了实现这个能力,我们需要解决两个问题:如何在巨大的状态空间中提取每场会话的特征,以及如何在任何网络状态下都能决策出最优码率。在 Concerto 中,我们设计了一个深度模仿学习(Imitation Learning)模型来解决这个挑战。使用海量真实网络环境的数据,我们在训练阶段使模仿学习模型学习不同会话的特征,在真实网络带宽的指导下自动生成合适的码率。

如果我们按真实时间来使用每场会话的数据,Concerto 的收敛将会消耗冗长的时间。相反,我们设计并实现了一个成熟的数据驱动的模拟器来还原网络场景。模拟器包含一个视频帧处理模块,基于 ffmpeg 压缩视频帧;一个视频会话控制模块,实现 Concerto/GCC/Salsify 和其他基于机器学习的算法;一个传输模块,将视频帧分解为 RTP 包经由带宽受控的路径进行传输。对于小规模受控的实验场景,我们使用三台笔记本搭建了一个实验床,两个节点用于视频通话,第三个节点做路由,基于 Linux 内核的流量控制工具,实现网络踪迹的还原。我们还将 Concerto 嵌入了淘宝主播 APP,由其码率控制模块所调用,实现毫秒级别的决策。

根据模拟器中十几个小时的网络踪迹环境测试结果,Concerto 在可忽视的帧延迟情况下,接收吞吐率方面分别超越三种基线算法 54.9%,53.9%,以及 37.3%,从而实现视频质量的提升。我们还邀请了 6 位志愿者来参与嵌入了淘宝直播的 Concerto 算法的实验。实验场景包含家里、办公室、校园、商店、街边以及行驶的车里。室内场景志愿者大多使用 WiFi,室外场景大多为 4G。实验总计达 300 次,时长达 69 小时。相较于基线算法 GCC,在所有场景下,Concerto 降低了 13.1% 吞吐量的同时,显著降低了卡顿率(3倍左右)。

OnRL:灵活的在线学习

基于 Concerto 的探索与实践经验,我们发现“线下训练,线上推演”的策略,在模拟器中可以达到很好的效果,然而在真实线上环境的效果却不尽如人意。主要原因有两个:完全模拟出多流竞争、突发丢包等真实的网络动态是非常艰难的;数据驱动的算法严格受限于其学习环境。为了缩短模拟器与真实网络环境的差距,我们设计并实现了一种在线学习的强化学习模型,OnRL。它在淘宝主播的直播过程中运行并保持学习,实时对真实网络环境作出反馈。

为了实现在线学习的目标,我们需要应对三个挑战。

一是由顺序的线下训练转变为同时从海量的视频通话中进行学习。传统的线下训练可以合并不同独立用户的网络轨迹,并输入一个模拟器来训练模型。而线上训练时大量的视频会话同时发生,期间算法需要根据每个会话实时演进。为了应对这个挑战,我们设计了一个两阶段在线学习框架,结合 PPO 算法和联邦学习的规则来聚合个体会话的特征。

二是让 RL 算法在真实的动态网络场景中充分生效。理想情况下,一旦 OnRL 算法决定了发送速率,编码器需要按照同样的码率来产生视频流。然而实际情况是,视频编码器根据图像的动态程度、压缩策略甚至是设备的计算能力,影响自己的控制逻辑,造成与 RL 的码率决策的偏差。为了解决这个问题,我们将这个偏差输入给 RL 的神经网络,来调节它的反馈操作。

三是做到健壮地混合学习。一个强化学习的网络通过“尝试与犯错”来学习,这可能对系统造成干扰。尤其在训练早期阶段,算法可能会执行不正确的探测行为,而造成灾难性后果。为了应对这样的问题,我们设计了一个混合的学习机制,让 OnRL 在被判定为异常时,能够回归到传统的基于规则的码率控制算法,否则切换回 RL 的模型。为了实现这样的切换,我们设计了一个动态趋势预测算法,来辨别一种算法执行的表现优劣。我们甚至将切换行为算作一种对 RL 反馈的惩罚,来激励模型进化为一个独立而健壮的算法。

实验过程中,我们挑选了 151 位真实的淘宝主播进行了为期一个月的灰度,总计 543 小时的直播时长。灰度结果证实了在线训练的效果,QoE 相关指标得到显著优化,例如 OnRL 在保持视频码率持平的情况下,卡顿率得到 14.22% 的降低。

Loki:解决长尾表现问题

与传统的基于规则的算法不同,基于学习的拥塞控制方法通常使用覆盖了各种网络状态的大量数据集来训练一个神经网络模型。这种数据驱动的模型在平均指标上表现优异,然而因为神经网络的黑盒决策模式导致的不健壮问题,成为了在生产系统中的大规模部署的一大障碍。虽然在平均水平上表现符合预期,单个 QoE 的灾难性表现也会使得用户抛弃一款应用。

为了探索实时视频传输场景的长尾表现,我们对时下前沿的基于规则的和基于学习的算法进行了对比实验。实验结果表明,一方面,基于学习的算法在传输层指标确实展现了优势,在保持低延迟的情况下有更高的吞吐率,而这样的优势却并不能有效的转化为 QoE 指标的提升,部分应用层的帧延迟和抖动甚至可能恶化。更深入的分析表明,原因存在于传输层指标的长尾表现问题。另一方面,基于学习的方法偶然会产生不准确的带宽预测。一些严重的过载预测就能造成灾难性的表现,如跳帧甚至是卡顿。我们发现问题的根因在于,这些带宽估计的算法,尤其是广泛使用的强化学习算法,是通过“尝试与犯错”的模式进行学习。它们追求最大化长期的累积反馈,因此能容忍偶然过载或缺载的预测结果,这就造成了长尾结果表现不佳。

受到上面两方面观察的启发,我们希望解决一个关键问题:是否能设计一种平均表现和长尾表现均令人满意的实时视频传输算法?为此,我们设计并实现了 Loki,一种混合模型。它同时利用基于规则的方法的确定性,和基于学习的方法的预测能力。当网络状态不稳定,Loki 使用保守的和基于规则的方法一样的码率决策方式,来避免灾难性的 QoE 降级。其他情况,Loki 则会通过类似学习的探测来充分利用网络带宽。

虽然顶层的设计思想比较简洁,但 Loki 仍需要解决两个关键的挑战。

一是如何使基于规则的算法和基于学习的模型兼容,更进一步地说,是可混合的?前者可以由硬核的“如果-就”条件语句来实现,而后者就要求基于神经网络的黑盒表现形式。前者的工作更多是时分复用地使用这两种算法,而 Loki 实现了更深层次的融合。Loki 将一个白盒的基于规则的算法(例如 GCC),通过定制的模仿学习网络模型,转化为了一个等价的黑盒神经网络模型。这样,两种算法才变得可兼容,且能在“特征层面”而非决策层面实现共用。

二是如何保证“特征层面”的混合可以真实地保留基于决策的算法和基于学习的算法的优势?为此,我们设计了一种双权重的特征混合机制来达到这个要求。详细来讲,Loki 把两种神经网络模型的训练后的高层次特征作为一种置信系数。两种算法共同决策期间,他会给能达到更优 QoE 的特征集提高优先级,给予更大的权重。为了实现这样的权重机制,我们将一个基于时下顶尖的强化学习算法模型,内置于淘宝主播端进行交互式训练。最终 Loki 演化为一个可靠的,可以应对新环境的独立的模型。

最终,我们将 3 个时下顶尖的解决方案(GCC,OnRL,Orca)应用在淘宝主播中,作为基线对比。相较于基线,Loki 平均降低了 13.98%-27.27% 的卡顿率,并将视频质量提升 1.37%-5.71%。同时,Loki 大幅减少了长尾占比,例如,95分的卡顿率降低了 26.3%-44.24%。通过减少长尾占比,相较于 GCC,Loki 也使得观看时长得到了 2.62%-4.68% 的提升。前期的验证工作结果表明,观看时长最终会转化为可观的商业价值。

总结与展望

随着对实时媒体传输逐步深入的研究,在大淘宝内容中台音视频技术的同学和国内高校的共同努力下,我们合作完成了业内第一个大量实践于商业系统的基于神经网络的带宽预测算法。研究成果多次获得国际顶级学术会议认可,得以发表 3 篇 CCF A 类会议论文的同时,与其他合作项目一同,获得了 2020 年中国电子学会科学技术奖的科技进步一等奖的殊荣。

由于移动端的算力限制,我们的最新成果 Loki 模型,目前仍依赖云端服务来支撑大量的模型训练过程。而随着淘宝直播的业务发展,云端的在线训练资源消耗成本也将大幅增加。因此,我们近期的工作,是将收集了海量网络状态的 Loki 模型固化并聚合,转移到移动端进行在线推演,减少云端的算力成本。固化工作已初见成效,未来有机会也将总结归纳分享出来。

CCF  A类会议论文发表情况

  1. Huanhuan Zhang, Anfu Zhou, Yuhan Hu, Chaoyue Li, Guangping Wang, Xinyu Zhang, Huadong Ma, Leilei Wu, Aiyun Chen, and Changhui Wu. 2021. Loki: improving long tail performance of learning-based real-time video adaptation by fusing rule-based models. Proceedings of the 27th Annual International Conference on Mobile Computing and Networking (MobiCom '21)). Association for Computing Machinery, New York, NY, USA, 775–788. DOI:https://doi.org/10.1145/3447993.3483259
  2. Huanhuan Zhang, Anfu Zhou, Jiamin Lu, Ruoxuan Ma, Yuhan Hu, Cong Li, Xinyu Zhang, Huadong Ma, and Xiaojiang Chen. 2020. OnRL: improving mobile video telephony via online reinforcement learning. In Proceedings of the 26th Annual International Conference on Mobile Computing and Networking (MobiCom '20). Association for Computing Machinery, New York, NY, USA, Article 29, 1–14. DOI:https://doi.org/10.1145/3372224.3419186
  3. Anfu Zhou, Huanhuan Zhang, Guangyuan Su, Leilei Wu, Ruoxuan Ma, Zhen Meng, Xinyu Zhang, Xiufeng Xie, Huadong Ma, and Xiaojiang Chen. 2019. Learning to Coordinate Video Codec with Transport Protocol for Mobile Video Telephony. In The 25th Annual International Conference on Mobile Computing and Networking (MobiCom '19). Association for Computing Machinery, New York, NY, USA, Article 29, 1–16. DOI:https://doi.org/10.1145/3300061.3345430

国内获奖情况

2020 中国电子学会科学技术奖科技进步一等奖。

​https://www.cie.org.cn/system/upload/file/20201211/1607675713758483.pdf​

团队介绍

大淘宝技术内容中台音视频技术团队,面向淘宝直播、点淘、逛逛、闲鱼、ICBU 等集团内众多业务,负责提供实时音视频通信和媒体处理的底层核心能力,为千万商家、达人、消费者带来内容丰富、高质量、丝滑的音视频体验。

责任编辑:张燕妮 来源: 淘系技术
相关推荐

2024-04-17 07:21:52

物化视图查询加速器数据仓库

2021-12-08 10:35:04

开源监控Zabbix

2023-07-03 07:42:42

2022-04-15 10:52:50

模型技术实践

2021-01-26 09:46:59

PythonStacking机器学习

2023-07-20 08:39:09

DPA+RTA数据体系

2023-05-22 08:00:00

深度学习机器学习人工智能

2022-04-28 09:36:47

Redis内存结构内存管理

2024-12-05 12:01:09

2020-11-26 18:30:33

机器学习Kubernetes开发

2019-04-30 09:00:33

SQL数据库Apache Flin

2023-03-10 08:57:31

机器学习电商数据挖掘

2021-08-06 15:06:09

腾讯开源Apache

2022-08-11 16:47:32

Mach-OAPP

2016-04-12 17:12:29

机器学习数据清洗美团

2024-12-18 10:03:30

2021-05-20 09:55:23

Apache Flin阿里云大数据

2021-10-21 13:13:57

数字化

2022-04-07 16:50:28

FlinkB站Kafka
点赞
收藏

51CTO技术栈公众号