当前位置: 代码迷 >> 综合 >> Graph Representation Learning 笔记 Ch1Ch2
  详细解决方案

Graph Representation Learning 笔记 Ch1Ch2

热度:33   发布时间:2023-12-18 07:02:01.0

图机器学习基本问题及图中特征工程

ch1 & ch2

一、图的基本定义

图能表示复杂系统。图中节点表示对象,图中的表示对象之间的交互关系。图本身就可以表示完全的语义信息。

离散的数据点更注重单个数据点的属性,而图数据更注重的是节点之间的关系。

书中主要讨论简单图,即无自环、无重边且无向。

以下介绍几种特殊的图。

1.1 multi-relational graphs 多关系图

图中的有多种类型。其邻接矩阵为三维矩阵,A∈∣V∣?∣V∣?∣R∣A \in |V|*|V|*|R|AV?V?R,R为边的类型集合。

如在药物反应中,不同的边表示不同的反应。

multi-relational graphs有两种重要的子集,Heterogeneous graphs(异构图)和多重图

1.2 heterogeneous graphs 异构图

异构图中,节点也有类型。可以将节点按类型分为互不相交的组,且边满足一定的条件,如某类型的边只连接特定类型的节点,即可以根据边的类型来确定所连的节点的类型。
异构图

多部图是一种特殊的异构图,多部图中边只能连接不同类型的节点,某种节点内部是没有边的
多部图

1.3 multiplex graphs 多重图

多重图中,图可以被划分为k层,每层中的节点是相同的,每一层中的边各自属于某个集合,每一层中的边代表了某种唯一的关系,跨层的边属于某个集合。跨层的边一般只连自身。

如果将多层压缩到一层,则层与层之间的连接为节点的自环,多层共有的边表示节点之间的重边。
多重图

一个多部图交通网络,每个节点表示一个城市,每一层中的关系表示某种交通方式,如铁路、公路等。不同的层表示了不同的交通网络,如铁路网等,而不同层之间的连接表示了一个城市所拥有的不同的交通方式。

二、图机器学习的基本问题

图中的特征,可以是节点特征,可以是边的特征,也可以是整张图上的特征。

机器学习是问题驱动的学科,所以首先需要明确问题。

2.1 图与机器学习

传统的机器学习可以分为监督学习,无监督学习,半监督学习等,这些都是假设数据是独立同分布的。

在图中,尤其是节点级别的任务和边级别的任务,很难做到数据的独立,数据之间是有关系的,如节点之间往往是通过边相连的,不是独立的。这些并不是典型的监督或无监督问题。并且对于节点分类、关系预测等,若不考虑数据之间的独立性,则则往往是半监督学习的问题,即测试数据在训练中是可见的,测试数据的结构信息已经用于训练了。

2.2 节点分类

节点分类可以视为预测节点的label。

节点分类可以是半监督的,即训练数据和测试数据都在同一个图上,也可以是泛化到不同图上。

节点分类的关键是利用节点之间的连接,如相似的节点有相似的label,相似可以是位置上的相似,结构上的相似等。

2.3 关系预测

等价于边的预测,补边等。

将边分为两部分,训练集和测试集。

问题的复杂性依赖于图,对于简单图,只需要预测节点之间的相似度,对于有多种边的,则更复杂。

2.4 聚类、社区发现\检测

对图中节点进行聚类,属于“无监督学习”。可以是模糊聚类,计算隶属度。

2.5 图分类、回归、聚类

都是针对于整个图而言的,即将图看做一个数据点。这些都满足数据的独立同部分,是标准的监督学习等。

图级别的任务,其难点在于如何定义有效的特征,来表达图中的结构信息。

图回归的例子:计算分子式的溶解度

三、图中的特征工程

图中统计信息和核方法用于节点和图分类,overlap的度量用于关系预测,谱方法用于节点聚类。

3.1 节点级别统计信息

3.1.1 节点度 node degree

du=∑v∈VA[u,v]d_u=\sum_{v\in V}A[u,v]du?=vV?A[u,v]
以上的公式是指无向无权的节点度。有向图中徐亚考虑入度和出度,有权图中,是对边上的权重求和。

3.1.2 节点中心性

衡量节点的重要性。 这里介绍特征向量中心性,用于衡量节点邻居的重要性,即自身的重要性是通过邻居重要性求和得到的。

eue_ueu?是节点u的特征向量重要性,λ\lambdaλ是常数
在这里插入图片描述
可改写为
λe=Ae\lambda e = A eλe=Ae

根据Perron-Frobenius定理可知,e是A最大特征值对应的特征向量,最大特征对应的特征向量一定为正,保证了重要性都为正。

Perron-Frobenius定理这里使用的是:不可约方阵有唯一的最大特征值,对应的特征向量能严格为正。

不可约矩阵:不存在一个矩阵P,使得PTAPP^TAPPTAP为分块上三角矩阵,则A为不可约矩阵。判断是否为不可约矩阵,只需要看矩阵对应的有向图是否为强联通的。

基于随机游走的观点看,可视为在图中进行无限的随机游走的过程中,访问节点的概率。通过迭代的方式求特征向量,可写为下面的公式,当起始e为全一向量时,迭代一次后为节点的度,迭代k次后为该节点有长度为k的路径数量。当t足够大后,ete^tet即为特征向量。
在这里插入图片描述

这里涉及到幂次求特征值和特征向量的问题。对于最大特征值,也称主特征值。
在这里插入图片描述
在这里插入图片描述

邻接矩阵的最大特征值对应的特征向量,是

3.1.3 聚类系数 clustering coefficient

用于对图中的结构信息进行区分,衡量节点邻居之间的紧密程度。

局部聚类系数是用包含该节点的三角形数除以可能的三角形数。如果为1,则说明节点的某个邻居与其他所有邻居都相邻。
在这里插入图片描述
现实世界网络的一个有趣而重要的特性是,它们的聚类系数往往比如果随机采样边缘会产生的聚类系数要高得多。

另一种聚类系数是指的ego 网络中的三角形数除以总欧诺个的可能数。

3.2 图级别特征 和 图核

这里主要关注显示的特征提取。

3.2.1 bag of nodes

通过聚合节点的信息来表达图的信息,类似bag of word,但只能表达局部信息,难以表达全局信息。

3.2.2 WL kernel

提升bag of node的策略是通过迭代来聚合邻居。
在这里插入图片描述

3.2.3 graphlets and path-based methods

graphlets 图元,即小的基本图结构,通过对不同的graphlet进行计数来获得图的特征。但难点在于如何对各种图元进行计数。可替代的方式是用基于路径的方法,如基于随机游走的方法等。

基于随机游走的方法:在图上进行随机游走,统计节点度序列。

3.3 邻居覆盖检测

以上两种是用于分类任务,邻居覆盖检测主要用于关系预测。一般节点之间越相似,则节点对之间越有可能存在一条边(关系),当相似度超过阈值时,就认为节点之间存在一条边。

3.3.1 局部

最简单的
在这里插入图片描述
但这种容易受到极端值的影响,如某节点只有一个邻居,则相似度最大为1.

为了解决上述问题,对相似度进行正则化。Sorensen index定义如下:
在这里插入图片描述

Salton index:
在这里插入图片描述
Jaccard overlap:
在这里插入图片描述

除了上述直接对邻居数量进行统计的,还有计算邻居的重要性。

Resource Allocation (RA) index
在这里插入图片描述
Adamic-Adar (AA) index
在这里插入图片描述
低度节点的邻居具有更多的信息,故以上两种都对于低度邻居给了较大的权重。

3.3.2 全局覆盖度量

局部覆盖只针对有相同邻居的节点对,而全局覆盖度量可以对同一个社区中的节点进行度量。

Katz index

katz 是计算两节点之间的全部路径,其中不同长度的路径的权重不同。
在这里插入图片描述
根据以下定义
在这里插入图片描述
Katz index转为

在这里插入图片描述
缺点:Katz是计算路径,则高度节点与低度节点相比,显然有更多条路径。

LHN index

为了避免Katz的缺点,LHN使用真实路径与期望的比值,即:
在这里插入图片描述
E[A]E[A]E[A]是基于配置模型计算而来的,即固定节点的度,随机再生成图,具体计算如下:
在这里插入图片描述
其中m是图中边的总数。可以理解为节点u有du2m\frac{d_u}{2m}2mdu??的概率与节点v相连。根据此,显然:
在这里插入图片描述
但这种计算对于长度超过3的较为困难,往往只能依赖于最大特征值来近似。pip_ipi?是节点u到其他节点长度为i的路劲数,
在这里插入图片描述
p最终会收敛于特征向量中心度相连

random walk

定义随机游走矩阵P=AD?1P=AD^{-1}P=AD?1,则随机游走计算公式如下:
在这里插入图片描述

定义基于随机游走的相似度:

在这里插入图片描述

3.4 图拉普拉斯 和 谱方法

针对节点聚类,学习节点的表示。

3.4.1 图拉普拉斯

L=D?AL=D-AL=D?A
其性质包括

  1. L是对称的,半正定的
  2. xTLx=∑(u,v)∈E(X[u]?X[v])2x^TLx=\sum_{(u,v) \in E} (X[u]-X[v])^2xTLx=(u,v)E?(X[u]?X[v])2
  3. L有N个非负特征值,最小的为0
  4. 拉普拉斯矩阵特征值0的集合重数对应图的连通分量数

两种拉普拉斯正则化
在这里插入图片描述
在这里插入图片描述

3.4.2 图割和聚类

是通过最小化图割来实现聚类。

以下为最简单的图割,但会导致出现孤立节点。
在这里插入图片描述
增加正则化项,保证分割后每部分保持一定的大小
在这里插入图片描述
其中∣Ak∣|A_k|Ak?是第k部分节点的数量。

NCut保证各个类别的中边的平衡。
在这里插入图片描述
vol(Ak)=∑u∈Aduvol(A_k)=\sum_{u \in Ad_u}vol(Ak?)=uAdu??

一个一般的谱聚类
在这里插入图片描述

reference

  1. William L. Hamilton. (2020). Graph Representation Learning.
    Synthesis Lectures on Artificial Intelligence and Machine Learning, Vol. 14,
    No. 3 , Pages 1-159. (https://www.cs.mcgill.ca/~wlh/grl_book/files/GRL_Book.pdf)
  2. https://www.bilibili.com/video/BV1MK4y1Y7RW?t=571
  3. 幂次迭代求特征向量:https://wenku.baidu.com/view/dcf43be8f80f76c66137ee06eff9aef8941e486d.html