文献标题:SimGNN: A Neural Network Approach to Fast Graph Similarity Computation
论文链接:
https://arxiv.org/abs/1808.05689 代码链接:
https://paperswithcode.com/paper/graph-edit-distance-computation-via-graph#code
 

目的:使用图神经网络的方法计算图相似度,并减轻计算的负担。

创新处:SimGNN的方法结合了两种策略。一、首先设计了一个可学习的嵌入函数,将每个图映射为一个嵌入向量,该向量提供了图的全局摘要,该策略提出了一种新的注意机制来强调特定相似度度量下的重要节点。二、设计了一种成对节点比较方法,用细粒度节点信息补充图级嵌入。

引言:

        设计了一个基于神经网络的函数,将一对图映射成一个相似度评分。在训练阶段,该函数所涉及的参数将通过最小化预测的相似度分数与事实(真是标签)的差来学习,其中每个训练数据点是一对图及其真实相似度分数。在测试阶段,通过向学习的函数输入任意一对图,我们可以得到一个预测的相似度分数。我们将这种方法命名为SimGNN,即通过图神经网络进行相似性计算。

        模型的优势:

(1)表示不变。通过改变节点的顺序,可以用不同的邻接矩阵来表示同一个图。所计算的相似性得分对于这种变化应该是不变的。

(2)归纳。相似性计算应该推广到看不见的图,即计算训练图对之外的图的相似性得分。

(3)可学。通过训练调整其参数,该模型应该适应任何相似性度量。

计算图的相似性:

cnn图像相似度计算pytorch 图 相似度_深度学习

将每个映射到一个特征表示,绿色节点表示查询节点,True Similarity表示与查询节点的相似度。

模型部分:

cnn图像相似度计算pytorch 图 相似度_cnn图像相似度计算pytorch_02

 以下为个人理解的表述:

1.首先选择两个要比较的图,每个图包括自己的节点的初始特征和邻接矩阵(图结构),通过三层GCN对图节点进行特征编码,得到图中每个节点的特征表示。

2.为了聚合节点的特征得到图的全局特征表示,直接取平均不能体现出图中不同节点的不同重要性,为此采用Att进行聚合,为了获得不同节点的不同权重。

3.得到两个图的图及嵌入Neural Tensor Network(NTN)

对它们的关系建模的简单方法是取两者的内积,hi ∈ RD,hj ∈ RD。然而,正如[45]中所讨论的,数据表示的这种简单使用经常导致两者之间的交互不充分或很弱。

使用NTN编码图及相似度,

cnn图像相似度计算pytorch 图 相似度_权重_03

W [1:K ] 3 ∈ RD×D×K是权重张量,[]表示拼接操作,V ∈ RK×2D是权重向量,b3 ∈ RK是偏置向量,f3()是激活函数。k是超参数,控制由模型为每个图嵌入对产生的交互(相似性)分数的数量。K可以理解为从几个维度考虑,超参数!!

4.整个图的相似度不代表所有节点很相似,为此考虑节点和节点之间的权重

cnn图像相似度计算pytorch 图 相似度_相似度_04

 比如一个图8个节点,另一个图6个节点,对节点进行补全,得到8*8的矩阵,64个权重进行统计,,得到直方图,每个直方图代表权重范围范围内的数量,七个面元用于直方图。直方图特征向量被归一化并与图级交互分数д(hi,hj)连接,并被馈送到完全连接的层,以获得图对的最终相似性分数。

5. 进行拼接后,通过全连接得到相似度分数。

总结:
策略一:图级嵌入交互(节点嵌入、图嵌入、图与图交互、相似度分数计算)
策略二:成对节点比较
不足:没有利用到边特征

实验:

评估指标以下指标用于评估所有模型:时间。

收集每个模型计算一对图的相似性得分所需的时间。均方误差(mse)。

均方误差测量计算的相似性和地面真实相似性之间的平均平方差。

还采用以下指标来评估排名结果。Spearman的等级相关系数(ρ) [46]和Kendall的等级相关系数(τ ) [24]衡量预测的等级结果与真实的等级结果的匹配程度。k处的精度(p@k)。p@k通过将预测的前k个结果和实际的前k个结果的交集除以k来计算与p@k相比,ρ和τ评价的是全局排名结果,而不是关注前k名的结果。