Detecting Communities from Heterogeneous Graphs:A Context Path-based Graph Neural Network Model

1.异构图如何学习节点的嵌入

  • 传统方法 meta-path
    meta-path:根据meta-path模式指导随机游走,根据生成的序列提取指定窗口范围内的元组(类似于文本skip-gram模型),优化目标是这些共现元组概率最大化
    缺点:1)定义有意义的meta-path需要专业知识,学到的节点embedding的质量高度依赖于预定义的meta-path的质量。2)随着路径长度的增加,meta-path几乎指数式增长,很难找出全部有意义的meta-path来捕获高阶关系来学习节点的嵌入。

  • 本文方法
    基于context path捕获节点之间的高阶关系,构造基于context path的图神经网络(CP-GNN),一次学习节点的嵌入

2.预备知识

  • 异构图进行社区检测的两个主要方法
    1)一个社区内只包括一种类型的节点 (本文的方法)
    2)一个社区内包含多种类型的节点

  • primary type && auxiliary type
    进行社区划分的节点类型(例如论文网络中,有作者,文章,出版机构,我们的目标是对作者就行社区划分,所以作者就是primary type,其他类型的节点就是auxiliary type

  • context pathmeta-path的区别,优点
    context path:此序列的两端是primary type的节点,中间是auxiliary type类型的节点,和meta-path相比条件宽松了,没有限制中间节点的类型。只需指定中间路径长度K和两端的主类型节点即可,两节点之间的最短路径平均长度为4-6,所以K的选择较少,工作量减小。(有特定的函数来生成context-path吗??
    meta-path:人工定义路径中各节点的类型,根据预定义的meta-path模板进行游走,两端通常是同类型的节点。当节点类型较多时,meta-path的定义方式呈指数增长。
    Detecting Communities from Heterogeneous Graphs:A Context Path-based Graph Neural Network Model_第1张图片

context neighbors:由context path连接的两端的主节点
相似之处:context path算半个meta-path,因为指定了生成序列两端的节点类型(即要准备划分社区的节点)。
context-path优点
1)能捕获高阶关系,如果两个主节点有context -path路径连接,说明两个节点有语义关系(最大化上下文邻居节点的共现概率学习节点的嵌入)
2)不用预定义meta-path,直接将想进行社区划分的节点类型固定在序列两端即可,中间的节点随机选,和meta-path相比工作量减小

3.Context Path-based Graph Neural Network(CP-GNN) model----学习节点嵌入

3-1目标函数

  • 目标函数
    最大化主节点与其所有context neighbors(也是主节点类型)的共现概率,通过梯度下降优化目标函数,来学习主节点的嵌入。
    在这里插入图片描述
    由于长度注意力机制,所以不同长度下每个节点学习到的上下文数组是不同的,基于当前K长度下的context-path提取context neighbor来构造目标函数(Z含有要学习的参数)
    Detecting Communities from Heterogeneous Graphs:A Context Path-based Graph Neural Network Model_第2张图片
    为了区分不同长度的context-path重要性,使用注意力机制为各个长度K下的context-path有不同的重要性参数,并且损失函数加了负样本的概率
    Detecting Communities from Heterogeneous Graphs:A Context Path-based Graph Neural Network Model_第3张图片

3-2.模型实现细节

1.Embedding Transformation

某一类型的辅助节点通过聚合主节点的嵌入来学习自身的embedding(通过二分图邻接矩阵聚合与辅助节点相连的主节点的信息),减少了训练的工作量(理论支撑:主节点学习embedding的时候考虑了context-path的语义信息,context-path中间是辅助节点),学习中间节点的嵌入只需学习一个权重参数。
Detecting Communities from Heterogeneous Graphs:A Context Path-based Graph Neural Network Model_第4张图片

2.Context Path Graph Neural Network Layer

  • Relation Attention
    1)除了构造目标函数时的长度注意力机制,在主节点聚合邻居信息时,不同节点类型重要性也不同(关系注意力机制)
    2)先使用graph encoder将每个图转换成一个summary vector h(通过对图中节点嵌入实行平均操作,会有dropout操作),为了方便后序计算不同类型图之间的注意力分数
    在这里插入图片描述
    3)通过graph encoder计算出当前神经网络层各个图的summary vector之后,基于此数组计算每一层神经网络中,各个图之间的注意力值
    Detecting Communities from Heterogeneous Graphs:A Context Path-based Graph Neural Network Model_第5张图片
  • Context Path Aggregation
    1)基于GNN聚合主节点的一跳邻居信息(直接的邻居),聚合时每一层中各个邻居节点之间的注意力分数不同(第K层网络相当于构造目标函数时邻居节点来自k-length context path),得到每个节点在不同k-length下的文本信息数组(此数组构造目标函数时会用到)
    在这里插入图片描述
    ~~为防止过于平滑,使用GRU(简化版的长短期记忆力网络,整合当前输入和上一节点传下来的信息)
    在这里插入图片描述
    Detecting Communities from Heterogeneous Graphs:A Context Path-based Graph Neural Network Model_第6张图片

3-3 整体过程简述

1) 初始时给各个主节点一个随机初始化表示,各个辅助节点根据主节点有个随机表示(辅助节点不用特殊训练,聚合与其相邻的主节点)
2)GraphEncoder对每个图的所有节点向量取平均,然后放入K/Q映射函数,将每个图映射成形式统一的summary vector,根据summary vector计算各个图之间的注意力分数
3)Context Path Aggregation:基于GNN让主节点对其一跳邻居的信息聚合,聚合过程中用到第二步算的注意力分数
4)目标函数:主节点与context neighbor共现的概率最大化
Detecting Communities from Heterogeneous Graphs:A Context Path-based Graph Neural Network Model_第7张图片

你可能感兴趣的:(异构图,数据挖掘,深度学习)