COSTA: Covariance-Preserving FeatureAugmentation for Graph Contrastive Learning

摘要

在本文中,证明了通过图增强获得的节点嵌入是高度偏倚的,在一定程度上限制了对比模型从下游任务中学习判别特征。因此,他们不是研究输入空间中的图增强,而是建议对隐藏特征进行增强(特征增强)。受矩阵草图的启发,提出了一种新的协方差保持特征空间增强框架COSTA,该框架通过保持原始特征的“良好草图”来生成增强特征。为了突出特征增强与COSTA的优势,研究了一个单视图设置(除了多视图设置),它可以节省内存和计算。

一、介绍

近年来,CL已被应用于图域。典型的图对比学习(GCL)方法通过随机增强输入来构建多个图视图,通过对比正样本和负样本来学习表征。然而,图的不规则结构使图像增强技术的适应变得复杂,并且阻碍了基于视觉的对比学习的理论分析扩展到图。因此,许多工作都集中在图对比学习(即随机边/节点/属性下降)的手工图增强(GA)的经验设计上。值得注意的是,一些最新的研究指出,随机数据增强是有问题的,因为它们的噪声可能与下游任务无关。GCL在极其稀疏的GAs(边缘丢弃率为0.9)下实现了期望的性能增益,但方法在没有GAs的情况下也获得了类似的结果。这样的观察自然提出了一个问题:除了GA之外,还有更好的GCL增强策略吗?

为此,他们表明,与特征增强(FA)获得的嵌入相比,用GA获得的嵌入具有高度偏差

1、(重点)引出的特征增强优势:

图1:节点嵌入在Cora上的分布是通过500x图增广生成的。a对应于特征增强(高斯噪声注入)。b对应于图增广(边置换和属性屏蔽)。使用二维嵌入来实现可视化。

(GA为例:首先在Cora上随机了一个节点 (Node),然后利用利用Graph Augmentation获得一个新的节点进行嵌(embedding),不断重复上述过程500次,绿色节点是对于一个节点进行500次增强后得到的嵌入分布,蓝色是这500节点的均值,红色是未经过特征增强的节点)

 如图1a所示,FA得到的嵌入总体均值位于最密集的区域,并且靠近原始样本的嵌入(未增强)。相比之下,我们在图1b的GA中看不到这种趋势。换句话说,GA引入了一些偏差,而FA产生了无偏嵌入。

此外,在GCL中采用GA往往会增加复杂性,因为GCL会比较从多个视图(例如,多个网络流)获得的节点特征,以获得同一图的相关视图。然而,这种策略在大型图上是禁止的,因为在最坏的情况下,多视图GCL需要的时间和空间复杂度是视图和节点数量的二次倍。因此,除了多视图设置之外,还研究了单视图GCL设置。

2、贡献有三个方面:

(1)指出了GCL框架中拓扑图增强带来的偏差问题,提倡特征增强策略来防止上述偏差。

(2)受矩阵草图的启发,提出了一种简单有效的GCL协方差特征增强框架COSTA,该框架通过生成原始特征的“好草图”(方差有边界)来生成增强特征。

(3)作为多视图GCL设置的替代方案,建议使用单视图GCL设置,它产生与多视图GCL相同或更好的结果,同时需要更少的内存和更短的计算时间。

二、相关工作

3.1  多视图图对比学习(MV-GCL)

MV-GCL通过最大化同一图的视图之间的互信息(MI)来学习节点表示。下面,将介绍MV-GCL的组成部分:

(1)图形增强

图形结构通过边置换来增强(边的添加删除、置换)

节点特征通过属性屏蔽来增强。(属性遮蔽部分维度,或者遮蔽部分节点)

(2)基于gnn的编码器

 这就是最常见的GCN编码器,输入节点特征,邻接矩阵等等,得到编码后的输出,公式很简单,不多介绍

(3)投影头

 投影头 θ(·) 是一个小型网络,可将表示映射到应用对比损失的空间。具有一个隐藏层的多层感知器 (MLP)

在 Zi 而不是 Hi 上定义对比损失是有益的。所以需要一个映射

(4)对比损失

 理解为InfoNCE的对比思想

3.2 单视图图对比学习(SV-GCL)

为了验证图增强和特征增强的有效性,除了 MV-GCL 之外,我们使用多视图 GCL 的一个特例,它为两个视图共享相同的增强图,因此等效于单视图图对比学习。我们注意到 SV-GCL 具有计算优势,即仅计算单个视图的特征,以及视图内特征之间的距离。不需要视图之间的距离。 SV-GCL 还提供了一种更公平的方法来比较图扩充和特征扩充的有效性,否则多视图设置将是性能提升的原因而不是图扩充策略

 三、方法

第 3.1 节介绍了动机。

第 3.2 节介绍了 COSTA,协方差保留特征空间增强框架。

第 3.3 节将 COSTA 与矩阵草图问题联系起来,生成具有理论保证的所需扩充样本

3.1 动机

FA 获得的节点嵌入 E(TFA(x))(图 1a 中的蓝色星)的期望收敛到其原始嵌入 x(图 1a 中的红色三角形),而节点嵌入的期望 E(TGA( x)) 通过 GA 得到的值与 x 的偏差很大,说明如下:

 我们通过提供一个说明性示例直观地指出了拓扑 GA 的缺陷。基于这一观察,我们假设拓扑 GA 在对比损失使用的节点嵌入中引入了大量偏差,这会降低预训练步骤的特征质量,从而影响下游任务。本节我们对这个问题进行定量分析

图 4 显示具有小度数的节点表现出更多的偏差,这证实了我们的见解,即对于通过 GNN 获得的低度数节点的节点嵌入,删除任何边缘都会显着扰乱这些嵌入。

真实世界的图(引文网络、社交网络等)遵循幂律分布(如图 5 所示)

 3.2 协方差保持特征增强

上一节表明图扩充产生偏差。对 GCL 损失采用特征增强,因为 FA 可以控制方差并减少偏差。

等式中的 P ∈ R k×n表示仿射变换,E 是随机噪声矩阵,ε 是控制近似质量的误差 k。请注意,仿射变换可以是确定性的或随机的。

3.3 通过矩阵草图增强特征

如何得到这个P

令 X ∈ R n×d 为给定的特征矩阵,P ∈ R k×n 为草图矩阵,例如随机投影或行选择矩阵。 X 的草图定义为 ∼X = P X ∈ R k×d 。通常, ∼X 包含的行数少于 X ,其中 k n 但 ∼X 仍保留 p 的许多属性。

获得增广特征矩阵 X 需要一个好的 X 草图,这样原始矩阵和草图矩阵的二阶统计量是相似的。

我们证明通过草图得到的 ∼X 满足

 通过 SVD 绘制矩阵草图。方程式的一种解决方案。  通过奇异值分解可以得到(SV D) 其中

 (1)随机行选择 (RS)

随机算法以准确性换取效率,力求高精度和低运行时间。可以通过随机堆叠原始矩阵 X 的行来构造矩阵 ∼X 的草图。

(2)随机投影(RP)

矩阵的草图可以是RP。投影矩阵定义为 P ∈ R n×k,其条目 pij 是从 N (0, 1) 中采样的。理想情况下,我们希望 P 提供一个稳定的草图,大致保持原始矩阵中所有列对之间的距离。由于密集矩阵 P 的计算非常耗时

注意到随机投影的效果始终优于所有其他策略,因为与随机选择和随机噪声策略相比,随机投影引入的误差更小。有点令人惊讶的是,尽管随机投影不是方程式的最优解。 (6),它仍然优于基于 SVD 的草图绘制。如此好的性能来自以​​下事实:(i)随机投影的误差范围足够小以保持良好的草图; (ii) 与确定性的 SVD 相比,随机投影为模型添加了随机扰动(方差是特征增强的来源),作为正则化。

四、实验部分

RQ1:图扩充中的偏差问题是什么?

RQ2:提议的特征增强是否适用于实际感兴趣的问题?它的准确性/速度与采用图形增强策略的 MV-GCL 模型以及其他模型相比如何?与 MV-GCL 模型相比,SV-GCL 是否表现良好?

RQ3:给定不同的矩阵草图方案,特征增强的性能如何?有助于所提出的特征增强方法成功的主要因素是什么?

RQ4:增强样本的数量如何影响有效性?

五、代码细节

z, z1, z2 = self.model(self.data.x, self.data.edge_index, self.data.edge_attr)#原始 增强1 增强2     n*d
     

#公式10的参数    最后选择的还是特征映射,没走随机或者SVD那些花里胡哨的         
k = torch.tensor(int(z.shape[0] * 0.5))   #k的大小是 节点的一半  就是一个数
p = (1/torch.sqrt(k))*torch.randn(k, z.shape[0]).to(self.device)    #  k*n

z1 = p @ z1    #k*n
z2 = p @ z2 
               

#以上其实就是对应公式6,  细致对应为公式10

投影头,P4尾 

h1, h2 = [self.model.project(x) for x in [z1, z2]]
     
                
这里的project就是过了两个变换一个激活函数


 self.fc1 = torch.nn.Linear(hidden_dim, proj_dim)
 self.fc2 = torch.nn.Linear(proj_dim, hidden_dim)
 def project(self, z: torch.Tensor) -> torch.Tensor:
      z = F.elu(self.fc1(z))
      return self.fc2(z)

 对比就是infornce

loss = contrast_model(h1, h2)


............省略不写了

def forward(self, h1=None, h2=None):
      l1 = self.loss(anchor=h1, sample=h2)
      l2 = self.loss(anchor=h2, sample=h1)
      return (l1 + l2) * 0.5
注:他在这是两个都做了对比,然后1/2

六、总结

定量和定性地分析了当前 GCL 方法的拓扑图扩充所产生的问题,并且已经证明这种策略存在偏差问题。为了克服这种偏见,提出了特征增强框架 COSTA。

从理论上证明了通过 COSTA 获得的增强特征的质量是有保证的,并且 COSTA 通过在单视图模式下的良好工作加快了 GCL 的速度。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值