cs224w(二) Traditional Methods for Machine Learning in Graphs
参考博文: 大佬笔记
图数据有两种特性,一种是图中节点连接所形成的拓扑结构,另一种是图(包括节点和边)具有的特征和属性。
节点的特征
节点的度
节点的度是指某个节点所连接的边(邻居节点)的数量,节点的度将所有邻居节点视为同等重要。
节点的中心性
Eigenvector centrality
如果邻居节点重要,则节点本身也重要。
我们将节点v的中心性表述为邻居节点中心性的和
以矩阵形式重写递归方程
我们可以看到中心性就是特征向量。最大的特征值总是正的并且唯一,所以对应的最大特征向量可以就是特征向量中心性
Betweenness centrality
如果一个节点处于很多节点对的最短路径上,那么这个节点是重要的。
Closeness centrality
如果一个节点距离其他节点距离最短,那么节点是重要的
聚类系数
衡量邻居节点的连接程度
如图,对于v节点来说,左图它的四个邻居节点都互相相连,6/6=1,中图四个邻居节点只有三条边互相连接,3/6=0.5,右图它的四个邻居节点互相之间没有连接,故0/6=0
聚类系数衡量的是某个节点的邻居节点的连接紧密性,
Graphlets
根连通的异构子图
Graphlet Degree Vector(GDV):以给定节点为根的graphslet的计数向量。
考虑2-5个节点的graphlets,我们得到73个坐标的向量GDV,描述节点邻域的局部拓扑结构,可以捕获4跳距离的互联性。
Graphlet degree vector提供了节点局部网络拓扑的度量:比较两个节点的向量提供了比节点度或聚类系数更详细的局部拓扑相似性度量。
总结
我们介绍了不同的方式来获取节点的特征。
它们可以分为两类,
捕获节点在图中的重要性:节点的度,不同节点中心性度量,用于预测图中有影响的节点,例如预测社交网络中的名人用户。
捕获节点结构属性:节点的度,聚类系数,Graphlet count vector,用于预测节点在图中扮演的角色,例如预测蛋白质相互作用网络中的蛋白质功能。
边的特征
Distance-based feature
两点间最短路径的距离
但是,并不能反映邻域重叠的程度,如(B,H)有两个共同邻居,而(B,E)和(A,B)只有一个。
Local neighborhood overlap
捕获两个节点的共同邻居数目
局部邻域特征的限制性:
如果两个节点没有任何共同的邻居,则度量值始终为零。但是,这两个节点将来仍可能连接。
全局邻域重叠度量通过考虑整个图来解决这一限制。
Global neighborhood overlap
Katz index:计算给定节点对之间所有长度路径的条数。
通过计算邻接矩阵的k次幂,来得到对应节点对之间长度为k的路径的条数
总结
Distance-based features:使用两个节点之间的最短路径长度,但不捕获邻域重叠的方式。
Local neighborhood overlap:捕获两个节点共享的相邻节点数。但是在没有共享相邻节点时变为零。
Global neighborhood overlap:使用全局图结构对两个节点进行评分。Katz index统计两个节点之间所有长度的路径。
图的特征
目标:我们需要表征整个图形结构的特征
Graph Kernels:衡量两个图的相似度
Bag-of-Words (BoW)
BoW只是将节点的数目作为图的特征(且不考虑节点排序)。
如图,由于两个图都有4个红色节点,这两个不同图的特征向量是相同的。
如果我们使用Bag-of-node degrees呢?
第一个图节点度为1的节点有一个,节点度为2的节点有两个,节点度为3的节点有一个,第二个图节点度为1的节点为零个,节点度为2的节点有两个,节点度为3的节点有两个。这两个图的特征向量不同!
Graphlet内核和Weisfeiler-Lehman(WL)内核都使用图形的包表示,比节点度更复杂!
Graphlet Kernel
关键思想:计算一个图形中不同Graphlet的数量。
注:此处Graphlet的定义与节点级特征略有不同。不同点在于:
- 此处Graphlet中的节点不需要连接(允许隔离节点)
- 这里的Graphlet没有根
给定两个图G和G’,graphlet kernel 计算为
但是当G和G’大小不同,这个值就会扭曲,解决方法就是将特征向量标准化
缺点:计算graphlets是非常困难的,因为子图同构测试(判断一个图是否是另一个图的子图)是NP难的。
Weisfeiler-Lehman Kernel
目标:设计一种高效的图形特征描述符
思想:使用邻域结构以迭代方式丰富节点表。
即给定V个节点的图G,为每个节点v分配一个初始的颜色c(v),然后通过公式迭代更新节点的颜色,在K轮颜色更新后,c(v)就总结了k-hop邻域的结构
WL内核计算效率高,当计算内核值时,只需要跟踪两个图中出现的颜色。时间复杂度在#(边)中是线性的。
总结
Graphlet Kernel:图被表示为Bag-of-graphlets,计算相当复杂。
Weisfeiler-Lehman Kernel:图被表示为Bag-of-colors,计算效率高,利用k-step颜色更新算法来丰富节点的颜色,非常近似图神经网络。