南京大学 | MIETT:面向加密流量分类的多实例Transformer模型
字数 3482 2025-09-23 19:27:38

MIETT:面向加密流量分类的多实例Transformer模型 教学文档

1. 摘要与核心思想

MIETT (Multi-Instance Encrypted Traffic Transformer) 是由南京大学提出的一个用于加密流量分类的深度学习模型。其核心思想是解决现有方法(包括基于深度学习和基础模型的方法)在处理加密流量时的两大局限性:

  1. 忽略数据包间关联性:传统方法多侧重于单个数据包内部特征建模,难以捕捉流级别(Flow-Level)的交互和全局时序关系。
  2. Token语义信息有限:加密流量中的字节序列(Tokens)本身缺乏清晰的语义,仅依赖Token级特征容易丢失流量的整体行为模式。

MIETT通过引入双层注意力机制(Two-Level Attention, TLA)三个新颖的预训练任务,同时有效建模数据包内部(Intra-packet)和数据包之间(Inter-packet)的依赖关系,从而在多个加密流量分类数据集上实现了卓越的性能。

2. 模型架构详解

2.1 数据表示(MIETT Encoding)

MIETT将一条网络流量(Flow)视为由多个数据包(Packets)组成的实例,其编码过程分为三步:

  1. Tokenization(分词)

    • 对每个数据包的原始十六进制字节序列进行处理。
    • 采用 bi-gram 分词法,即每两个字节作为一个基本单元(Token)。
    • 然后使用 Byte Pair Encoding (BPE) 算法对这些bi-gram单元进行进一步编码和压缩,生成最终用于模型输入的Token序列。这能有效减少词汇表大小并处理稀有字节组合。
  2. Packet Representation(数据包表示)

    • 每个数据包被表示为一个Token序列,并以特殊的 [CLS] Token开头。
    • 每个包的长度被固定为128个Tokens。对于不足长度的包进行填充(Padding),对于超长的包进行截断(Truncation)。
  3. Flow Representation(流量表示)

    • 一条流量由 N 个数据包组成。
    • 最终,一条流量被表示为一个三维张量 (N, 128, D),其中:
      • N:数据包数量(实例数)。
      • 128:每个数据包的Token长度。
      • D:每个Token的嵌入维度(Embedding Dimension)。

2.2 核心架构:双层注意力(TLA)

传统方法将三维流量张量展平为二维进行处理,会丢失数据包顺序信息且计算复杂度高。MIETT的核心创新是TLA层,它分层处理信息,保持流量层次结构。

一个TLA层由两个连续的注意力机制组成:

  1. Packet Attention(数据包注意力)

    • 目的:捕捉单个数据包内部不同Token之间的关联关系。
    • 机制:在每个数据包上独立地应用多头自注意力机制(MHSA)。可以理解为在 N 个数据包上并行跑了 N 个标准的Transformer自注意力操作。
    • 输出:每个数据包内部的Tokens都融入了包内其他Tokens的上下文信息。
  2. Flow Attention(流注意力)

    • 目的:捕捉不同数据包之间的依赖关系和时序上下文。
    • 机制:在每个Token的位置上,跨 N 个数据包应用MHSA。例如,对所有数据包的第一个Token计算注意力,再对所有数据包的第二个Token计算注意力,以此类推。
    • 输出:每个Token位置上的信息都融入了所有数据包在该位置上的上下文信息,从而建立了包与包之间的联系。

优势:TLA结构不仅更符合网络流的自然层次(包内结构+包间序列),而且将计算复杂度从传统方法的 O((N*128)^2) 降低到 O(N*(128)^2 + 128*(N)^2),大大提升了计算效率。

3. 训练策略

MIETT的训练分为预训练微调两个阶段。预训练阶段使用大量无标签流量数据,让模型学习通用的流量表示;微调阶段使用有标签数据,适配具体的分类任务。

3.1 预训练阶段

预训练时,TLA中的Packet Attention模块初始化为预训练的ET-BERT模型的权重并冻结(Frozen),只训练Flow Attention模块和任务相关的头部网络。此阶段包含三个预训练任务:

  1. 掩码流预测 (Masked Flow Prediction, MFP)

    • 方法:随机遮蔽流中15%的Tokens,让模型根据上下文预测被遮蔽的内容。
    • 目标:促使模型学习流量字节序列的内部结构和依赖关系,增强其处理不完整信息的能力。
  2. 数据包相对位置预测 (Packet Relative Position Prediction, PRPP)

    • 方法:从每个包的 [CLS] 嵌入(蕴含了该包的摘要信息)出发,预测任意两个包在流中的相对前后顺序
    • 目标:明确地教会模型理解数据包之间的时序关系,这是理解流量行为的关键。
  3. 流对比学习 (Flow Contrastive Learning, FCL)

    • 方法
      • 正样本:来自同一条流的不同数据包的 [CLS] 嵌入。
      • 负样本:来自不同条流的数据包的 [CLS] 嵌入。
      • 通过一个MLP投影头后,使用对比损失(如InfoNCE Loss)拉近正样本对的距离,推远负样本对的距离。
    • 目标:学习鲁棒的流量表示,使模型能更好地区分不同应用的流量,即使它们有某些相似的包。

预训练的总损失函数是三个任务损失的加权和:
L_total = L_MFP + α * L_PRPP + β * L_FCL
(其中α和β是超参数,论文中均设置为0.2)

3.2 微调阶段

  • 目的:将预训练好的模型用于具体的加密流量分类任务(如应用识别、服务识别)。
  • 方法
    1. 解冻所有模型参数(包括之前冻结的Packet Attention部分)。
    2. 将流量数据输入经过多个堆叠的TLA层。
    3. 取出所有数据包对应的 [CLS] 嵌入向量。
    4. 对这些 [CLS] 向量进行平均池化(Average Pooling),得到整个流量的全局表示向量。
    5. 将该向量输入一个多层感知机(MLP) 分类器,得到最终的分类结果。
  • 优化目标:最小化预测结果与真实标签之间的交叉熵损失(Cross-Entropy Loss)

4. 实验与评估

4.1 实验设置

  • 数据集:在5个公开数据集上评估:
    • ISCXVPN2016 (VPN/非VPN流量)
    • ISCXTor2016 (Tor/非Tor流量)
    • CrossPlatform (Android & iOS 应用流量)
    • CIC IoT Dataset 2023 (IoT设备流量)
  • 基线模型:与7种先进方法对比,包括DataNet, DeepPacket, FS-Net, ET-BERT等。
  • 参数配置
    • 数据包长度 L=128,包数量 N=5
    • 嵌入维度 D=768,TLA层数 =12
    • 优化器:AdamW,学习率 = 5e-5

4.2 实验结果

  • 主要结论:MIETT在所有数据集上的准确率(Accuracy)F1分数(F1-Score) 均显著优于所有基线模型。
  • 关键指标:在最具挑战性的CrossPlatform (Android)数据集上,MIETT相比之前最好的ET-BERT模型,准确率提升了8.27%,F1分数提升了14.66%。这证明了其处理复杂、多类别加密流量场景的有效性。
  • 意义:实验结果验证了TLA架构和三个预训练任务的有效性,表明MIETt确实更好地捕捉了加密流量的本质特征。

5. 总结与贡献

  1. 新颖架构:提出了MIETT模型及其核心双层注意力(TLA)机制,有效统一建模了Token级和Packet级的特征。
  2. 创新预训练任务:引入了PRPPFCL任务,分别强化模型对包序关系的理解和对不同流量的区分能力,与传统的MFP任务形成互补。
  3. 卓越性能:在多个基准数据集上进行了全面实验,证明了MIETT在加密流量分类任务上的最先进(State-of-the-Art)性能

文档说明:本文档严格根据提供的链接内容整理,剔除了原文中的网页布局、导航栏、广告、推荐阅读等无关信息,集中提取并详细阐述了MIETT模型的技术细节、创新点和实验结果。

MIETT:面向加密流量分类的多实例Transformer模型 教学文档 1. 摘要与核心思想 MIETT (Multi-Instance Encrypted Traffic Transformer) 是由南京大学提出的一个用于 加密流量分类 的深度学习模型。其核心思想是解决现有方法(包括基于深度学习和基础模型的方法)在处理加密流量时的两大局限性: 忽略数据包间关联性 :传统方法多侧重于单个数据包内部特征建模,难以捕捉流级别(Flow-Level)的交互和全局时序关系。 Token语义信息有限 :加密流量中的字节序列(Tokens)本身缺乏清晰的语义,仅依赖Token级特征容易丢失流量的整体行为模式。 MIETT通过引入 双层注意力机制(Two-Level Attention, TLA) 和 三个新颖的预训练任务 ,同时有效建模数据包内部(Intra-packet)和数据包之间(Inter-packet)的依赖关系,从而在多个加密流量分类数据集上实现了卓越的性能。 2. 模型架构详解 2.1 数据表示(MIETT Encoding) MIETT将一条网络流量(Flow)视为由多个数据包(Packets)组成的实例,其编码过程分为三步: Tokenization(分词) : 对每个数据包的原始 十六进制字节序列 进行处理。 采用 bi-gram 分词法,即每两个字节作为一个基本单元(Token)。 然后使用 Byte Pair Encoding (BPE) 算法对这些bi-gram单元进行进一步编码和压缩,生成最终用于模型输入的Token序列。这能有效减少词汇表大小并处理稀有字节组合。 Packet Representation(数据包表示) : 每个数据包被表示为一个Token序列,并以特殊的 [CLS] Token开头。 每个包的长度被 固定为128个Tokens 。对于不足长度的包进行填充(Padding),对于超长的包进行截断(Truncation)。 Flow Representation(流量表示) : 一条流量由 N 个数据包组成。 最终,一条流量被表示为一个三维张量 (N, 128, D) ,其中: N :数据包数量(实例数)。 128 :每个数据包的Token长度。 D :每个Token的嵌入维度(Embedding Dimension)。 2.2 核心架构:双层注意力(TLA) 传统方法将三维流量张量展平为二维进行处理,会丢失数据包顺序信息且计算复杂度高。MIETT的核心创新是TLA层,它分层处理信息,保持流量层次结构。 一个TLA层由两个连续的注意力机制组成: Packet Attention(数据包注意力) : 目的 :捕捉 单个数据包内部 不同Token之间的关联关系。 机制 :在每个数据包上独立地应用 多头自注意力机制(MHSA) 。可以理解为在 N 个数据包上并行跑了 N 个标准的Transformer自注意力操作。 输出 :每个数据包内部的Tokens都融入了包内其他Tokens的上下文信息。 Flow Attention(流注意力) : 目的 :捕捉 不同数据包之间 的依赖关系和时序上下文。 机制 :在 每个Token的位置上 ,跨 N 个数据包应用MHSA。例如,对所有数据包的第一个Token计算注意力,再对所有数据包的第二个Token计算注意力,以此类推。 输出 :每个Token位置上的信息都融入了所有数据包在该位置上的上下文信息,从而建立了包与包之间的联系。 优势 :TLA结构不仅更符合网络流的自然层次(包内结构+包间序列),而且将计算复杂度从传统方法的 O((N*128)^2) 降低到 O(N*(128)^2 + 128*(N)^2) ,大大提升了计算效率。 3. 训练策略 MIETT的训练分为 预训练 和 微调 两个阶段。预训练阶段使用大量无标签流量数据,让模型学习通用的流量表示;微调阶段使用有标签数据,适配具体的分类任务。 3.1 预训练阶段 预训练时,TLA中的Packet Attention模块初始化为预训练的 ET-BERT 模型的权重并 冻结(Frozen) ,只训练Flow Attention模块和任务相关的头部网络。此阶段包含三个预训练任务: 掩码流预测 (Masked Flow Prediction, MFP) : 方法 :随机遮蔽流中15%的Tokens,让模型根据上下文预测被遮蔽的内容。 目标 :促使模型学习流量字节序列的内部结构和依赖关系,增强其处理不完整信息的能力。 数据包相对位置预测 (Packet Relative Position Prediction, PRPP) : 方法 :从每个包的 [CLS] 嵌入(蕴含了该包的摘要信息)出发,预测任意两个包在流中的 相对前后顺序 。 目标 :明确地教会模型理解数据包之间的 时序关系 ,这是理解流量行为的关键。 流对比学习 (Flow Contrastive Learning, FCL) : 方法 : 正样本 :来自 同一条流 的不同数据包的 [CLS] 嵌入。 负样本 :来自 不同条流 的数据包的 [CLS] 嵌入。 通过一个MLP投影头后,使用对比损失(如InfoNCE Loss)拉近正样本对的距离,推远负样本对的距离。 目标 :学习 鲁棒的流量表示 ,使模型能更好地区分不同应用的流量,即使它们有某些相似的包。 预训练的总损失函数是三个任务损失的加权和: L_total = L_MFP + α * L_PRPP + β * L_FCL (其中α和β是超参数,论文中均设置为0.2) 3.2 微调阶段 目的 :将预训练好的模型用于具体的加密流量分类任务(如应用识别、服务识别)。 方法 : 解冻 所有模型参数(包括之前冻结的Packet Attention部分)。 将流量数据输入经过多个堆叠的TLA层。 取出所有数据包对应的 [CLS] 嵌入向量。 对这些 [CLS] 向量进行 平均池化(Average Pooling) ,得到整个流量的全局表示向量。 将该向量输入一个 多层感知机(MLP) 分类器,得到最终的分类结果。 优化目标 :最小化预测结果与真实标签之间的 交叉熵损失(Cross-Entropy Loss) 。 4. 实验与评估 4.1 实验设置 数据集 :在5个公开数据集上评估: ISCXVPN2016 (VPN/非VPN流量) ISCXTor2016 (Tor/非Tor流量) CrossPlatform (Android & iOS 应用流量) CIC IoT Dataset 2023 (IoT设备流量) 基线模型 :与7种先进方法对比,包括 DataNet, DeepPacket, FS-Net, ET-BERT 等。 参数配置 : 数据包长度 L=128 ,包数量 N=5 。 嵌入维度 D=768 ,TLA层数 =12 。 优化器:AdamW,学习率 = 5e-5 。 4.2 实验结果 主要结论 :MIETT在 所有数据集 上的 准确率(Accuracy) 和 F1分数(F1-Score) 均显著优于所有基线模型。 关键指标 :在最具挑战性的CrossPlatform (Android)数据集上,MIETT相比之前最好的ET-BERT模型, 准确率提升了8.27%,F1分数提升了14.66% 。这证明了其处理复杂、多类别加密流量场景的有效性。 意义 :实验结果验证了TLA架构和三个预训练任务的有效性,表明MIETt确实更好地捕捉了加密流量的本质特征。 5. 总结与贡献 新颖架构 :提出了 MIETT模型 及其核心 双层注意力(TLA)机制 ,有效统一建模了Token级和Packet级的特征。 创新预训练任务 :引入了 PRPP 和 FCL 任务,分别强化模型对包序关系的理解和对不同流量的区分能力,与传统的MFP任务形成互补。 卓越性能 :在多个基准数据集上进行了全面实验,证明了MIETT在加密流量分类任务上的 最先进(State-of-the-Art)性能 。 文档说明 :本文档严格根据提供的链接内容整理,剔除了原文中的网页布局、导航栏、广告、推荐阅读等无关信息,集中提取并详细阐述了MIETT模型的技术细节、创新点和实验结果。