用经验主义方法从用户的角度预测用户观看视频时的体验质量

本文编译自Maria Plakia, On user-centric analysis and prediction of QoE for video streaming using empirical measurements, QoMex 2016

改善QoE(Quality of Experience, 服务质量)是一个老生常谈的问题,但如何评估QoE/Qos本文使用一种机器学习的方法,来实现在用户角度预测QoE。

QoE的定义是用户在使用服务、网络或产品时的满意度,这是一种主观的感受,这决定了他是很难被量化的。但我们比较清楚的是,影响QoE的有几个主要因素,如网络的QoS,价格、源的质量等等。对于这部分可被客观度量的值,我们可以用纯数学的模型去建模,如E-Model, WFL, IQX等,也有一些数据挖掘的方法,如有一些使用非线性的回归模型来预测。

图片1.png

例如上图这种情况,我们只考虑QoS影响QoE的情况,就可以通过数学方式对这个函数进行拟合。作者开发了MLQoE框架来对客观部分进行建模。这一框架采纳了诸如Artificial Neural Networks, SVR, 决策树等等分类器。简单来说,这一框架的作用就是在接受参数后,自动地选择合适的机器学习算法并微调参数,之后导出算法、参数这一结果。MLQoE之后又在多个方向扩展到了本文的不同部分,也就是监控和收集数据的QoE Tracker。使用QoE Tracker来收集志愿者的数据,包括了启动时延,重新缓冲次数,丢包率,分辨率变化和用户的评价等等角度,之后再用MLQoE来进行分析和预测,并与Web-Fechner定律来对比。

Web定律是一个非常简单的定律,可以用一个公式来表示,即 △i/i = K,其中K是常数。i是刺激强度,△i是差别阈值。举个例子来说明这个定律:假如说一个视频有10秒,因为卡顿导致增加了一秒。另一种情况是一个视频有7200秒(2个小时),因为卡顿导致增加了720秒(20分钟),这两种刺激给用户的感官感受是一样的。

QoE Tracker运行在用户的手机上,收集网络和系统方面的客观指标,和来自用户的反馈等主观指标。包含了三个部分,logcat的解析器、活动的探针和本地化方面的组件。logcat的解析器周期性地读取视频客户端的日志,并识别用户的行为和其他发生的一些事件。当视频开始或结束时,活动的探针就被激活(或终止),在激活过程中,活动探针与服务器上的探针进行交互,并传输监听到的数据。

具体地,对于每一个视频的会话,都会收集服务类型、启动时延、启动时延所占会话时长的比例、会话时长、QoE的评分和缓冲的次数,除此之外,还有一些统计上的数据,如最小值、最大值、均值、方差等等。同时还有加权的平均分辨率和切换分辨率的次数,丢包率等等。用户的行为则会被标记为暂停,拉进度条和离开屏幕(如切换到后台)等行为。

数据源分析

作者首先分析了启动时间对QoE的影响。

startup.png

当启动时间超过10s时,用户对QoE的评分就会下降。之前也有研究表明当视频的启动时间超过2s时就会导致用户放弃继续观看。(腾讯视频优酷视频爱奇艺你们注意了……,这段是重点),作者也发现在无线网络的情况下,用户对启动时间的忍受度要比在固定带宽时更大。有趣的是,存在一些非常高清的视频,但是因为较差的网络连接质量,导致QoE评分很低。但在占用同样带宽的情况下,通常来说降低分辨率以获取更流畅的视频会增加QoE。

buffer.png

在实验数据中,也发现了部分缓冲率较高(超过10分钟),但QoE评分较高的行为。因此进行了第二阶段的实验。在第二阶段的实验中,作者设置了一系列针对不同网络情况下的合成的视频。相比较而言,这一实验是更可控的实验。更多关于实验的细节按下不表,但这一思路值得学习,在实验过程中,不可能会一直出现希望出现的、完美的数据。发现异常的数据时,反而更加需要深入去讨论导致异常的原因,并重新调整预测。

MLQoE算法

MLQoE算法使用有监督的回归方法,它的预测都基于可度量的值,如丢包率、网络抖动次数、重新缓冲次数等等,输出则是QoE的评分预测。MLQoE包含了几个不同的模块,如正则化、特征选取、多个回归量的训练和对最好的ML模型的选择和输出。其中包含了多种可轻松扩展的机器学习的算法。

MLQoE可以被划分为两步,即模型选择和性能评估。

在模型选择时,MLQoE将性能预测时的数据作为输入,并进行交叉验证,并返回最佳的模型。由于所收集的数据多为高维数据,为了降低计算时的复杂度,作者引入了MMPC(Max-Min Parents and Children),这是一种基于因果和贝叶斯网络的特征选择方法。

在性能评估时,MLQoE将数据集读入,分成不同的部分,并在每一个部分中评估选中模型的性能,输入平均的错判值。这一值的计算就是简单的将预测值和真实值求差,并累计求差的和。

评估

Fig3.png

作者对第一阶段和第二阶段的实验分别设计了评估。对于第一阶段的评估,在20个用户中只有13个用户对5个以上的视频会话进行了评分,因此只考虑了这部分的用户数据。结论如上图。

对于第一个部分的研究,以用户为中心的MLQoE取得了相当好的结果。平均和中位绝对误差分别只有0.0991和0.7716。

前述的WFL也是一种常用来预测QoE的方法,WFL反映了QoE和QoS之间的关系。与WFL的对比如上图b所示。纵轴的CDF是累积分布函数,是概率密度函数的积分,它可以比较完整地描述随机变量的概率分布。可以看出,在同样的累积分布的值时(如0.4),MLQoE的结果要好于WFL。在中位预测错误率上,MLQoE也超过了WFL方法。

结论

启动时延和缓冲的比例是影响QoE的最主要因素。超过10秒的启动速度会严重降低QoE。在多个会话中,都可以发现视频速率的自适应可以减少缓冲的速率从而提高QoE。在第一个实验中,主要影响QoE的是缓冲时间的频率,视频的分辨率,中断的类型和丢包率。在QoE预测中,中位预测的错误率都会低于0.1。在第二个实验(更可控的实验中),缓冲的次数和缓冲的速度是影响QoE的主要影响因素。

启示

这是一篇试图对主观指标QoE进行客观度量的文章,通过作者设计的QoE Tracker和MLQoE算法,实质上是收集QoE的评分和所有可能影响QoE的因素,之后对数据进行降维,选择主要影响因素,并选择一个自适应的算法来进行预测。

这一做法对大多数的主观指标都有参考的价值。更大难度的会在数据的收集上,本文是收集了大量希腊的电信用户的数据进行分析的。可以预见,如果可以收集、分析更多真实场景下的通信、网络数据,对QoE的提升有十分优秀的提升效果。但在利用数据的同时,也更要注意数据的脱敏和安全。