你在看视频时是否被上面的画面激怒过?你是否被视频缓冲困扰过?你是否因为追剧看到关键时刻突然卡顿而抱怨过?MIT最新研究让你的视频体验不再那么糟。在今年刚刚召开的SIGCOMM 2017上,MIT的研究者们利用最新的AI技术提出了一种全新的系统,Pensieve, 试图解决长久困扰视频观看者的问题——视频卡顿。
在开始正文之前,首先应该介绍一下SIGCOMM。SIGCOMM 全名是Special Interest Group on Data Communication,它是计算机网络科学领域排名第一的国际会议,每年举办一次,论文的平均录取率为10%左右。因为其严苛的评审标准,所以被该会议录取的工作都被学术界当作计算机网络科学研究的风向标。
本文将从下面几个部分介绍这篇工作,分别是研究背景、研究动机、核心想法、实验验证以及结论。
研究背景
为了保证在多变的网络环境下终端用户依然可以有较好的视频观看体验,大型的视频提供商比如YouTube 等往往都采用了一种基于HTTP的动态码率调整算法(DASH)为用户提供服务。简单的讲,针对同一个视频,视频提供商会提供其不同码率的版本,而每个视频在传输的过程中也会被切成不同大小的切片(chunk),而DASH要做的就是根据用户当前的网络状况,动态决定选择什么样的码率。
自然而然的,一个DASH算法就需要解决下面的问题。首先,网络状况的抖动是非常剧烈的,所以DASH算法需要保证在这种大幅度变化下依然有效。其次,算法表现的评价标准是基于用户体验的(QoE),而不同用户可能会有不同的偏好,比如有的用户宁愿卡顿也不愿意降低画质,而有的用户则更加偏爱画面的连续,所以宁愿忍受画质的下降。好的DASH算法就应该保证在不同的评价体系下都应该有效。第三点,码率的选择是相互影响的,即上一个时刻选择了什么码率,也会影响下一次码率选择下的用户体验。最后,DASH算法要实时处理(online),即决策时间不能长。这很直观,比如一个视频总长100s,DASH算法的决策如果需要50s,那显然是不合适的。
研究动机
上一个部分介绍完了该领域的研究背景,这部分介绍本篇文章的研究动机。为此,首先介绍下目前为止的DASH的研究工作。就目前来看,最近几年提出的DASH策略主要分为三种,一种是基于带宽预测的,即通过预测下一个时刻的网络带宽来决定下一个时刻应该提供多大的码率,比如CoNEXT’12年的FESTIVE以及SIGCOMM’16年的CS2P。另一类方法则通过维持用户的缓存区域的大小来选择对应的码率,相关工作有SIGCOMM’14年的BBA,以及INFOCOM’16年的BOLA。还有一种DASH策略则结合了上面两种策略,即同时利用带宽的预测和缓存大小去选择下个时刻的码率。
上面所提到的研究虽然都有着不错的表现,但是,他们都有相同的缺点,即都需要对网络进行建模。这就导致了上面提到的方法都会存在很多不足之处,第一点是方法并不具有普适性。其次,建模本身就是一个简化的过程,这种简化下的解大多数情况下得到的都是次优解。
鉴于上面的问题,Pensieve的作者们就试图去将过去DASH工作中对网络建模这一人为的过程省略掉,而让算法自动、实时的去感知网络状态并且做出决策。这也是本篇论文最本质的目的。
核心想法
为了避免提前对网络建模,Pensieve提出了采用增强学习加人工神经网络的方法,整体架构如图所示。
利用增强学习来做决策,即选择码率,再用深度神经网络做训练和状态表征。首先介绍增强学习。增强学习的整体框架如下图所示
简单的讲,就是让主体通过观察环境,选择相应的动作,每一个动作会对应使得主体进入一个状态,同时获得相应的奖励,而期望解决的问题就是让主体在未来的一段时间内获得的收益最大化。
通过上面的简单叙述,我们可以看出,增强学习和DASH完美适应,因为在DASH中,我们需要解决的就是如何让用户在接下来的一段时间(比如到视频结束)所获得的整体的QoE达到最高,这里的QoE就是增强学习中的reward。
有了增强学习的模型,还有关键问题需要解决——如何表征庞大的状态空间。因为在传统的增强学习问题中,状态个数往往是有限的,所以使用类似Tabular-Q learning算法就可以求解;而在DASH的场景下,状态空间可以说是无限的,比如用不同的网络带宽来表征不同的状态,那状态空间的大小就是无穷大,因为带宽本身是个连续的数。为了解决这个问题,这篇文章采用了深度学习的架构。同过利用深度学习强大的表征能力,增强学习中的状态直接可以作为网络的输入,网络的输出就是决策该状态下的动作。
所以整个系统的架构如下图所示,
其中用来表征状态的变量包括,网络带宽,chunk下载时长,下一个chunk的大小,缓存区大小,剩余chunk的数量以及上一个chunk选择比特率的大小。中间的深度神经网络采用三层的CNN网络。动作空间就是选择不同的码率。与此同时,每个动作的reward就是QoE。其实这里的QoE完全是“自定义”的,即完全可以针对不同的用户偏好采用不同的QoE,这又大大提高了Penseve的可扩展性。
实验验证和结论
为了方便对比,Pensieve采用了一种最常用的QoE评价方式,即
分别表示带宽、rebuffer的时长以及相邻chunk之间的平滑程度。正负号分别表示喜好或厌恶,系数表示影响的程度。
文章分别在不同的数据集中做trace-driven的预测,并且和前面的工作做对比,结果如图所示:
两个数据集分别为室外的3G网络环境和室内的宽带网络环境,通过结果可以发现,Pensieve相较于前面的工作都有着更好的表现,很接近最优解(最优解是指完全知道未来的网络状况,求解得到的,在实际中不可能拿到)。与此同时也对比了上面的QoE中的每一项的表现,如图所示:
可以看到,Pensieve在比特率和平滑程度的选择上并不是最优,由此可以得到Pensieve寻找的是全局的最优解。
除了通过trace-driven做验证,Pensieve也同时做了真实环境下的测试,测试结果表明Pensieve表现依然优秀,测试结果如下图所示:
写在最后
通过上面的介绍,我们可以看到文章中提出的利用深度增强学习做自适应码率有着非常优秀的表现,这无疑再一次印证了AI技术的有效性,也希望AI技术能在更多领域发挥作用。
参考文献
Neural Adaptive Video Streaming with Pensieve.
Hongzi Mao, Ravi Netravali, and Mohammad Alizadeh. 2017.
(SIGCOMM '17). ACM, New York, NY, USA, 197-210
附录
论文链接:
http://people.csail.mit.edu/hongzi/content/publications/Pensieve-Sigcomm17.pdf
作者主页:
http://people.csail.mit.edu/hongzi/