关系网络特征是以图的方式表达,而模型算法的输入是变量表达(离散的或连续的),那么,图谱表达的方式是否要转化为特征向量才能作为模型算法的输入?那又如何转化?
将关系网络(图谱)转化为模型算法可处理的输入(如特征向量)通常是必要的,因为大多数传统机器学习模型(如线性回归、神经网络)无法直接处理图结构数据。
1. 节点特征提取与节点嵌入(Node Embedding)
将图中的每个节点映射为低维向量,保留其结构和关系信息。
方法:
-
直接特征提取:对于图谱中的节点(如客户),可以直接提取其属性作为特征。例如,在一个客户关系网络图谱中,客户节点可能有年龄、性别、年收入等属性,这些属性可以直接转化为特征向量的一部分。假如有三个属性,年龄(连续变量)、性别(离散变量,可编码为 0 表示男性,1 表示女性)、年收入(连续变量),那么一个客户的特征向量可能是 [30, 0, 50000]。
-
基于图结构的节点特征:可以通过计算节点在图中的结构特征来转化为向量。
- 度中心性:表示节点的连接数量。在一个资金往来关系图谱中,一个客户节点的度中心性越高,说明其与其他客户的资金往来越频繁。将度中心性作为特征向量的一个维度。例如,客户 A 在图谱中的度为 10,那么特征向量中对应度中心性的维度值就是 10。
- 接近中心性:衡量一个节点到其他所有节点的平均最短路径长度。接近中心性越高,说明该节点在图中越处于核心位置。计算出客户节点的接近中心性值后,添加到特征向量中。
-
DeepWalk/Node2Vec:通过随机游走生成节点序列,用类似Word2Vec的模型学习嵌入。
- 示例:在社交网络中,每个用户节点转化为向量,反映其社交圈特征(如连接密度、社区归属)。
-
Graph Convolutional Network (GCN):通过聚合邻居节点的特征生成嵌入。
- 示例:在论文引用网络中,每篇论文的嵌入包含其研究领域和引用关系。
输出示例:
- 节点向量:
用户A → [0.3, -0.5, 0.7]
,用户B → [0.1, 0.8, -0.2]
。
2. 边特征提取与边嵌入
- 边属性提取:图谱中的边(如客户之间的资金往来关系)可能有属性,如资金往来金额、往来频率等。这些属性可以直接作为特征向量的元素。例如,客户 A 和客户 B 之间的资金往来边,其属性为往来金额 5000 元,往来频率为每月 3 次,那么可以将这些值作为特征向量的一部分,如 [5000, 3]。
- 边的类型编码:如果边有不同的类型(如担保关系、借贷关系等),可以对边的类型进行编码。例如,将担保关系编码为 1,借贷关系编码为 2,然后将编码值作为特征向量的一个维度。
3. 图嵌入(Graph Embedding)
将整个图结构映射为单个向量,适用于图分类任务。
- DeepWalk:通过在图上进行随机游走生成节点序列,然后将这些序列作为句子,节点作为单词,使用 Word2Vec 算法进行训练,得到节点的嵌入向量。例如,在一个社交关系图谱中,对每个用户节点进行随机游走,得到一系列用户节点序列,如 [用户 A, 用户 B, 用户 C, 用户 A],将这些序列输入到 Word2Vec 中训练,最终得到每个用户节点的低维向量表示,这个向量可以作为模型的输入。
- Node2Vec:是 DeepWalk 的扩展,它在随机游走的过程中引入了有偏的随机游走策略,能够更好地捕捉图的局部和全局结构。同样在客户关系网络图谱中,使用 Node2Vec 算法可以得到每个客户节点的特征向量,该向量包含了客户在图中的结构信息和关系信息。
方法:
- Graph2Vec:将图视为文档,节点嵌入视为词,通过文档嵌入学习整体表示。
- 示例:分子结构图转化为向量,用于预测药物毒性。
- 图池化(Graph Pooling):通过分层聚合节点特征生成图级向量。
- 示例:社交网络图转化为向量。
输出示例:
- 图向量:
分子图 → [0.2, -0.1, 0.5, ...]
。
4. 邻接矩阵 + 特征矩阵
直接使用图的拓扑结构和节点属性作为输入,常见于图神经网络(GNN)。
方法:
- 输入为邻接矩阵(表示连接关系)和节点特征矩阵(如用户年龄、兴趣)。
- 示例:在交通网络中,邻接矩阵表示道路连接,节点特征包含车流量、路口位置。
输入示例:
- 邻接矩阵:
[[0, 1, 1], [1, 0, 0], [1, 0, 0]]
- 特征矩阵:
[[0.5, 0.2], # 节点1特征 [0.1, 0.9], # 节点2特征 [0.7, 0.3]] # 节点3特征
5. 手工特征工程
从图中提取统计特征或结构特征,转化为表格型数据。
方法:
- 节点级特征:度数、中心性、聚类系数。
- 边级特征:边权重、共同邻居数。
- 图级特征:直径、平均路径长度、社区数量。
示例:
- 社交网络分析:
- 用户节点特征:好友数(度数)、PageRank值(影响力)、所属社区大小。
- 图级特征:整个网络的平均聚类系数。
输出示例:
用户ID | 度数 | PageRank | 聚类系数 |
---|---|---|---|
A | 50 | 0.03 | 0.8 |
B | 12 | 0.01 | 0.2 |
6. 子图/路径特征
提取子图模式或路径信息作为特征。
方法:
- 频繁子图挖掘:识别常见子结构(如三角形、环形)。
- 路径特征:节点间最短路径长度、特定模式的路径数量。
示例:
- 化学分子图:提取官能团(如苯环)作为特征。
- 推荐系统:用户A到用户B的最短路径长度反映社交亲密度。
7. 图神经网络(GNN)的端到端处理
GNN(如GCN、GraphSAGE)可直接处理图结构,无需显式转化。视为图神经网络聚合。
流程:
- 输入邻接矩阵和节点特征。
- 通过多层消息传递更新节点表示。
- 输出节点/图嵌入或预测结果。
- GCN(图卷积网络):通过图卷积操作,将节点的特征和图的结构信息进行融合。在每一层卷积中,节点的特征会根据其邻居节点的特征进行更新。经过多层卷积后,每个节点会得到一个包含了图全局信息的特征向量。以一个金融交易网络图谱为例,使用 GCN 对交易节点进行特征提取,最终得到每个交易节点的特征向量,用于后续的风险评估模型输入。
- GraphSAGE:通过对节点的邻居节点特征进行聚合来生成节点的特征向量。具体步骤包括采样邻居节点、对邻居节点特征进行聚合(如求平均、求和等),然后将聚合后的特征与节点自身特征进行拼接或融合。例如,在一个企业关联关系图谱中,对于一个企业节点,采样其 5 个邻居企业节点,将这 5 个邻居节点的特征求平均,再与该企业自身的特征进行拼接,得到最终的特征向量。
选择方法的依据
场景 | 适用方法 |
---|---|
节点分类 | 节点嵌入(Node2Vec, GCN) |
图分类 | 图嵌入(Graph2Vec)、图池化 |
小规模图 | 手工特征工程 |
复杂关系建模 | GNN端到端学习 |