GraphSim:基于多尺度卷积集匹配的图形相似度计算
本篇论文是:Learning-based Efficient Graph Similarity Computation via Multi-Scale Convolutional Set Matching。需要注意的是,graph不同于image,graph是图表,是由边和节点生成。
1. 简要介绍
计算两个图形的相似度在多个领域都是一个核心的问题。而传统的方法(GED、MCS)会带来很大的计算量;之后提出了一些启发式算法和神经网络的训练方法。这些神经网络的模型受限于对图级嵌入(graph-level embeddings)的依赖,因为这些模型忽略了现实中图形的规模可变性,用固定维度的向量可能会损失一些局部特征导致计算复杂的图形的相似度表现不佳。
这篇论文提出GraphSim模型来避免图嵌入层级的产生。该模型直接在两个节点嵌入(node embeddings)集合进行操作。
2. GraphSim模型
该模型由如下几层组成:
- 多规模邻近聚集层,在不同的规模下为两个图的每个节点产生代表的向量;
- 相似度矩阵产生层,计算两个图的每个节点对的嵌入的内积;
- CNN层,将相似度计算转化问题为模式识别问题。
2.1 Multi-Scale Neighbor Aggregation
本篇论文基于前人对图卷积网络(GCN)的研究,GCN可以从每个节点(node)的邻近点结构得到节点嵌入(node embeddings)。核心的操作图卷积可以表示为(第i个点为
u
i
∈
R
D
\bold{u_i} \in \mathbb{R}^D
ui∈RD):
c
o
n
v
(
u
i
)
=
R
e
L
U
(
∑
j
∈
N
(
i
)
1
d
i
d
j
u
j
W
(
n
)
+
b
(
n
)
)
conv(u_i)= ReLU(\sum_{j \in N(i)}\frac{1}{\sqrt{d_i d_j}}u_j W^{(n)}+b^{(n)})
conv(ui)=ReLU(j∈N(i)∑didj1ujW(n)+b(n))
其中
N
(
i
)
N(i)
N(i)可表示为节点i的第一层邻近点(first-order neighbor)和它自身的集合,d表示节点的度,
W
(
n
)
∈
R
D
(
n
)
×
D
(
n
+
1
)
W^{(n)} \in \mathbb{R}^{D^{(n)} \times D^{(n+1)}}
W(n)∈RD(n)×D(n+1)表示第n层GCN的权重矩阵,b是偏置,
D
(
n
)
D^{(n)}
D(n)表示第n层嵌入向量的维度。
对一个选定节点使用一层GCN可以聚集第一层邻近点的信息,连续使用L次则可以聚集L层邻近点的信息。但是这样使用一个多层的GCN结构会有一个潜在的问题:会丢失邻近点一些细微的结构特征,这个问题当两个被比较图片很接近的时候往往比较严重。对于这个问题作者提出了一个多规模的框架来提取每层GCN的输出来构建相似度矩阵。
2.2 Similarity Matrix Generation
2.2.1 最佳分配核
如果把两个图看成两个节点嵌入集,可以使用 the Earth Mover’s Distance graph kernel(EMD)方法解决分配问题1这样GraphSim模型可以得到一个图转化为另一个图的最佳方式,值得注意的是,每对节点嵌入,一个节点嵌入转为另一个另一个的cost就是两个的欧几里得距离。
计算EMD距离的最优化目标为(带约束):
m
i
n
∑
i
=
1
N
1
∑
j
=
1
N
2
T
i
j
∣
∣
x
i
−
y
i
∣
∣
2
min\sum_{i=1}^{N_1}\sum_{j=1}^{N_2}T_{ij}||x_i-y_i||^2
mini=1∑N1j=1∑N2Tij∣∣xi−yi∣∣2
2.2.2 双边图匹配(Bipartite Graph Matching)
估算GED可以解决如下的问题:
m
i
n
∑
i
=
1
N
′
∑
j
=
1
N
′
T
i
j
C
i
j
min\sum_{i=1}^{N'} \sum_{j=1}^{N'}T_{ij}C_{ij}
mini=1∑N′j=1∑N′TijCij
cost矩阵C表示每一对节点的插入、删除、替换等操作的成本。这种估算GED的方式和2.2.1中的都是在节点层次直接操作,没有图级的嵌入表示;同时也都需要每对节点之间的距离得分(node-node distance scores)。
因为GraphSim模型是端到端的相似度计算,所以可以产生不同规模的相似度矩阵,把相似度矩阵看作是图像,则这个过程可以看作是用CNN发现在图像中编码后的最佳节点的匹配方式。如果把这个过程看作是对两个节点嵌入集合转化为分数,那么模型可以看作是
m
i
n
(
h
Θ
(
X
,
Y
)
−
s
i
j
)
2
min(h_{\Theta}(X,Y)-s_{ij})^2
min(hΘ(X,Y)−sij)2
其中
h
Θ
(
X
,
Y
)
h_\Theta (X,Y)
hΘ(X,Y)指的是相似度矩阵的产生和后面的神经网络层,
S
i
j
S_{ij}
Sij表示的是真正的相似度得分,用后者来训练更新和邻近聚集层和CNN层相关的权重矩阵
Θ
\Theta
Θ。
2.2.3 BFS排序
和数字图像的像素不同的是,图的节点缺少规则的排序,不同的排序方式会导致不同的相似矩阵。所以为了解决节点的置换问题,需要一个权威的排序方式,而这是一个NP难问题;CNN网络需要输入信息的空间局部性。为了姐姐二这两个问题,作者使用BFS节点排序法来重新排序节点嵌入。值得一提的是,BFS算法实现了效率和排序唯一性之间的平衡,最坏情况下复杂度为 O ( n 2 ) O(n^2) O(n2)。
2.2.4 最大值填充(Max Padding)
因为CNN的输入是固定长度的,所以GraphSim模型必须解决这个问题。一个很自然的想法就是加入假结点使得节点数量达到预设值。但是这样会使得相似度矩阵忽视图的规模信息,比如两个很小但是同构的图,会因为加入了很多的假节点可能导致CNN判为不相似。
作者提出的像小数量的节点中加入假结点,使得两个图的节点数相同,也就是 m a x ( N 1 , N 2 ) max(N_1,N_2) max(N1,N2)。
2.2.5 Matrix Resizing
为了将CNN应用于相似度矩阵,作者通过图像重采样的方法,具体的用双线性内插来实现。
2.3 用CNN计算相似度值
论文采用了三个平行的CNN网络,每个都有自己的卷积核,最后结果会被串联起来送进一个多层的全连接层,得到两个图的相似度。训练的损失函数为 L = 1 ∣ D ∣ ∑ ( i , j ) ∈ D ( s i j ^ − s i j ) 2 \mathcal{L}=\frac{1}{|\mathcal{D}|} \sum_{(i,j)\in \mathcal{D} }(\hat{s_{ij}}-s_{ij})^2 L=∣D∣1∑(i,j)∈D(sij^−sij)2,其中 D \mathcal{D} D是训练的图集。对于GED,使用一个一对一的映射函数将真实的距离转化为实际的相似度分数,对于MCS,归一化的MCS作为相似度分数。
附录
Embedding方法2
embedding就是用一个低维的向量表示一个物体,可以是一个词,或是一个商品,或是一个电影等等。这个embedding向量的性质是能使距离相近的向量对应的物体有相近的含义。除此之外Embedding甚至还具有数学运算的关系,比如Embedding(马德里)-Embedding(西班牙)+Embedding(法国)≈Embedding(巴黎)
Graph Edit Distance(GED):图编辑距离
两个图之间的编辑距离就是将一个转化为另一个的最优的编辑数量。