SUGRL
Simple Unsupervised Graph Representation Learning(简单的无监督图表示学习)摘要
本文提出一种简单的无监督图表示学习方法以实现有效且高效的对比学习。
具体来说,本文提出的多重损失探索了结构信息和邻域信息之间的互补信息以增大类间差异,同时增加上限损失以实现正嵌入和锚嵌入之间的有限距离以减少类内差异。
此外,本文的方法从以前的图对比学习方法中删除了广泛使用的数据增强和鉴别器,同时可以输出低维嵌入,产生一个有效的模型。
贡献
首先,为了保证算法的有效性,提出了联合考虑结构信息和邻域信息来挖掘它们的互补信息,目的是扩大类间变异,以及设计一个上限损失来实现小的类内变异
其次,为了提高效率,我们将数据增强和鉴别器从对比学习中删除。这使得本文的方法很容易在大规模数据集上实现可扩展性。
最后,通过对8个公共基准数据集的综合实证研究,与11种比较方法进行了比较,验证了本文方法在节点分类方面的有效性和效率
方法
SUGRL侧重于MI最大化。在文献中,考虑到MI最大化的计算成本,SUGRL中的MI最大化被转移到对比学习,其中涉及锚嵌入,正嵌入和负嵌入 ...
SGNN学习
基于图嵌入和图神经网络的社交网络影响力最大化方法贡献:
提出了一种新的使用struc2vec图嵌入和基于图神经网络的回归器的影响力最大化方法
将影响力最大化问题看作一个伪回归任务使深度学习和机器学习的方法可以应用到这个任务中
使用LSTM单元作为GNN中的邻域聚合器
方法概述:
影响力最大化问题中,一个很重要的部分是根据节点可能的影响力对节点进行排序。
这个可能的影响力形成了一组连续的值。因此,将影响最大化的问题解释为基于特定节点特征预测形成伪回归活动的连续值集的任务。
节点特征应保持网络中节点的结构特点及其拓扑特征。为了提取和处理这些节点特征,利用struc2vec节点嵌入方法来为网络的每个节点生成合适维度的特征向量。这简化了要在网络上执行的各种机器学习和深度学习任务的适用性。
生成的节点嵌入由GNN架构进一步处理。然后将这些处理后的嵌入传递到回归器上,以预测网络中的节点所实现的最终影响力扩散。
算法的基本功能是在训练网络上训练所提出的基于GNN的模型以获得模型参数,然后在目标网络上使用该训练模型来执行影响最大化。
通过计算信息扩散模型下训练网络的节点的个体影响来生成训练 ...
PathNet学习
PathNet摘要
GNN聚合函数的同质性假设限制了他们在异配图上的学习能力。
本文揭示了图中路径级别模式可以明确的反应丰富的语义和结构信息。
因此提出了一个新的结构感知路径聚合图神经网络(PathNet),以泛化GNN到同配和异配图。
首先,本文介绍了一个最大熵路径采样器,它可以帮助我们对包含结构上下文的多条路径进行采样。
然后,本文引入了一个结构感知的递归单元组成的顺序保持和距离感知组件学习的语义信息的邻域。
最后,对路径编码后不同路径对目标节点的偏好进行建模。
挑战如何得到多个路径并编码正确的路径以获取足够的信息是极具挑战性的。
如何定义一个适当的采样器,可以避免过度膨胀的问题,同时保留有意义的结构信息
如何设计一个次序保持的聚合器。现有的GNN聚合器对Path中的order不敏感
如何捕捉路径对于不同节点的偏好
本文中,提出了一种 结构感知路径聚合图神经网络 来解决这些问题。
为了解决过度膨胀问题并保持结构,引入一个最大熵路径采样器
为了在保留高阶邻域上下文的同时对路径编码,引入一种结构感知路径编码器:具有以下优点
通过循环机制保留顺序
通过利用到目标结点的结构来捕获上 ...
HAN学习
HAN学习[TOC]
论文思路摘要本文首先提出了一种新的基于分层注意力的异构图神经网络,包括节点级和语义级的注意力。具体来说,节点级注意力旨在学习节点与其基于元路径的邻居之间的重要性,而语义级注意力能够学习不同元路径的重要性。通过学习节点级和语义级注意力的重要性,可以充分考虑节点和元路径的重要性。然后,所提出的模型可以以分层的方式通过基于源路径的邻居节点聚合特征来生成节点嵌入。
HAN模型HAN模型使用分层的注意力结构:分为节点级别的注意力和语义级别的注意力。
节点级别:学习基于元路径的邻居的权重并聚合它们得到语义特定的节点嵌入。
语义级别:判断元路径的不同,并针对特定任务得到语义特定节点嵌入的最优加权组合。
下图为HAN的整体结构图。
节点级别的注意力由于每个类型的节点具有不同类型的特征,于是本文设计了类型特定的**转换矩阵$M_{\phi_{i}}$**将不同类型的节点特征映射到同一个特征空间中。映射过程如下公式1:
$$\mathbf{h}i^{\prime}=\mathbf{M}{\phi_i}\cdot\mathbf{h}_i $$
$\mathbf{h}i$ ...
GraphSAGE学习
GraphSAGE学习1. 算法链接:[1706.02216] Inductive Representation Learning on Large Graphs
概述GraphSAGE是一个inductive的方法,在训练过程中,不会使用测试或者验证集的样本。而GCN在训练过程中,会采集测试或者验证集中的样本,因此为transductive
GraphSAGE
对邻居采样
采样后的邻居embedding传到节点上来,并使用一个聚合函数聚合这些邻居信息以更新节点的embedding
根据更新后的embedding预测节点的标签
GraphSAGE采样和聚合流程示意图
嵌入向量生成(前向传播)算法本节的内容假设模型已经完成训练,参数已经固定。
包括:
用来聚合节点邻居信息的$K$个聚合器$\mathrm{AGGREGATE}_k,\forall k\in{1,…,K}$
用来在不同的layer之间传播信息的$K$个权重矩阵$\mathbf{W}^{k},\forall k\in{1,…,K}$
下图详细描述了前向传播是如何进行的
将每个节点的特征向量作为初始的Embeddin ...
GCN学习
GCN代码简析(dgl实现)1. GCN论文:SEMI-SUPERVISED CLASSIFICATION WITH GRAPH CONVOLUTIONAL NETWORKS
GCN的逐层传播公式为:$$H^{(l+1)}=\sigma\left(\tilde{D}^{-\frac12}\tilde{A}\tilde{D}^{-\frac12}H^{(l)}W^{(l)}\right)$$
其中:
$\tilde A = A + I_N$ 表示无向图G加上了自己的邻接矩阵
$\tilde D_{ii} = \sum_j \tilde A_{ij}$ 是节点的度
$W^{(l)}$ 是l层的可学习参数
$H^{(l)} \in \mathbb R^{N \times D}$ 是l层激活后的节点Embedding,$H_{0} = X$
推导过程参考:
GNN 教程:GCN - ArchWalker
其中切比雪夫多项式近似的部分可以参考:
Chebyshev多项式作为GCN卷积核
如果想更多了解一些GCN相关的原理可以参考:
如何理解 G ...
GAT学习
GAT学习论文内容Graph Attention Networks
摘要:本文提出了一种用在图结构数据上的新的神经网络结构。
此方法利用掩蔽的自注意层来解决基于图卷积或其近似的现有方法的缺点。
通过堆叠层,节点能够关注到他们的邻域的特征,允许(隐式地)为邻域中的不同节点指定不同的权重,而不需要任何昂贵的矩阵运算(例如求逆),也不需要事先知道图结构。
解决了邻域节点重要性不同的问题
图注意力层 Graph Attention LayerGAL的输入是一组节点特征,$\mathbf{h}={\vec{h}{1},\vec{h}{2},\ldots,\vec{h}{N}},\vec{h}{i}\in\mathbb{R}^{F}$,其中$N$是节点的个数,$F$是每个节点的特征的个数。
输出:$$\mathbf{h}^{\prime}={\vec{h}{1}^{\prime},\vec{h}{2}^{\prime},\ldots,\vec{h}{N}^{\prime}},\vec{\vec{h}}{i}^{\prime}\in\mathbb{R}^{F^{\prime}}$ ...
When Do GNNs Work
When Do GNNs Work摘要
现存的多种GNN模型中,包含的一个关键的部分是邻居聚合,其中每个节点的嵌入向量是通过参考它的邻居节点更新的。
本文旨在通过以下问题为这种机制提供一种更好的理解
邻居聚合是否总是必要和有用的?答案是否定的,在以下两个情况中,邻居聚合是无益的
当一个节点的邻居节点高度不相似
当一个节点的嵌入已经和它的邻居节点相似时
本文提出了一种新的度量方式,定量的衡量这两种情况并将他们融合进一个自适应层。
问题引入
已经有研究证明,过高的聚合程度将来自不同集群的节点混合在一起,并将这种现象称为“over-smoothing”
但是,他们没有都没有从局部考虑不同的聚集度。事实上,如果我们允许聚合度在节点之间变化,GNN的性能可以显著提高。
那么,现在的问题是,如何控制单个节点的聚合程度?
为了解决以上问题,本文分析出两种聚合无用的情况
如果中心节点的邻居的学习到的特征/标签不一致(高熵),则进一步聚合可能会损害性能;
当中心节点的学习到的特征/标签与其邻居几乎相同时,不需要进一步聚合。
本文设计了一个Adaptive-lay ...
Hello World
Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub.
Quick StartCreate a new post$ hexo new "My New Post"
More info: Writing
Run server$ hexo server
More info: Server
Generate static files$ hexo generate
More info: Generating
Deploy to remote sites$ hexo deploy
More info: Deployment