2.1 模块1:IGM 作者将系统事件数据建模为不同系统实体(例如,进程、文件和 Internet 套接字)之间的异质图。每个目标程序均可以对应一个异质图 G =(V,E),其中 V 表示一组节点,每个节点都有三种可能的类型:进程(P),文件(F)和 INET Socket(I),即 V = P∪F∪I。E 表示源实体 和目标实体 之间具有关系 r 的一组边 。 作者考虑三种类型的关系:(1)一个进程派生另一个进程(P→P),(2)一个进程访问一个文件(P→F),(3)一个进程连接到 Internet 套接字(P→I)。每个图都对应着一个邻接矩阵 A。通过模块 1 可以获得一个全局程序关系图。2.2 模块2:分层注意力图神经编码器 模块 1 构造的 IGM 是异质图,图中具有多种类型的实体和关系。因此,很难直接应用传统的同构图神经网络来学习图表示。为解决此问题,本文提出了一种分层注意力图神经编码器(HAGNE),通过考虑节点级别,层级别和路径级别上下文的重要性,通过嵌入注意力机制来学习程序表示。HAGNE 包括四个步骤: B1:具有异质意识的上下文搜索。在元路径的指导下找到与路径相关的邻居集。 B2:节点级别注意力神经聚合器。基于随机游走的得分,选择性地聚合每个与路径相关的邻居集中的实体,来生成节点嵌入。 B3:层级别密集连接神经聚合器。将不同层生成的节点嵌入,聚合为密集连接的节点嵌入。 B4:路径级别注意力神经聚合器。以学习不同元路径下的注意力权重。
B1:具有异质意识的上下文搜索 本文提出了一种基于元路径的上下文搜索。元路径是异构图中通过一系列关系连接不同实体类型的路径。在计算机系统中,元路径可以是:一个进程派生另一个进程(P→P),访问同一文件的两个进程(P←F→P),或者打开同一 Internet 套接字的两个进程(P←I→ P),均定义两个程序之间的唯一关系。 异质图 G 的一组元路径为 ,其中 代表两个程序之间的一个特定的多跳关系。For ,定义节点 v 的与路径相关的邻居集为 :
其中 u 是节点 v 通过元路径 可到达的邻居节点。 B2:节点级别注意力神经聚合器 由于不同的邻居节点可能会对目标节点产生不同的影响,因此,平等地对待所有邻居是不合理的。为了解决这个问题,本文提出了一个节点级别注意力神经聚合器,来计算 中每个节点的注意力权重。 该模块基于重启随机游走算法(RWR),将 RWR 扩展到了异构图中,Walker 从目标节点 v 开始,每一步,它移动到 中的一个相邻节点。随机游走结束后,每个被访问过的邻居都会得到相应的访问计数,对其计算 L1 归一化,并以此作为该节点的注意力权重。具体来说:对于节点 v 的邻居集 ,其注意力权重为其中 是 的对应权重。由此,程序表示可以通过一个神经聚合函数 以如下方式计算:
其中, 代表层的索引值, 是节点 v 在元路径 下,第 k 层的特征向量, 是可训练参数,用于量化前一层表示和聚合上下文表示之间的权衡。获取聚合后的节点表示后,应用多层感知器(MLP)将其转换为隐藏非线性空间。