A Survey on Graph Structure Learning: Progress and Opportunities

2023-05-16

文章目录

    • 摘要
    • 引言
    • 预备知识
      • GSL pipline
    • Graph Structure Modeling
        • Metric-based Approaches
        • Neural Approaches
        • Direct Approaches
      • Postprocessing Graph Structures
        • Discrete Sampling
        • Residual Connections
    • Graph Regularization
        • 稀疏性
        • 平滑性
        • 社区保持

摘要

图数据广泛用于描述现实中的实体及其他们之间的联系。图神经网络高度敏感于给定的图结构,因此噪声和不完备的图会得到不满意的表示并且妨碍模型全面理解潜在的机理。图结构学习GSL旨在联合学习最优的图结构和对应的图表示。在本篇工作中,我们广泛回顾了GSL最近的进展。

引言

图神经网络的成功归功于它同时探索了图结构和属性中的丰富信息,但是给定的图数据不可避免的会包含噪声和不完备,这样会阻碍GNN在现实问题中的应用。从表示学习的角度来讲,GNN是通过聚合邻居信息来学习节点表示的。这种迭代的方式存在一个级联的效果即当一个小的噪声传递给邻居节点后,许多其他的节点的表示质量也会下降。在一些工作中提到,对图结构的轻微攻击会导致GNN做出错误的预测。因此,对于GNN,高质量的图结构是必要的。

预备知识

G=(A,X)表示一个图,其中A为邻接矩阵,X为节点特征矩阵。图结构学习的目标是在给定一个图(可能不完备)后为确定的下游任务同时学习最优的邻接矩阵A*和对应的图表示Z。

graph generation目的是生成多个结构多样的图
graph learning目的是根据给定节点属性重建同质图的拉普拉斯矩阵

在这里插入图片描述
在这里插入图片描述

GSL pipline

经典的GSL模型包含两个部分:GNN编码器和结构学习器
1)GNN encoder输入为一张图,然后为下游任务计算节点嵌入
2)structure learner用于建模图中边的连接关系

现有的GSL模型遵从三阶段的pipline即1)graph construction, 2) graph structure modeling, 3) message propagation
Graph construction
最初给定的图结构是不完备的或者压根不可用,我们需要先构造一个初步的图作为起始点。其中构造方法有KNN graph,e近邻阈值构造等方法。
Graph structure modeling
GSL的核心是结构学习器。通过建模边的连接关系优化原始图。本文将现有的结构学习方法分为三类

  • Metric-based approaches采用一个度量函数,输入节点对的嵌入来计算节点对之间的边的权重
  • Neural approaches通过神经网络在给定节点表示条件下推测边的权重
  • Direct approaches把邻接矩阵视作一个可学习的参数,在训练GNN是直接优化学习
    不同于直接的方法,metric-based和neural approaches是通过一个参数化的网络来学习边的连接性的。输入节点的表示生成一个最优的关系矩阵A*。结构学习器生成的图结构还可以进一步采用一些后续的额外操作如离散采样等方法进一步获取最终的图结构。
    Message propagation
    在获得最优的图结构后,可以在该结构上使用图编码器聚合节点特征计算节点表示。

值得注意的是,很常见的一种方式是对后两个操作重复进行。也就是说,上一次更新的表示会接着用来建模边的权重,迭代的更新图的结构和节点表示。

Graph Structure Modeling

Metric-based Approaches

Metric-based方法采用核函数计算节点对的特征或者嵌入之间的相似性来作为边的权重。基于网络同质性假设,边倾向于连接相似的节点。这些方法通过提升类内的连接优化图的结构。
在这里插入图片描述
Gaussia kernels在AGCN中,首先计算每对节点特征的马氏距离,然后使用size为k的高斯核更新拓扑结构。其中M为对称的半正定矩阵
在这里插入图片描述
在这里插入图片描述
W是可训练的矩阵
Inner-product kernels使用边的两个端点的嵌入的内积建模边的权重
在这里插入图片描述
Cosine similarity kernels使用余弦相似度建模边的权重。其中w为可训练参数。
在这里插入图片描述
Diffusion kernels使用扩散核来建模边的连接性
在这里插入图片描述
在这里插入图片描述
其中θ是置信权重,T为广义转移矩阵。对于T的常见实现有个性化pagerank和heat kernel。

Fusion of multiple kernels同时使用多个kernel联合建图。

Neural Approaches

基于神经网络的方法在给定节点特征或者表示后使用深度神经网络建模边的权重。同时还可以引入注意力机制进一步捕获节点间复杂的交互关系。比如GAT在所有一阶邻居节点中使用自注意力机制计算邻居节点的权重。GAT的提升一条主线是设计不同的注意力机制,另一条是将类transformer的全注意力结构应用子图上。不同于只考虑局部邻居节点,Transformer是在所有节点上做信息传递只是把给定的图结构作为一个软的归纳偏置,这样可以挖掘一些新的关系。由于在信息传递时不再考虑图的连接关系,因此,图的位置和结构信息如何存储便成了Transformer-based方法的重要问题。

Direct Approaches

直接式方法是将目标图的邻接矩阵视作随机变量来学习的,并不依赖于节点的表示。大量的直接式方法使用图正则化来优化邻接矩阵的。这样显示的指定了最优图的属性。因为联合优化邻接矩阵和模型参数经常会引入不可导的操作,因此无法使用基于梯度的优化方法。一些工作将初始图结构和正则整合到混合的目标函数中,另外一些操作时整合低阶先验或者交替的优化邻接矩阵和学习参数。除了常见的正则器,GNNExplainer引入了一个基于互信息的可扩展的生成损失为最终任务识别最频繁的子图结构。还有一些工作是从概率的角度来建模邻接矩阵的即假设图的结构是从某个确定的分布中采样得到的。

Postprocessing Graph Structures

在一些工作中,对得到的图结构会使用一些后续的额外操作进一步优化图结构。常见的后处理步骤包含两个即离散采样和残差连接。

Discrete Sampling

GSL模型会使用一个采样步骤即假设提纯的图是从一个确定的离散分布中通过额外的采样过程生成的。不直接把邻接矩阵视作边的连接权重,而是采用额外的采样步骤恢复图的离散特性,给结构学习器更多的灵活性来控制最终图的属性如稀疏性。
需要注意的是从离散分布中采样是不可微的。除了先前在直接式方法中提到的特定优化方法外,我们讨论传统的梯度下降,通过使用复参数化方法允许梯度可以在采样操作中传递。一个常见的方法是Gumbel-Softmax,通过从Gumbel分布中采样生成不同的图。

Residual Connections

初始的图结构如果存在的话通常会在拓扑结构上携带一些先验信息。那么很自然就可以假设最优的图结构是从原始图中简单转化而来的。其中A为原始图结构,A~为学习到的图结构。
在这里插入图片描述

Graph Regularization

为了学到的图包含一些特定的属性,还需要引入图正则技术。

稀疏性

现实中的图数据往往包含噪声或者与任务不想关的边,我们通常需要在邻接矩阵上加一个稀疏性约束项。一种常用的方法是采用l0正则。但由于最小化l0正则是个NP难问题,所以往往用L1正则代替。还有一些隐式的稀疏化操作如在计算邻接矩阵相似度时设置阈值或者采用离散采样等操作确保学到的图的稀疏性。

平滑性

把节点特征矩阵的每一行视作图中的一个信号。在图信号处理中有一个重要假设为信号在邻接节点之间变化平缓。
在这里插入图片描述

社区保持

在现实图数据中,节点在不同的拓扑簇中会有不同的标签。因此,如果边跨越多个社区则会被视作噪声。根据图谱理论,邻接矩阵的阶数与途中连接的组件数量有关。低阶图包含稠密的连接组件。因此为去除噪声边,最大保留社区结构,一般引入低阶正则项。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

A Survey on Graph Structure Learning: Progress and Opportunities 的相关文章

  • 找到一条穿过任意节点序列的最短路径?

    In 这个先前的问题 https stackoverflow com questions 7314333 find shortest path from vertex u to v passing through a vertex wOP询
  • 为什么图的 C++ 数据结构隐藏连续的整数索引?

    有向图和无向图的数据结构至关重要 众所周知且广泛使用的实现 例如Boost图库 http www boost org doc libs 1 56 0 libs graph doc table of contents html and Lem
  • 用于计算有向图上非循环路径数量的快速算法

    简而言之 我需要一个fast计算简单有向图中有多少条非循环路径的算法 By simple我的意思是没有自环或多重边的图 Apath可以从任何节点开始 并且必须在没有传出边的节点上结束 一条路径是acyclic如果没有边出现两次 我的图 经验
  • Facebook Workplace API 身份验证

    我正在开发一个与 Facebook 的 Workplace 集成的 Web 应用程序 我花了一整天的时间试图弄清楚如何使用 OAUTH 身份验证机制进行成员身份验证 由于我拥有应用程序访问令牌 我能够获取用于模拟的成员访问令牌 但是 我如何
  • 如何使用 PyQtGraph 提高速度并通过多个图分割数据?

    我正在使用 STM32 套件从串行端口读取数据 问题是我需要使用自己的时间戳来绘制 ADC 数据 这意味着 x 轴应该是我的 RTC 时间 使用毫秒 y 轴是 ADC 数据 有用于绘制串行端口的程序 但正如我所说 我需要为图表设置自己的时间
  • 如何在matplotlib中部分填充之间,如不同值的不同颜色

    I m trying to color the space between the graph line and the x axis The color should be based on the value of the corres
  • 用于时间线数据的类似 gnuplot 的程序

    我正在寻找一个类似 gnuplot用于在时间轴中绘制数据图表的程序 类似 gnuplot 在 Linux 上运行 命令行功能 GUI 对我帮助不大 可编写脚本的语法 输出为 jpg png svg 或 gif 输出应该是这样的 set5 s
  • 获取 Future 对象的进度的能力

    参考 java util concurrent 包和 Future 接口 我注意到 除非我弄错了 只有 SwingWorker 实现类才能启动冗长的任务并能够查询进度 这就引出了以下问题 有没有办法在非 GUI 非 Swing 应用程序 映
  • 如何在iPhone应用程序中创建折线图? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 大文本字段的 jQuery AJAX 上传进度

    是否可以使用 jQuery ajax 获取具有非常大文本字段的表单的上传进度 我认为客户端知道已经发送了多少字节 但是当我谷歌时 我只找到使用服务器站点代码的文件上传解决方案 这是我的 ajax 请求 ajax type POST url
  • 在skiena的书中给出的关于应用dfs在图中查找循环的代码中存在错误

    这是dfs的代码 bool processed MAXV 1 which vertices have been processed bool discovered MAXV 1 which vertices have been found
  • 如何在头文件中声明一个由c中的多个文件使用的结构?

    如果我有一个带有结构的 source c 文件 struct a int i struct b int j 如何在另一个文件中使用这个结构 即func c 我应该创建一个新的头文件 在那里声明结构并将该头包含在func c 或者我应该在头文
  • 在 X 轴刻度上渲染 HTML

    我想在 D3 图表的 x 轴上渲染 HTML 基本上 我希望轴上的每个标签都是到数据中另一列的超链接 我试过了 x domain data map function d return a href d Name a 但它根本不起作用 我得到
  • 用户上传文件夹结构

    随着网站的增长 用户上传的文件夹结构会对性能产生影响吗 例如 我考虑用这种结构来存储照片 相册 Public folder Uploads Users User ID Album ID contains all photos in the
  • Python 3.x 中的绘图

    在Python 2 6中 我使用matplotlib制作了一些简单的图表 但是 它与 Python 3 1 不兼容 有哪些替代模块可以完成相同的事情而不非常复杂 您说您想创建一些简单的图表 但没有真正说明您想要多简单或哪种类型的图表 只要它
  • ggplot2可以在一个图例中分别控制点大小和线大小(线宽)吗?

    一个使用的例子ggplot2绘制数据点组和连接每组均值的线 并使用相同的映射aes for shape并为linetype p lt ggplot mtcars aes gear mpg shape factor cyl linetype
  • 如何在 MATLAB 中绘制 3D 曲面图?

    我有一个像这样的数据集 0 1 0 2 0 3 0 4 1 10 11 12 13 2 11 12 13 14 3 12 13 14 15 4 13 14 15 16 我想在 matlab 中绘制 3D 曲面图 使列标题位于 y 轴 行标题
  • 如何在 JavaScript 中创建服务器端进度指示器?

    我想在我的网站中创建一个部分 用户可以在其中进行一些简单的操作update纽扣 这些中的每一个update按钮将发送到服务器 并在幕后进行长时间的处理 当服务器处理数据时 我希望用户有某种进度指示器 例如进度条或文本百分比 我使用 jQue
  • 如何生成类似github的影响图?

    是否有一些程序 或者我错过的一些神奇的 git 插件 可以从 git 存储库获取影响图或类似的东西 而无需通过 github 就数据收集而言 我可以生成图表 我不确定从哪里开始编写自己的代码 我假设有一些标志我可以传递给 git log 来
  • 带剖面的 3D 曲面图

    基本上 我有一个由一组时间序列组成的曲面图 我想在特定高度添加剖面图 以更好地了解一年中值高于所选阈值的时期 由此 其中显示平面但不是剖面 To This 有什么建议吗 使用 alpha 和相机仰角并没有解决问题 平面似乎仍然在人物的前面

随机推荐

  • 对一个或多个实体的验证失败。有关详细信息,请参见“EntityValidationErrors”属性。

    因为是转载文章 在此标明出处 xff0c 以前有文章是转的没标明的请谅解 xff0c 因为有些已经无法找到出处 xff0c 或者与其它原因 如有冒犯请联系本人 xff0c 或删除 xff0c 或标明出处 因为好的文章 xff0c 以前只想收
  • 一元正态分布

    d import numpy as np import matplotlib pyplot as plt from scipy stats import norm 生成100个正态分布数据 xff0c 均值为1 xff0c 标准差为2 da
  • CaptureLayer的另外一个调用例子TaskSnapshot

    在前一篇讨论中 xff0c 我们查找了系统中调用captureLayers的地方 1323 public static GraphicBuffer captureLayers IBinder layerHandleToken Rect so
  • visualsvn server 无法访问url

    IIS 发布网站 本机能访问 其它人访问不了 看一下服务端 VisualSVN Server 的服务有没有启动 x A 34 H g6 L N s 管理 服务 VisualSVN Server 备注 做为开发机子 手动优化自己的电脑吧 否则
  • JS日期加减,日期运算

    因为是转载文章 在此标明出处 xff0c 以前有文章是转的没标明的请谅解 xff0c 因为有些已经无法找到出处 xff0c 或者与其它原因 如有冒犯请联系本人 xff0c 或删除 xff0c 或标明出处 因为好的文章 xff0c 以前只想收
  • jQuery easyui 选中特定的tab

    获取选中的 Tab 1 获取选中的 tab panel 和它的 tab 对象 2 var pp 61 39 tt 39 tabs 39 getSelected 39 3 var tab 61 pp panel 39 options 39 t
  • Server Error in '/' Application. 解决办法

    Server Error in 39 39 Application Access to the path 39 E NetWeb2 Content upFile BClientExcel 大客户部通讯录导入 xlsx 39 is denie
  • easyui-datagrid 数据出不来(样式引起的bug)

    今天任务是需要从另一个项目中将某几个功能页面移植到现有的项目中 这是比较繁琐的功能 理解要移植功能的逻辑 xff08 业务逻辑 xff0c 涉及到的表和存储过程 xff09 页面样式 这么是我遇到的一个问题之一 xff1b 我需要展现一个e
  • c#切割字符串几种方法

    1 xff0c 按单一字符切割 string s 61 34 abcdeabcdeabcde 34 string sArray 61 s Split 34 c 34 oreach string i in sArray Console Wri
  • 动态链接库与静态链接库的区别

    静态链接库与动态链接库都是共享代码的方式 xff0c 如果采用静态链接库 xff0c 则无论你愿不愿意 xff0c lib 中的指令都全部被直接包含在最终生成的 EXE 文件中了 但是若使用 DLL xff0c 该 DLL 不必被包含在最终
  • ssm——小学期实训总结

    实训总结 经过这两个星期短暂的学习 xff0c 我学习了ssm的框架搭建与web前端设计基础 在第一个星期 xff0c 老师着重为我们讲了框架的原理 搭建与运用 xff1b 而在第二个星期 xff0c 重点则转移到了小组对项目的开发与研究上
  • 节点中心性

    文章目录 度中心性 Degree Centrality 特征向量中心性 Eigenvector Centrality Katz中心性 Katz Centrality Katz index PageRank中心性PageRank算法 接近中心
  • 机器学习面试知识点总结

    文章目录 计算学习理论过拟合与欠拟合过拟合欠拟合 偏差与方差最大似然估计与贝叶斯估计极大似然估计贝叶斯决策论贝叶斯估计 特征工程与特征选择特征工程逐层归一化特征选择 模型融合融合策略 评估方法与评价指标评估方法评价指标 优化算法正则化深度模
  • Multi-view graph convolutional networks with attention mechanism

    摘要 传统的图卷积网络关注于如何高效的探索不同阶跳数 hops 的邻居节点的信息 但是目前的基于GCN的图网络模型都是构建在固定邻接矩阵上的即实际图的一个拓扑视角 当数据包含噪声或者图不完备时 xff0c 这种方式会限制模型的表达能力 由于
  • An Empirical Study of Graph Contrastive Learning

    摘要 图对比学习在图表示学习领域树立了新的范式 xff0c 不需要人工标注信息 但对GCL的分析却寥寥无几 本文通过分析一般化的GCL范式的各个部分包括增强函数 xff0c 对比模式 xff0c 对比目标和负采样技术 xff0c 然后分析各
  • Data Augmentation

    自监督深度学习模型的精确性严重依赖于训练时数据的多样性和数据量 模型要想在更复杂任务上有较好的效果一般会有大量的隐藏单元 一般在训练过程中训练隐藏单元越多需要的数据越多 xff0c 即任务复杂度与参数量与需要的数据量成正比 由于训练复杂任务
  • Semi-Supervised and Self-Supervised Classification with Multi-View Graph Neural Networks

    摘要 图神经网络在图结构数据中取得了很好的效果但是大多数的模型使用的还是叫浅层的结构 xff0c 当模型层数加深时很容易过平滑 本文基于多视图来聚合更多的信息 我们首先设计两个互补的视图来描述全局结构和节点特征相似性 xff0c 然后使用注
  • GCC: Graph Contrastive Coding for Graph Neural Network Pre-Training

    摘要 目前图表示学习在许多任务上取得了很好的效果但是都是关注于具体领域的并不具有迁移性 本文借鉴预训练思想 xff0c 设计了一个自监督图神经网络框架来在多个网络中捕获一般化的网络拓扑结构属性 我们设计的预训练任务是在多个网络之间判别子图实
  • Graph Contrastive Learning with Adaptive Augmentation

    摘要 对比学习在无监督图表示学习中取得了很好的效果 xff0c 大部分图对比学习首先对输入图做随机增强生成两个视图然后最大化两个视图表示的一致性 其中 xff0c 图上的增强方式是非常重要的部分鲜有人探索 我们认为数据增强模式应该保留图固有
  • A Survey on Graph Structure Learning: Progress and Opportunities

    文章目录 摘要引言预备知识GSL pipline Graph Structure ModelingMetric based ApproachesNeural ApproachesDirect Approaches Postprocessin