“百面深度学习”系列连载 第十二期
网络通信(1)
引言
网络通信技术是互联网发展的核心技术之一。在计算机网络中,每一个计算机设备都可以被看作一个节点,节点之间通过网络链路交换数据与信息。这样一个由节点、链路组成的网络叫做计算机网络,而在这个网络之中用来通信的技术,被称之为网络通信技术。网络通信技术支撑着网络中大部分的服务与应用,例如模拟和数字的语音视频,传统的包网络传输(文件传输,e-mail,World Wide Web,流媒体),数据中心与存储,peer-to-peer文件分享网络,在线社交网络,分布式传感网络等。网络底层所涉及到的技术则更加包罗万象,如网络架构和设计(网络资源分配算法,流量建模,性能分析),传输协议的设计(IP协议,TCP/IP协议),移动通信技术(车载网,5G),网络硬件,网络运行管理与监控,网络安全(可疑软件监测,防范)等等。
随着Machine Learning(ML)在各行各业,如计算机视觉,语音识别,内容推荐等领域作出的极为振奋人心的突破后,网络通信领域的研究学者们发现,机器学习在一些长久以来未解决的传统网络问题,也展现了它超乎寻常的学习能力。举例来说,第一,机器学习可以帮助网络完成一些和数据相关的分类和预测任务,这些分析的结果可以更好的激发网络上层的商业能力。例如说网络带宽预测等 [1]。第二,机器学习可以帮助网络作出决定。在网络资源规划或者参数调节上,机器学习都可以自适应的优化、管理。当然除了以上提到了两点之外,在网络中还有许许多多的应用与改进,在本篇推送中我们就仅以下文举例的一道题览一叶以知秋吧。
问题1
如何准确的预测一个网络中数据流量(data traffic)的变化一直是网络优化中不可缺少的一部分。在实际应用中,很多后续网络性能的优化都基于此研究展开。举个我们的日常生活上下班中例子,在离目标路段还有10分钟的路程时,如何理解目标路段是否会发生拥堵,并提前切换路线呢?当然,在不同的网络背景下,这个data traffic可能拥有不一样的含义,在计算机网络下,它可能是预测某数据链路的带宽,在无线网络中,他可能表示为基站的发射送量等。如果我们知道某一个节点过去的一段时间的带宽变化,我们想预测该节点未来一个时间段的带宽情况,如何使用深度学习来训练一个网络数据流量变化问题呢?
分析与解答
我们发现生活中很多问题都可以规划为该问题求解。该问题又可以简化为Time Series algorithm (时间序列算法)。通常被用来预测连续值的变化,譬如说产品的销售额,天气的变化,又或者股票曲线的变化等。时间序列是一组按照事件发生先后顺序进行排列的数据点序列,通常被作为有顺序的离散点进行处理。时间序列预测法可用于短期,中期和长期预测。当然,传统的平均值计算,有权重的平均值加权,以及在过去很长一段时间都占据时序分析主流地位的差分整合移动平均自回归模型(ARIMA)都可以很好的解决这个问题。不过随着现代机器学习方法的发展,这个问题则有了更好地解决方式。
首先,我们可以来理解一下这个问题,从本质上讲,这个问题可以看作一个回归问题。在DL之前,许多传统的ML也可以很好的解决这个问题,譬如说Linear regression,support vector regression等,对于这类问题,如果把过去的X个的数据点作为独立的训练数据的话,最简单的单层感知机就可以实现预测功能,以上提到的对于一些简单的,比较好预测的数据以上方法都可以得到不错的结果。
当我们进一步的思考这个问题,我们会发现,如果只是把过去的数据点作为独立的训练数据丢到多层感知机内,数据之间的时间上的相关性则被忽视了 ,因此对于有着较长时间为单位复杂的周期性变化的数据则处理的不够好。而在DL的领域中,RNN模型如LSTM有着很好的学习长期依赖关系的能力,也在语言翻译和语言识别上展现出了非常好的效果。
Figure 1: 利用RNN进行带宽预测
我们再继续深入的思考网络中数据流量预测的问题,我们会发现我们其实也丢掉了大量的地理位置信息,譬如说,A点的数据流量情况除了可以通过过往A点的数据进行预测,它附近的B点,C点的数据也势必会连带导致A点数据的变化。如果我们将这些信息也用上,我们就可以对一个城市,或者整个网络的流量有着比较强的预测能力了。基于我们对DL的了解,我们可以联想到CNN可以被用来抓住一个2维图像中的特征提取,如果把一个城市的网络想象成由网格图妆的节点组成的网络话,其特征也就可以很好的被CNN进行捕捉了。因此,我们这个地理-时间的联合特征学习任务就可以被适配到一个3D CNN网络中进行分析,如 Fig. 2 所示。但是这样的话,我们就会丢失了时间序列中的先后顺序的问题。很自然的我们就可以联想到我们的可以把一个CNN网络和RNN网络联合起来进行学习。其中CNN网络可以用来抽取地理位置信息,而RNN用来抽取时序关系,如 Fig. 3 所示.
Figure 2: 利用3D-CNN进行带宽预测
Figure 3: 利用CNN-RNN进行带宽预测
扩展与总结
将数据节点表示成为网络状的数据点,然后利用CNN进行进行处理当然不是最优的解决办法。Graph nerual network可以更好的表示网络中点和点的关系。利用GNN进行带宽预测可以对网络中的信息进行更好的补充,具体解决办法请见 [3]。
[1] SUN Y, YIN X, JIANG J, 等. CS2P: Improving video bitrate selection and adaptation with data-driven throughput prediction, Proceedings of the 2016 ACM SIGCOMM Conference. ACM, 2016: 272–285.
[2] HUANG C-W, CHIANG C-T, LI Q.
A study of deep learning networks on mobile traffic forecasting, 2017 IEEE 28th Annual International Symposium on Personal, Indoor, and Mobile Radio Communications (PIMRC). IEEE, 2017: 1–6.
[3] WANG X, ZHOU Z, XIAO F, 等. Spatio-temporal analysis and prediction of cellular traffic in metropolis, IEEE Transactions on Mobile Computing, IEEE, 2018.
下期预告
【网络通信(2)】
问题2
在目前工业界的流媒体传输的优化中,主要利用Dynamic adaptive streaming over HTTP(DASH) 或者 Apple’s HTTP Live Streaming (HLS) 来完成流媒体的传输。 DASH和HLS的网络会把原始内容编成多个不同清晰度的不同码率的一组视频。并把每一个视频组织成一系列小的视频块,其中每一个视频块都包含一小段可以独立播放的视频内容。当这个视频内容在客户端播放时,客户可以根据目前的网络状态自由的选择下一个视频块播放的码率。这个系统的好处是在不断变化的网络状态中,这种流媒体传输系统可以自适应的调节播放码率,在提供高视频播放质量的同时,同时减少播放的卡顿。请问在这样的背景下,有什么方法可以帮助DASH或者HLS的系统作出码率切换的决策,解决码率自适应的问题呢?
今天又是丁老师的同事小兰登场的环节~
最近我的洗面奶快用完了,于是我向小兰寻求建议,有没有什么推荐。她说,“我最近在用那个CDP的洗面奶,我觉得挺好用的!”嗯嗯,小兰一定是最近看player代码入迷了……
(其实她想说的是CPB,CDP是一个player平台。)
丁老师二三事
说明:“丁老师二三事”是取材于Hulu日常的虚构创作,如有雷同,您别当真~
关注Hulu公众号
你就是最爱学习的仔~