文章目录
- 一:论文出处
- 二:论文剖析
- 1.特征提取部分
- 2.利用embeddings计算出相似度得分
- Ⅰ. Graph-Level Embedding Interaction
- Ⅱ. Pairwise Node Comparison
- 3.输出相似度得分
- 三:小结
一:论文出处
论文选自WSDM 2019的SimGNN: A Neural Network Approach to Fast Graph Similarity Computation,作者提出的图相似度计算模型具有很高的参考价值,下面我来剖析其中的细节。当然如果对什么是图相似度还不了解的小伙伴,可以先自行学习一下。
二:论文剖析
话不多说,先贴上作者提出的网络模型。
网络的输入是两张图,最后输出相似度得分。整体的框架可以分为两大部分,第一部分是节点特征和图特征的embedding过程,第二部分是利用提取出的embeddings,计算出最后的相似度得分。
1.特征提取部分
对于节点的embedding,作者直接利用了传统的GCN,该思想在我另一篇文章分析过。
对于整体图的embedding,作者加了一个巧妙的attention机制,首先用最大池化粗浅地提出特征向量,来暂时代表图特征。接着,将每一个节点embedding于图特征向量相乘,经过softmax作为每个节点embedding的注意力权重。最后,将加权后的节点embeddings相加,得出最终的图embedding。
这种attention机制的权重分配方式,其实就是利用越重要的节点,那么其embedding越和图embedding相似,乘积也就越大
2.利用embeddings计算出相似度得分
在这一大部分中,作者巧妙地从两个角度评估图相似度,分别是Graph-Level Embedding
Interaction 和 Pairwise Node Comparison,我将从这两个角度进行分析。
Ⅰ. Graph-Level Embedding Interaction
顾名思义,这一角度是从宏观上进行评估,将两个图embeddings输入进NTN模块中(Neural Tensor Network),最后输出了一个一维向量作为该角度的评估结果。
接下来,我们来看一看NTN网络。其实该网络原先多用于NLP领域,这里移花接木,原理和SVD思想相似。每一个可学习权重矩阵 ,最后几种评价指标的得分拼接成一个一维向量。
有人到这就会觉得大功告成了,但其实还远远不够,为什么呢?因为这里的评价角度只是从图的大概样式是否相近出发的,但是对图内部的结构,比如节点间的连接关系、连接顺序等无法评估。所以下面一个角度,就是从更细节的节点进行比较。
Ⅱ. Pairwise Node Comparison
这一角度就是从微观角度进行评估。其实原理很简单,首先将a图和b图中所有节点的embeddings取出,如果节点个数不等,那么往少节点的图中添加fake nodes,一般是zero embedding。接着,a图节点的embedding与b图节点的embedding两两相乘,得到一个n×n维的得分矩阵(a图和b图分别有n个节点)。然后,划分出k个bins,将这n×n个得分全部划入bins中,统计每个区间的得分个数。最后得到一个k维得分向量,作为该角度的评估结果。
3.输出相似度得分
最后,将步骤2中两个不同角度得到的一维得分向量拼接在一起,合成一个大一维向量,再输入进FC层中得到相似度得分。
三:小结
这篇论文核心思想就在于如何充分利用embeddings,进行相似度评估。作者从宏观与微观两个角度,分别得到对应的得分向量,由浅入深,由粗入细,妙不可言~
至此我对这篇图相似度论文,进行了简单剖析,希望对大家有所帮助,有不懂的地方或者建议,欢迎大家在下方留言评论。
我是努力在CV泥潭中摸爬滚打的江南咸鱼,我们一起努力,不留遗憾!