CS224W摘要12.Frequent Subgraph Mining with GNNs


CS224W: Machine Learning with Graphs
公式输入请参考: 在线Latex公式
本节课三部分内容
子图的概念和定义,其重要性指标。
子图的表征,如果用GNN的方式进行子图的表征
子图频率的挖掘

Subgraph and Motifs

先要明确子图的概念,就好比乐高中的模块一样,不能切分太小,又不能切分太多,如何识别出图中的子图模块。

Definitionn of Subgraphs

有两种。Given graph 𝑮 = (𝑽, 𝑬)
选择的方式主要看应用,例如:
Chemistry: node-induced (functional groups)
Knowledge graphs: Often edge-induced (focus is on edges representing logical relations)

Node-induced subgraph

Take subset of the nodes and all edges induced by the nodes:
G ′ = ( 𝑉 ′ , 𝐸 ′ ) G' = (𝑉', 𝐸') G=(V,E) is a node induced subgraph iff
𝑉 ′ ⊈ V 𝑉'\nsubseteq V VV
𝐸 ′ = { ( 𝑢 , 𝑣 ) ∈ 𝐸 ∣ 𝑢 , 𝑣 ∈ 𝑉 ′ } 𝐸′ = \{(𝑢, 𝑣) ∈ 𝐸 | 𝑢, 𝑣 ∈ 𝑉'\} E={(u,v)Eu,vV}
𝐺 ′ 𝐺' G is the subgraph of 𝐺 induced by 𝑉 ′ 𝑉' V
也叫:induced subgraph由节点集决定的子图

Edge-induced subgraph

Take subset of the edges and all corresponding nodes
G ′ = ( 𝑉 ′ , 𝐸 ′ ) G' = (𝑉', 𝐸') G=(V,E) is an edge induced subgraph iff
𝐸 ′ ⊆ 𝐸 𝐸' ⊆ 𝐸 EE
𝑉 ′ = { 𝑣 ∈ 𝑉 ∣ ( 𝑣 , 𝑢 ) ∈ 𝐸 ′  for some  𝑢 } 𝑉'=\{𝑣∈𝑉|(𝑣,𝑢)∈𝐸′\text{ for some }𝑢\} V={vV(v,u)E for some u}
也叫:“non-induced subgraph” or just “subgraph”,较少用

contained subgraph

上面两种子图定义都是针对从源图中取的子图,如果节点或者边是来自不同的图:
在这里插入图片描述
那么我们把两个图称为包含关系。确定包含关系的关键之处就是确定图是否同构。

Graph isomorphism

由于节点的无序性,同构可能是NP-hard的问题(未证明),具体定义如下:
如果两个图存在一个双射函数(bijection function) f f f,使得:
( u , v ) ∈ E 1  iff  ( f ( a ) , f ( b ) ) ∈ E 2 (u,v)\in E_1 \text{ iff }(f(a),f(b))\in E_2 (u,v)E1 iff (f(a),f(b))E2
f f f就是同构关系。
在这里插入图片描述
子图的同构问题与上面的包含关系等价。这个是NP-hard的问题

G 2 G_2 G2 is subgraph-isomorphic to G 1 G_1 G1 if some subgraph of G 2 G_2 G2 is isomorphic to G 1 G_1 G1.
在这里插入图片描述
可以看到函数 f f f不是唯一的的,这里的点顺序可以换一下,不影响结果。

然后给出不同节点数量(大小)的非同构的子图例子(3个节点有向):
在这里插入图片描述
4个节点无向:
在这里插入图片描述

Determining Motif Significance

有了上面的结论,可以继续往下推,就是一个图结构可以分解为上面的一个个小的子图构成,构成图结构的一个个小的子图就是Motif

Network motifs

概念:recurring, significant patterns of interconnections
实际生活中的例子就是(图片来自百度):
在这里插入图片描述
因此得到motif的三个特征:
Pattern: Small (node-induced) subgraph
Recurring: Found many times, i.e., with high frequency
Significant: More frequent than expected, i.e., in randomly generated graphs?

一个motif匹配的例子(induced表示是基于节点的):
在这里插入图片描述

在这里插入图片描述

Motifs的作用

Help us understand how graphs work.了解图的工作机制
Help us make predictions based on presence or lack of presence in a graph dataset.做主题预测,某个主题往往包含特定的motif,例如社交网络中往往是三角形的motif
例子:
Feed-forward loops: found in networks of neurons, where they neutralize “biological noise”
在这里插入图片描述
Parallel loops: found in food webs(食物链?)
在这里插入图片描述
Single-input modules: found in gene control networks
在这里插入图片描述

subgraph frequency

G Q G_Q GQ是小图, v v v是小图中的某个锚点, G T G_T GT是目标图
Graph-level Subgraph Frequency Definition.
找出 G Q G_Q GQ G T G_T GT中出现的频率:number of unique subsets of nodes V T V_T VT of G T G_T GT for which the subgraph of G T G_T GT induced by the nodes V T V_T VT is isomorphic to G Q G_Q GQ
例子:
在这里插入图片描述
在这里插入图片描述

Node-level Subgraph Frequency Definition:
The number of nodes 𝑢 𝑢 u in G T G_T GT for which some subgraph of G T G_T GT is isomorphic to G Q G_Q GQ and the isomorphism maps 𝑢 𝑢 u to v v v.
( C Q , v ) (C_Q,v) (CQ,v)为node-anchored subgraph。这种方法对outlier的鲁棒性较好。
例如:
在这里插入图片描述
在这里插入图片描述
可以看到中心点只算了一次。
如果 G T G_T GT是多个图,则可以将不同的图看成同一个图的非连通子图进行计算。

Motif significance(重要性/显著性)

意译就是Motif的重要性,主要体现在:现实世界中的图比起随机生成的图具有更加functional significance。
在这里插入图片描述

随机图生成法1:ER

ER随机图可以定义为: G n , p G_{n,p} Gn,p,意思是含有 n n n个节点的无向图中,每条边 ( u , v ) (u,v) (u,v)以独立同分布的概率 p p p出现,例如:
在这里插入图片描述

随机图生成法2:Configuation model

这里的思路感觉有点断断续续,不怎么连贯,一下子突然冒出很多专有名词。
配置模型的目标是以给定的度序列: k 1 , k 2 , ⋯   , k N k_1,k_2,\cdots,k_N k1,k2,,kN生成一个随机图。他可以作为网络的null model,用来比较具有相同度序列的真实图 G r e a l G^{real} Greal和随机图 G r a n d G^{rand} Grand


Null model的定义:就是随机图,但每个随机图与真实图有相同的节点数量、边数量、度分布相同。
下面是一个configuration model的例子,可以看到节点的度分别是3421,图中叫spokes(条幅),
在这里插入图片描述

然后对节点进行两两配对(随机的)
在这里插入图片描述
得到生成的图,生成过程中如有重复的边则忽略(上面AB就出现两次,但是结果中只有一条边),有自循环也忽略:
在这里插入图片描述

随机图生成法3:Switching

就是交换法,是生成随机图的另外一种方法。
1.给定图 G G G
在这里插入图片描述

2.重复以下步骤 Q ⋅ ∣ E ∣ Q\cdot |E| QE
2.1随机选两条边,例如AB和CD
在这里插入图片描述
如果没有重复边或自环,交换选中两条边的终点变成:AD和CB
在这里插入图片描述
相当于在保证度不变的情况下,随机重新驳接图中的边。
通常 Q = 100 Q=100 Q=100,该算法可以收敛。

Motif significance 计算步骤

由于在真实图中Motif 出现次数要比随机图多(overrepresented),因此我们的思路就是用随机图来 和实际图进行Motif的频次统计比较,步骤如下:
1: Count motifs in the given graph G r e a l G^{real} Greal.
2: Generate random graphs with similar statistics (e.g. number of nodes, edges, degree sequence), and count motifs in the random graphs.
3:Use statistical measures(Z-score) to evaluate how significant is each motif

Z-score for statistical significance

Z-score计算公式:
Z i = ( N i r e a l − N ˉ i r a n d ) s t d ( N i r a n d ) Z_i=\cfrac{(N_i^{real}-\bar N_i^{rand})}{std(N_i^{rand})} Zi=std(Nirand)(NirealNˉirand)
然后可以得到Network significance profile (SP):
S P i = Z i ∑ j Z j 2 SP_i=\cfrac{Z_i}{\sqrt{\sum_jZ^2_j}} SPi=jZj2 Zi
𝑆𝑃 is a vector of normalized Z-scores
The dimension depends on number of motifs considered
𝑆𝑃 emphasizes relative significance of subgraphs:
§ Important for comparison of networks of different sizes
§ Generally, larger graphs display higher Z-scores
SP是归一化后的Z-score,可以用于所有类型的子图;Z-score则是用于衡量不同类型的子图,例如:
Negative values indicate under-representation
Positive values indicate over-representation

example of significance profile

不同领域的motif有不同的特点,给自领域都有相似的sp
在这里插入图片描述
这个图的横坐标是13种motif,纵坐标是四大类不同网络中13种motif出现的SP值,SP越大出现频率越高。
比较明显的例子就是在第三类涵盖社交网络的图中,三角形的13号motif出现最多,因为:朋友的朋友基本也相互认识;相对的6号motif就出现得比较少(under represent)(保养小三?)。

Motif扩展及概念变体

扩展
§ Directed and undirected
§ Colored and uncolored相当于考虑不同节点类型,如下图:
在这里插入图片描述
§ Temporal and static motifs(时空、静态图)

变体:
§ Different frequency concepts
§ Different significance metrics
§ Under-Representation (anti-motifs)
§ Different null models
在这里插入图片描述

Neural Subgraph Matching / Representations

子图匹配任务描述
目标图可以是不联通的(can be disconnected),查询子图必须是联通的(connected)。
然后把这个任务转化为机器学习的二分类问题:
Return True if query is isomorphic to a subgraph of the target graph, else return False.
在这里插入图片描述
注意:这个转化相对于找出上图中虚线的对应关系比较简单,这个找对应关系先挖坑,后面有讲。

整体流程

1、将输入的图进行分解得到子图
2、求分解后的子图的embedding
3、将查询子图和分解子图embedding进行匹配,做预测
在这里插入图片描述
下面看分解步骤讲解。

Neural architecture for subgraphs

在进行子图比较前,先要给出几个Neural architecture常用定义:
1.node-anchored definitions:要以anchor为基准进行比对
在这里插入图片描述
node-anchored neighborhoods:基于锚点可以得到锚点的n跳邻域信息
在这里插入图片描述
上面两个例子看起来就是GNN思想:
在这里插入图片描述
也就是可以用GNN来计算两个锚点的embedding,并用embedding来判断两个锚点的邻域是否同构;另外还可以通过这个方法来得到两个锚点的对应(mapping)关系。

G T G_T GT的分解

实际上就是获取图中每一个节点的邻域表示。
For each node in 𝑮 𝑻 𝑮_𝑻 GT:
§ Obtain a k-hop neighborhood around the anchor
§ Can be performed using breadth-first search (BFS)
§ The depth 𝑘 is a hyper-parameter (e.g. 3)
注:Larger depth results in more expensive model
以上操作在查询子图 G Q G_Q GQ上也玩一次

Order embedding space

有序特征空间?
将图A映射到高维(64维)的特征空间,得到 Z A Z_A ZA。这里假设所有维度都是非负的。这样可以捕获到图表征的Ordering(transitivity)特性,例如:
■ ⪯ ■ {\color{Yellow} \blacksquare }\preceq {\color{Green} \blacksquare} 表示 ■ {\color{Yellow} \blacksquare} 的特征在各个维度上都要小于 ■ {\color{Green} \blacksquare} 的特征(二维上看如下图所示)
在这里插入图片描述
左下角的这个黄色方块其实表示了是绿色方块的子图关系。

根据transitivity特性,则有:
if  ■ ⪯ ■ , ■ ⪯ ■  then  ■ ⪯ ■ \text{if }{\color{Yellow} \blacksquare }\preceq {\color{Green} \blacksquare},{\color{Green} \blacksquare }\preceq {\color{Red} \blacksquare}\text{ then }{\color{Yellow} \blacksquare }\preceq {\color{Red} \blacksquare} if , then 
用这个空间来判断子图关系:
在这里插入图片描述

Order embedding space的特点

Order embedding space很好的表达了子图的同构关系,同时还有以下三个特性:
1.transitivity:如果 G 1 G_1 G1 G 2 G_2 G2的子图, G 2 G_2 G2 G 3 G_3 G3的子图,那么 G 1 G_1 G1 G 3 G_3 G3的子图。
if  ■ ⪯ ■ , ■ ⪯ ■  then  ■ ⪯ ■ \text{if }{\color{Yellow} \blacksquare }\preceq {\color{Green} \blacksquare},{\color{Green} \blacksquare }\preceq {\color{Red} \blacksquare}\text{ then }{\color{Yellow} \blacksquare }\preceq {\color{Red} \blacksquare} if , then 
2.anti-symmetry:如果 G 1 G_1 G1 G 2 G_2 G2的子图, G 2 G_2 G2 G 1 G_1 G1的子图,那么 G 1 G_1 G1 G 2 G_2 G2同构。
if  ■ ⪯ ■  and  ■ ⪯ ■  then  ■ = ■ \text{if }{\color{Yellow} \blacksquare }\preceq {\color{Green} \blacksquare}\text{ and }{\color{Green} \blacksquare }\preceq {\color{Yellow} \blacksquare}\text{ then }{\color{Yellow} \blacksquare }= {\color{Green} \blacksquare} if  and  then =
3.closure under intersection:仅有单个节点的图是所有图的子图;封闭交叉点,任意一个图的表征在左下角的0点有相同的交点,也有一个推论
推论:
if  ■ ⪯ ■ , ■ ⪯ ■  then  ■  has a valid embedding \text{if }{\color{Yellow} \blacksquare }\preceq {\color{Green} \blacksquare},{\color{Green} \blacksquare }\preceq {\color{Red} \blacksquare}\text{ then }{\color{Yellow} \blacksquare }\text{ has a valid embedding} if , then  has a valid embedding
推论的图见下面最右边。
在这里插入图片描述

Order Constraint

如何使得GNN学习到的图表征能有上面提到的Order Constraint(可以在空间中反映子图的关系)呢?这里要讲如何设计一个loss函数。
在这里插入图片描述

这个loss函数非常直觉,如果图 G Q G_Q GQ G T G_T GT的子图,那么对于所有的维度 i i i都满足上面的条件: z q [ i ] ≤ z t [ i ] z_q[i]\leq z_t[i] zq[i]zt[i](PPT下标有错,改成t就好)
然后用max-margin loss来训练,两个图的距离可以用下面公式表示:
E ( G Q , G t ) = ∑ i = 1 D ( max ⁡ ( 0 , z q [ i ] − z t [ i ] ) ) 2 E(G_Q,G_t)=\sum_{i=1}^D(\max(0,z_q[i]-z_t[i]))^2 E(GQ,Gt)=i=1D(max(0,zq[i]zt[i]))2
上式中如果 z q [ i ] ≤ z t [ i ] z_q[i]\leq z_t[i] zq[i]zt[i],那么 max ⁡ ( 0 , z q [ i ] − z t [ i ] ) = 0 \max(0,z_q[i]-z_t[i])=0 max(0,zq[i]zt[i])=0
在这里插入图片描述
有了这个距离表达,我们的目标就学习到图的表征( z q , z t z_q,z_t zq,zt),使得损失函数最小化。

Training neural subgraph matching

既然是max-margin loss,当然要引入margin来进行训练,这里用 α \alpha α来表示margin。先构建数据集,包含训练数据对 ( G q , G t ) (G_q,G_t) (Gq,Gt),有是子图关系的数据对也有非子图关系的数据对。
对正样本:最小化 E ( G Q , G t ) E(G_Q,G_t) E(GQ,Gt)
对负样本:最小化 max ⁡ ( 0 , α − E ( G Q , G t ) ) \max\left(0,\alpha-E(G_Q,G_t)\right) max(0,αE(GQ,Gt))
这里引入margin是防止模型将负样本的距离弄得太远,因为负样本不是子图关系,但是大家毕竟都是图的表征,如果分开太远就没有办法关注整体的分类误差。
通俗的说就是即使是负样本,那么距离在 α \alpha α以内就可以了,离太远没啥用。

Dataset Construction

构建数据集:从 G G G中生成 G Q 和 G T G_Q和G_T GQGT

  1. Get G T G_T GT by choosing a random anchor v v v and taking all nodes in G G G within distance K K K from v v v to be in G T G_T GT
  2. 正样本:Use BFS sampling to get G Q G_Q GQ. Sample induced subgraph of G T G_T GT:
    2.1 Initialize S = { v } , V = ∅ S=\{v\},V=\varnothing S={v},V=
    2.2 Let 𝑁 ( 𝑆 ) 𝑁(𝑆) N(S) be all neighbors of nodes in S S S. At every step, sample 10% of the nodes in 𝑁 ( 𝑆 ) ∖ V 𝑁(𝑆)\setminus V N(S)V and place them in %𝑆%. Place the remaining nodes of 𝑁 ( 𝑆 ) 𝑁(𝑆) N(S) in 𝑉 𝑉 V.
    2.3 After 𝐾 𝐾 K steps, take the subgraph of 𝐺 𝐺 G induced by 𝑆 𝑆 S anchored at v v v
  3. 负样本:For negative examples ( G Q G_Q GQ not subgraph of G T G_T GT, “corrupt” G Q G_Q GQ by adding/removing nodes/edges so it’s no longer a subgraph.

在这里插入图片描述

Training Detail

How many training examples to sample?
§ At every iteration, we sample new training pairs
§ Benefit: Every iteration, the model sees different subgraph examples
§ Improves performance and avoids overfitting – since there are exponential number of possible subgraphs to sample from
How deep is the BFS sampling?
§ A hyper-parameter that trades off runtime and performance
§ Usually use 3-5, depending on size of the dataset

Test Detail

Given: query graph 𝐺 q 𝐺_q Gq. anchored at node 𝑞, target graph 𝐺 t 𝐺_t Gt anchored at node 𝑡

Goal: output whether the query is a node anchored subgraph of the target

Procedure:
If E ( G q , G t ) < ϵ E(G_q,G_t)<\epsilon E(Gq,Gt)<ϵ, predict “True”; else “False”
𝜖 is a hyper-parameter
To check if G Q G_Q GQ is isomorphic to a subgraph of G T G_T GT , repeat this procedure for all 𝑞 ∈ 𝐺 Q , 𝑡 ∈ 𝐺 T 𝑞 ∈ 𝐺_Q, 𝑡 ∈𝐺_T qGQ,tGT. Here 𝐺 q 𝐺_q Gq is the neighborhood around node 𝑞 ∈ 𝐺 Q 𝑞 ∈ 𝐺_Q qGQ.

小结

Embedding graphs within an order embedding space解决了子图同构的NP-hard问题

Mining / Finding Frequent Motifs / Subgraphs

有两个挑战:
1.穷举所有大小为k的motif(connected subgraphs)
在这里插入图片描述
2.计算每种motif在图中出现的次数。
在这里插入图片描述
NP-hard循环套NP-hard=男上加男
解决方案:

Representation Learning

对于问题1可以通过search space解决,不直接枚举k节点的子图,而是从小子图开始,每次增加一个节点,直到k个节点为止,具体看后面。
对于问题2可以通过上节的GNN子图同构分类问题解决。

Setup

给定图 G T G_T GT,motif大小 k k k,结果数量阈值 r r r
找出所有大小为 k k k的motif,并在图 G T G_T GT中识别出 r r r出现频率最高的motif。
这里的子图用之前的node-level definition:

在这里插入图片描述

SPMiner: overview

SPMiner: a neural model to identify frequent motifs
在这里插入图片描述
输入是 G T G_T GT
然后是分解为anchor neighborhood
然后用GNN学习到order embedding space
最后是将motif逐步增大,并在order embedding space找出对应的最大出现频率
中间两个步骤是上节的内容。
因此来看最后一步的思想。

Motif Frequency Estimation

G T G_T GT中随机采样一个子图集合 G N i G_{N_i} GNi,并以node-anchored neighborhoods方式表示。
然后估计 G Q G_Q GQ的出现频率:计算 G N i G_{N_i} GNi满足以下条件的个数:
Z Q ≤ Z N i Z_Q\leq Z_{N_i} ZQZNi
这个估计根据之前order embedding space的transition特性得来的
if  ■ ⪯ ■ , ■ ⪯ ■  then  ■ ⪯ ■ \text{if }{\color{Yellow} \blacksquare }\preceq {\color{Green} \blacksquare},{\color{Green} \blacksquare }\preceq {\color{Red} \blacksquare}\text{ then }{\color{Yellow} \blacksquare }\preceq {\color{Red} \blacksquare} if , then 
在这里插入图片描述
这个方法的好处是计算很快( G N i G_{N_i} GNi可以提前计算好,剩下都是比较运算当然快)

SPMiner search procedure

下面步骤中的目标是最大化红色阴影区域中点的数量

Initial step

Start by randomly picking a starting node 𝑢 in the target graph. Set S = { u } S=\{u\} S={u}
之前说过,closure under intersection:仅有单个节点的图是所有图的子图。因此刚开始的时候,目标图 G T G_T GT中所有采样出来的子图的embedding都在节点 u u u的右上角
在这里插入图片描述

Iteratively

Grow a motif by iteratively choosing a neighbor of a node in 𝑆, and adding that node to 𝑆 We want to grow motifs to find larger motifs!
这里讨论两个节点组成motif是没有意义的,从三个节点开始。
这里的motif增加节点要在蓝色节点中选,避免的motif的生成计算。

在这里插入图片描述

Termination

Upon reaching a desired motif size, take the subgraph of the target graph induced by 𝑆
在这里插入图片描述
这里每个step使用贪心算法来求跳转的红点。
结果就不放了,比较接近暴力枚举法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

oldmao_2000

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值