cs224w 2-1 Traditional Feature-based Methods-Node
前言:传统图机器学习方法
1.传统图机器学习的三个层级
我们可以将传统图机器学习任务分为三个层级:节点、边、图;
图数据有两种属性特征:1.节点、边、图的特征属性;2.图数据的结构特性(局部网络结构local network structure这些额外的特征描述了网络的拓扑结构,能使预测更加准确)
2.传统机器学习的两大步骤
第一步,我们获取数据点,并用 特征向量 来表示节点、边、图;
第二步,我们可以利用机器学习进行训练将模型应用于新节点,边和图,得到他们的特征并做出预测;
3.三种数据层次上的特征设计
传统机器学习Feature Design采用手动设计特征,并 对一系列的object做预测任务,特征Feature:d维向量 d-dimensional vectors;对象Objects: 节点,边,节点的集合组,整个图;目标: 我们要处理的具体问题是什么?首先,最重要的第一步就是Feature Design。
我们将从三个数据层次来讲解Feature Design:
节点层级的预测:单个节点的特征;
边层级的预测:一对节点间的特征;
图层级的预测:使用特征描述整个图的拓扑结构以便进行不同图之间的比较 ;
节点层级
任务:
我们得到了几个用不同颜色标记的节点,目标是预测没有颜色的节点的颜色
我们可以发现,绿色的节点连接的边大于等于2,但红色只有1条边;
我们可以将每个节点的度作为特征,我们就可以解决这个问题
我们的目标是表征给定的节点周围的网络结构,或节点在图中的位置;我们将介绍4种方法来完成我们的目标:
1.使用节点的度作为特征;
2.使用节点中心度量作为特征;
3.图的网络结构表征,不仅是节点连多少边,还有节点周围的结构是什么,采用聚类系数来表征;
4.将第三点概括为已知的概念graphlets
使用节点的特征来完成任务:
1.利用节点的度
缺点在于只抓住了邻居的边,将节点的所有邻居视为同等重要的
2.利用节点中心度
节点中心度尝试捕获或表征节点在图中的重要性,我们可以采取多种方式来建模重要性;
Eigenvector centrality:
认为如果节点邻居重要,那么节点本身也重要,节点 v 的centrality是邻居centrality的总和
C
v
=
1
λ
∑
u
∈
N
(
v
)
C
u
C_{v}=\frac{1}{\lambda}\sum_{u\in N(v)} C_{u}
Cv=λ1u∈N(v)∑Cu
将该递归式其转换为
λ
C
=
A
C
\lambda C = AC
λC=AC A是临接矩阵,C是节点中心度向量;即人们认为节点中心度的度量是与最大特征值
λ
m
a
x
\lambda_{max}
λmax相关的特征向量 ;根据Perron-Frobenius Theorem(完全看不懂…)可知
λ
m
a
x
\lambda_{max}
λmax最大的特征值总为正且唯一,对应的leading eigenvector
C
m
a
x
C_{max}
Cmax就是centrality向量。
Betweenness centrality:
如一个节点处在很多节点对的最短路径上,那么这个节点是重要的,即衡量一个节点作为交通要塞的能力。(类似于重要的交通枢纽,十字路口等)
C
v
=
∑
s
≠
t
≠
v
s
与
t
的最短路径中包含
v
的
s
与
t
的所有最短路径
C_{v}=\sum_{s\neq t\neq v} \frac{s与t的最短路径中包含v的}{s与t的所有最短路径}
Cv=s=t=v∑s与t的所有最短路径s与t的最短路径中包含v的
Betweenness centrality:
C
v
=
1
∑
u
≠
v
u
与
v
之间的最短路径
C_{v}= \frac{1}{\sum_{u\neq v}u与v之间的最短路径}
Cv=∑u=vu与v之间的最短路径1 1/u到达其他点的长度之和
3.利用聚类系数
聚类系数衡量邻居的联系程度;
e
v
=
相邻节点间的边
C
v
2
e_{v} = \frac{相邻节点间的边}{C_{v}^2}
ev=Cv2相邻节点间的边
e
v
=
实际出现的边
潜在的边
e_{v} = \frac{实际出现的边}{潜在的边}
ev=潜在的边实际出现的边
e
v
=
6
/
6
e_{v}=6/6
ev=6/6 ,
e
v
=
3
/
6
e_{v}=3/6
ev=3/6 ,
e
v
=
0
/
6
e_{v}=0/6
ev=0/6.
4. 利用Graphlets
聚类系数实际上是在计算这种三角形,这在社交网络中十分重要,朋友的朋友也可能是朋友,你的朋友可能会经由你的介绍而认识,社交网络会随着三角形的闭合而逐渐发展。
graphlet是有根连通异构子图:
1.它们是连通图(connected);
2.有K个节点;
3.它们异构(结构不相同,经过翻转旋转也不相同);3个节点产生的全连接异构子图只有如图所示的2个,4个点就只有6个。如果你再构建出新的子图形状,那么它一定跟其中某个子图是同构的。
4.讨论一下他们的根;
图中标的数字代表根节点可选的位置。G1中1,2分别为一个根(为什么下面的节点不是呢,因为上下关于中间对称,实际上选上面的做艮和选下面做根是一样的),G0同理只有0号是根,G2是3号是根;K=2-5共有73个根;
GDV与Degree和Clustering coefficient类似,度是计算节点边的数量,聚类系数是计算基于节点的三角形的数量,GDV是基于节点计算graphlet出现的数量;
这里为什么C是0呢?因为c要以v为顶点,所以其余的两个点不可以相连,但图中无这种结构;
如果我们考虑2-5个节点,一共有73种graphlet的GDV,可以捕获距离为4跳的局部网络拓扑结构,它提供了更详细的局部拓扑相似性度量(更加的细粒度区分邻居关系);
总结
这些节点特征有两个作用:
1.捕获节点重要性:度,中心性
2.捕获节点周围拓扑结构:聚类特性,GDV