图的基本表示和特征工程
图神经网络
前言
图是描述大自然的通用语言,图数据自带关联结构。图神经网络是端到端的表示学习,可以自动学习特征,无需人为的特征工程。不同的任务类型:包括Graph层、Node层、Community(subgraph)层、Edge层。图机器学习可以和人工智能各个方向进行结合
一、图的基本表示
1.图的基本表示
Objects:nodes(节点)、vertices(顶点)表示为N
Interactions(关系):links、edges表示为E
System:network、graph表示为G(N,E)
2.图的类型
无向图:连接是无方向的
有向图:连接是有方向的
异质图:节点和连接都存在不同的类型
二分图(Bipartite Graph):节点只有两类
展开二分图:将连接了另一类的节点进行分别连接
3.节点连接数
无向图:平均度为 k ‾ = 1 N ∑ i = 1 N k i \overline{k}=\dfrac{1}{N}\sum_{i=1}^{N} k_i k=N1∑i=1Nki
有向图:平均度为 k ‾ = E N \overline{k}=\dfrac{E}{N} k=NE
4.邻接矩阵
无向图:
其邻接矩阵是对称阵,
A
i
j
=
A
j
i
A_{ij}=A_{ji}
Aij=Aji,且主对角线元素
A
i
i
=
0
A_{ii}=0
Aii=0。
连接(边)总数:
L
=
1
2
∑
i
=
1
N
k
i
=
1
2
∑
i
j
N
A
i
j
L=\dfrac{1}{2}\sum_{i=1}^{N} k_i=\dfrac{1}{2}\sum_{ij}^{N}A_{ij}
L=21∑i=1Nki=21∑ijNAij
有向图:
其邻接矩阵是非对称阵,
A
i
j
≠
A
j
i
A_{ij}\ne A_{ji}
Aij=Aji,且主对角线元素
A
i
i
=
0
A_{ii}=0
Aii=0。
5.图的连通性
Connected graph(无向图):如果能满足任意两个节点能到达的图
Disconnected graph(有向图):不能满足任意两个节点能到达的图
Giant Component:最大连通域
Isolated node:孤立节点
Strongly connected directed graph:有向图中,任意两个节点可以互相到达
Weakly connected directed graph:忽略方向之后,如果任意两个节点能互相到达
Strongly connected compoinents(SCCs):强连通域
In-component:节点指向SCC
Out-component:节点指出SCC
二、传统机器学习(人工特征工程+机器学习)
1.特征分类
节点属性特征:Weight、Ranking、Type、Sign、多模态特征(图像、视频、文本、音频)
边连接特征
2.传统机器学习
把节点、连接、全图变成D维向量
将D维向量输入到机器学习模型中进行训练
给出一个新的图(节点、连接、全图)和特征,进行预测
3.节点层面的特征工程
主要流程:给出
G
=
(
V
,
E
)
G=(V,E)
G=(V,E),学习函数
f
:
V
→
R
f:V\rightarrow\mathbb{R}
f:V→R
半监督节点分类任务:使用已知节点图,预测未知节点的类别
节点特征:Node degree、Node centrality(节点重要度)、Clustering coefficient(聚集系数)、Graphlets(子图模式)
4.连接层面的特征工程
通过已知连接补全未知连接
方案:直接提取link的特征,把link变成D维向量
Link Prediction:
随时间不变的(蛋白质分子):随机删除一些连接,然后再预测
随时间变化的(论文引用、社交网络):使用上一个时间区段的图预测下一个时间区段的L个连接,选出Top N个连接,将这些连接和下一个真实时刻的连接进行比较,用于分析模型性能
具体步骤:
提取连接特征,转变为D维向量,计算分数
c
(
x
,
y
)
c(x, y)
c(x,y)
将分数进行从高到低降序排列
获取Top N个连接
与真实连接进行比较,并分析算法性能