Paper : Deep Graph Kernels
Code :
摘要
这是另一篇上古时期学习图结构的特征表示文章,在此考古一下并学习这篇文章使用的核方法。作者提出了一种学习图子结构潜在表示的统一框架,DGK框架。 该框架通过利用子结构之间的依赖关系信息,给出图与图之间的相似度定义,通过相似度来定义图结构的潜在表示。作者给出了该框架应用到三种常见的图内核(Graphlet内核,Weisfeiler-Lehman子树内核和最短路径图内核)上的特例情况。
核方法
衡量结构化对象之间相似性的一种方法是使用内核方法。 简单来说,内核方法使用内核函数来测量两个对象之间的相似性,内核函数对应于再生核希尔伯特空间(RKHS)的内积。因此,核方法面临的挑战是找到一个合适的内核函数,该函数在计算上易于处理的同时可以捕获结构的语义。 R-convolution 是处理离散对象的通用框架,主要思想是将结构化对象递归分解为“原子”子结构,并在它们之间定义有效的局部内核。形式化的表示如下,给定图 G , G ′ G,G' G,G′,令 ϕ : G → H \phi : \mathcal G\rightarrow \mathcal H ϕ:G→H 定义为包含原子子结构数的向量,即使用递归分解的方式将图映射到RKHS上,而 ⟨ ⋅ , ⋅ ⟩ H \left \langle \cdot,\cdot \right \rangle_{\mathcal H} ⟨⋅,⋅⟩H 表示RKHS H \mathcal H H 中的点积。相似度的核函数定义为
K ( G , G ′ ) = ⟨ ϕ ( G ) , ϕ ( G ′ ) ⟩ H \mathcal K (G,G') = \left \langle \phi(G),\phi(G') \right \rangle_{\mathcal H} K(G,G′)=⟨ϕ(G),ϕ(G′)⟩H
但是,在这种分解方式下,核函数的定义存在若干问题。首先原子子结构并不是相互独立的,以常见的同构图拆分为例
点数为k+1的图可以通过点数为k的图添加1个节点和边得到。其次,特征空间的维度随着子结构的复杂会发生指数增长,这就导致在图与图之间可能相似度普遍较低。
因此,作者给出了一种替代的方式定义核函数
K ( G , G ′ ) = ϕ T ( G ) M ϕ ( G ′ ) \mathcal K (G,G') = \phi^\text T(G) \mathcal M \phi(G') K(G,G′)=ϕT(G)Mϕ(G′)
其中 M \mathcal M M 是半正定矩阵,对原子子结构之间的关系进行编码,如果原子子结构之间具有较强的数学关系,例如编辑距离, M \mathcal M M 矩阵可以根据该距离进行定义。一旦有了图与图之间的距离定义,在进行图分类任务的时候,可以将该核函数直接传入SVM等分类器中进行分类任务。
图内核
Graphlet —— Graph kernels based on subgraphs
Graphlet
G
G
G 定义为大小为
k
k
k 的非同构诱导子图。
给定两个图
G
,
G
′
G,G'
G,G′,定义在Graphlet上的核函数为
K GK ( G , G ′ ) = ⟨ f G , f G ′ ⟩ \mathcal K_\text{GK}(G,G') = \left \langle f^G,f^{G'} \right \rangle KGK(G,G′)=⟨fG,fG′⟩
其中 f G f^G fG 正则化后所有的Graphlet在图 G G G 上的出现频率向量。 ⟨ ⋅ , ⋅ ⟩ \left \langle \cdot,\cdot \right \rangle ⟨⋅,⋅⟩ 定义为欧几里得内积。
WL subtree —— Graph kernels based on subtree patterns
给定两个图
G
,
G
′
G,G'
G,G′,定义在WL subtree上的核函数为
K WL ( G , G ′ ) = ⟨ l G , l G ′ ⟩ \mathcal K_\text{WL}(G,G') = \left \langle l^G,l^{G'} \right \rangle KWL(G,G′)=⟨lG,lG′⟩
其中 l G l^G lG 正则化后每个序号在图 G G G 的WL test迭代过程中出现的频率向量。 ⟨ ⋅ , ⋅ ⟩ \left \langle \cdot,\cdot \right \rangle ⟨⋅,⋅⟩ 定义为欧几里得内积。
Random-walks —— Graph kernels based on shortest-path pattern
图核的第三类分解是将图分解为随机游走或路径,并计算两个图中随机游走或路径的同时出现。 令 P G \mathbb P_G PG 表示图 G G G 中所有最短路径的集合,而 p i ∈ P G p_i\in\mathbb P_G pi∈PG 表示三元组 ( l s i , l e i , n k ) (l_s^i,l_e^i,n_k) (lsi,lei,nk) ,其中 n k n_k nk 表示路径长度,而 l s , l e l_s,l_e ls,le 对应起点终点。最短路径图核定义为
K SP ( G , G ′ ) = ⟨ p G , p G ′ ⟩ \mathcal K_\text{SP}(G,G') = \left \langle p^G,p^{G'} \right \rangle KSP(G,G′)=⟨pG,pG′⟩
其中, p i G p^G_i piG 表示三元组 p i p_i pi 在图 G G G 中出现的频率。
R-convolution
上面概述的所有图形内核以及其他稍微复杂的变体都是R卷积框架的实例。 简而言之,定义图内核的方法如下:首先,将图递归分解为子图。 例如,Graphlet内核将图分解为graphlet,Weisfeiler-Lehman内核将图分解为子树,Shortest-Path内核将图分解为最短路径。 在下一步中,将分解后的子结构表示为频率向量,其中向量的每一项代表给定子结构在图中出现的次数。 最后,使用欧几里德空间或某些其他领域特定的RKHS来定义频率向量之间的点积。
关系矩阵 M 的计算
编辑距离
编辑距离可以表示原子子结构之间的相似度
定义矩阵
M
i
j
M_{ij}
Mij 的值为编辑距离图上Graphlet第
i
i
i 个和第
j
j
j 个之间的最短路径。
使用语言模型学习相似度矩阵
作者将图内核中的子结构视为从特殊语言生成的单词。 换句话说,不同的子结构以与不同的单词一起使用时形成句子的相似方式组成图。 考虑到这一类比,可以利用单词嵌入模型来揭示子结构之间相似性的维度。算法的主要框架为将每个图分解为原子子结构,然后,将分解的子结构列表视为从词汇表V生成的句子。但是,与传统文本语料库中的单词不同,子结构不具有线性共现关系。 因此,需要建立一个同现关系有意义的语料库。接下来,讨论如何在三个主要的图内核上生成共现关系有意义的语料库。
Graphlet:即使对于中等大小的图,图 G G G 中所有Graphlet的穷举枚举代价也是极其昂贵。为了有效地对子图进行采样,之前的工作提出了几种采样启发式方法,例如随机采样方案。通过使用邻域概念,作者修改了随机采样方案以部分保留Graphlet之间的共现关系。也就是说,每当我们随机采样一个图 G G G 时,我们也会采样它的直接邻居。然后,Graphlet 及其邻居被我们的方法解释为同时出现。因此,具有相似邻域的 Graphlet 将获得相似的表示。可以扩展共现关系以考虑距离≥1的邻域。
Shortest Path:与 Graphlet 内核类似,需要在最短路径子结构之间找到一种有意义的共现关系。最短路径的所有子路径也是具有相同源的最短路径。换句话说,每当观察到长度为 l l l 的最短路径子结构时,我们还必须观察其长度 < l <l <l 的所有子路径。每当我们生成最短路径子结构时,我们还将收集共享同一源节点的所有可能的最短路径子结构,并将它们视为共同出现。因此,具有相似标签的最短路径子结构将获得相似的表示。
Weisfeiler-Lehman:Weisfeiler-Lehman子树内核在每个顶点及其邻居上迭代,以创建可重集标签。所得的可重集被赋予一个新标签,然后用于下一次迭代。因此,属于给定迭代h的可重集标签编号可以被视为同时出现,以便部分保留相似性的概念。
总结
作者提出了一种只要子结构之间存在依赖关系,就可以将其纳入到R-convolution内核方法的通用框架,核心是 M \mathcal M M 矩阵的使用和计算,从图论的角度来说该篇论文还是蛮有意思的,但是任务表现上是上古时期的产物,和后面的GNN没啥关系。