移动Web系统中无监督KPI异常检测的监督式微调

news2024/11/19 15:32:53

简介
本文介绍由清华大学、南开大学、中国移动研究院与必示科技共同合作的论文:移动Web系统中无监督KPI异常检测的监督式微调。该论文已被The Web Conference 2024(International World Wide Web Conference)会议录用,论文标题为:Supervised Fine-Tuning for Unsupervised KPI Anomaly Detection for Mobile Web Systems。

作者:蔚兆洋,张圣林,孙铭泽,李英可,赵彦凯,花小磊,朱琳,温希道,裴丹


随着蜂窝网络的迅速发展,无线基站已成为移动Web系统的关键基础设施。为了确保服务质量,运营商通常会监控无线基站的运行状态并部署异常检测方法,以及时识别系统异常。在部署异常检测方法之后,运营商会定期收集反馈,这些反馈对提高异常检测性能具有重要价值。在生产环境中,漏报反馈的频率通常非常低,并且反馈的数据分布可能与原始训练数据显著不同。因此,已有的基于反馈微调的方法在此类场景下效果有限。

因此,文章提出了一种面向无监督异常检测的监督式微调方法——AnoTuner,它可以生成相似的漏报反馈案例,有效补偿了漏报反馈频率较低的问题。此外,文章设计了二阶段主动学习机制,降低了由反馈数据分布与训练数据分布之间差异引起的数据污染问题。文章基于中国移动的生产环境基站数据进行了实验,表明AnoTuner在基于反馈的微调后显著提升了KPI异常检测方法的性能。文章的代码已经发布在 https://github.com/NetManAIOps/AnoTuner 。

背 景

为了保障无线基站的服务质量,运营商会定期监控每个基站的各项关键性能指标(KPI)。指标的异常通常是指KPI模式偏离历史正常值或KPI之间的关系发生异常。这些异常由多种原因引起,如不正确的软件更新、基站损坏或恶意攻击。文章与中国移动确定了25个广泛使用的无线基站性能指标,这些指标形成了多变量时间序列数据,如图 1所示。
在这里插入图片描述

图 1 无线基站的多变量时间序列示例,红色矩形标记异常时间段

运营商通常采用异常检测方法来监测无线基站。由于机器学习在各领域展示出的卓越性能,传统基于规则的异常检测方法逐渐被机器学习方法所取代。然而,机器学习方法在生产环境中的部署面临着一些挑战。对于基于规则的异常检测方法来说,反馈数据很有效。但对于基于机器学习的方法,反馈数据的作用欠佳。由于模型训练成本较高,运营商很少频繁重新训练异常检测模型。因此,如果反馈微调未能解决问题,模型的性能问题将持续到下一次重新训练,将增加误报和漏报的风险,降低异常检测结果的可信度。

研究挑战

数据稀缺
无线基站中的异常并不经常发生,由于运营商对异常检测方法配置的偏好,漏报的反馈数据更为罕见。传统半监督异常检测方法难以有效学习漏报反馈的稀缺数据。

数据分布偏差
在部署异常检测方法后,由于软硬件升级和配置更改,收集到反馈数据的分布可能会与训练数据的分布显著不同。这种差异可能导致在基于反馈的性能改进中发生模型污染。

结构设计

AnoTuner的整体工作流程如图 2所示,分为三个阶段:无监督训练和部署、收集反馈以及监督式微调。在反馈收集过程中,运营商定期提供有关异常检测方法报告的误报或漏报的反馈。在实际环境中,这个周期通常为一周。在基于反馈的微调阶段,AnoTuner经过两个关键步骤:漏报反馈增强和二阶段主动学习。

在这里插入图片描述
图 2 AnoTuner整体工作流程

实验评估

文章对比了AnoTuner与5个多维时间序列异常检测模型。为了评估模型从反馈数据中学习的能力,文章将实验分为四组:无反馈微调(w/o fine-tuning)、仅调整误报(FP fine-tuning)、仅调整漏报(FN fine-tuning)和同时使用误报和漏报反馈进行微调(FP+FN fine-tuning)。最终的实验结果如表1所示。AnoTuner在所有方法表现最佳,在微调后的F1-Score提升约为同样具有基于反馈微调机制的ACVAE的五倍,说明AnoTuner可以更有效地利用反馈数据。

在这里插入图片描述
表 1 实验结果

总 结

在当前移动Web系统中,KPI异常检测变得至关重要。AnoTuner通过结合历史反馈数据和监督微调,致力于提高模型的性能和泛化能力。文章详细讨论了KPI异常检测的挑战,包括数据有限性和模型污染,并突显了AnoTuner的创新性解决方案。AnoTuner的结构设计凸显了巧妙利用历史反馈数据和监督式微调的关键作用。实验证明,在仅占测试集0.74%的有限反馈数据下,AnoTuner在真实数据集和公共数据集上表现出色。总体而言,文章为解决有限监督数据下的KPI异常检测问题提供了新的思路,AnoTuner的引入和实验评估为该领域的发展提供了有力支持。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1475675.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Hudi】核心概念

https://www.bilibili.com/video/BV1ue4y1i7na?p17&vd_sourcefa36a95b3c3fa4f32dd400f8cabddeaf 大数据新风口:Hudi数据湖(尚硅谷&Apache Hudi联合出品) 1 基础概念 1.1 时间轴(TimeLine) 1.2 文件布局(File Layout) 1.3 索引(In…

Leetcode—82. 删除排序链表中的重复元素 II【中等】

2024每日刷题(117) Leetcode—82. 删除排序链表中的重复元素 II 实现代码 /*** Definition for singly-linked list.* struct ListNode {* int val;* ListNode *next;* ListNode() : val(0), next(nullptr) {}* ListNode(int x) : val…

npm login报错 ‘proxy‘ config is set properly. See: ‘npm help config‘

报错提示 解决办法 按照以下的顺序执行命令行 检查自己的代理 npm config get proxy npm config get npm config get https-proxy npm config get registry代理和缓存置空并且设置新镜像 npm config set proxy null npm config set https-proxy null npm config set regist…

面试笔记系列七之多线程+分布式系统基础知识点整理及常见面试题

介绍一下线程的生命周期及状态? 1.创建 当程序使用new关键字创建了一个线程之后,该线程就处于一个新建状态(初始状态),此时它和其他Java对象一样,仅仅由Java虚拟机为其分配了内存,并初始化了其成…

【Linux】jieba的安装和使用

目录 链接 jieba库简介 ​获得jieba库 怎么使用jieba库 链接 因为github下载东西的时间原因,下面这个网站会定期将jieba从github镜像回来 项目 探索 GitCodehttps://gitcode.net/explore输入cppjieba进行搜索,点击相应链接进入 jieba库简介 需要…

【前端知识点】

虚拟 dom: 虚拟 dom 就是 vue 通过 js 对象渲染虚拟 dom 的,虚拟 dom 的 js 对象包含节点的类型、属性、子节点等信息,这些虚拟 dom 节点会构成一棵树形结构,用来表示整个页面的结构。 当 vue 组件更新时,会通过 diff…

雾锁王国服务器怎么建?雾锁王国服务器搭建方法

雾锁王国Enshrouded服务器搭建怎么搭建?非常简单,阿里云计算巢雾锁王国程序,可以一键搭建雾锁王国多人联机服务器,腾讯云是基于雾锁王国镜像系统,阿里云服务网aliyunfuwuqi.com汇总雾锁王国服务器搭建,超简…

Python爬虫实战第二例【二】

零.前言: 本文章借鉴:Python爬虫实战(五):根据关键字爬取某度图片批量下载到本地(附上完整源码)_python爬虫下载图片-CSDN博客 大佬的文章里面有API的获取,在这里我就不赘述了。 一…

早产儿视网膜病变分期,自动化+半监督(无需大量医生标注数据)

早产儿视网膜病变 ROP 分期 提出背景解法框架解法步骤一致性正则化算法构建思路 实验 提出背景 论文:https://www.cell.com/action/showPdf?piiS2589-0042%2823%2902593-2 早产儿视网膜病变(ROP)目前是全球婴儿失明的主要原因之一。 这是…

链表基础知识详解(非常详细简单易懂)

概述: 链表作为 C 语言中一种基础的数据结构,在平时写程序的时候用的并不多,但在操作系统里面使用的非常多。不管是RTOS还是Linux等使用非常广泛,所以必须要搞懂链表,链表分为单向链表和双向链表,单向链表很…

求两个向量之间的夹角

求两个向量之间的夹角 介绍Unity的API求向量夹角Vector3.AngleVector3.SignedAngle 自定义获取方法0-360度的夹角 总结 介绍 求两个向量之间的夹角方法有很多,比如说Unity中的Vector3.Angle,Vector3.SignedAngle等方法,具体在什么情况下使用…

Groovy(第九节) Groovy 之单元测试

JUnit 利用 Java 对 Song 类进行单元测试 默认情况下 Groovy 编译的类属性是私有的,所以不能直接在 Java 中访问它们,必须像下面这样使用 setter: 编写这个测试用例余下的代码就是小菜一碟了。测试用例很好地演示了这样一点:用 Groovy 所做的一切都可以轻易地在 Java 程序…

使用 gregwar/captcha 生成固定字符的验证码

图片验证码生成失败 $captcha new CaptchaBuilder("58 ?"); $code $captcha->getPhrase();\Cache::put($key, [phone > $phone, code > $captcha->getPhrase()], $expiredAt);$captcha->build(); $result [captcha_key > $key,expired_at >…

Linux------进程地址空间

目录 一、进程地址空间 二、地址空间本质 三、什么是区域划分 四、为什么要有地址空间 1.让进程以统一的视角看到内存 2.进程访问内存的安全检查 3.将进程管理与内存管理进行解耦 一、进程地址空间 在我们学习C/C的时候,一定经常听到数据存放在堆区、栈区、…

雾锁王国服务器官方配置要求说明

雾锁王国/Enshrouded服务器CPU内存配置如何选择?阿里云服务器网aliyunfuwuqi.com建议选择8核32G配置,支持4人玩家畅玩,自带10M公网带宽,1个月90元,3个月271元,幻兽帕鲁服务器申请页面 https://t.aliyun.com…

TCP/IP-常用网络协议自定义结构体

1、TCP/IP模型: 2、TCP/IP- 各层级网络协议(从下往上): 1)数据链路层: ARP: 地址解析协议,用IP地址获取MAC地址的协议,通过ip的地址获取mac地 …

Vue项目 快速上手(如何新建Vue项目,启动Vue项目,Vue的生命周期,Vue的常用指令)

目录 一.什么Vue框架 二.如何新建一个Vue项目 1.使用命令行新建Vue项目 2.使用图形化界面新建Vue项目 三.Vue项目的启动 启动Vue项目 1.通过VScode提供的图形化界面启动Vue项目 2.通过命令行的方式启动Vue项目 四.Vue项目的基础使用 常用指令 v-bind 和 v-model v…

学生党福音!趁着拍拍开学季活动买平板啦!

谁还在买5年前的平板啊? 当然是我! 虽然手里有台ipad,但ios系统限制多,不方便,一直想再要一台安卓平板。 去年观望了好久小米平板5pro,想着如果8256G配置价格在1500以下就入手,结果一直不掉价…

4_怎么看原理图之协议类接口之SPI笔记

SPI(Serial Peripheral Interface)是一种同步串行通信协议,通常用于在芯片之间传输数据。SPI协议使用四根线进行通信:主设备发送数据(MOSI),从设备发送数据(MISO)&#x…

苹果ios群控软件开发常用源代码分享!

在移动软件开发领域,苹果设备由于其封闭性和安全性受到了广大开发者的青睐,然而,这也为开发者带来了一些挑战,特别是在进行群控软件开发时。 群控软件是指可以同时控制多台设备的软件,这在自动化测试、批量操作等场景…