基于公共知识和一次学习的多任务流量分类

写在前面:
本文翻译供个人研究学习之用,不保证严谨与准确
github链接:https://github.com/WithHades/network_traffic_classification_paper
本文原文:Sun, H., Xiao, Y., Wang, J., Wang, J., Qi, Q. I., Liao, J., & Liu, X. (2019). Common Knowledge Based and One-Shot Learning Enabled Multi-Task Traffic Classification. 39485–39495. https://doi.org/10.1109/ACCESS.2019.2904039

基于公共知识和一次学习的多任务流量分类

摘要
  将深层神经网络应用于流量分类,取得了很好的效果。然而,以往的工作大多局限于一个特定的分类任务,其中限制了分类器潜在的性能和应用领域。可以从不同的角度对流量流进行标记,这有助于通过挖掘更有意义的潜在特征来提高分类器的准确性。另外,基于深度神经网络(deep neural network,DNN)的模型难以适应新分类需求的变化,因为训练这种新模型不仅耗费大量的计算资源,而且需要大量的标记数据。为此,我们提出了一个同时学习多任务流量分类的多输出DNN模型。在该模型中,利用任务间的协同作用来挖掘业务流的公共知识,分别提高每个任务的性能。结果表明,该结构具有满足未来新需求的潜力,同时能够实现分类的快速性和公平性。本文还探讨了一次学习(One-shot learning)方法,该方法指的是数据稀少的学习过程,并且取得了显著的效果。

  关键词: 流量分类多任务模型迁移学习一次性学习

II. 介绍

  随着硬件容量的提高和通信需求的不断增长,传统internet网络中的简单系统逐渐被一些新的管理系统所取代,如SDN(Software Defined network)[1]。因此网络流量分类已经成为高效网络流量管理和服务质量保证的关键之一[2]。
  在过去的几十年中,人们提出了许多理论来更好地预测不同流量的带宽、延迟和质量的要求。人们普遍认为,用一小组流的特征可以很好地预测流的许多性质。在所有的方法中,一些机器学习工具使用流的端口号或者统计特征产生结果。最近,一些研究转向了深度学习技术,获得了令人满意的准确度分数[4]。然而,在许多研究中,不同的流分类任务通常被视为不同的领域,大多数研究都集中在一个特定的领域。
  我们的工作是由这样一个事实推动的:需求总是在变化的,而且之前的大多数工作都显示了一些特性,这些特性是不能用以描述流的不同任务的。例如,两个数据流的分类特征和识别流应用的特征惊人地相似[5]–[7]。这意味着对于不同的业务分类任务和应用功能,可能有一些共同的知识,从所选功能到我们需要重新定义的不同流属性基于共同知识的迟滞封闭关系,我们想探索一个一体化的解决方案,一种用来适应不断变化的需求的工具,一种有可能应用于流分类的各种相关任务的工具。
  为了解决上述问题,我们比较了许多机器学习工具,选择DNN作为基本技术。为了提取和实现训练中的公共知识,我们提出了多输出DNN结构,这是对简单DNN的一种改进。我们提出的结构分为两个阶段:第一阶段由公共层提取公共知识,然后利用私有层的独立分支分别训练和计算各种流分类任务。为了节省计算时间和内存,公共层也被认为是有效的。每个分类任务都拥有一个扩展的、相对简单的私有层分支,用于任务专门化。此外,有了这个提议,我们认为通过添加一个连接到训练有素的公共层的私有层的新分支,可以解决新的相关分类任务。
  在实际实现中,由于神经网络的计算复杂度和时间开销,采用DNN等技术是相当困难的。但我们提议的结构可能是一个解决方案。它不仅适用于具有巨大计算能力的集中式数据中心控制器,而且在许多设备计算能力较弱的情况下也是一种潜在的解决方案。一方面,在集中式数据中心中,我们提出了一种算法,用一个计算单元同时处理多个分类任务,无论是在时间上还是在内存上都大大降低了成本。此外,新的需求可以在不影响既定业务的情况下进行测试,并共享从大量先前相关数据中提取的公共知识。另一方面,对于弱端设备,使用我们的分层结构,可以将公共学习层远程放置在云中或一些专门的神经网络计算单元中。然后,只需对几个神经元进行简单的计算,终端设备就可以通过连接到公共层来完成复杂的新任务。
  我们的主要贡献总结如下:

  • 提出了一种多输出DNN结构来提取网络业务的公共知识,从而解决了业务分类中的多任务问题。
  • 实验证明,我们提出的算法能够处理流量分类中不同相关任务的迁移学习,从而满足我们对解决新需求的潜在能力的设想。
  • 在大量的实例学习场景实验中,我们提出的算法利用先前训练的公共层的公共知识,在准确率和效率上都有显著的性能。
      论文的其余部分安排如下。第二节回顾了流分类的背景和多任务学习的相关工作。第三节介绍了基本算法和我们提出的算法。第四节列出了我们在实验中使用的数据集的描述和统计。第五节给出了我们的实验设置,第六节报告了我们的实验细节和结果。论文在第七节结束。

II. 背景和相关知识

  流量分类有很多种方法。机器学习工具是最有前途的技术,在过去的几十年里得到了广泛的研究。大量的研究人员致力于预测不同的流特征。对流量分类的研究主要集中在几个方面。
  检测潜在的elephant flow可以避免一些潜在的网络拥塞[8]。许多研究都集中在多媒体业务的精确分类上,p2p(Peer-to-Peer)流量[9]占了所有流量的很大比例。通过对特定应用层信息的区分,可以根据不同的应用需求提供更好的服务质量。而对恶意网络流量的早期检测是对网络安全的一个有吸引力的改进[10]。
  一方面,对监督学习进行了探索。kNN(k-最近邻)是一个简单但有用的工具[11]。引入朴素贝叶斯估计量[12],Auld等人[13]随后提出了基于贝叶斯神经网络的分类方法。支持向量机(SVM)被证明是许多分类任务中最有前途的技术之一[14]。C4.5决策树是另一种解决方案[15]。此外,一些研究者尝试了深度学习技术[16]。对于其他领域,深度学习可以通过端到端的方式训练模型,这减少了专家建模的工作[17]。另一方面,Bernaille等人[18]提出了一种无监督学习模型,它与预先定义的标签无关,有助于流量分类。
  许多数据挖掘和机器学习算法都是使用先前收集到的带标签或未标记数据集训练的模型来进行预测。然而,在许多实际应用中,特征空间的解释或分布并不总是恒定的[19]。相反,迁移学习允许训练和测试数据集属于不同的领域、任务或分布[20]。
  弱监督学习是一种利用其他相关任务标记来提高目标任务性能的学习方法。其中一个主要问题是减少跨域差异。许多弱监督学习已被应用于其他领域,如计算机视觉[22]和自然语言处理[23]。对于自然语言处理,Perera等人[24]结合许多相关任务,如语义标注和名称实体识别,学习更好的句子表示。对于图像分类,Han等人[25]提出了一种利用无监督学习算法对图像背景进行编码,然后利用重建残差将显著目标从背景中分离出来的方法。Zhang等人[26]将自同步学习与多实例学习相结合,进行协显著性检测。最近,Sun等人[27]使用迁移学习,Moustafa等人[28]使用集成学习改进网络流量分类。
  值得注意的是,迁移学习有许多分支研究依赖于源任务和目标任务的数据集的可用性。大多数案例都得到了很好的探索。然而,对于流量分类问题,多任务分类很少被注意到。此外,一些研究集中在一次性学习上,目标任务中的标记训练集非常小。一次性学习的关键是可以利用以前训练过的数据中的知识,费飞等[29]第一次提到这个词。

III. 方法

A. 准备

  在这一节中,我们将介绍一些符号和定义。首先任务数据集D由两个部分组成:特征空间X和相应的标签空间Y。,给定一个任务数据集D,其中包含特征 X = { x 1 , . . . , x n } ∈ X X = \{x_1, ..., x_n\} \in X X={ x1,...,xn}X以及相应的标签 Y = { y 1 , . . . , y 2 } ∈ Y Y = \{y_1, ..., y_2\} \in Y Y={ y1,...,y2}Y,它们之间的关系可以表示为一个映射函数 f : X → Y f:X\rightarrow Y f:XY。例如,在对流量进行分类时,一个流的端口号和一组统计量都是一个特征向量X,它们的实际流量可以是标签空间的一个实例 y ∈ Y y\in Y yY。从判别模型的角度来看, f ( ⋅ ) f(\cdot) f()可以写成 P ( Y ∣ X ) P(Y|X) P(YX)。深度学习是一个拟合函数的过程,这个函数很可能是真函数。它通常使用一个损失函数 L [ f ( X ) , Y ] L[f(X),Y] L[f(X),Y]来判断拟合函数的性能,该函数表示预测值与实际值之间的差异。

B. 多输出的DNN方法

  DNN的数学直觉是一个高度非线性的映射函数。给定一个特定的跟踪数据集D,现在考虑我们要对持续时间、流量和许多其他流属性进行分类,这些属性表示为 Y 1 , Y 2 , . . . , Y n Y_1, Y_2, ..., Y_n Y1,Y2,...,Yn,对应的映射函数 f 1 , f 2 , . . . , f n f_1, f_2, ..., f_n f1,f2,...,fn。, f n f_n fn可能在某种程度上与相同的X相似。在允许的可承受性偏差 Δ i \Delta_i Δi下,我们可以得到:
f i = f i ′ ⋅ f c + Δ i (1) f_i = f_i^{'} \cdot f_c + \Delta_i\tag{1} fi=fifc+Δi(1)
   f i ′ f_i^{'} fi分别表示私有层不同分支的映射函数, f C f_C fC表示公共层的一般功能。这个结构中的公共知识C可以表示为:
C = f c ( X , θ c ) (2) C = f_c(X, \theta_c)\tag{2} C=fc(X,θc)(2)
   θ

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值