美文网首页
论文阅读“Contrastive multi-view repr

论文阅读“Contrastive multi-view repr

作者: 掉了西红柿皮_Kee | 来源:发表于2022-07-28 19:44 被阅读0次

    Hassani K, Khasahmadi A H. Contrastive multi-view representation learning on graphs[C]//International Conference on Machine Learning. PMLR, 2020: 4116-4126.

    摘要导读

    通过对比图的结构视图,本文引入了一种学习节点和图级别表示的自监督方法。与视图表示学习不相同的是,对于图结构的对比学习来讲,增加对比视图的数量或者增加对比编码的尺寸并不能提高性能。本文发现,最佳性能是通过对比一阶邻居的编码和图扩散来实现的。

    Intro

    GNNs需要依赖于任务标签信息来学习丰富的数据表示,而标注图数据具有一定的难度。因此,将GNNs从视觉领域迁移到图数据上存在挑战性。故而需要专门的编码器来对节点和图级别的表示进行学习。
    目前图像处理领域使用的方法是对同一张图片进行数据增强,得到多个视图的表示,然后通过对比学习获得更好的表示特征。

    Model
    本文提出的方法通过最大化一个视图的节点表示和另一个视图的图表示之间的MI来学习节点和图表示,反之亦然。

    图扩散用于生成样本图的附加结构视图,该视图与常规视图一起被子采样,并提供给两个专用的GNN,然后由一个共享的MLP来学习节点表示。然后将学习到的特征输入图池层,然后输入共享的MLP来学习图表示。鉴别器将一个视图的节点表示与另一个视图的图表示进行对比,反之亦然,并对作为训练信号的表示之间的一致性进行评分。如图所示,该方法包含以下几个组件:

    1. 数据增强机制将原始的样本图转化为一个相关联的图。这里只对图的结构进行了扩充,并没有重新初始化节点特征。接下来是一个采样器,它从两个视图中对相同的节点进行子采样,即,类似于在视觉域中的裁剪。
    2. 两个专用的图编码器GNN,每个视图对应一个,然后是一个共享的MLP,即投影部分,以学习两个视图的节点表示。
    3. 一个图池化层(readout function)加一个共享的MLP,即投影部分,以学习两个视图的图表示。
    4. 判别器使用对比的方式,将一个视图的节点表示与另外一个视图的图表示进行对比,并对其进行一致性评分。
    • Augmentations
      图的数据增强可以分为对节点特征的增强操作( masking or adding Gaussian noise,一般情况下会降低性能)和对结构特征的增强操作(通过添加或删除连接、子采样或使用最短距离或扩散矩阵生成全局视图,在图结构上操作损坏)
      作者指出,在大多数情况下,最好的结果是通过将邻接矩阵转化为扩散矩阵,并将这两个矩阵视为同一图的结构的两个一致视图。因为邻接矩阵和扩散矩阵分别提供了图结构的局部和全局视图,从这两种视图中学习到的表示之间最大限度的一致性鼓励模型同时编码丰富的局部和全局信息。
      本文采用的是将邻接矩阵转换为扩散矩阵,并将扩散矩阵的两个矩阵视为同一图结构的两个同等视图。 其中{\bf T} \in \mathbb{R}^{n \times n}是生成的转移矩阵,\Theta是权重系数,决定了全局信息和局部信息的比例。令\sum_{k=0}^{+\infty}\theta_k=1, \theta \in [0, 1],并且\lambda_i \in [0,1]是矩阵\bf T的特征值,以保证收敛性。
      给定邻接矩阵{\bf A} \in \mathbb{R}^{n \times n}和度矩阵{\bf D} \in \mathbb{R}^{n \times n},图扩散的两个实例Personalized PageRank (PPR)和heat kernel可以根据{\bf T=AD}^{-1}\theta_k=\alpha(1-\alpha)^k\theta_k=e^{-t}t^k/k!,其中,\alpha表示随机游动中的传送概率,t为扩散时间。PPR扩散和heat的扩散的封闭解分别表示为: 在子采样的过程中,从一个视图中随机采样节点及其边,并从另一个视图中选择对应的节点和边。
    • Encoders
      如图可见,分别设计了两个graph encoder应用于不同的视图:g_{\theta}(\cdot), g_{w}(\cdot): \mathbb{R}^{n \times d_x} \times \mathbb{R}^{n \times n} \rightarrow \mathbb{R}^{n \times d_h},对应的两个GCN的层定义为\sigma(\bf \tilde{A}X\Theta)\bf \sigma(SX\Theta)用于学习节点表示。
      其中,\bf \tilde{A}=\hat{D}^{-1/2}\hat{A}\hat{D}^{-1/2} \in \mathbb{R}^{n \times n}\bf \hat{A}=A+I_N\bf \hat{D} \in \mathbb{R}^{n \times n}\bf \hat{A}的度矩阵,\bf S是对应于\bf \tilde A的扩散矩阵,{\bf X} \in \mathbb{R}^{n \times d_x}是节点特征矩阵,\Theta是网络参数,\sigma是RELU激活函数。学到的表示紧接着被喂入到一个共享的映射f_\psi(\cdot):\mathbb{R}^{n \times d_h} \rightarrow \mathbb{R}^{n \times d_h},其结构为两个带有RELU的全连接层。至此,可以得到对应于同一graph的两个节点表示矩阵 为了得到图级别的表示,图池化(readout函数)拼接每个GCN层的节点表示的总和,然后将其送入单层前馈网络,使节点表示与图表示的维数大小一致: 其中,\vec{h}_i^{(l)}表示GCN第l层的i-th节点的隐含表示,L是总的GCN的层数,||是拼接操作的运算符,{\bf W} \in \mathbb{R}^{(L \times d_h) \times d_h}是网络参数,\sigma为激活函数。将readout函数应用于节点表示,对应产生两个图表示。图表示被喂入一个共享的映射
      在推断阶段,通过加和操作聚合每个视图的表示(图表示和节点表示):
    • Training
      为了以端到端的方式训练编码器,在下游任务不可知的情况下学习有意义的节点表示和图表示,本文利用深度InfoMax方法,通过对比一个视图的节点表示和另外一个视图的图表示最大化两个视图之间的MI,反之亦然。 其中,|\mathcal{G}|是训练集中包含的图的数量,|\mathcal{g}|是图\mathcal{g}中包含的节点数目,\vec{h}_i^{\alpha}i节点在\alpha视图的表示,\vec{h}_g^{\beta}是图g\beta视图的表示。经验证明,这种方法在节点和图分类上的性能始终优于对比graph-graph或多尺度的编码。
      MI被建模为一个判别器\mathcal{D}(\cdot, \cdot): \mathbb{R}^{d_h \times d_h} \rightarrow \mathbb{R}即输入的来自两个视图的节点表示和图表示最后会得到一个关于一致性的得分,这里使用了向量之间的dot product来计算得分: 作者指出,当判别器和映射head被整合到双线性层时候,在节点分类任务上略有改善。
      正负例构造:正例从联合分布中产生x_p = p([{\bf X}, \tau_{\alpha}({\bf A})], [{\bf X}, \tau_{\beta}({\bf A})]);负例从边际分布的乘积中产生x_n = p([{\bf X}, \tau_{\alpha}({\bf A})]) p( [{\bf X}, \tau_{\beta}({\bf A})])。最终,通过小批量随机梯度下降来优化模型参数。整体算法如下:

    大佬的图画的很精致,虽然有的部分看起来很平凡,但是整体的算法流程和模块设计未落俗套。值得学习!!关于邻接矩阵是数据的局部信息,而PPR那种图扩散矩阵则被看做是数据的全局信息,还有待证实。

    相关文章

      网友评论

          本文标题:论文阅读“Contrastive multi-view repr

          本文链接:https://www.haomeiwen.com/subject/zzkxwrtx.html