Graph Matching Networks(GMNs) 笔记

Graph Matching Networks for Learning the Similarity of Graph Structured Objects笔记

摘要

文章处理了检索和匹配图结构对象的挑战性问题。文章两个贡献:1. 证明了解决各种基于结构数据的监督预测问题高效模型graph neural networks 可以用来训练来生成向量空间中的图嵌入表示,有利于做相似推理。2. 我们提出了一个崭新的图匹配网络模型,将一对图作为输入,计算相似分数。通过一种新的基于交叉图注意力的匹配机制,对图像进行联合推理。我们证明了我们的模型在不同领域的有效性,包括基于控制流图的功能相似度搜索这一具有挑战性的问题,它在软件系统漏洞检测中起着重要的作用。

贡献

  1. 我们证明了GNNs可以用来生成图嵌入,用于相似度学习
  2. 我们提出了图匹配网络(graph matching matching),可以通过交叉图注意力匹配来进行计算相似度。
  3. 实验表明提出的相似度学习模型可以在一系列应用上实现好的性能,比无结构模型和建立的手工设计基准上实现了更好的性能。

深度图相似学习

给定:

  • G 1 = ( V 1 , E 1 ) , V 1 为 顶 点 集 , E 1 为 边 集 G_1=(V_1,E_1),V_1为顶点集,E_1为边集 G1=(V1,E1)V1E1
  • G 2 = ( V 2 , E 2 ) G_2=(V_2,E_2) G2=(V2,E2)

计算: 相似度得分: s ( G 1 , G 2 ) s(G_1,G_2) s(G1,G2)

  • 结点特征: x i x_i xi
  • 边特征: e i j e_{ij} eij

3.1 图嵌入模型

模型包含3个部分:(1)编码器
(2)传播层
(3)聚合器

编码器

使用独立的MLP将点和边特征去初始化结点和边的向量表示
h i ( 0 ) = M L P n o d e ( x i ) , ∀ i ∈ V h_i^{(0)}=MLP_{node}(x_i),{\forall} i\in V hi(0)=MLPnode(xi),iV e i j = M L P e d g e ( x i j ) , ∀ ( i , j ) ∈ E e_{ij}=MLP_{edge}(x_{ij}),\forall (i,j)\in E eij=MLPedge(xij),(i,j)E

传播层

将顶点表示集合 { h i ( t ) } i ∈ V \{h_i^{(t)}\}_{i\in V} {hi(t)}iV映射到新的顶点表示
在这里插入图片描述

  • f m e s s a g e f_{message} fmessage是传统串接的input上的MLP
  • f n o d e f_{node} fnode是MLP或者是循环神经网络为核心的网络。
    领域的信息聚合可使用简单的 s u m , m e a n , m a x sum,mean,max sum,mean,max或者是用基于attention的权重聚合。

聚合器

经过 T T T轮传播之后我们将节点表示集 { h i T } \{h_i^{T}\} {hiT}作为输入,计算图水平的表示 h G = f G ( { h i ( T ) } ) h_G=f_G(\{h_i^{(T)}\}) hG=fG({hi(T)}),我们用下面的聚合模型
在这里插入图片描述这里用的是门向量去过滤掉不相关的信息。经验上来说,这比简单的相加更加有效。
将配对的 ( G 1 , G 2 ) (G_1,G_2) (G1,G2)经过计算得到图表示 h G 1 , h G 2 h_{G_1},h_{G_2} hG1,hG2,在经过向量空间中的相似度度量函数(欧式距离,cosine,海明相似度)计算相似度。
在这里插入图片描述

3.2 图匹配网络(GMN)

与嵌入模型相比,这些匹配模型联合计算对上的相似度评分,而不是首先独立地将每个图映射到一个向量。
提出的模型不仅仅考虑单个图中的边的信息聚合,而且考虑一个图中的一个顶点与另一个图的其他顶点的匹配度向量。即:
在这里插入图片描述

  • f m e s s a g e f_{message} fmessage用来计算边信息 ( i , j ) ∈ E 1 ∪ E 2 (i,j)\in E_1\cup E_2 (i,j)E1E2
  • f n o d e e f_{nodee} fnodee是MLP或者是循环神经网络为核心的网络。
  • f m a t c h f_{match} fmatch表示图交叉信息,我们用attention模型计算
    在这里插入图片描述- s h s_h sh是向量空间的相似度度量函数,像欧式或者cosine相似度。所以有

在这里插入图片描述(11)式直观上来说是用来衡量 h i ( t ) h_i^{(t)} hi(t)与另一个图上与其最近的邻接点的不同。
从(10)式可以看出规范化的系数 a j → i a_{j\to i} aji依赖于 { h j ( t ) } \{h_j^{(t)}\} {hj(t)}

3.2 learning

  1. 成对数据( ( G 1 , G 2 , t ) (G_1,G_2,t) (G1,G2,t) t 为标签)

在这里插入图片描述

  • t ∈ − 1 , 1 t\in {-1,1} t1,1
  • γ \gamma γ是边缘参数
  • d ( G 1 , G 2 ) = ∣ ∣ h G 1 − h G 2 ∣ ∣ d(G_1,G_2)=||h_{G_1}-h_{G_2}|| d(G1,G2)=hG1hG2是欧式距离
  • t=1表示相似,loss使得 d < 1 − γ d<1-\gamma d<1γ
  • t=-1表示不相似, d > 1 + γ d>1+\gamma d>1+γ
  1. 三元输入数据 ( G 1 , G 2 , G 3 ) (G_1,G_2,G_3) (G1,G2,G3)
    G1与G2之间的相似度小于G1与G3,所以loss 为
    在这里插入图片描述这个loss 强迫 d ( G 1 , G 2 ) + γ < d ( G 1 , G 3 ) d(G_1,G_2)+\gamma<d(G_1,G_3) d(G1,G2)+γ<d(G1,G3)
  2. 图空间搜索汉明相似度改进loss
    由于图空间太大,所以如果将最后图的表示用一个二值向量会更加高效。即 h G ∈ { − 1 , 1 } H h_G\in \{-1,1\}^{H} hG{1,1}H, 所以我们最小化正例,最大化负例,也就是
    在这里插入图片描述
  • s ( G 1 , G 2 ) = 1 H ∑ i = 1 H t a n h ( h G 1 i ) s(G_1,G_2)=\frac{1}{H}\sum_{i=1}^H tanh(h_{G_{1}i}) s(G1,G2)=H1i=1Htanh(hG1i), t a n h ( h G 1 i ) tanh(h_{G_{1}i}) tanh(hG1i)是近似平均汉明相似度
  • 两个loss范围都是[0,1], 将正例的hamming相似度趋于1,负例的趋于-1

4. 实验

  1. 图编辑距离
    图数据g1和g2之间的编辑距离定义为将g1转换为g2所需的最小编辑操作数。我们通过对具有n个节点的随机二项图 G 1 G_1 G1和边按概率p来抽样生成训练数据。
    在这里插入图片描述
  2. 基于控制流图的二进制函数相似性搜索
  • 2
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值