来源:Demuxed 2021.
原文链接:https://mp.weixin.qq.com/s/veSKM5_0ptFdvyTpS9N1xw
主讲人:Guillaume du Pontavice
内容整理:贾荣立
公众号:煤矿工厂
目录
- 引言
- 资源受限时的权衡
- 在大量不同条件下都可工作的解决方案
- 贝叶斯优化的工作流程
- 总结
引言
在日常体验流媒体服务时,我们总是希望视频质量高,且无卡顿与缓冲。但是快速且稳定的网络并不是时时刻刻都有的——有时手机远离信号塔并失去信号,有时网络产生拥塞,有时由于睡眠模式导致天线需要重新连接,还有的时候,后台的任务可能会与流媒体竞争资源,这些因素都会导致流媒体服务质量的下降。
为了减少这些情况带来的损害,我们使用自适应比特率流,也称为 ABR ,它是一种流式传输方法,其中内容提前以比特率锚定。然后,ABR 算法根据网络状态和各种设备特性实时决定在给定时间下载哪个比特率以及何时开始播放。
ABR算法面临着两大挑战:
资源受限时的权衡
如果你想快速启动流媒体服务,只需下载少量内容,但重新缓冲的风险会增加。另一方面,如果你想避免重新缓冲,则必须在开始播放之前下载大量内容,但你的播放延迟会高得多。同样的权衡也适用于其他指标对。
最佳配置是主观的。有些人可能更喜欢以较低的视频质量快速开始播放,而另一些人可能更喜欢更高的视频质量,即使播放需要更长的时间才能开始。
我们的工作是找到一组最佳配置,也称为帕累托边界。在我们的用例中,帕累托边界代表了最大化视频质量,同时最小化重新缓冲风险和播放延迟的表面。直观地说,帕累托边界上的任何点都是最优的。这指的是我们不能在不降低另一个指标的情况下改进一个指标。
在大量不同条件下都可工作的解决方案
在流媒体服务中,我们所处理的环境非常多样化。有很多方面我们无法控制。
了解 QoE 对这种多样化环境的影响的一种常见方法是依靠数据驱动的实验方法,使用 A/B 测试。但问题是我们无法进行规模如此之大的 A/B 测试。举个例子,即使仅有三个参数,每个参数有100种取值,最终也会产生一百万个不同参数组合的配置,想要全部测试时不现实的。
贝叶斯优化的工作流程
我们选择一组合理权衡的配置,然后开始 A/B 测试。然后我们分析结果并应用贝叶斯优化来寻找下一个候选者。我们重复这个过程,直到我们得到配置值和 QoE 之间关系的良好建模。
举个例子,假设我们这里的目标是最小化重缓冲的概率。我们的第一个 A/B 测试有四个测试单元,每个测试单元使用不同的配置值,如 X 轴所示。可以在 Y 轴上读取测量的重新缓冲率。考虑到这些观察结果,我们希望在 X 轴上找到最有可能最小化重新缓冲的坐标。我们显然不能对所有值进行 A/B 测试,那么如何确保我们找到了最小化重新缓冲的配置值呢?
一个想法是找到一个模型来捕捉配置值和重新缓冲指标之间的关系。稍微推断一下,我们可以通过这四个点画出无数条曲线,但有些曲线形状比其他形状更有可能。所以绘制曲线和连接点是贝叶斯优化背后的主要原理。
贝叶斯优化绘制连接这四个点的大量曲线,然后为每个配置值构建我们的重新缓冲率应该为何值的概率模型。这由顶部图表上的阴影区域表示。越暗,重新缓冲率越有可能为此值,它将这些观察结果映射到优化概率,该概率显示在底部图表中,概率越高,我们就越有可能得到最小化的重缓冲率。
所以这项技术的好处是我们只是围绕我们的优化目标进行探索。我们不需要重新缓冲率的完整建模。这确实避免了测试次优配置并大大减少了搜索和测试时间。
总结
贝叶斯优化是一种有效的探索方法,可以解决我们的两个挑战。首先,在资源受限的情况下同时优化所有 QoE 指标,其次,为大量且多样的环境找到单一的解决方案。
版权声明:本文内容转自互联网,本文观点仅代表作者本人。本站仅提供信息存储空间服务,所有权归原作者所有。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至1393616908@qq.com 举报,一经查实,本站将立刻删除。