1. 传统图机器学习的基本框架
在深度学习兴起之前,图机器学习主要依赖手工设计的特征工程方法。这种方法的核心思路是通过人工定义的特征提取规则,将图结构数据转换为传统机器学习算法能够处理的数值特征。想象一下,就像我们要向一个从未见过社交网络的人描述某个用户的重要性,我们会说"他有500个好友"(度数)、"很多大V都关注他"(特征向量中心性)、"他是不同圈子之间的桥梁"(介数中心性)——这些描述本质上就是在进行特征工程。
传统图机器学习的标准流程通常包含三个关键步骤:
- 特征设计:根据具体任务(节点分类、链接预测或图分类)设计合适的特征提取方法
- 特征提取:基于设计好的规则,从原始图数据中计算出特征向量
- 模型训练:将提取的特征输入传统机器学习模型(如SVM、随机森林等)进行训练
这种方法的优势在于特征的可解释性强,计算效率高,而且不需要大量训练数据。我在实际项目中就遇到过这样的情况:当图数据规模较小(几千个节点)时,精心设计的传统特征配合简单模型,效果往往比复杂的GNN更好,而且训练时间可能只需要几秒钟。
2. 节点级别的特征工程
2.1 重要性特征
节点重要性特征旨在量化节点在整个网络中的影响力。最常见的度数中心性(Degree Centrality)简单统计节点的连接数,就像衡量一个人的社交圈大小。但它的明显缺陷是把所有连接都同等看待——在社交网络中,被马斯克关注和被普通用户关注显然不应该具有相同权重。
特征向量中心性(Eigenvector Centrality)解决了这个问题,它认为"重要的邻居会提升节点的重要性"。数学上,这对应于邻接矩阵的主特征向量。我曾在金融风险分析项目中使用这个特征,发现它能有效识别出那些与多个高风险账户有关联的关键节点。
介数中心性(Betweenness Centrality)则从另一个角度衡量重要性,统计节点出现在多少对节点的最短路径上。这就像交通网络中的枢纽城市,即使本身规模不大,但因为处在关键位置而非常重要。计算这个特征时需要注意,当图规模很大时,全源最短路径计算会非常耗时,这时可以采用近似算法。
2.2 结构特征
结构特征关注节点局部的拓扑性质。集聚系数(Clustering Coefficient)衡量节点邻居之间的连接紧密程度,在社交网络中,这个特征可以识别"小圈子"的核心成员。计算公式是:实际存在的三角形数量除以可能的三角形总数。
Graphlet Degree Vector(GDV)提供了更精细的结构描述。它统计节点周围出现的各种小型子图(graphlet)模式。比如在蛋白质相互作用网络中,不同的graphlet模式可能对应不同的功能单元。GDV的缺点是计算复杂度高,特别是当考虑较大尺寸的graphlet时。
在实际应用中,我发现结合多种特征通常能取得更好效果。比如在社交网络用户分类任务中,同时使用中心性特征和结构特征,模型性能比单独使用任一类型特征提升15%以上。
3. 链接级别的特征工程
3.1 基于距离的特征
最简单的方法是计算两个节点之间的最短路径长度。这在交通网络的路由预测中很有效,但它的局限在于无法区分具有相同距离但连接模式不同的节点对。比如在社交网络中,两个距离为4的用户,可能是完全不同的社区,也可能属于同一个大社区。
3.2 局部邻域重叠特征
共同邻居(Common Neighbors)是最直观的度量,直接统计两个节点共享多少邻居。雅卡尔系数(Jaccard Coefficient)将其归一化到0-1范围,解决了度数差异带来的偏差。Adamic-Adar指数则更进一步,给度数低的共同邻居更高权重——在社交网络中,这意味着共享几个普通朋友比共享几个名人朋友更能说明关系强度。
我曾经在一个学术合作预测项目中对比这些方法,发现Adamic-Adar指数确实表现最好,特别是在预测初级研究者之间的新合作时。
3.3 全局邻域重叠特征
当两个节点没有共同邻居时,局部方法就失效了。Katz指数通过考虑所有长度的路径来解决这个问题,给长路径赋予较小的权重。它的计算可以表示为矩阵级数求和,有闭式解:(I-βA)^-1 - I,其中β是衰减因子。需要注意的是,β必须小于邻接矩阵最大特征值的倒数,否则级数不收敛。
在实际实现时,我通常会先计算矩阵的最大特征值,然后设置β为0.9倍的最大特征值倒数,这样既能保证收敛,又能让足够长的路径参与贡献。
4. 图级别的特征工程
4.1 Graphlet核方法
Graphlet核通过统计图中不同小型子图(graphlet)的出现频率来表征整个图。这与自然语言处理中的词袋模型很相似——把图看作"文档",graphlet看作"单词"。这种方法在分子图分类中特别有用,因为不同的官能团(如苯环、羟基)就对应特定的graphlet模式。
需要注意的是,这里的graphlet定义与节点级别的略有不同:允许不连通的子图,且不考虑根节点位置。计算复杂度是主要瓶颈,当graphlet尺寸超过5个节点时,枚举所有可能子图变得非常困难。
4.2 Weisfeiler-Lehman核
WL核通过迭代的颜色细化过程来捕获图结构信息。在每次迭代中,节点收集邻居的颜色信息并生成新的颜色标签。这个过程与GNN的消息传递机制非常相似,可以看作是GNN的前身。
具体实现时,我通常进行3-5次迭代。每次迭代后,统计各种颜色出现的次数作为特征向量。WL核的优势在于计算效率高,适合大规模图数据。在社交网络分类任务中,仅用3次WL迭代得到的特征就能达到85%以上的准确率。
5. 传统方法的现代应用
尽管深度学习已成为当前主流,但传统特征工程方法仍然在很多场景下具有独特价值。首先,它们可以作为GNN的补充特征,特别是在数据量有限的情况下。其次,这些方法计算效率高,适合需要快速响应的在线系统。最后,它们的可解释性强,在医疗、金融等对模型解释性要求高的领域尤为重要。
我在最近的一个欺诈检测项目中就采用了混合策略:先用传统方法提取关键特征,再输入GNN进行端到端训练。这种方法比纯GNN方案在查准率上提升了8%,而且分析师能够理解模型的关键决策因素。