DeepMind & Google最新论文提出图匹配网络,用于相似性学习问题,在几个图相关任务中均胜过精心设计的神经网络模型和基于标准GNN的图嵌入模型。
本文介绍来自DeepMind & Google的一篇ICML论文:《用于学习图结构对象相似性的图匹配网络》。
地址:
https://arxiv.org/pdf/1904.12787.pdf
这篇论文针对图结构对象的检索与匹配这一具有挑战性的问题,做了两个关键的贡献。
首先,作者演示了如何训练图神经网络(GNN)在向量空间中生成图嵌入,从而实现高效的相似性推理。
其次,作者提出了一种新的图匹配网络(Graph Matching Network)模型,给出一对图形作为输入,通过一种新的基于注意力的跨图匹配机制(cross-graph attention-based matching mechanism),对图对进行联合推理,计算出一对图之间的相似度评分。
论文证明了该模型在不同领域的有效性,包括具有挑战性的基于控制流图(control-flow-graph)的函数相似性搜索问题,该问题在软件系统漏洞检测中具有重要作用。
实验分析表明,图匹配模型不仅能够在相似性学习的背景下利用结构,而且还能够胜过针对这些问题精心手工设计的领域特定的基线系统。
图结构对象的相似性学习问题
图是编码关系结构的一种自然的表示,这种关系结构在许多领域都会遇到。通过图结构数据定义的计算被广泛应用于各领域,从用于计算生物学和化学的分子分析,到自然语言理解的知识图或图结构解析的分析。
近年来,图神经网络(GNNs)已成为一种有效的学习结构化数据表示和解决基于图的各种监督预测问题的模型。通过迭代地聚合局部结构信息的传播过程来设计和计算图节点表示,这些模型对图元素的排列是不变的。然后,这些节点表示被直接用于节点分类,或者合并到一个图向量中用于图分类。对于GNN,除了监督分类或回归之外的问题的研究相对较少。
本文研究了图结构对象的相似性学习问题(similarity learning),该问题在现实世界中有许多重要的应用,尤其是在图数据库中基于相似性的检索。
一个应用是二进制函数计算机安全问题的相似性搜索,给定一个可能包含或不包含具有已知漏洞代码的二进制,我们要检查该二进制中的任何控制流图是否与数据库中已知易受攻击的函数非常相似。
这有助于在封闭源代码软件中识别易受攻击的静态链接库,这是一个反复出现的问题,目前没有好的解决方案。
图1显示了该应用的一个示例,其中二进制函数表示为带有汇编指令注释的控制流图。
二进制函数相似性学习问题
这种相似性学习问题非常具有挑战性,因为细微的差异就可以使两个图在语义上非常不同,而具有不同结构的图仍然可以是相似的。
因此,一个成功的模型应该:
(1)利用图的结构,
(2)能够从图的结构和所学习的语义推断出图的相似性。
为了解决图的相似度学习问题,我们研究了GNN在这种情况下的使用,探讨了如何将图嵌入到向量空间中,并学习这种嵌入模型,使相似的图在向量空间中更接近,而不同的图在向量空间中距离更大。
该模型的一个重要特性是,它将每个图独立地映射到一个嵌入向量,然后所有的相似度计算都在向量空间中进行。因此,可以预先计算和索引大型数据库中的图嵌入,从而能够使用快速的最近邻搜索数据结构(如k-d trees)或局部敏感哈希算法(locality sensitive hashing)实现高效检索。
我们进一步提出了一种对GNN的扩展,我们称之为图匹配网络(Graph Matching Networks, GMNs),用于相似性学习。
GMN不是单独计算每个图的表示,而是通过cross-graph的注意力机制来计算相似度评分,以便跨图进行关联节点和识别差异。通过使图表示计算依赖于对(pair),该匹配模型比嵌入模型更强大,提供了良好的精度-计算的权衡。
我们在三个任务上评估了所提出的模型和基线模型:一个是合成图edit-distance学习任务,仅捕获结构相似性;以及两个现实世界任务——二进制函数相似性搜索和网格检索,这两个任务都需要对结构相似性和语义相似性进行推理。
在所有三个任务上,我们提出的方法都优于已有的基线模型和结构无关模型;在更详细的消融研究中,我们发现图匹配网络始终优于图嵌入模型和Siamese网络。
总结而言,本文的贡献在于:
(1)演示了如何使用GNN生成用于相似性学习的图嵌入;
(2)提出了一种新的图匹配网络,通过基于cross-graph的注意力匹配来计算相似性;
(3)实证结果表明,本文所提出的图相似性学习模型在多个应用中具有良好的性能,并且优于结构无关模型和已有的基线模型。
深度图相似性学习
给定两个图G = (V, E)和G = (V, E),我们想要有一个模型来生成它们之间的相似度评分s(G, G)。每个图表示为G = (V, E),即节点V和边E的集合,任意一个节点i∈V都可以与一个特征向量x_i相关联,任意一条边(i, j)∈E都可以与一个特征向量x_ij相关联。这些特征可以表示诸如节点的类型、边的方向等。如果一个节点或一条边没有任何相关的特征,我们就将相应的向量设置为常数向量1。
我们提出了两种图相似度学习模型:一种是基于标准GNN的学习图嵌入模型,以及一种新的、更强大的GMN模型。
两种模型如图2所示。
图嵌入模型(Graph Embedding Models)
图嵌入模型是将每个图嵌入到一个向量中,然后在该向量空间中使用相似性度量来度量图之间的相似性。我们的GNN嵌入模型包括三个部分:(1)编码器,(2)传播层,(3)聚合器。
图2:图嵌入模型(左)和图匹配模型(右)
图匹配网络
图匹配网络以一对图作为输入,并计算它们之间的相似度评分。与嵌入模型相比,匹配模型是在“对”的基础上计算相似度的,而不是先将每个图单独映射到一个向量。因此,匹配模型可能比嵌入模型更强大,但代价是额外的计算效率。
我们提出如下的图匹配网络,改变了每个传播层中的节点的更新模块,不仅考虑每个图边缘的聚合信息,也考虑衡量一个节点在一个图中匹配其他一个或多个节点的效果的cross-graph匹配向量:
实验和结果
本节在三个任务上评估了图相似性学习(GSL)框架和图嵌入网络(GNN)和图匹配网络(GMN),并将这些模型与其他竞争方法进行了比较。
总体而言,实验结果表明,GMN在图相似度学习方面表现优异,始终优于其他方法。
Learning Graph Edit Distances
图G和图G之间的图编辑距离(Graph edit distance)的定义是将G转换为G2所需的最小编辑操作数。通常,编辑操作包括添加/删除/替换节点和边缘。
图的编辑距离自然是图之间相似性的度量,在图的相似性搜索中有许多应用。通过这个实验,我们证明了GSL模型可以在极具挑战性的问题上学习图之间的结构相似性。
表1:图嵌入(GNN)和图匹配(GMN)模型与基线的比较
从表1可以看到,通过学习特定分布的图,GSL模型能够比一般基线做得更好,而GMN始终优于嵌入模型(GNN)。
图3:图匹配模型cross-graph attention的可视化
对于GMN,我们可以将cross-graph attention可视化,从而进一步了解它是如何工作的。图3显示了匹配模型的两个例子,cross-graph注意力权重以绿色表示,权重的比例以绿色边的透明度表示。我们可以看到,当两个图匹配时,注意力权重可以很好地对齐节点,当两个图不匹配时,注意力权重往往集中在度数较高的节点上。然而,这种模式并不像标准注意力模型那样具有可解释性。
基于控制流图的二进制函数相似性搜索
二进制函数相似性搜索(Binary function similarity search)是计算机安全中的一个重要问题。当我们无法访问源代码时,例如在处理商业或嵌入式软件或可疑的可执行程序时,就需要分析和搜索二进制文件。结合反汇编器和代码分析器,我们可以提取一个控制流图(CFG),它以结构化格式包含二进制函数中的所有信息。
在CFG中,每个节点都是组装指令的基本块,节点之间的边表示控制流,例如在分支、循环或函数调用中使用的跳转或返回指令表示。
本节中,我们将针对漏洞搜索问题,其中使用已知存在一些漏洞的二进制代码片段作为查询,并通过一个库搜索,找到可能具有相同漏洞的类似二进制代码。
结果如图4所示,评估了不同模型在不同传播步数和不同数据设置下的性能。
图4:不同模型在二进制函数相似性搜索任务中的性能
结果很显然:
(1)随着传播步数增加,图嵌入模型和匹配模型的性能都不断增高;
(2)在传播步数足够的情况下,图嵌入模型始终优于基线;
(3)图匹配模型在所有设置和传播步数的情况下都优于嵌入模型。
表2:函数相似性搜索任务的更多结果
表2总结了更多实验,结果表明:
(1)GNN嵌入模型是有竞争力的模型(比GCN模型更强大);
(2)利用Siamese网络结构在图表示的基础上学习相似度优于使用预先指定的相似度度量;
(3)在计算过程的早期,GMN优于Siamese模型,说明了跨图信息通信的重要性。
论文:
https://arxiv.org/pdf/1904.12787.pdf