基于图神经网络的异构图表示学习:元路径引导的邻居采样与节点嵌入聚合过程
字数 3011 2025-12-24 02:09:38

基于图神经网络的异构图表示学习:元路径引导的邻居采样与节点嵌入聚合过程


1. 问题背景与目标

在现实世界中,许多图数据是异构图(Heterogeneous Graph),即图中包含多种类型的节点和边。例如,在学术网络中,节点类型有作者、论文、会议;边类型有“撰写”、“发表”等。传统的图神经网络(如GCN、GAT)主要针对同构图设计,难以直接处理异构关系。

目标:学习异构图节点的低维向量表示(嵌入),使其能捕捉节点间的语义关系和结构信息,用于节点分类、链接预测等任务。

核心挑战

  • 如何有效建模多种节点和边类型?
  • 如何选择有意义的邻居进行信息聚合?
  • 如何处理不同类型的语义关系?

2. 元路径(Meta-Path)的概念

元路径是定义在异构图上的一个关系序列,用于描述节点间的复合语义关系。
例如,在学术网络中:

  • 元路径 作者-论文-作者 表示“合作作者”关系。
  • 元路径 作者-论文-会议-论文-作者 表示“在同一会议上发表论文的作者”关系。

作用

  1. 提供语义指导:不同元路径代表不同语义(如合作、引用)。
  2. 引导邻居采样:沿元路径选择邻居,避免盲目聚合所有邻居。

3. 元路径引导的邻居采样

由于异构图通常规模大、连接复杂,直接聚合所有邻居效率低且易引入噪声。因此,我们采用基于元路径的随机游走来采样邻居。

步骤 3.1 定义元路径集合

为每种节点类型预设一组有意义的元路径。
例如,对于作者节点,可能定义元路径集合:

  • \(P_1\):作者 → 论文 → 作者(合作者)
  • \(P_2\):作者 → 论文 → 会议 → 论文 → 作者(同会议作者)

步骤 3.2 随机游走采样

对每个节点 \(v\),沿每条元路径 \(P\) 进行随机游走,生成节点序列。
例如,从作者 \(A_1\) 出发,沿 \(P_1\)

  1. 随机选 \(A_1\) 写的论文 \(Paper_1\)
  2. \(Paper_1\) 随机选作者 \(A_2\)(非 \(A_1\))。
    得到序列 \([A_1, Paper_1, A_2]\)。重复多次,得到一组游走序列。

步骤 3.3 构建邻居集合

对于目标节点 \(v\),从所有游走序列中提取固定长度的邻居(如序列中距离 \(v\) 最近的 \(k\) 个节点),形成基于元路径 \(P\) 的邻居集合 \(N_P(v)\)

意义:这样采样到的邻居具有明确的语义关系(如合作者),而非任意连接。


4. 节点嵌入聚合过程

采样后,对每个节点需要聚合来自不同元路径邻居的信息。常用分层聚合

步骤 4.1 节点级聚合(Node-level Aggregation)

对于目标节点 \(v\) 和一条元路径 \(P\),聚合 \(N_P(v)\) 中所有邻居的特征:

\[h_{v}^{P} = \text{AGG}_{\text{node}} \left( \{ h_u, \forall u \in N_P(v) \} \right) \]

其中 \(h_u\) 是邻居 \(u\) 的当前特征向量。AGG 可以是:

  • 均值聚合\(h_{v}^{P} = \frac{1}{|N_P(v)|} \sum_{u \in N_P(v)} h_u\)
  • 注意力聚合:计算 \(v\) 与每个邻居的注意力权重后加权平均。

这一步为节点 \(v\) 生成一个基于元路径 \(P\) 的语义特定嵌入 \(h_{v}^{P}\)

步骤 4.2 语义级聚合(Semantic-level Aggregation)

节点 \(v\) 可能对应多个元路径(如合作者路径、同会议路径),得到多个语义特定嵌入 \(\{ h_{v}^{P_1}, h_{v}^{P_2}, \dots \}\)。需要融合它们:

\[h_v = \text{AGG}_{\text{semantic}} \left( \{ h_{v}^{P_1}, h_{v}^{P_2}, \dots \} \right) \]

常用方法:

  • 简单平均:对所有元路径嵌入取平均。
  • 注意力融合:学习每个元路径的重要性权重,加权求和。例如:

\[ h_v = \sum_{P} \beta_P \cdot h_{v}^{P}, \quad \beta_P = \frac{\exp(s_P)}{\sum_{P'} \exp(s_{P'})} \]

其中 \(s_P\) 是可学习的标量,表示元路径 \(P\) 的重要性。

步骤 4.3 迭代更新

上述聚合过程可堆叠多层(如2层):

  • 第一层:用原始节点特征 \(h_u^{(0)}\) 聚合,得到 \(h_v^{(1)}\)
  • 第二层:用 \(h_u^{(1)}\) 作为输入,再次聚合,得到最终嵌入 \(h_v^{(2)}\)

多层聚合可以捕获高阶邻居信息(如朋友的朋友)。


5. 模型训练与优化

步骤 5.1 损失函数设计

根据下游任务设计损失函数:

  • 节点分类:用交叉熵损失:

\[ \mathcal{L} = -\sum_{v \in \mathcal{Y}} \sum_{c} y_{v,c} \log \hat{y}_{v,c} \]

其中 \(\mathcal{Y}\) 是带标签节点集,\(\hat{y}_v = \text{Softmax}(W h_v + b)\)

  • 链接预测:用负采样损失(如基于嵌入的点积):

\[ \mathcal{L} = -\sum_{(u,v) \in E} \left[ \log \sigma(h_u^T h_v) + \sum_{n \in \text{Neg}(u)} \log \sigma(-h_u^T h_n) \right] \]

其中 \(\sigma\) 是sigmoid,\(\text{Neg}(u)\) 是负采样节点。

步骤 5.2 参数学习

通过反向传播更新:

  • 节点特征变换矩阵。
  • 注意力权重参数(如果有)。
  • 分类器权重 \(W, b\)

6. 完整流程总结

  1. 输入:异构图(节点类型、边类型)、预定义元路径集合。
  2. 邻居采样:对每个节点,沿每条元路径进行随机游走,构建语义邻居集合。
  3. 嵌入聚合
    • 节点级聚合:对每个元路径,聚合邻居特征得到语义特定嵌入。
    • 语义级聚合:融合不同元路径的嵌入,得到节点最终嵌入。
    • 可堆叠多层以捕获高阶关系。
  4. 输出:所有节点的低维向量表示。
  5. 训练:根据下游任务计算损失,反向传播更新参数。

7. 关键优势与典型应用

优势

  • 语义感知:元路径引入领域知识,使嵌入具有可解释性。
  • 灵活扩展:可轻松加入新元路径,适应不同语义。
  • 高效计算:采样减少计算量,适合大规模图。

应用

  • 学术网络中的作者分类。
  • 电商网络中的商品推荐。
  • 社交网络中的社区发现。

通过以上过程,异构图表示学习能够有效地融合多种语义关系,生成高质量的节点嵌入,支撑多种下游图分析任务。

基于图神经网络的异构图表示学习:元路径引导的邻居采样与节点嵌入聚合过程 1. 问题背景与目标 在现实世界中,许多图数据是 异构图 (Heterogeneous Graph),即图中包含多种类型的节点和边。例如,在学术网络中,节点类型有作者、论文、会议;边类型有“撰写”、“发表”等。传统的图神经网络(如GCN、GAT)主要针对同构图设计,难以直接处理异构关系。 目标 :学习异构图节点的低维向量表示(嵌入),使其能捕捉节点间的语义关系和结构信息,用于节点分类、链接预测等任务。 核心挑战 : 如何有效建模多种节点和边类型? 如何选择有意义的邻居进行信息聚合? 如何处理不同类型的语义关系? 2. 元路径(Meta-Path)的概念 元路径 是定义在异构图上的一个 关系序列 ,用于描述节点间的复合语义关系。 例如,在学术网络中: 元路径 作者-论文-作者 表示“合作作者”关系。 元路径 作者-论文-会议-论文-作者 表示“在同一会议上发表论文的作者”关系。 作用 : 提供语义指导 :不同元路径代表不同语义(如合作、引用)。 引导邻居采样 :沿元路径选择邻居,避免盲目聚合所有邻居。 3. 元路径引导的邻居采样 由于异构图通常规模大、连接复杂,直接聚合所有邻居效率低且易引入噪声。因此,我们采用 基于元路径的随机游走 来采样邻居。 步骤 3.1 定义元路径集合 为每种节点类型预设一组有意义的元路径。 例如,对于作者节点,可能定义元路径集合: \( P_ 1 \):作者 → 论文 → 作者(合作者) \( P_ 2 \):作者 → 论文 → 会议 → 论文 → 作者(同会议作者) 步骤 3.2 随机游走采样 对每个节点 \( v \),沿每条元路径 \( P \) 进行随机游走,生成节点序列。 例如,从作者 \( A_ 1 \) 出发,沿 \( P_ 1 \): 随机选 \( A_ 1 \) 写的论文 \( Paper_ 1 \)。 从 \( Paper_ 1 \) 随机选作者 \( A_ 2 \)(非 \( A_ 1 \))。 得到序列 \( [ A_ 1, Paper_ 1, A_ 2 ] \)。重复多次,得到一组游走序列。 步骤 3.3 构建邻居集合 对于目标节点 \( v \),从所有游走序列中提取固定长度的邻居(如序列中距离 \( v \) 最近的 \( k \) 个节点),形成基于元路径 \( P \) 的邻居集合 \( N_ P(v) \)。 意义 :这样采样到的邻居具有明确的语义关系(如合作者),而非任意连接。 4. 节点嵌入聚合过程 采样后,对每个节点需要聚合来自不同元路径邻居的信息。常用 分层聚合 : 步骤 4.1 节点级聚合(Node-level Aggregation) 对于目标节点 \( v \) 和一条元路径 \( P \),聚合 \( N_ P(v) \) 中所有邻居的特征: \[ h_ {v}^{P} = \text{AGG}_ {\text{node}} \left( \{ h_ u, \forall u \in N_ P(v) \} \right) \] 其中 \( h_ u \) 是邻居 \( u \) 的当前特征向量。AGG 可以是: 均值聚合 :\( h_ {v}^{P} = \frac{1}{|N_ P(v)|} \sum_ {u \in N_ P(v)} h_ u \) 注意力聚合 :计算 \( v \) 与每个邻居的注意力权重后加权平均。 这一步为节点 \( v \) 生成一个 基于元路径 \( P \) 的语义特定嵌入 \( h_ {v}^{P} \)。 步骤 4.2 语义级聚合(Semantic-level Aggregation) 节点 \( v \) 可能对应多个元路径(如合作者路径、同会议路径),得到多个语义特定嵌入 \( \{ h_ {v}^{P_ 1}, h_ {v}^{P_ 2}, \dots \} \)。需要融合它们: \[ h_ v = \text{AGG} {\text{semantic}} \left( \{ h {v}^{P_ 1}, h_ {v}^{P_ 2}, \dots \} \right) \] 常用方法: 简单平均 :对所有元路径嵌入取平均。 注意力融合 :学习每个元路径的重要性权重,加权求和。例如: \[ h_ v = \sum_ {P} \beta_ P \cdot h_ {v}^{P}, \quad \beta_ P = \frac{\exp(s_ P)}{\sum_ {P'} \exp(s_ {P'})} \] 其中 \( s_ P \) 是可学习的标量,表示元路径 \( P \) 的重要性。 步骤 4.3 迭代更新 上述聚合过程可堆叠多层(如2层): 第一层:用原始节点特征 \( h_ u^{(0)} \) 聚合,得到 \( h_ v^{(1)} \)。 第二层:用 \( h_ u^{(1)} \) 作为输入,再次聚合,得到最终嵌入 \( h_ v^{(2)} \)。 多层聚合可以捕获高阶邻居信息(如朋友的朋友)。 5. 模型训练与优化 步骤 5.1 损失函数设计 根据下游任务设计损失函数: 节点分类 :用交叉熵损失: \[ \mathcal{L} = -\sum_ {v \in \mathcal{Y}} \sum_ {c} y_ {v,c} \log \hat{y}_ {v,c} \] 其中 \( \mathcal{Y} \) 是带标签节点集,\( \hat{y}_ v = \text{Softmax}(W h_ v + b) \)。 链接预测 :用负采样损失(如基于嵌入的点积): \[ \mathcal{L} = -\sum_ {(u,v) \in E} \left[ \log \sigma(h_ u^T h_ v) + \sum_ {n \in \text{Neg}(u)} \log \sigma(-h_ u^T h_ n) \right ] \] 其中 \( \sigma \) 是sigmoid,\( \text{Neg}(u) \) 是负采样节点。 步骤 5.2 参数学习 通过反向传播更新: 节点特征变换矩阵。 注意力权重参数(如果有)。 分类器权重 \( W, b \)。 6. 完整流程总结 输入 :异构图(节点类型、边类型)、预定义元路径集合。 邻居采样 :对每个节点,沿每条元路径进行随机游走,构建语义邻居集合。 嵌入聚合 : 节点级聚合:对每个元路径,聚合邻居特征得到语义特定嵌入。 语义级聚合:融合不同元路径的嵌入,得到节点最终嵌入。 可堆叠多层以捕获高阶关系。 输出 :所有节点的低维向量表示。 训练 :根据下游任务计算损失,反向传播更新参数。 7. 关键优势与典型应用 优势 : 语义感知 :元路径引入领域知识,使嵌入具有可解释性。 灵活扩展 :可轻松加入新元路径,适应不同语义。 高效计算 :采样减少计算量,适合大规模图。 应用 : 学术网络中的作者分类。 电商网络中的商品推荐。 社交网络中的社区发现。 通过以上过程,异构图表示学习能够有效地融合多种语义关系,生成高质量的节点嵌入,支撑多种下游图分析任务。