Datawhale组队学习CS224W Task02

文章介绍了图在网络中的广泛应用,如社交网络和知识图谱,并强调了图神经网络在自动学习节点特征上的能力。图机器学习任务涵盖了节点、边和全图的分析,包括节点分类、子图聚类和推荐系统。图的基本表示包括节点、边和邻接矩阵,讨论了无向图、有向图和异质图等不同类型的图。此外,文章还提到了节点特征工程,如节点度、中心性和聚类系数,以及全图层面的特征工程,如图核和Weisfeiler-LehmanKernel。
摘要由CSDN通过智能技术生成

复习

  • 图在生活中广泛存在:事件网络、计算机网络、疾病网络、社交网络、交通网络、知识图谱等

  • 图神经网络是端到端的表示学习,可以自动学习特征,无需人为的特征工程

  • 图嵌入是一个 $d$ 维的嵌入向量表示节点的语义信息

  • 节点、连接、子图、全图都可以有特征

  • 图机器学习的任务包括:节点层面【判断是否有信用卡欺诈】、社团(子图)层面【用户聚类】、边层面【推荐“可能认识的人”】;图层面【判断分子是否有毒、生成新的分子结构等等】

图的基本表示

基本表示

  • Objects: nodes (节点),vertices (顶点),表示为 $N$

  • Interactions: links, edges,表示为 $E$,绝对值表示数量

  • System: network, graph,表示为 $G(N,E)$,绝对值表示数量

本体图(Ontology)

  • 如何设计本体图,取决于将来想解决什么问题

  • 有些时候,设计是唯一的,如用节点代表人物;另外一些时候,如家族、地点、时间,表达通常不唯一

图的种类

  • Undirected: 无向图【对称的,互相的】,如关系、合作

  • Directed: 有向图,如交通流

  • Heterogeneous: 异质图,节点和连接存在不同的类型,如论文的标题、作者、年份网络

  • Bipartite: 节点只有两类;每一类的节点只与另一类节点相连,如作者-论文图

节点连接数

  • 无向图:平均度为 $\bar{k}=\langle k \rangle = \frac{1}{N} \sum_{i=1}^{N} k_{i} = \frac{2E}{N}$

  • 有向图:平均度为 $\bar{k}=\frac{E}{N}$

邻接矩阵

  • 无向图:

  • 邻接矩阵是对称阵 $A_{ij}=A_{ji}$,$A_{ii}=0$ ,连接总数 $L=\frac{1}{2} \sum_{i=1}^{N} k_{i}=\frac{1}{2} \sum_{ij}^{N}A_{ij}$

  • 沿行或者列求和可以得到节点的度

  • 有向图:

  • 邻接矩阵式非对称阵,$A_{ij} \neq A_{ji}$

  • 连接总数: $L=\sum_{i=1}^N k_i^{i n}=\sum_{j=1}^N k_j^{\text {out }}=\sum_{i j}^N A_{i j}$

  • 出度 $k_i^{\text {out }}=\sum_{j=1}^N A_{i j}$ ,入度 $k_j^{i n}=\sum_{i=1}^N A_{i j}$

  • 为什么把图表示成矩阵形式,方便计算机进行处理,而且大多时候我们的图是稀疏的

连接列表、邻接列表

  • 连接列表:记录存在连接的节点对(Edge list)

Edge list: (2, 3), (2, 4), (3, 2), (3, 4), (4, 5), (5, 1), (5, 2)

  • 邻接列表:记录相关连接的节点,每个节点占用一行

1:

2:3,4

3: 2, 4

4: 5

5: 1,2

其他种类的图

  • Unweighted: 边上没有权重,邻接矩阵的数值为 0 或者 1

  • Weighted: 边上带有权重,邻接矩阵的数值为自然数,例如道路交通网络,可以边权表示流量大小

  • Self-edges (self-loops): 带有自环的无向图,主对角线元素不只有 0

  • Multigraph: 节点之间有多条边可以连接

图的连通性

  • Connected graph (无向图):任意两个节点都有路线相连;connected components 称为连通域

  • Disconected graph (无向图):邻接矩阵是 block-diagonal,而连通图在其他位置的元素也可能非 0

  • Strongly connected directed graph: 有向图中,任意两个节点都可以相互触达

  • Weakly connected directed graph: 忽略方向之后,如果任意两个节点能互相到达

  • Strongly connected components (SCCs): 强连通域;In-component:节点指向强连通域;Out-component:节点指出强连通域

传统图机器学习(人工特征工程)

学习步骤

  1. 把节点、连接、全图编码成 D 维向量

  1. 将D维向量输入到机器学习模型中进行训练

  1. 给出一个新的图(节点、连接、全图)和特征,进行预测

节点层面的特征工程

  • 流程:给出 $G=(V,E)$,学习一个 funtion: $f: V \rightarrow \mathbb{R}$

  • 半监督节点分类任务:使用已知节点图,预测未知节点的类别

  • 节点特征:Node degree、Node centrality(节点重要度)、Clustering coefficient(聚集系数)、Graphlets(子图模式)

Node degree

  • 含义:节点度表示为该节点所有边数的和

  • 特点:只看圈子人数,不看圈子质量,将所有邻接节点同等看待

Node centrality【考虑了节点重要度特征】

Eigenvector centrality
  • 含义:一个节点 $v$ 是重要的如果他被重要的邻居节点包围

  • 公式:$c_{v} = \frac{1}{\lambda} \sum_{u \in N (v)} c_{u}$,$v$ 节点邻居节点重要度求和

  • 求解:需要递归进行 (recursive manner),等价于求解 $\lambda c = Ac$ 【邻接矩阵的特征值和特征向量】

Betweenness centrality
  • 含义:一个节点是重要的如果它在很多其他节点的最短路径中 【交通咽喉,必经之地】

  • 公式:$c_{v} = \sum_{s \neq v \neq t} \frac{# \text{(shortest paths between } s \text{ and } t \text{ that contains } v )}{# \text{(shortest paths between } s \text{ and } t )}$

其中,分子表示其中有多少对节点的最短距离通过节点 $v$;分母表示除了 $v$ 节点之外,两两节点对数(对于连通域,分母都相同)

  • 案例:

Closeness centrality
  • 含义:一个节点是重要的如果它有去其他节点较小的最短路径【去哪儿都近】

  • 公式:$c_v=\frac{1}{\sum_{u \neq v} \text { shortest path length between } u \text { and } v}$

其中,分母表示节点 $v$ 到其他节点 $u$ 最短路径长度求和

  • 案例:

Clustering coefficient
  • 含义:衡量节点有多抱团

  • 公式:$e_v=\frac{#(\text { edges among neighboring nodes })}{\left(\begin{array}{c}k_v \ 2\end{array}\right)} \in[0,1]$

其中,分子表示 $v$ 节点相邻节点两两也相连个数(三角形个数),分母表示 $v$ 节点相邻节点两两对数

  • 案例:

  • Ego-network (自我中心网络): 计算三角形个数

Graphlets
  • 含义:Rooted connected,非同型的,类似于同分异构体

  • Graphlets Degree Vector(GDV)计算方式:提取某一个节点的其余节点的子图个数,可以构建一个向量

  • 案例:

5 个节点的 graphlets 有 73 个子图个数,GDV 具有 73 维的向量

连接层面的特征工程

  • 目的:通过已知连接补全未知连接

  • 方式:直接提取 link 的特征,把 link 变成 D 维向量;注意,把连接两端节点的 $D$ 维节点拼在一起,会丢失 link 本身的连接结构信息

  • Link prediction任务:

  • 随时间不变的(蛋白质分子):随机删除一些连接,然后再预测

  • 随时间变化的(论文引用、社交网络):使用上一个时间区段的图预测下一个时间区段的 L 个连接,选出 Top N 个连接,将这些连接和下一个真实时刻的连接进行比较,用于分析模型性能

  • 评估:将预测新的 link 和真实的 link 进行对比

  • 方法:还是先提取连接特征,再转为 D 维向量,计算 Link 的分数,最后进行排序选出

连接特征分类

Distance-based feature
  • 含义:两个节点之间的最短路径,【只看最短路径长度,忽略个数】

  • 案例:

Local neighborhood overlap
  • 含义:基于两节点局部连接信息

  • 共同好友个数 (Common neighbors) : $\left|N\left(v_1\right) \cap N\left(v_2\right)\right|$

  • 交并比 (Jaccard's coefficient) : $\frac{\left|N\left(v_1\right) \cap N\left(v_2\right)\right|}{\left|N\left(v_1\right) \cup N\left(v_2\right)\right|}$

  • 共同好友是不是社牛 (Adamic-Adar index): $\sum_{u \in N\left(v_1\right) \cap N\left(v_2\right)} \frac{1}{\log \left(k_u\right)}$

  • 案例:

Global neighborhood overlap

局部特征计算时可能会碰到两个节点没有共同好友的情形

Katz index

  • 节点 $u$ 和节点 $v$ 之间长度为 $K$ 的路径个数

  • 计算方式: $P^{(K)}=A^k$;例如: 计算 $P_{u v}^{(2)}=\sum_i A_{u i} * P_{i v}^{(1)}=\sum_i A_{u i} * A_{i v}=A_{u v}^2$

节点 $u$ 和节点 $v$ 之间长度为 $K$ 的路径个数是 $A_{u v}^K$ 矩阵的第 $u$ 行第 $v$ 列元素。

$S_{v_1 v_2}=\sum_{l=1}^{\infty} \beta^l A_{v_1 v_2}^l$ ,其中 $\beta$ 为折减系数, $0<\beta<1$

最后, $S=\sum_{i=1}^{\infty} \beta^i A^i=(I-\beta A)^{-1}-I$

小结:
  • 基于两节点距离:Uses the shortest path length between two nodes but does not capture how neighborhood overlaps

  • 基于两节点局部连接信息:Captures how many neighboring nodes are shared by two nodes;Becomes zero when no neighbor nodes are shared

  • 基于两节点在全图的连接信息:Uses global graph structure to score two nodes;Katz index counts # walks of all lengths between two nodes

全图层面的特征工程

  • 目标: 提取出的特征应反映全图结构特点

  • 使用 Bag-of-Words (BoW) 方法,可以应用于图,即将图看成文章,将节点看作单词,但是无法表示连接

  • 区别:计算全图的Graphlet个数,而非特定节点领域Graphlet个数

  • 公式: $\left(f_G\right)_i=#\left(g_i \subseteq G\right)$ for $i=1,2, \cdots, n_k$ ,表示第 $i$ 个 Graphlet 在全图中的个数

Graph kernel

  • 含义:Count the number of different graphlets in a graph

  • 区别(与节点层面的):Graphlets 的节点可以是孤立;计算的是全图的 Graphlets 个数,而非特定区域的

  • 案例:

两个图的 Graph kernel: $K\left(G, G^{\prime}\right)=f_G^T f_{G^{\prime}}$ ,两个图的 Graphlet Count Vector 数量积

  • 特点:计算一个图的 size 为 k 的 graphlets 属于是子图匹配问题,是 NP-Hard.

Weisfeiler-Lehman Kernel

想法:使用邻居结构迭代地丰富节点词库

  • 对每个阶段上色,表示如下

$$

c^{(k+1)}(v)=\operatorname{HASH}\left(\left{c^{(k)}(v),\left{c^{(k)}(u)\right}_{u \in N(v)}\right}\right)

$$

  • 重复上述步骤,进行 $K$ 步, $c^{(K)}(v)$ 表示 K-hop 的连接

WL kernel 在计算上非常高效,复杂度是线性的,只需要关注非零元素即可

Kernel Methods:

  • 可以表示两个图的数量积运算,即 $K\left(G, G^{\prime}\right)=\phi(G)^T \phi\left(G^{\prime}\right)$

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值