是聚类让我们“聚类”,我整理了部分深度图聚类代码,希望大家多多支持(GitHub代码):A-Unified-Framework-for-Deep-Attribute-Graph-Clustering!❤️
作者:Ziwei Zhang, Peng Cui, Wenwu Zhu
发表时间:2020年3月
论文地址:https://arxiv.org/pdf/1812.04202.pdf。
深度学习在许多领域都是成功的,从声学、图像到自然语言处理。然而,由于图的独特特性,将深度学习应用于无处不在的图数据并非易事。最近,大量的研究致力于将深度学习方法应用于图,从而在图分析技术方面取得了有益的进展。在这项调查中,我们全面回顾了不同类型的图深度学习方法。我们根据模型结构和训练策略将现有方法分为五类:图循环神经网络、图卷积网络、图自动编码器、图强化学习和图对抗方法。然后,我们主要通过跟踪其发展历史,以系统的方式对这些方法进行全面概述。我们还分析了不同方法的差异和组成。最后,我们简要概述了它们的应用,并讨论了未来可能的研究方向。
之前很少有总结图上深度学习方法区别和联系的工作,所以作者写了这篇文章。
类别 | 基础假设/目标 | 主要函数 |
---|---|---|
图循环神经网络 | 图的递归和序列模式 | 节点和图的状态定义 |
图卷积神经网络 | 图的局部和全局结构模式 | 图卷积和readout操作 |
图自编码器 | 图的低秩结构 | 无监督节点表示学习 |
图强化学习 | 图任务的反馈和约束 | 基于图的行为和奖励 |
图对抗方法 | 基于图的模型的泛化能力和鲁棒性 | 图对抗训练和攻击 |
图循环神经网络大致分为两类:节点级别循环神经网络和图级别循环神经网络。主要区别在于模式是位于节点级别并由节点状态建模,还是位于图级别并由公共图状态建模。
也被叫做图神经网络GNNs,其想法很简单:编码图结构信息,每个节点由一个低维状态向量表示。受循环神经网络启发采用了状态的递归定义:
s i = ∑ j ∈ N ( i ) F ( s i , s j . F i V , F j V , F i , j E ) s_i=\sum_{j\in \mathcal{N}_{(i)}}\mathcal{F}(s_i,s_j.F_i^V,F_j^V,F_{i,j}^E) si=∑j∈N(i)F(si,sj.FiV,FjV,Fi,jE)
y ^ i = O ( s i , F i V ) \hat{y}_i=\mathcal{O}(s_i,F_i^V) y^i=O(si,FiV)
对于以图为中心的任务,可以添加一个具有独特属性的特殊节点来表示整个图。为了学习模型参数,采用以下半监督方法:使用Jacobi方法迭代求解上述方程到一个稳定点,使用Almeida-Pineda算法执行梯度下降最小化特定任务的目标函数。
GNNs通过以上两个方程展现了重要作用。回顾过去,GNN统一了一些早期处理图数据的方法,例如循环神经网络和马尔可夫链。展望未来,GNNs的基本思想有重要启示:许多先进的GCNs和第一个公式类似,在直接节点邻域内遵循相同的信息交换框架。事实上,GNNs和GCNs可以统一到一些常见的框架中,GNNs相当于使用相同层来达到稳定状态的GCNs。
虽然GNN在概念上很重要,但是有几个缺点。首先,为了确保第一个方程有唯一解, F \mathcal{F} F必须是一个“收缩图”,
∃ μ , 0 < μ < 1 , → ∥ F ( x ) − F ( y ) ∥ ≤ μ ∥ x − y ∥ , ∀ x , y \exists \mu, 0 < \mu < 1, \to \parallel \mathcal{F}(x) - \mathcal{F}(y) \parallel \le \mu \parallel x-y \parallel, \forall x,y ∃μ,0<μ<1,→∥F(x)−F(y)∥≤μ∥x−y∥,∀x,y
直观地说,“收缩图”要求任意两点之间的距离只能在 F \mathcal{F} F操作之后“收缩“,这个严重限制了建模能力。其次,由于梯度下降步骤之间要多次迭代才能达到稳定状态,GNNs的计算成本很高。
GNNs的一个显著改进是门控图序列神经网络(GGS-NNs),作者替换了递归定义,使用GRU从而消除“收缩图”要求并支持现代化技术:
s i ( t ) = ( 1 − z i ( t ) ) ⊙ s i ( t − 1 ) + z i ( t ) ⊙ s ~ i ( t ) s_i^{(t)}=(1-z_i^{(t)})\odot s_i^{(t-1)}+z_i^{(t)} \odot \widetilde{s}_i^{(t)} si(t)=(1−zi(t))⊙si(t−1)+zi(t)⊙s i(t)
其次,作者建议使用几个顺序运行的网络来产生序列输出。
SSE采用了和上述公式类似的方法,但是SSE并没有在计算中使用GRU,而是采用随机不动点梯度下降来加速训练。该方案基本上在使用局部邻域计算稳定节点状态和优化模型参数之间交替进行,两种计算都是随机小批量的。
在图级RNNs中,不是将一个RNNs用于每个节点来学习节点状态,而是将单个RNN用于整个图以对图状态进行编码。
You等人将图RNN用于图生成问题,他们采用了两种RNN,一种生成新节点,另一种以自回归方式为新添加的节点生成变,这种分层RNN架构比传统的基于规则的图生成模型更有效地从输入图中学习,同时具有更合理的时间复杂度。
为了捕获动态图的时间信息,提出了动态图神经网络(DGNN),该网络使用时间感知LSTM更新两个交互节点及其直接邻居的表示,即考虑一步传播效应。时间感知LSTM可以很好地模拟边缘形成的建立顺序和时间间隔,这反过来有利于一系列图形应用。