当前位置: 首页 > news >正文

Paper Reading《TrafficFormer: An Efficient Pre-trained Model for Traffic Data》

在这里插入图片描述
论文链接: http://www.thucsnet.com/wp-content/papers/guangmeng_sp2025.pdf
IEEE SP 2025

文章目录

  • 1 Introduction
  • 2 Background and Related Work
    • 2.1 预训练方法(Pre-training Methodology)
    • 2.2 数据增强(Data Augmentation)
    • 2.3 流量分类(Traffic Classification)
  • 3 Background and Related Work
    • 一、设计目标与核心挑战
    • 二、核心解决方案
    • 三、整体框架
    • 四、预训练阶段细节
    • 五、微调阶段细节
  • 4 Evaluation
    • 一、实验设置
    • 二、流量分类任务评估
    • 三、协议理解任务评估
    • 四、关键组件影响分析
  • 5 Discussion
  • 6 Conclusion

1 Introduction

该部分主要阐述了研究背景、现有方法的不足、预训练技术的应用潜力以及TrafficFormer模型的提出。

研究背景与意义:网络流量数据蕴含网络实体的交互逻辑和行为信息,对其进行分析和分类在网络安全和管理方面至关重要,如识别恶意软件、区分服务类型等。

现有方法的问题
- 传统机器学习方法:依赖专家知识选择特征,如FlowPrint、CUMUL和Appscanner等,在处理复杂网络流量时存在局限性。
- 深度学习方法:虽能直接处理原始流量数据,但需要大量标记数据,而网络流量数据标记困难,导致其有效性和泛化性受限。网络流量数据标记比传统数据(如文本、图像、声音)更难,因其需要标记者具备网络协议知识和特定场景经验,且攻击相关流量易被大量背景流量掩盖,变化快,高质量标记数据集稀缺。
-
预训练技术的应用潜力
预训练方法通过在预训练阶段利用无标记数据学习通用知识,在微调阶段利用标记数据学习特定任务知识,可解决标记数据有限的问题。在文本和图像领域已取得良好效果,且网络流量数据量大、行为模式复杂,应用预训练技术具有合理性。已有研究如PERT、ET - BERT和YaTC探索了预训练技术在流量数据分析中的应用,但未针对流量数据特点在预训练和微调阶段进行优化。

TrafficFormer模型的提出
本文提出TrafficFormer预训练模型,旨在从无标记流量数据中学习基本流量语义,提高下游任务的准确性。该模型在预训练和微调阶段均有创新设计,同时在评估方式上也有所创新,引入多种协议理解任务,全面评估模型能力。实验结果表明,TrafficFormer在所有流量分类任务中性能最佳,在协议理解任务中也优于现有模型。

2 Background and Related Work

该部分主要围绕预训练方法、数据增强技术和流量分类方法展开,为TrafficFormer模型的提出提供背景支撑和现有技术对比,具体内容如下:

2.1 预训练方法(Pre-training Methodology)

  • 核心框架:预训练方法分为两个阶段——预训练阶段(利用无标记数据通过自监督学习获取通用知识)和微调阶段(利用标记数据通过监督学习获取特定任务知识)。自监督学习通过为无标记数据构造标签,实现监督式训练。
  • 常见自监督方法
    • 序列建模:通过序列的一部分预测另一部分,包括自回归建模(如GPT、MAE)、自编码建模(如BERT、BEiT)、排列编码建模(如XLNet)。
    • 对比学习:最小化相似样本距离、最大化不相似样本距离,如MoCo、SimCLR、SimCSE。
  • 模型结构:当前预训练多采用Transformer(含编码器、解码器),如BERT(编码器)、GPT(解码器)、BART(两者结合);视觉领域早期用ResNet,后来也转向Transformer编码器(如MoCo v3)。
  • TrafficFormer的选择:采用Transformer的编码器结构,结合为流量数据设计的自监督任务,深入挖掘数据包的组成及相互关系。

2.2 数据增强(Data Augmentation)

  • 目的:通过生成数据副本增加数据量,提升模型性能并减少过拟合。
  • 不同数据类型的方法
    • 图像:裁剪、旋转、颜色变换、随机擦除等,或基于GAN(如BAGAN、DAGAN)。
    • 文本:同义词替换、随机插入/删除/替换词语、回译,或基于GAN(如SeqGAN、LeakGAN)。
  • 流量数据的现有方法
    • 如SMOTE(合成少数类过采样)、将流量转为图像后用图像增强方法、基于GAN生成流量特征或少数类样本(如ODDS、Ta-GAN)。
  • TrafficFormer的差异:直接修改原始流量数据(而非特征空间),基于领域知识保留语义,避免信息失真。

2.3 流量分类(Traffic Classification)

  • 传统方法:基于端口号等信息,但因流量行为复杂化和伪装技术,准确性大幅下降。
  • 现有主流方法
    • 机器学习:依赖专家设计的统计特征(如包大小、间隔),模型包括SVM、朴素贝叶斯、KNN、决策树等,优点是模型小、训练/推理快、特征可解释性强。
    • 深度学习:直接输入原始数据包,通过模型(CNN、LSTM、GNN、编码器等)学习复杂模式,部分输入包属性(大小、间隔),部分直接输入原始字节。
  • 现有挑战与本文聚焦:现有工作解决开放世界问题(训练/测试分布差异)、高效训练推理、流量混合等,而本文聚焦标记数据稀缺场景下的高精度流量分类。

综上,该部分通过梳理预训练、数据增强和流量分类的现有技术,明确了TrafficFormer的技术定位——针对流量数据特点优化预训练和微调策略,以解决标记数据稀缺下的分类难题。

3 Background and Related Work

该部分主要介绍了该模型的设计目标、面临的挑战、解决方案、整体框架及预训练和微调阶段的具体设计。

一、设计目标与核心挑战

  • 目标:充分利用无标记流量数据学习流量的基本语义,以提升下游流量任务的性能。
  • 挑战
    • 流量是序列数据,但其序列单元(包)的顺序和方向比自然语言的词序更关键,包的乱序可能导致交互逻辑破坏;
    • 包具有方向性,包头信息存在高冗余,需在冗余数据中高效识别对下游任务有价值的信息。

二、核心解决方案

针对上述挑战,TrafficFormer在预训练和微调阶段分别设计了创新策略:

  1. 预训练阶段:保留自然语言处理中的掩码建模任务以学习序列关系,并设计Same Origin-Direction-Flow(SODF)多分类任务,挖掘包的方向和顺序信息。
  2. 微调阶段:提出Random Initialization Field Augmentation(RIFA)流量数据增强方法,减少模型对无关信息的依赖,使其快速聚焦关键数据。

三、整体框架

TrafficFormer的框架包含预训练和微调两个阶段:

  • 预训练阶段:包含Masked Burst Modeling(MBM) 和SODF两个任务,训练后的模型可适配多种下游任务(如恶意软件检测、网站指纹识别、协议交互理解等)。
  • 模型结构:采用与BERT一致的结构,输入数据经编码层(含词语义编码、位置编码、段编码)转换为向量表示,再通过包含多头注意力机制和前馈神经网络的表示层处理,最终输入特定任务模型优化参数。

四、预训练阶段细节

  1. 数据预处理

    • 流量数据被拆分为流(由5元组定义,含双向包)和burst(同一方向的连续包序列);
    • 包转换为十六进制字符串,再处理为bigram形式,通过Byte Pair Encoding(BPE)算法构建最大65,535个令牌的语料库,包含[CLS]、[SEP]等特殊令牌。
  2. 预训练任务

    • MBM任务:对输入的burst进行随机掩码,模型需预测被掩码的令牌,损失函数为交叉熵,以学习流量的序列关系。
    • SODF任务:将burst片段组合为5个类别(如正常burst、交换顺序的burst、同一流的连续burst等),通过多分类学习包的方向、顺序及所属流信息,损失函数为交叉熵。
    • 总损失:为MBM和SODF损失的加权和,通过超参数λ平衡。

五、微调阶段细节

  • 数据处理:微调数据转换为与预训练一致的输入格式(十六进制→bigram→令牌化),包令牌直接拼接,共享同一段标识符。
  • RIFA增强方法:基于协议中随机初始化的字段(如IP的IPID、TCP的源端口和序列号等)生成多个数据副本,保留原始语义,使模型减少对字段具体值的依赖,更关注值的变化或其他关键字段。
  • 优势:相比其他方法,RIFA直接修改原始数据(非特征空间),基于领域知识保留语义,同时避免分类捷径(如过度依赖IP或端口)。

综上,TrafficFormer通过预训练阶段的创新任务和微调阶段的数据增强策略,针对性解决了流量数据的序列特性、冗余信息等问题,旨在提升标记数据稀缺场景下的流量分析性能。

4 Evaluation

该部分围绕TrafficFormer的性能评估展开,通过实验验证其在流量分类、协议理解任务中的优势及关键组件的影响,具体内容如下:

一、实验设置

  • 环境与数据集:使用PyTorch 2.0.1在NVIDIA A100 GPU上实验,预训练数据集包括ISCX-NonVPN、CICMalAnal2017和Browser,总大小约20GB,含超600,000个流,涵盖多种协议(如TLS 1.2/1.3、GQUIC等)。
  • 评估指标:采用准确率(AC)、精确率(PR)、召回率(RC)和F1分数,多类任务中取各类别平均值以平衡样本量差异。
  • 基线方法:包括2种机器学习方法(Appscanner、BIND)、2种深度学习方法(DeepFP、GraphDapp)和2种预训练方法(ET-BERT、YaTC)。

二、流量分类任务评估

  • 微调数据集:使用6个数据集,涵盖应用指纹识别、服务类型识别、网站指纹识别和恶意软件检测,如Cross-Platform(Android/iOS)、CSTNET-TLS 1.3、ISCX-VPN、USTC-TFC等。
  • 结果
    • TrafficFormer在所有任务中表现最佳,F1分数最多提升10%,如在Cross-Platform(Android)上F1分数比ET-BERT高4.82%,数据增强(RIFA)后进一步提升至10.05%。
    • 在恶意软件检测(USTC-TFC)中,TrafficFormer的F1分数达97.84%,数据增强后提升至98.30%,优于所有基线。
    • 数据增强(RIFA)有效减少模型对无关信息的依赖,在网站指纹识别(CSTNET-TLS 1.3)等任务中显著提升性能。

三、协议理解任务评估

  • 任务设计:引入4个新任务,评估模型对协议交互逻辑的理解,包括包方向判断、丢包检测、乱序检测和包预测。
  • 结果
    • TrafficFormer在包方向判断任务中F1分数接近100%,丢包和乱序检测任务上优于ET-BERT(如CSTNET数据集上乱序检测F1高2.15%)。
    • 包预测任务中,TrafficFormer在CSTNET数据集上准确率达83.61%,比最佳基线高5.14%,表明其更好掌握协议交互逻辑。

四、关键组件影响分析

  • 预训练的重要性:无预训练时,小样本数据集(如ISCX-VPN)的F1分数下降超60%,验证预训练对学习基础语义的关键作用。
  • 数据增强:增强因子为4时效果最佳,进一步增大无显著提升;在ISCX-VPN(App)上,增强8倍后F1达76.98%,远超未增强版本。
  • 输入内容:包含14-38字节(以太网层后)的信息比包数量更重要,如5个包+64字节的效果优于10个包+32字节(无关键信息)。

综上,评估结果表明TrafficFormer在流量分类和协议理解任务中均优于现有方法,预训练和数据增强是其性能提升的关键。

5 Discussion

该部分主要讨论了TrafficFormer在执行各类任务时存在的潜在局限性及相应的改进方向,具体内容如下:

  1. 输入流长度有限:尽管TrafficFormer采用的注意力机制理论上可处理任意长度的数据,但随着输入长度增加,可能出现内存溢出和注意力分散的问题,限制了其处理大量数据包信息的能力。可通过滑动窗口等技术(如仅关注有限上下文内的内容)来缓解这一问题。

  2. 仅处理原始数据包流:TrafficFormer仅利用数据包的原始负载,忽略了负载中不包含的特征(如数据包时间戳),这可能对依赖包间隔的任务(如DDoS检测)的效果产生不利影响。可将这些特征编码为令牌添加到负载序列中,或采用交叉注意力技术建立与负载序列的连接。

  3. 单流检测模式:TrafficFormer采用逐流检测方式,输入仅包含单个流的信息,在多流场景(如访问网页生成多个流)中性能可能下降。可扩展输入以适应多维数据,实现多流检测的多维注意力(如借鉴TimeSformer中的时空注意力)。

6 Conclusion

该部分总结了TrafficFormer模型的核心设计、创新点及实验成果。

本文提出了一种针对流量数据的高效预训练模型TrafficFormer,其核心是利用大量无标记数据学习流量的基本语义,并通过有限的标记数据将所学知识迁移到下游流量分类任务中。

在具体设计上,预训练阶段引入了SODF多分类任务,使模型能够学习流量中数据包的方向和顺序信息,从而增强流量数据的表示能力;微调阶段提出了名为RIFA的流量数据增强方法,减少模型对无关数据的依赖,帮助其快速识别关键信息。此外,还提出了协议理解任务这一新的评估方式,用于评估预训练模型对协议交互逻辑的理解能力,以更全面地衡量模型性能。

实验结果显示,在六个流量数据集上的评估中,TrafficFormer在流量分类任务和协议理解任务中均表现最优,验证了其有效性。

http://www.dtcms.com/a/311816.html

相关文章:

  • 【MQ】kafka同步和异步的区别
  • Windows中使用Qwen模型:VSCode+Cline
  • 64GB U盘实际显示容量为57.2GB的原因解析
  • innoDB的buffer pool
  • Wasatch SoftRIP数码打印 印花软件
  • 谷歌开源Agent框架ADK快速入门
  • 深入理解 Go 语言中 Map 的底层原理
  • Python爬虫实战:研究SimpleCV技术,构建图像获取及处理系统
  • Apache Doris数据库——大数据技术
  • 【LeetCode刷题指南】--二叉树的前序遍历,二叉树的中序遍历
  • MCP Agent 工程框架Dify初探
  • pytorch简单理解
  • 我的世界之战争星球 暮色苍茫篇 第二十六章、身世
  • 分布在内侧内嗅皮层的层Ⅱ或层Ⅲ的头部方向细胞(head direction cells)对NLP中的深层语义分析的积极影响和启示
  • JVM中年轻代、老年代、永久代(或元空间)、Eden区和Survivor区概念介绍
  • Mysql insert 语句
  • 入门MicroPython+ESP32:开启科技新旅程
  • 机试备考笔记 2/31
  • FastAPI--一个快速的 Python Web
  • C++ 自定义简单的异步日志类
  • oect刷入arm系统安装docker
  • Python深度学习:从入门到精通
  • retro-go 1.45 编译及显示中文
  • 联合索引全解析:一棵树,撑起查询的半边天
  • 【01】OpenCV C#——C#开发环境OpenCvSharp 环境配置 工程搭建 及代码测试
  • 【QT】Qt信号与槽机制详解信号和槽的本质自定义信号和槽带参数的信号和槽
  • 计算机网络:为什么IPv6没有选择使用点分十进制
  • 数据结构初学习、单向链表
  • Python 字典为什么查询高效
  • 数据结构---概念、数据与数据之间的关系(逻辑结构、物理结构)、基本功能、数据结构内容、单向链表(该奶奶、对象、应用)