论文信息

论文标题:Self-supervised Learning on Graphs: Contrastive, Generative,or Predictive
论文作者:Lirong Wu, Haitao Lin, Cheng Tan,Zhangyang Gao, and Stan.Z.Li
论文来源:2022, ArXiv
论文地址:download

3 对比学习

3.1 统一的视角

  对比学习的主要目标是最大化正对之间的一致性,负对的非一致性。

  对比学习步骤总结如下:

  首先,给定一张图 g=(A,X), K 个不同的变换 T1,T1,,TK 被用于产生产生多个视图 {(Ak,Xk)}k=1K,定义如下:

    Ak,Xk=Tk(A,X);k=1,2,,K

  其次,对每一个视图,一系列的 graph Encoder {fθk}k=1K(可能共享权值也可能一样) 被用于产生不同的表示 h1,h2,,hK ,即

    hk=fθk(Ai,Xi);k=1,2,,K

  最后,对比学习的目的是最大化来自同一实例的两个视图的互信息:

    maxθ1,θ2,,θKijiαi,jMI(hi,hj)

  其中,i,j{1,2,,K}{hi}i=1K  从 g=(A,X) 产生 , 且被认为是正样本。MI(hi,hj) 表示 hi  和  hj 之间的互信息。对于不同的代理任务,{hk}k=1K 可能不是一个尺度的,可以作为节点级、子图级或图级的表示。与正样本 {hi}i=1K 对立的负样本 {h~i}i=1K 是从其他图 g~=(A~,X~) 制造出来的。这里的 αi,j{0,1} 根据不同的方案进行设计。

  图数据对比学习的设计可概括为三个主要模块:(1)数据增强策略、(2)代理和(3)对比目标。

3.2 数据增强

  在这里,我们将图数据的数据增强策略分为四类:
    • feature-based  
    • structure-based  
    • sampling-based  
    • adaptive augmentation  
  Fig. 3 显示了四种增强类型的概述。
  

3.2.1 Feature-based Augmentation

  给定一个输入图(A,X),一个基于特征的增强只对节点特征矩阵 X 或边特征矩阵 Xe 进行变换。不失一般性,我们以X 为例,由

    A~,X~=T(A,X)=A,TX(X)(12)

3.2.1.1 Attribute Masking

  Attribute Masking 随机掩蔽了一小部分属性。我们将 Attribute Masking TX(X) 定义为:

    TX(X)=X(1L)+ML(13)

  其中

    L 是掩蔽位置矩阵(masking location matrix),当 vi 的第 j 个元素被隐藏的时候 Li,j=1,否则 Li,j=0

  其中

    • L 是掩蔽位置矩阵(masking location matrix),当 vi 的第 j 个元素被隐藏的时候 Li,j=1,否则 Li,j=0;  
    • M 是掩蔽值矩阵(masking value matrix);  

  矩阵 L 通常通过伯努利分布生成或者自定义设置,比如

    • M=0 表示恒定掩蔽;  
    • MN(0,Σ) 将原始输入替换为带高斯噪声;  
    • MN(X,Σ) 代表在输入上添加高斯噪声;  

3.2.1.2 Attribute Shuffling

  Attribute Shuffling 对属性矩阵 X 进行行变换,也就是说,增广图由与原始图相同的节点组成,但它们位于图的不同位置,接收不同的上下文信息。

  TX(X) 被定义为

    TX(X)=X[idx,:](14)

  其中 idx 是一个包含 1N 的列表,但是经过随机打乱

3.2.2 Structue-based Augmentation

  给定一个图 (AX),一个基于结构的增强器只对相邻的矩阵 A 进行转换,如下所示

    A~,X~=T(A,X)=TA(A),X(15)

3.2.2.1 Edge Perturbation

  通过随机添加或去除一定比例的边来扰动结构上的连通性。我们指定边扰动的 TA(A)

    TA(A)=A(1L)+(1A)L(16)

  其中 L 是一个扰动位置矩阵,当 vivj 之间的边被扰动的时候 Li,j=Lj,i=1,否则 Li,j=Lj,i=0

3.2.2.2 Node Insertion

  节点插入,添加 K 个节点 Va={vN+k}k=1K 到节点集 V 且在VaV 之间添加一些边。对于结构转换 A~=TA(A),我们有 A~:N,:N=A.。给定连接比率r,我们有

    p(A~i,j=A~j,i=1)=r,p(A~i,j=A~j,i=0)=1r(17)
  其中:N+1i,jN+K

3.2.2.3 Edge Diffusion

  边缘扩散生成原始图结构的不同拓扑视图,一般的边缘扩散过程定义为

    TA(A)=k=0ΘkSk(18)

  其中:
    SRN×N 是广泛的转移矩阵,常用的两种(1) Personalized PageRank (PPR);(2) Heat Kernel (HK);
    Θ 是加权系数,且k=0Θk=1Θk[0,1]

  对于PPR:

    TAPPR(A)=α(In(1α)D1/2AD1/2)1
    且 S=D1/2AD1/2Θk=α(1α)k

  对于 HK:

    TAHK(A)=exp(tAD1t)
    且 S=AD1Θk=ettk/k!

3.2.3 Sampling-based Augmentation

  给定一个输入图 (AX),一个基于采样的增强器对相邻的矩阵 A 和特征矩阵 X 都进行变换,如下所示

    A~,X~=T(A,X)=A[S,S],X[S,:](20)

  其中:SV

  这里列出 5 种常用的采样策略去获得S

    • uniform sampling  
    • ego-nets sampling  
    • random walk sampling  
    • importance sampling  
    • knowledge-based sampling  

3.2.3.1 Uniform Sampling

  均匀采样从 V 中均匀采样给定数量的节点 S,并直接去除剩余的节点。

3.2.3.2 Ego-nets Sampling

  给定一个典型的具有 L 层的图编码器,节点表示的计算只依赖于它的 L-hop 邻域。特别的对于每个节点vi,转移矩阵T()采样 viL-hop 邻居。这里 S 定义为:

    S={vjd(vi,vj)L}(21)

  其中,d(vi,vj) 是节点 vivj 之间的最短路径。

  Ego-nets Sampling本质上是广度优先搜索(BFS)抽样的一个特殊形式。

3.2.3.3 Random Walk Sampling

  从节点vi 开始在图 g 上进行随机游走。该行走以与边权值成正比的概率迭代地移动到它的邻域。此外,在每一步中,行走以一个正的概率 α 返回到起始节点 vi。最后,将被访问的节点收集到一个节点子集 S 中。

3.2.3.4 Importance Sampling

  给定一个节点 vi,我们可以根据相邻节点的重要性对子图进行采样,重要得分矩阵 M 定义为

    M=α(In(1α)AD1)(22)

  其中,α[0,1]

  对于给定的节点 vi,子图采样器选择由vi 锚定的 topk 个重要邻居组成一个子图,所选节点的索引表示为 S=top_rank(M(i,:),k)

3.2.3.5 Knowledge Sampling

  基于知识的抽样将领域知识整合到子图抽样中。例如,采样过程可以通过计算分子图中经常发生的子结构和生物信息学子结构,从而形式化为基于库的匹配问题。

3.2.4 Adaptive Augmentation

  通常使用注意力分数或梯度来指导节点或边的选择。

3.2.4.1 Attention-based

  基于注意力的方法通常为节点或边定义重要性分数,然后根据它们的重要性来数据增强。

  例如,GCA[40]建议保留重要的结构和属性不变,同时干扰可能不重要的边缘和特征。具体来说,边去除和特征掩蔽的概率应该与它们的重要性密切相关。给定一个节点中心性度量 φc():VR+ ,它将边中心性定义为两个相邻节点的中心性得分的平均值si,j=logφc(vi)+φc(vj)2,边 ei,j 的重要性定义为:

    pi,j=min(smaxsi,jsmaxμspe,pτ)(23)

  其中,pe 是一个控制去除边的总体概率的超参数,smaxμs{si,j}j=1N 的最大值和平均值。pτ<1 是一个截止概率,用于截断概率,因为极高的去除概率会过度破坏图的结构。

  节点中心性可以定义为度中心性、特征向量中心性或 PageRank 中心性,从而产生三个变量。基于节点重要性的属性屏蔽与上面相同,并且不会被重复。

3.2.4.2 Gradient-based

  与 GRACE 中简单的均匀边去除和插入不同,GROC在边梯度信息的引导下自适应地执行基于梯度的增强。具体来说,它首先将两个随机变换 T1()T2() 应用于图 g=(A,X),得到两个视图,以概率 r1r2 独立屏蔽节点属性,然后计算这两个视图之间的对比损失 Lssl。对于给定的节点 vi,将一个边去除候选集定义为

    S={(vi,vk)vkNi(l)}(24)

  并将一个边插入候选集定义为

    S+={(vi,vk)vk(vmBNm(l)Ni(l))}(25)

  其中:BV 是一个包含节点的 batch。 
  S+ 被边集合 (vi,vk) 限制,这里 vi 作为anchor node,vk 在其他一些锚点 vmvil-hop 邻域内,但不在节点 vil-hop 邻域内。

  最后,我们反向传播损失 Lssl,得到 SS+ 中每条边的梯度强度值。通过在 S 中去除具有最小边梯度幅度值的边缘子集,并在S+ 中插入具有最大边缘梯度幅度值的边子集,在 S+ 中插入具有最大边缘梯度幅度值的边子集。

3.3 Pretext Task

  对比学习的目的是使两个联合抽样的正对的一致性最大化。根据图视图的定义,视图的尺度可以是局部的、上下文的或全局的,分别对应于图中的节点级、子图级或图级。

  因此,对比学习可以在相同或不同的尺度上对比两个图视图,从而导致两类:(1)同尺度对比,(2)不同尺度对比。

  1.同尺度对比

    • node-node   
    • graph-graph   

  2.不同尺度对比

    • node-subgraph  
    • node-graph contrasting  

  我们从这两个角度对现有的方法进行分类,并以一个统一的框架呈现,如图4所示

  

3.3.1 Contrasting with the same-scale

  相同尺度的对比学习根据观点的不同尺度进一步细化为三类:local-local、context-context 和 global-global 对比。

3.3.1.1 Global-Global Contrasting

GraphCL

  采用四种类型的图增强 {Tk}k=14 来合并各种先验:(1) Node Dropping  T1() ; (2) Edge Perturbation  T2() ; (3) Attribute Masking  T3() ; (4) Subgraph Sampling  T4()

  给定一个图gi=(Ai,Xi)G,它首先应用一系列图增强 T(),随机选择从 {Tk}k=14 生成一个增强图g~i=(A~i,X~i)=T(Ai,Xi),然后学习预测两个图是否来自同一图。具体来说,这是一个共享的图级 Encoder  fγ()  用于获得图级表示 hgi=fγ(Ai,Xi)  且   h~g~i=fγ(A~i,X~i)。最后,学习目标的定义如下

    maxθ1|G|giGMI(hgi,h~g~i)(26)

Contrastive Self-supervised Learning (CSSL)

   对比自监督学习(CSSL)遵循一个与 GraphGL 非常相似的框架,不同的只是数据增强的方式。不仅有节点的删除,它还认为节点插入是一种重要的增强策略。具体来说,它随机选择一个强连通的子图 S,去除 S 中的所有边,添加一个新的节点 vi,并在 viS 中的每个节点之间添加一条边。

Label Contrastive Coding (LCC)

  提出了标签对比编码(LCC),以鼓励类内的紧凑性和类间的可分离性。

  为了增强对比学习,LLC 引入了一个动态标签存储库(dynamic label memory bank )和一个动量更新编码器(momentum updated encoder)。具体来说,查询图((gq,yq)(gq,yq) 和关键图(key graph)(gk,yk)由两个图级编码器 fγq()  和  fγk() 进行编码,分别得到图级表示 hgq  和  hgk。如果 hgq  和 hgk 具有相同的标签,则认为它们为正对,否则就认为它们为负对。标签对比损失鼓励模型来区分正对和负对。对于编码查询(gq,yq),其标签对比损失计算为

    maxγqlogi=1mIyi=yqexp(hgqhgk(i)/τ)i=1mexp(hgqhgk(i)/τ)(27)

  其中 m 代表 memory bank 的大小,Iyi=yq 是一个指示器函数(indicator function),用于确定内存库中第 i 个关键图 gk(i) 的标签是否与 yq 相同。fγk() 的参数 γk 遵循一个基于动量的更新机制,如 Moco[2] 。

    γkαγk+(1α)γq(28)

  其中,α[0,1) 是控制 γk 演化速度的动量权重。

3.3.1.2 Context-Context Contrasting

Graph Contrastive Coding (GCC)

  图对比编码(GCC)是一个图自监督的预训练框架,它捕获了多个图的图拓扑属性。具体来说,它首先图为每个图 gG 采样多个基于随机游走的子图,并放在一个 memory bank S。查询子图(query subgraph) gqS 和关键子图(key subgraph)gkS 由两个图级编码器 fγq()fγk() 编码,并分别获得图级表示hgqhgk。如果 gqgk 从同一个图中采样,则它们被认为是正对,否则它们是负对。对于编码查询 (gqyq),其中 yq 是它从其中采样的图的索引,它的图的对比损失被计算为

    maxγqlogi=1|S|Iyi=yqexp(hgqhgk(i)/τ)i=1|S|exp(hgqhgk(i)/τ)(29)

  其中,Iyi=yq 是一个指示器函数,用于确定 memory bank 和 query graph gq中的第 i 个key graph gk(i) 是否从同一图中采样。fγk() 的参数 γk 遵循基于动量的表达式形式的更新。

3.3.1.3 Local-Local Contrasting

GRACE

  GRACE 侧重于节点级别上的对比。给定一个图 g=(A,X),它首先生成两个扩充图 g(1)=(A(1),X(1))=T1(A,X)g(2)=(A(1),X(2))=T2(A,X)。然后应用一个共享编码器 fθ() 生成它们的节点嵌入矩阵 H(1)=fθ(A(1),X(1))H(2)=fθ(A(2),X(2))。最后,每个正对的成对目标 (hi(1),hi(2)) 定义如下:

    L(hi(1),hi(2))=logeD(hi(1),hi(2))/τeD(hi(1),hi(2))/τ+Neg(30)

  其中,Neg 的定义:

    Neg=k=1N1ki[eD(hi(1),hk(1))/τ+eD(hi(1),hk(2))/τ](31)

  其中,eD(hi(1),hk(1))/τ 为视图内负对,eD(hi(1),hk(2))/τ 为视图间负对。那么,要最大化的总体目标被定义为:

    maxθ12Ni=1N[L(hi(1),hi(2))+L(hi(2),hi(1))](32)

GCA 和 GROC 

  GCA 和 GROC 采用了与 GRACE 相同的框架和目标,但具有更灵活和自适应的数据增强策略。SEPT 提出的框架类似于GRACE,但它是专门为特定的下游任务(推荐)设计的,通过将不同视图对比学习与半监督三训练相结合。从技术上讲,SEPT 首先用用户的社会信息来增强用户数据,然后在增强的视图上构建三个图编码器,一个用于推荐,另外两个用于预测未标记的用户。给定某个用户,SEPT 将预测标签与目标用户高度一致的节点作为正样本,然后鼓励目标用户与正样本之间的一致性。

Cross-layer Contrasting (GMI)

  给定一个图 g=(A,X),利用图编码器 fθ() 得到节点嵌入矩阵 H=fθ(A,X)。然后交叉层节点对比可以定义为

    maxθ1Ni=1NMI(hi,xi)(33)

  其中,与 hi 形成对比的负样本是 Neg(hi)={xjvjNi}。类似地,跨图层的边缘对比度可以被定义为

    maxθ1Ni=1NvjNiMI(wi,j,Ai,j)(34)

  其中,wi,j=σ(hihjT) 和与 wi,j 形成对比的负样本为 Neg(wi,j)={Ai,kvkNiandkj}

STDGI

  将互信息最大化的思想扩展到时空图(spatial-temporal graphs)中。具体来说,给定 tt+k 时刻的两个图 gt=(A,X(t))gt+k=(A,X(t+k)),利用共享图编码器 fθ() 得到节点嵌入矩阵 H(t)=fθ(A,X(t))。此外,它通过随机排列节点特征生成一个增强图,得到 g~t+k=(A,X~(t+k))=T(A,X(t+k))。最后,将学习目标定义如下

    maxθ1Ni=1NMI(hi(t),xi(t+k))(35)

  其中,与 hi(t) 相比的负样本是 Neg(hi(t))=x~i(t+k)

BGRL 

  受 BYOL 的启发,BGRL提出执行不需要负样本的自监督学习,从而摆脱潜在的二次瓶颈。具体来说,给定一个图 g=(A,X),它首先生成两个增强图视图 g(1)=(A(1),X(1))=T1(A,X)g(2)=(A(1),X(2))=T2(A,X)。然后应用两个图编码器 fθ1()fθ2() 来生成它们的节点嵌入矩阵 H(1)=fθ1(A(1),X(1))H(2)=fθ2(A(2),X(2)) 。此外,使用节点级预测头 gω() 输出 Z(1)=gω(H(1)) 。最后,将学习目标定义如下

    maxθ1,ω1Ni=1Nzi(1)(hi(2))Tzi(1)hi(2)(36)

  其中,参数 θ2 被更新为参数 θ1 的指数移动平均数(EMA),如在 Eq. 28 中所做的那样。

SelfGNN

  与 BGRL 的不同之处仅在于目标函数的定义。与 Eq. 36 不同。SelfGNN 直接以 MSE 的形式定义了隐式对比项:

    minθ1,ω1Ni=1Nzi(1)hi(2)2(37)

  其中,与 hi 形成对比的负样本是 Neg(hi)={zj}vjV,ji

HeCo

  考虑元路径集 Φk 中的元路径 {Φk}k=1K ,如果节点 vi 和节点 vj 之间存在元路径 vi,那么 vj 可以看作是在节点 vi 的元路径邻域 NiΦk 中,从而生成一个基于相邻矩阵的元路径 AΦk。HeCo 首先应用两个图编码器fθ1sc()fθ2mp() 获得节点嵌入Hsc=fθ1sc(A,X)Hmp=fθ2ml({AΦk}k=1K,X) ,然后为定义正样本和负样本,HeCo首先定义一个函数 Ci(j)=k=1KI(jNiΦk)来计算连接节点vivj 的元路径的数量。然后构造一个集合 Si={jjV and Ci(j)0}Ci(j)0},并根据 Ci(j) 的值对其进行降序排序。然后从 Si 中选择顶部的 Tpos 节点作为正样本 Pi,其余的直接作为负样本 Ni。最后,学习目标可以定义如下

    maxθ1,θ21Ni=1NlogvjPieD(hisc,hjmp)/τvk{PiNi}eD(hisc,hkmp)/τ(38)

3.3.2 Contrasting with the cross-scale

  基于两种观点的不同尺度,我们进一步将跨尺度对比的范围细化为三类:local-global、local-context 和 context-global contrasting

Deep Graph Infomax (DGI)

  提出了深度图 Infomax(DGI) 来对比 patch representations 和相应的 high level summary of graphs。首先,它应用一个增强变换 T() 来获得一个增强图 g~=(A~,X~)=T(A,X)。然后将这两个图通过两个图编码器 fθ1()fθ2(),分别得到节点嵌入矩阵 H~=fθ1(A~,X~)H=fθ2(A,X)。此外,利用读出函数获得图级的代表表示读出 h~g~=READOUT(H~)。最后,将学习目标定义如下

    maxθ1,θ21NviVMI(h~g~,hi)(39)

  其中,hi 为节点 vi 的节点嵌入,与 h~g~ 形成对比的负样本为 Neg(h~g~)={hj}vjV,ji

MVGRL

  最大化了节点和图的交叉视图表示之间的互信息。给定一个 g=(A,X)G,它首先应用增强获得 g~=(A~,X~)=T(A,X),然后采样两个子图 g(1)=(A(1),X(1))=T1(A,X)g(2)=(A(2),X(2))=T2(A,X) 。然后应用两个图编码器 fθ1()fθ2() 和一个投影头gω1() 得到节点嵌入矩阵 H(1)=gω1(fθ1(A(1),X(1)))H(2)=gω1(fθ2(A(2),X(2)))。此外,使用一个 READOUT 函数和另一个投影头 gω2() 来获得图级表示hg(1)=fω2(READOUT(H(1)))hg(2)=fω2(READOUT(H(2)))。对学习目标的定义如下

    maxθ1,θ2,ω1,ω21NviV[MI(hg(1),hi(2))+MI(hg(2),hi(1))](40)

  其中,与 hg(1) 对比的负样本为 Neg(hg(1))={hj(2)}vjV,ji,与 hg(2) 对比的负样本为 Neg(hg(2))={hj(1)}vjV,ji

 

posted @   别关注我了,私信我吧  阅读(796)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
· spring官宣接入deepseek,真的太香了~
历史上的今天:
2020-04-10 STL---queue
2020-04-10 STL----array
2020-04-10 STL----string
2020-04-10 括号匹配
2020-04-10 中国象棋
Live2D
点击右上角即可分享
微信分享提示