CS224W课程(图神经网络)笔记:02-tradtion_ml

740 阅读5分钟

Traditional Methods of Machine Learing in Graphs


在本节我们可以了解到

  • 如何在节点/边/图层面上提取特征,完成相应的任务

1、传统机器学习在图上应用

  • 设计节点/关系/图的特征
  • 获取包含特征的训练数据
  • 应用传统的机器学习

image-20221011183151351.png


2、传统的机器学习方法

image-20221011183232402.png


3、Feature Design(特征提取)

  • 好的特征是得到好结果的关键
  • 传统的机器学习都是人工提取特征

4、图上的机器学习

  • 目标:对objects进行预测

  • 过程:

    • 提取特征
    • objects:Nodes,edges,sets of nodes,entire graphs
    • objective function:取决于想要解决什么问题f:V\rightarrow R

1 Node-level Tasks(节点层面任务)

节点上的一些特征,能在网络中描述节点的位置以及节点间的结构

  • Node degree(节点的度数)
  • Node centrality(节点中心性):体现节点在图中的重要程度
  • Clustering coefficient(聚集系数):聚类系数用于衡量节点聚集的程度
  • Graphlets

1.1 Node centrality

  • Engienvector centrality(特征向量中心性)

一个节点vv若是重要的,那么他就有重要的邻居uN(v)u\in N(v)

cv=1λuN(v)cuc_v=\frac{1}{\lambda}\sum_{u\in N(v)}{c_u}

其中的cuc_u等同于求λc=Ac\lambda c=Ac的特征向量。

img

  • Betweenness centrality(中介中心性)

    节点的中介中心性定义为:一个节点若他是重要的,那么他就位于许多最短路径上

    cv=svtvst的最短路径个数st的最短路径个数c_v=\sum_{s\ne v\ne t}\frac{过v的s与t的最短路径个数}{s与t的最短路径个数}

image-20221011191226764.png

  • Closeness centrality(连接中心性)

连接中心性:一个节点如果是重要的,那么他有最短的路径到其他节点

cv=uv1uv间最短路径长度c_v =\sum_{u\ne v}\frac{1}{u与v间最短路径长度}

image-20221011191612466.png


1.2 Clustering coefficient(聚集系数)

测量节点与邻居节点的连接性

ev=邻居节点之间的连接边数Ckv2(组合数)[0,1]e_v=\frac{邻居节点之间的连接边数}{C_{k_v}^2(组合数)}\in[0,1]

image-20221011192011421.png

聚类系数可以找到图中的闭三角形

image-20221011192106020.png

1.3 Graphlets

Graphlets:同类型的非同构子图

拓展CS224W| 笔记3.1:网络的结构(Motifs and Graphlet) - 知乎 (zhihu.com)

一类特殊子图统称为motifs有以下特征:

  • pattern:小的诱导子图
  • recurring:循环,该子图在图中高频出现
  • significant:重要指比预想(随机图)中出现的频率更高。
  • 同一类motifs 之间,诱导子图的边必须完全一致。多一条边改个方向都不行

如何衡量motifs的重要性

答:在真实网络出现的次数,要远远大于随机网络出现的次数。

Zi=NirealNirandstd(Nirand)Z_i=\frac{N_i^{real}-N_i^{rand}}{std{(N_i^{rand})}}

其中NirealN_i^{real}为真实网络中i的motif出现次数,NirandN_i^{rand}为随机网络中ii的motif出现次数 img

随机网络如何定义或生成?要求如下:

  • 与真实图有相同的节点数,边数,度分布
  • 给定一个度序列,生成一个随机图

Graphlets是对motif的拓展

  • motif是从全局的角度来描述的。 用不同motifs来构成一个图的向量表示。
  • 而Graphlet是从局部(节点)的角度出发来描述节点。 用不同graphlet中的节点相对位置(局部信息),来形成一个节点的向量表示。

在描述Graphlets,我们需要做如下定义:

  • 同构图:在图论中,假设G=(V,E)G=(V,E)G1=(V1E1)G1=(V1,E1)是两个图,如果存在一个双射mVV1m:V→V1,使得对所有的x,yVx,y∈V均有x,yEx,y∈E等价于m(x)m(y)E1m(x)m(y)∈E1,则称GGG1G1同构的。简单的说,两个同构图,节点和边一致,且存在一个一一映射使得每个节点相互对应。
  • 非同构子图集:不同节点数的子图可以的非同构子图数量不同,节点越多,非同构子图数量呈指数增加。如下图, 可以看到,不同颜色的点,代表相对位置不同类型的点。

img

计算Graphlet Degree Vector(GDV):

对于一个节点,给定一个非同构子图集,将节点从非同构子图集上移动不同的位置,探究得到的子图在原图中是否出现,若出现则计数。

image-20221011194113834.png

2 Link-Level Prediction Task

任务的关键是如何获取节点对的特征

任务形式:

  • 连接的随机丢失:随机删除一些连接,然后用机器学习方法进行预测。
  • 动态变化:给定一张图G[t0,to]G[t_0,t_o'],表示t0t_0t0t_0'时刻出现的图,输出G[t1,t1]G[t_1,t_1']时刻的排序列表。

通用思想:

  • 对于每个节点对 (x,y)(x,y) ,计算得到c(x,y)c(x,y)

    • example:c(x,y)c(x,y)可以定义为x和y相同的邻居数
  • c(x,y)c(x,y)降序排序,前n个节点为预测结果

特征提取方式:

  • Distance-based feature:基于距离的特征
  • Local neighborhood overlap:基于局部邻接节点重叠的特征
  • Global neighborhood overlap:基于全局邻接节点重叠的特征

2.1 Distance-based feature

缺点:无法获取节点间有多少邻接节点的重叠

example:Node pair (B, H) has 2 shared neighboring nodes, while pairs (B, E) and (A, B) only have 1 such node.

image-20221011195341340.png

2.2 Local neighborhood overlap

缺点:度量为0,如果两个节点没有任何共同的邻居,但该两个节点可能在未来会连接

example:如下图NANE=ϕN_A\cap N_E=\phi ,,可得NANE=0|N_A\cap N_E|=0

image-20221011195557247.png

2.3 Global neighborhood overlap

预备知识:

  • 邻接矩阵AA,经过ll次运算得到AlA^l,其中的AuvlA^l_{uv}表示uuvv路径长为l的路径个数。

度量Katz index:给定一个节点(v1,v2)(v_1,v_2),计算节点对上的所有路径以及其路径长度

Sv1v2=l=1βlAv1v2lS_{v_1v_2}=\sum_{l=1}^{\infty}{\beta^lA_{v_1v_2}^l}

其中0<β<10<\beta<1表示衰减系数,表示路径越长,重要性越低。

在几何级数上近似计算如下:

S=i=1βiAi=(IβA)1=i=0βiAiI,\boldsymbol{S}=\sum_{i=1}^{\infty} \beta^{i} \boldsymbol{A}^{i}=\underbrace{(\boldsymbol{I}-\beta \boldsymbol{A})^{-1}}_{=\sum_{i=0}^{\infty} \beta^{i} \boldsymbol{A}^{i}}-\boldsymbol{I},

3 Graph-Level Features

目标:分类识别一整张图

核函数:定义和SVM中核函数定义一样

  • 给定两个图有K(G,G)=ϕ(G)Tϕ(G)RK(G,G')=\phi(G)^T\phi(G')\in R
  • 核函数一旦确定,就可以应用机器学习模型

Graph Kernels:关键思想为设计图上的特征矩阵ϕ(G)\phi(G)

  • Graphlet Kernel
  • Weisfeiler-Lehman Kernel
  • 其他的Random-walk kernel,Shortest-path graph kernel

NLP中的一个简单的思想,Bow-of-words:简单实用单词数来作为文本特征,可以把节点看做单词数,得到如下特征矩阵形式。加入其他信息改进为Bow-of-*,其中的*根据方法而定。

image-20221011201840521.png

从下面我们可以知道:

  • Graphlet Kernel is Bow-of-Graphlets
  • Weisfeiler-Lehman Kernel is Bow-of-color

3.1 Graphlet Kernel

关键思想:计算图上不同graphlets的数量(代替words)

计算非同构图的数量

缺点:

  • 计算量大
  • 当一个图为另一个图的子图,无法避免NP难问题
  • 若节点度有限,则算法复杂度大

image-20221011202304231.png

image-20221011202304231.png

image-20221011202336943.png

image-20221011202437167.png

3.2 Weisfeiler-Lehman Kernel

目标:设计更具效率的一个特征向量

  • 第一步:给定每个节点一个初始颜色C(0)(v)C^{(0)}(v)
  • 第二步:迭代完善节点颜色
c(k+1)(v)=HASH({c(k)(v),{c(k)(u)}uN(v)})c^{(k+1)}(v)=\operatorname{HASH}\left(\left\{c^{(k)}(v),\left\{c^{(k)}(u)\right\}_{u \in N(v)}\right\}\right)

其中HASH是一个映射函数

  • 在k步后颜色细化,c(k)(v)c^{(k)}(v)总结了k-hop邻接的结构。

优点:

  • 计算量更少,效率更高
  • 包含了k步邻居节点的结构

example:

image-20221011203027264.png

Hash是一个映射函数,将1,1映射为2,1,11映射为3,以此排序下去

image-20221011203044213.png

image-20221011203129039.png

image-20221011203142902.png

image-20221011203154448.png