如何看待Pensieve:MIT基于神经网络的流媒体码率自适应策略(周超)

如何看待Pensieve:MIT基于神经网络的流媒体码率自适应策略

写在前面

今年的SIGCOMM上, MIT CSAIL的一支研究团队,发表了一篇名为Pensieve的工作,即利用神经网络优化码率自适应算法,用于提高媒体传输质量。文章结果表明:与一般的state-of-the-art 方法相比,Pensieve能平均提升QoE高达12%–25%。之所以介绍这篇文章,基于以下几方面的原因:一是自己从事流媒体传输优化的研究多年,也小有成果,对这类研究自然非常感兴趣;二是文章的思路,在2015年时自己曾想过,只是当时既没有实际需求要深入,也因为确实遇到一些问题不知如何解决(没有数据集),也就不了了之,这次看到这个文章,自然眼前一亮;三是这个工作是一个很好的引子,给出了如何将当前热的发紫的深度学习,用于流媒体传输优化上,先不管其是否完美(research永无止境,没有完美的),起码开了一个好头,有兴趣的同行,深入下去应该也能有所小成。此外,该文的一作和其团队还是非常牛的,当别人还在因为中了个mm、infocom就觉得多牛时,他们团队在sigcomm, mobicom上跟玩一样,而且非常务实,基本每篇文章都把代码放出来,惭愧~

在阅读之前,建议熟悉下DASH(Dynamic Additive Streaming over HTTP)或NN(Neural Network)的基本概念和原理,不然有的概念估计不好理解。

开始正题

以下分四个部分介绍下Pensieve:Motivation,Dataset,Network,Results

1、Motivation

Pensieve的动机,即解决传统码率自适应方法面临的两大难题:复杂多变的网络环境和QoE指标。

举例说明,如下图,其中MPC (Model Predictive Control)是卡内基梅隆大学根据网络变化进行预测优化的码率自适应策略,robustMPC则是他的改良版本。

在图(a)中,带宽波动剧烈,robustMPC一直较为保守的估计带宽,导致其带宽利用率低,不敢请求大码率的视频,而Pensieve则不同,通过buffer来补偿带宽的波动,从而获得较大的视频码率。图(b)中,展示了另一个极端例子,即用户极端的偏好高码率,一般的算法(这里以robustMPC为例)难以适应用户的这种需求(个人觉得单独设计完全也可以达到,只是不够现实,不可能为每个人每个指标量身定制一套QoE模型),而Pensieve则能自适应的通过低码率来攒够buffer,然后用buffer来补偿带宽,从而请求最大码率。这里仅仅是两个例子,主要想说明的问题是:state-of-the-art类的策略,一般都是既定策略,难以适应复杂多变的网络和QoE需求,而Pensieve是通过神经网络自我学习,从而达到自适应的目的。

2、Dataset

无数据何来学习,该文通过模拟获取数据集(早期自己就因为没有数据集,因此没有深入下去)

实际通过视频下载,记录真实网络状态获取数据集,自然是最合理的,但是这样会特别费时费力,而且真实网络波动厉害,基本不具有可重现性,因此数据集的清洗和普适性也很难把握。因此,该工作通过模拟,获取各个chunk下载前后的状态,包括下载时长、带宽、buffer等等。模拟的网络会过于理想,是否能真的反应真实网络环境,有待商榷。不过庆幸的事,最后作者通过实验在真实环境进行了一些测试,说明了模型还是挺灵活有效的。

3、Network

先上图,分三部分,从左到右,依次为输入、模型处理、输出

模型的输入:即状态信息,包括:chunk throughput vector(下载每个片段的平均码率),chunk download time vector(下载每个片段所花的时间),next chunk size vector(可选chunk的大小,即可用码率集合),buffer size(当前buffer),chunks left(剩余未下载的片段数量),last chunk bit-rate(上一个请求片段的码率)。

工作流程:在给定上述状态S时,执行操作A,从而得到结果B,即输出下一个片段的码率,此时状态从S迁移到S’,如此循环。整个过程是不是觉得很眼熟,没错,马尔科夫决策的基本步骤,本人的一篇best paper http://ieeexplore.ieee.org/document/7457843/,采用的就用马尔科夫决策来解决DASH中的ABR问题,具体的细节可以看扩展后的长文 http://ieeexplore.ieee.org/document/7393865/,发表在Trans. Multimedia上。不过,在传统马尔科夫决策中,转移概率矩阵、代价函数等都是事先分析好的,整个系统按照既定规则运转。而在Pensieve中,代价函数、决策模型等是通过数据训练出来的,按照作者的观点,其适应性会更强。

值得注意的是,上图中包含两个网络模型,一个是Actor,一个是Critic,其中Critic主要是训练cost function的,类似马尔科夫决策中的代价函数,用于辅助Actor网络,Actor是真正的决策模型,输出下一个片段的码率。

模型参数细节:Actor网络,对于前三个vector,利用滑动窗口,取8个历史值组成一个vector作为输入,分别经过一个1*4的一维卷积网络,该网络具有128个filters,后三个因素,则取当前状态值,经过一个1*1的卷积网络,将所有的输出经过一个全连层得到一个1*128的vector,最后经过softmax进行判决,得到一个vector,描述了不同码率被选中的概率。Critic网络与Actor基本一致,不同的是最后的输出是一个单值,而不是一个vector。

4、Results

学术论文的结果都是非常好的,不然也不会放在论文上,这一般需要读者有自己的判断能力。这篇文章的实验还是非常完善的,从各个维度都进行了详细的说明和比较,这里只选择几个结果简单说明,具体的可以参见论文本身 http://web.mit.edu/pensieve/content/pensieve-sigcomm17.pdf

首先要提一下的是其QoE model,其QoE模型如下:

即考虑了码率大小、卡顿、码率平滑性三个方面,其中,针对其中第一项,即码率的大小,又分为如下几个case:

总体来说,该模型还是比较简单的,而且在某种程度上,不能真正的反应流媒体传输的质量(目前这个领域的研究工作很多,但是流媒体主观质量这个问题,基本谁都能说自己是对的,也都不对,依据场景需求建立最合适的model,才是最实际的)。最开始我以为该文解决了流媒体领域的这一大难题,即如何定义一个靠谱的QoE模型,然而到最后,还是比较失望的,因为该文章的需要针对不同的QoE模型,训练不同的network,也就是在QoE上,并没有任何的创新突破。

以下是分别在FCC和HSDPA两个数据集上的QoE结果和CDF,可以看出,Pensieve的优势还是很明显的。

QoE performance over FCC & HSDPA

CDF Performance over FCC dataset

CDF Performance over HSDPA dataset

最后的一张图比较有意思,该图说和Offline optimal(知道未来网络状态,做全局优化,这个实际不可能提前知道,所有只是为了实验比较),性能仅仅相差9.1%,但是和Online optimal相比,性能只相差0.2%,某种程度上是在说,哥要么不出手,出手就基本已经做到最优了,你们不用再多想了,对于这点,不做评论,大家自己去脑洞。

写在最后

这篇文章无疑是一篇经典,一方面因为他的性能,但我觉得更多的是开辟了一个思路,虽然该思路在以前的文章有很多影子,但是这算是第一个这么完善的给做出来了 https://github.com/hongzimao/pensieve。当然,还有一些问题,也是值得同行们一起去研究和探讨的(个人观点,不代表权威),例如:

1、基于学习的model,其灵活性较高,但与针对特性场景设计的algorithm相比,其性能是否也能较好,毕竟实际系统都是有特定应用场景的

2、模拟生成的数据集,肯定无法反应真实网络的所有case,如何更好的构建数据集,是一个大难点

3、QoE model,如果更灵活,而不用分别train,可以考虑。毕竟,千人千面最难,在给定QoE model的前提下,整个问题的挑战也就没那么大了。

4、网络结构非常简单,复杂的结构会怎样(作者做了很多实验,包括网络深度、数据集的窗口大小等)?例如什么CNN、ResNet、DenseNet之类的(需要这么复杂的网络么,我也不知道,纯属脑洞)

5、流媒体传输的其他方向能否也采用learning的方法,例如jscc、uep等

猜你喜欢

转载自blog.csdn.net/qq_34662278/article/details/83622142
今日推荐