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

时间:2022/7/13 16:17:03 来源:亚健康_亚健康常识 作者:佚名

本文主要分享-年期间,大淘宝技术内容中台音视频基础技术团队,基于机器学习的带宽预测算法在淘宝直播的业务背景下的探索与大规模实践的成果。背景常见的媒体传输中带宽估计的算法有GCC/BBR/PCC/QUBIC等,主要基于传统的基于策略的算法白盒地根据历史网络数据以及主动探测等方法来推算当前网络的可用带宽。这种固化的算法逻辑难以应对复杂的网络特性,也无法区分拥塞丢包与随机丢包。于是我们希望借鉴机器学习的思想,使用大量的线上网络数据训练一个黑盒模型,替代传统算法来灵活应对不同的网络环境。本文主要分享-年期间,大淘宝技术内容中台音视频基础技术团队,基于机器学习的带宽预测算法在淘宝直播的业务背景下的探索与大规模实践的成果。Concerto:媒体传输层与媒体编解码层的协奏年,淘宝直播基于WebRTC直播推拉流解决方案已经十分成熟。主播端与淘宝直播服务器均基于开源WebRTC实现实时音视频流的媒体编解码与传输。主播的摄像头与麦克风所采集的音视频,经由媒体编码器进行数据压缩,再由媒体传输协议RTP/RTCP封装成数据包传输给MCU服务器,再经过CDN分发给淘宝直播的观众。通常服务器间的网络相对比较稳定,因此主播的移动设备推流到MCU这“第一公里”的传输质量,就决定了CDN分发给直播间内所有观众的视频质量上限。为了评估淘宝直播“第一公里”的音视频传输表现,我们整理分析了年6月整月直播的推流埋点数据,总计超过万小时的直播时长,遍布全球57个国家个城市,覆盖5种网络制式(WiFi,4G,3G,LTE,2G),个运营商及种手机型号。埋点数据可以充分反映真实网络世界的延迟尖刺与突发丢包状况,对于评估低延迟直播的表现也至关重要。根据ITUG.标准,要达到实时视频通话程度的服务质量,端到端全链路需要丢包率=1%且RTT(RoundTripTime)=ms。而直播场景中,约20%的场次平均丢包率1%,约10%的场次平均RTTms。我们将丢包率1%或RTTms的场次定义为传输质量亚健康的场次,从地理分布来看,所有国家的亚健康场次占比均超过12%;从网络制式来看,WiFi网络下的亚健康场次占比最低为12%,远优于4G(34%)、3G(54%)网络,且WiFi网络在总场次中占比为73%。直播场景中主播端向网络发送的数据量,主要由媒体编解码层的视频编码器与媒体传输层的拥塞控制算法决定。WebRTC中的网络传输层拥塞控制算法GCC(GoogleCongestionControl)单纯用于传输协议时,我们发现它能保持极低的延迟和几乎0丢包的表现。而视频传输场景,一次短暂的带宽降低可能造成持续几分钟的低画质视频。其中的原因有:视频编码码率难以严丝合缝的按照GCC的评估执行;视频编码码率的变化跟不上GCC的变化;间歇性的视频流量模式也会影响GCC对带宽的评估。因此,我们基于机器学习的机制设计并实现了Concerto,通过加强与传输层的互动,来进行对带宽的评估。它的输入既包括历史的传输层丢包率、包间延迟,也包含编码层的编码码率、接收码率等。它的输出即下一时间段(我们的设计为1秒)内的带宽预测值。这个预测值既会成为下一阶段的编码码率,也会成为发送码率。从上层逻辑来讲,Concerto同时知晓两层的状态,就能推导出每场会话的特征。为了实现这个能力,我们需要解决两个问题:如何在巨大的状态空间中提取每场会话的特征,以及如何在任何网络状态下都能决策出最优码率。在Concerto中,我们设计了一个深度模仿学习(ImitationLearning)模型来解决这个挑战。使用海量真实网络环境的数据,我们在训练阶段使模仿学习模型学习不同会话的特征,在真实网络带宽的指导下自动生成合适的码率。如果我们按真实时间来使用每场会话的数据,Concerto的收敛将会消耗冗长的时间。相反,我们设计并实现了一个成熟的数据驱动的模拟器来还原网络场景。模拟器包含一个视频帧处理模块,基于ffmpeg压缩视频帧;一个视频会话控制模块,实现Concerto/GCC/Salsify和其他基于机器学习的算法;一个传输模块,将视频帧分解为RTP包经由带宽受控的路径进行传输。对于小规模受控的实验场景,我们使用三台笔记本搭建了一个实验床,两个节点用于视频通话,第三个节点做路由,基于Linux内核的流量控制工具,实现网络踪迹的还原。我们还将Concerto嵌入了淘宝主播APP,由其码率控制模块所调用,实现毫秒级别的决策。根据模拟器中十几个小时的网络踪迹环境测试结果,Concerto在可忽视的帧延迟情况下,接收吞吐率方面分别超越三种基线算法54.9%,53.9%,以及37.3%,从而实现视频质量的提升。我们还邀请了6位志愿者来参与嵌入了淘宝直播的Concerto算法的实验。实验场景包含家里、办公室、校园、商店、街边以及行驶的车里。室内场景志愿者大多使用WiFi,室外场景大多为4G。实验总计达次,时长达69小时。相较于基线算法GCC,在所有场景下,Concerto降低了13.1%吞吐量的同时,显著降低了卡顿率(3倍左右)。OnRL:灵活的在线学习基于Concerto的探索与实践经验,我们发现“线下训练,线上推演”的策略,在模拟器中可以达到很好的效果,然而在真实线上环境的效果却不尽如人意。主要原因有两个:完全模拟出多流竞争、突发丢包等真实的网络动态是非常艰难的;数据驱动的算法严格受限于其学习环境。为了缩短模拟器与真实网络环境的差距,我们设计并实现了一种在线学习的强化学习模型,OnRL。它在淘宝主播的直播过程中运行并保持学习,实时对真实网络环境作出反馈。为了实现在线学习的目标,我们需要应对三个挑战。一是由顺序的线下训练转变为同时从海量的视频通话中进行学习。传统的线下训练可以合并不同独立用户的网络轨迹,并输入一个模拟器来训练模型。而线上训练时大量的视频会话同时发生,期间算法需要根据每个会话实时演进。为了应对这个挑战,我们设计了一个两阶段在线学习框架,结合PPO算法和联邦学习的规则来聚合个体会话的特征。二是让RL算法在真实的动态网络场景中充分生效。理想情况下,一旦OnRL算法决定了发送速率,编码器需要按照同样的码率来产生视频流。然而实际情况是,视频编码器根据图像的动态程度、压缩策略甚至是设备的计算能力,影响自己的控制逻辑,造成与RL的码率决策的偏差。为了解决这个问题,我们将这个偏差输入给RL的神经网络,来调节它的反馈操作。三是做到健壮地混合学习。一个强化学习的网络通过“尝试与犯错”来学习,这可能对系统造成干扰。尤其在训练早期阶段,算法可能会执行不正确的探测行为,而造成灾难性后果。为了应对这样的问题,我们设计了一个混合的学习机制,让OnRL在被判定为异常时,能够回归到传统的基于规则的码率控制算法,否则切换回RL的模型。为了实现这样的切换,我们设计了一个动态趋势预测算法,来辨别一种算法执行的表现优劣。我们甚至将切换行为算作一种对RL反馈的惩罚,来激励模型进化为一个独立而健壮的算法。实验过程中,我们挑选了位真实的淘宝主播进行了为期一个月的灰度,总计小时的直播时长。灰度结果证实了在线训练的效果,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篇CCFA类会议论文的同时,与其他合作项目一同,获得了年中国电子学会科学技术奖的科技进步一等奖的殊荣。由于移动端的算力限制,我们的最新成果Loki模型,目前仍依赖云端服务来支撑大量的模型训练过程。而随着淘宝直播的业务发展,云端的在线训练资源消耗成本也将大幅增加。因此,我们近期的工作,是将收集了海量网络状态的Loki模型固化并聚合,转移到移动端进行在线推演,减少云端的算力成本。固化工作已初见成效,未来有机会也将总结归纳分享出来。CCFA类会议论文发表情况HuanhuanZhang,AnfuZhou,YuhanHu,ChaoyueLi,GuangpingWang,XinyuZhang,HuadongMa,LeileiWu,AiyunChen,andChanghuiWu..Loki:improvinglongtailperformanceoflearning-basedreal-timevideoadaptationbyfusingrule-basedmodels.Proceedingsofthe27thAnnualInternationalConferenceonMobileComputingandNetworking(MobiCom21)).AssociationforComputingMachinery,NewYork,NY,USA,–.DOI:

转载请注明:http://www.cpstreet.com/yjkzz/13308.html
网站首页 | 网站地图 | 合作伙伴 | 广告合作 | 服务条款 | 发布优势 | 隐私保护 | 版权申明 | 返回顶部