Task02 图的基本表示和特征工程
1 图的基本表示
1.1 图的基本表示
- Objects:nodes(节点)、vertices(顶点)表示为
- Interactions(关系):links、edges表示为
- System:network、graph表示为
1.2 设计本体图
- 如何设计本体图,取决于将来想解决什么样的问题
- 有些时候,本体图是唯一的、无歧义的
1.3 图的类型
- 无向图:连接是无方向的
- 有向图:连接是有方向的
- 异质图:节点和连接都存在不同的类型
- 二分图(Bipartite Graph)
- 节点只有两类
- 展开二分图:将连接了另一类的节点进行分别连接
1.4 节点连接数
- 无向图:平均度为
- 有向图:平均度为
1.5 邻接矩阵Adjacency Matrix
-
无向图:
- 邻接矩阵是对称阵 ,主对角线为0,
- 连接总数:
- 沿行或列求和均可:,
-
有向图
- 邻接矩阵是非对称矩阵,,主对角线为0,
- 连接总数:
1.6 连接列表、邻接列表
- 连接列表:只记录存在连接的节点对
- 邻接列表:只记录相关连接的节点,每个节点占用一行
1.7 其他类型的图
-
Unweighted(无权图、无向图)
-
Weighted(有权图、无向图)
-
Self-edges(self-loops)(带自循环的图,无向图)
-
Multigraph(多种通路,无向图)
1.8 图的连通性
-
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
2 传统图机器学习(人工特征工程+机器学习)
2.1 特征分类
- 属性特征:Weight、Ranking、Type、Sign、多模态特征(图像、视频、文本、音频)
- 连接特征
2.2 传统机器学习步骤
- 把节点、连接、全图变成D维向量
- 将D维向量输入到机器学习模型中进行训练
- 给出一个新的图(节点、连接、全图)和特征,进行预测
2.3 节点层面的特征工程
- 主要流程:给出,学习
- 半监督节点分类任务:使用已知节点图,预测未知节点的类别
- 节点特征:Node degree、Node centrality(节点重要度)、Clustering coefficient(聚集系数)、Graphlets(子图模式)
节点重要度(Node centrality):
- Eigenvector centrality
公式:,节点邻居节点的重要度求和
等价求解:,求邻接矩阵的特征值和特征向量
- Betweenness centrality:一个节点是否处于交通要道上
公式:
其中,分子表示其中有多少对节点的最短距离通过节点;分母表示除了节点之外,两两节点对数(对于连通域,分母都相同)
- Closeness centrailty:去哪儿都近
公式:
其中,分母表示节点到其他节点最短路径长度求和
聚集系数(Clustering coefficient):
- 衡量节点有多抱团
- 公式:
其中,分子表示节点相邻节点两两也相连个数(三角形个数),分母表示节点相邻节点两两对数
- ego-network(自我中心网络):计算三角形个数
子图(Graphlets):
- Graphlets Degree Vector(GDV)计算方式:提取某一个节点的其余节点的子图个数,可以构建一个向量
- 5个节点的graphlets有73个子图个数,GDV具有73维的向量
2.4 连接层面的特征工程
-
通过已知连接补全未知连接
-
方案:直接提取link的特征,把link变成D维向量
-
Link Prediction:
- 随时间不变的(蛋白质分子):随机删除一些连接,然后再预测
- 随时间变化的(论文引用、社交网络):使用上一个时间区段的图预测下一个时间区段的L个连接,选出Top N个连接,将这些连接和下一个真实时刻的连接进行比较,用于分析模型性能
-
具体步骤:
- 提取连接特征,转变为D维向量,计算分数
- 将分数进行从高到低降序排列
- 获取Top N个连接
- 与真实连接进行比较,并分析算法性能
连接特征分类:
- 基于两节点距离(Distance-based feature)
只看最短路径长度,忽略个数
- 基于两节点局部连接信息(Local neighborhood overlap)
共同好友个数(Common neighbors):
交并比(Jaccard's coefficient):
共同好友是不是社牛(Adamic-Adar index):
- 基于两节点在全图的连接信息(Global neighborhood overlap)
Katz index:节点和节点之间长度为的路径个数
计算方式:
例如:计算
节点 和节点 之间长度为 的路径个数是 矩阵的第 行第 列元素。
,其中为折减系数,
最后,
2.5 全图层面的特征工程
- 目标:提取出的特征应反映全图结构特点
- 使用Bag-of-Words(BoW)方法,可以应用于图,即将图看成文章,将节点看作单词,但是无法表示连接
- 区别:计算全图的Graphlet个数,而非特定节点领域Graphlet个数
- 公式:,表示第个Graphlet在全图中的个数
Graphlet Kernel:
- 两个图的graphlet kernel:,两个图的Graphlet Count Vector数量积
- 计算上述公式太过复杂,该问题是NP-hard
Weisfeiler-Lehman Kernel 算法:
- 对每个阶段上色,表示如下
- 重复上述步骤,进行步,表示 K-hop 的连接
WL kernel 在计算上非常高效,复杂度是线性的,只需要关注非零元素即可
Kernel Methods:
- 可以表示两个图的数量积运算,即
3 本章总结
本次任务,主要讲解了图的基本表示和特征工程,包括:
- 图的基本表示,包括无向图、有向图、二分图、有权图、邻接矩阵、图的连通性
- 节点层面的特征工程:Node degree(节点连接度)、Node centrality(节点重要度)、Clustering coefficient(聚集系数)、Graphlets(子图模式)
- 连接层面的特征工程:基于两节点距离、基于两节点局部连接信息、基于两节点在全图的连接信息
- 全图层面的特征工程:Graphlet Kernel、Weisfeiler-Lehman Kernel、Kernel Methods