一种用来检测分析异常代码调用栈的可视分析方法。

栏目: 数据库 · 发布时间: 6年前

内容简介:作者:Cong Xie[1], Wei Xu[2], Klaus Mueller[1][1] Computer Science at Stony Brook University[2] Computational Science Initiative at Brookhaven National Laboratory

A Visual Analytics Framework for the Detection of Anomalous Call Stack Trees in High Performance Computing Applications

IEEE VAST 2018 Honorable Mention Award

作者:Cong Xie[1], Wei Xu[2], Klaus Mueller[1]

[1] Computer Science at Stony Brook University

[2] Computational Science Initiative at Brookhaven National Laboratory

一句话:一种用来检测分析异常代码调用栈的可视分析方法,基于embedding和OCSVM来交互式理解分析异常调用栈。

问题

耗时异常,父子节点相互调用,兄弟节点直接的通信中会有耗时异常

  • 不同孩子对同一父亲

  • 有沟通关系的兄弟节点

  • 同一孩子被不同的父亲

一种用来检测分析异常代码调用栈的可视分析方法。

一种用来检测分析异常代码调用栈的可视分析方法。

这是chrome页面代码的调用栈,展示了调用顺序,时间,父子节点。

解决方案

为了解决异常代码检测的问题,这篇文章的解决方案是“找出异常的树结构”。全篇也是围绕着,如何建立树结构,如何表示树结构的信息,如何发现其中异常。

一种用来检测分析异常代码调用栈的可视分析方法。

贡献

  1.  把异常行为的检测范化为异常树结构的检测(Formulate)
  2. Stack2vec,优化了Graph kernel approach,然后用神经网络学习树表达(Approach)

  3. 可视异常检测方法支持用户查找,验证,标记(Visualization)

目标

  1. 异常分布的概览     Overview

  2. 异常调用树的排序 Rank

  3. 调用树的详情         Detail-1

  4. 调用树的时序模式 Detail-2

方法

  1. 生成调用树

  2. 学习树表达

  3. 检测异常树

  4. 可视化

一种用来检测分析异常代码调用栈的可视分析方法。

生成调用树

一种用来检测分析异常代码调用栈的可视分析方法。

这里就是把代码抽取成树结构

学习树表达

  1. 抽取树结构(Weisfeiler-Lehman Algorithm )
  2. 类比树袋表达(Bag-of-Words)
  3. 生成树表达(Skip-Gram Model)

抽取树结构&类比树表达

一种用来检测分析异常代码调用栈的可视分析方法。

用WL算法,给每个点赋予label,每种label都表示了一种子树结构。那么一棵树的结构就可以被多种子树结构所代表。

生成树表达

一种用来检测分析异常代码调用栈的可视分析方法。

类比于Doc2vec,读入的树结构表达当做一个文档,用来预测子树结构,也就是单词。中间的权重就是每个树的embedding

检测异常树

  • 不能用密度分布
  • 异常较少
  • 没有足够异常标记
  • 采用OCSVM(One-Class Support Vector Machine)
  • 一种无监督的异常检测算法,利用标记信息来改进模型生成

可视化

一种用来检测分析异常代码调用栈的可视分析方法。

(a) 投影视图,可以用PCA,MDS,或者异常检测,每个点代表一个树,这样就可以看到异常的地方

(b) 异常推荐视图,用来推荐异常的树结构,每个图代表一个树(只展示了一部分)

(c) 树细节视图,用来看树结构的组成细节

(d) 树时间和通信细节视图,用来看树结构在时间和通信维度上的细节信息

(e) 超参数面板,用来调节WL参数,机器学习模型参数,投影方法等

评估

  • 3个Case Study
  • Quantitative Analysis: Performance, Complexity
  • User Feedback: Learning Cost, Usability

Case Study

通信延迟

一种用来检测分析异常代码调用栈的可视分析方法。

从异常检测的投影视图中发现,异常树结构。发现耗时很多(圆的半径编码了耗时)

一种用来检测分析异常代码调用栈的可视分析方法。

看细节图,发现是某几个函数引起的

一种用来检测分析异常代码调用栈的可视分析方法。

而正常的图应该是,孩子函数用时都比较少

一种用来检测分析异常代码调用栈的可视分析方法。

进一步看时间和通信,在这个程序下正常的应该频繁通信,但是突然有一段通信要等很久。

聚类异常

一种用来检测分析异常代码调用栈的可视分析方法。

投影视图中看到一些离群的点组成的聚类,发现这些点都用同样的问题。集体异常的情况。

Performance

专家标注了所有的异常点,然后通过不同的算法组合测试准确率

一种用来检测分析异常代码调用栈的可视分析方法。

总结

本文研究的问题很简单,也很重要,一句话就可以说的明白。用WL+Doc2vec的方法表示树结构,并根据树结构的特性,对WL优化了一下。用生成的向量去做异常检测,加入可视化的交互来反馈。同时设计了可视分析系统,以及对应的可视化设计。评估做的也特别全面。


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

C++数据结构与算法

C++数据结构与算法

[美]乔兹德克(Adam Drozdek) / 徐丹、吴伟敏 / 清华大学出版社 / 2014-10-1 / 63.00元

本书全面系统地介绍了数据结构,并以C++语言实现相关的算法。书中主要强调了数据结构和算法之间的联系,使用面向对象的方法介绍数据结构,其内容包括算法的复杂度分析、链表、栈、队列、递归、二叉树、图、排序和散列。书中还清晰地阐述了同类教材中较少提到的内存管理、数据压缩和字符串匹配等主题。书中包含大量的示例分析和图形,便于读者进一步理解和巩固所学的知识。一起来看看 《C++数据结构与算法》 这本书的介绍吧!

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

随机密码生成器
随机密码生成器

多种字符组合密码

SHA 加密
SHA 加密

SHA 加密工具