B. 智能运维 — 质量保障 — 用户体验 — 指标分析
视频分析 — 相关系数/信息论
- 数据采集
- 客户端:客户端采集
- 数据规模:超过100万的用户,200万次的观看,以及主流的内容生产商
- 分析维度
- 指标类型
- 视频加载时间(Join time)
- 缓冲比 (BufRatio)
- 缓冲事件频率(RateBuf)
- 平均比特率(AvgBitrate)
- 视频渲染质量(RendQual)
- 用户观看时间
- 单指标
- 单视频被时间
- 用户观看
- 聚合指标
- 单视频被时间
- 用户观看
- 用户参与度评估
- 总的播放时间
- 视频播放数据
- 单指标
- 内容类型
- 长时点播
- 短时点播
- 现场直播
- 指标类型
- 数据集
- 数据集划分
- 视频类型 + 视频提供商(发行商)
- 视频类型
- 长时视频
- 短时视频
- 现场播放:在线网络
- 视频提供商:5个主流的视频提供商
- 视频类型
- 视频类型 + 视频提供商(发行商)
- 数据集划分
- 分析手段
- CDF ( Cumulative Distribution Function):分析单指标和用户参与度的关联关系
- 对于多指标数据,如何更精准的确定单指标的影响:Kendall相关系数
- 信息增益
视频分析 — 决策树
- 数据处理
- KPI指标离散化例如,我们可以根据用户观看视频的百分比,按照0-20%,20- 40%,40-60%,60-80%,80-100%的分类标准,将原始数据分为5类,并建立相应的预测模型
- 性能指标粗粒度离散化
- 离线训练
- 步骤
- 特征选取
- 决策树生成
- 剪枝:树的后剪枝策略:使用新的叶子节点替换子树,该节点的预测类由子树数据集中的多数类决定。通过这中方式可以使得生成的决策树变得更加简单,从而更具有指导价值。
- 步骤
- 实际解决方案
- 将混杂因素直接作为决策树模型输入参数,训练一个针对全部数据集的统一的模型
- 根据混杂因素对于数据进行分割,对不同混杂因素下的数据集,分别建立决策树模型。
视频网站流量切换(Pytheas) — 强化学习
- 强化学习的优势
- 强化学习相比监督和非监督学习的最大优势是智能体(agent)可以通过与环境的交互,不断的探索学出最优的决策。
- 思路
- 关键特征学习:三个
- ContentName:视频内容
- ASN:网络提供商
- CDN
- 模型训练 :根据最新的关键特征训练预测函数,采用在线更新,30-60秒间隔。
- 实时预测:利用预测函数来实时预测,毫秒级别的响应速度。由于是简单的函数运算,所以预测的效率非常高。
- 关键特征学习:三个
- 难点
- 预测偏差:由于训练样本的偏差选择而导致的预测结果局部最优。
- 反应迟钝:基于预测的方法不能快速的适配网络的动态性
- Pytheas的基本思路是
- Session分组:首先删除决策无关的关键特征,以递归的方式将每个session分到不同的组。比如:当决策的结果是选择CDN或者视频码率时,由于关键特征”设备型号“跟CDN和码率无关,在这种情况下,当两个session分组的其他关键特征相同,只是“设备型号”不同时,就可以分到同一个组里。
- 每组独立运行E2:Pytheas通过Discounted UCB算法实时探索,并计算出最优的决策。针对每组的每个session,Discounted UCB算法会以一定的概率对每个可能的决策进行探索(比如说视频码率),根据探索的结果,实时计算出使奖励(QoE)最大的决策。这个思路就是最近非常流行的强化学习:在动态的环境中,通过实时获取环境参数做出当前最优的决策。
- 具体流程
- Pytheas在全局将session分组,在每个前端服务器来运行实时的E2算法,其中用户和前端服务器的交互如图5(a)所示,
- 用户通过HTTP向前端的服务器请求决策的结果、上传测量数据(比如视频质量等参数)。前端服务器内部与后端服务器的消息交互如图5(b)所示,
- 主要使用Apache httpd和Spark Streaming实现这些交互,其中per-group logic模块通过UCB算法得出最优的决策结果。后端服务器实现了全局的session分组,如图5©所示。
MIT黑科技:增强学习让你的视频不再卡顿
- 核心思想
- 利用增强学习来做决策,即选择码率
- 再用深度神经网络做训练和状态表征。
- 具体细节
- DASH中,我们需要解决的就是如何让用户在接下来的一段时间(比如到视频结束)所获得的整体的QoE达到最高,这里的QoE就是增强学习中的reward。
- 同过利用深度学习强大的表征能力,增强学习中的状态直接可以作为网络的输入,网络的输出就是决策该状态下的动作。