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

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

内容简介:作者: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优化了一下。用生成的向量去做异常检测,加入可视化的交互来反馈。同时设计了可视分析系统,以及对应的可视化设计。评估做的也特别全面。


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

查看所有标签

猜你喜欢:

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

Cascading Style Sheets 2.0 Programmer's Reference

Cascading Style Sheets 2.0 Programmer's Reference

Eric A. Meyer / McGraw-Hill Osborne Media / 2001-03-20 / USD 19.99

The most authoritative quick reference available for CSS programmers. This handy resource gives you programming essentials at your fingertips, including all the new tags and features in CSS 2.0. You'l......一起来看看 《Cascading Style Sheets 2.0 Programmer's Reference》 这本书的介绍吧!

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具