图神经网络(五)基于GNN的图表示学习(2)基于GNN的图表示学习

5.2 基于GNN的图表示学习

 凭借强大的端对端学习能力,GNN这类模型可以非常友好地支持有监督的学习方式。但是GNN本身作为一种重要的对图数据进行表示学习的框架,只要与相应的无监督损失函数结合起来就能实现无监督图表示学习。无监督学习的主体在于损失函数的设计,这里我们分两类损失函数分别进行介绍:基于重构损失的GNN和基于对比损失的GNN [0]

5.2.1 基于重构损失的GNN

 类比自编码器的思路,我们可以将节点之间的邻接关系进行重构学习,为此可以定义如下的 图自编码器(Graph Auto Encoder)
Z = GNN ( X , A ) A ^ = σ ( Z Z T ) \begin{aligned}&Z=\text{GNN}(X,A)\\ \\ &\hat{A}=σ(ZZ^\text{T})\end{aligned} Z=GNN(X,A)A^=σ(ZZT) 其中, Z Z Z 是所有节点的表示,这里借助 GNN \text{GNN} GNN 模型同时对图的属性信息与结构信息进行编码学习。 A ^ \hat{A} A^ 是重构之后的邻接矩阵,这里使用向量的内积来表示节点之间的邻接关系。图自编码器的重构损失定义如下:
L recon = ∥ A ^ − A ∥ 2 L_\text{recon}=\Vert\hat{A}-A\Vert^2 Lrecon=A^A2
 由于过平滑问题, GNN \text{GNN} GNN 可以轻易地将相邻接点学习出相似的表达,这就导致解码出来的邻接矩阵 A ^ \hat{A} A^ 能够很快趋近于原始邻接矩阵 A A A ,模型参数难以得到有效优化。因此,为了使 GNN \text{GNN} GNN 习得更加有效的数据分布式表示,同自编码器一样,我们必须对损失函数加上一些约束目标。比如,我们可以学习降噪自编码器的做法,对输入数据进行一定的扰动,迫使模型从加噪的数据中提取出有用的信息用于恢复原数据。这种加噪的手段包括但不限于下面所列的一种或多种:

 (1)对原图数据的特征矩阵 X X X 适当增加随机噪声或进行置零处理;

 (2)对原图数据的邻接矩阵 A A A 删除适当比例的边,或者修改边上的权重值。

 另外,也可以借鉴其他自编码器中的设计思路。接下来,我们看看比较重要的 变分图自编码器(Variational Graph Autoencoder,VGAE)[6] 。VGAE的基础框架和变分自编码器一样,不同的是使用了 GNN \text{GNN} GNN 来对图数据进行编码学习。下面分 3 3 3 个方向来介绍其基础框架,包括 推断模型(编码器)、生成模型(解码器)、损失函数。

1.推断模型

q ( Z │ X , A ) = ∏ i = 1 N q ( z i ∣ X , A ) q ( z i │ X , A ) = N ( z i   ∣ μ i ,  diag ( σ i 2 ) ) \begin{aligned}&q(Z│X,A)=∏_{i=1}^Nq(\boldsymbol{z}_i\mid X,A)\\ \\ &q(\boldsymbol{z}_i │X,A)=\mathcal{N}\big(\boldsymbol{z}_i\ \mid\boldsymbol{μ}_i,\ \text{diag}(\boldsymbol{σ}_i^2)\big)\end{aligned} q(ZX,A)=i=1Nq(ziX,A)q(ziX,A)=N(zi μi, diag(σi2))
 与 VAE \text{VAE} VAE 不同的是,这里我们使用两个 GNN \text{GNN} GNN μ \boldsymbol{μ} μ σ \boldsymbol{σ} σ 进行拟合:
μ = GNN μ ( X , A ) ,   log ⁡ σ = GNN σ ( X , A ) \boldsymbol{μ}=\text{GNN}_\boldsymbol{μ}(X,A),\ \log\boldsymbol{σ}=\text{GNN}_σ(X,A) μ=GNNμ(X,A), logσ=GNNσ(X,A)

2.生成模型

p ( A │ Z ) = ∏ i = 1 N ∏ j = 1 N p ( A i j ∣ z i , z j ) p ( A i j = 1 ∣ z i , z j ) = σ ( z i T z j ) \begin{aligned}&p(A│Z)=∏_{i=1}^N∏_{j=1}^Np(A_{ij}\mid\boldsymbol{z}_i,\boldsymbol{z}_j)\\ \\ &p(A_{ij}=1\mid\boldsymbol{z}_i,\boldsymbol{z}_j )=σ(\boldsymbol{z}_i^\text{T}\boldsymbol{z}_j)\end{aligned} p(AZ)=i=1Nj=1Np(Aijzi,zj)p(Aij=1zi,zj)=σ(ziTzj)
 这里也简单使用了两个节点表示向量的内积来拟合邻接关系。

3.损失函数

L = L recon + L kl = − E q ( Z ∣ X , A ) [ log ⁡ p ( A ∣ Z ) ] + K L [ q ( Z ∣ X , A ) ∥ p ( Z ) ] L=L_\text{recon}+L_\text{kl}=-\mathbb{E}_{q(Z\mid X,A)}\big[\log p(A\mid Z)\big]+KL\big[q(Z\mid X,A)\Vert p(Z)\big] L=Lrecon+Lkl=Eq(ZX,A)[logp(AZ)]+KL[q(ZX,A)p(Z)]
 同样地,隐变量z的先验分布选用标准正态分布:
p ( Z ) = ∏ i p ( z i ) = ∏ i N ( z i , 0 , I ) p(Z)=∏_ip(\boldsymbol{z}_i)=∏_i\mathcal{N}(\boldsymbol{z}_i,0,\boldsymbol{I}) p(Z)=ip(zi)=iN(zi,0,I)
VAE \text{VAE} VAE GNN \text{GNN} GNN 的结合,不仅可以被用来学习图数据的表示,其更独特的作用是提供了一个图生成模型的框架,能够在相关图生成的任务中得到应用,如引文 [7] [8] ,用其对化学分子进行指导设计。

5.2.2 基于对比损失的GNN

 对比损失是无监督表示学习中另一种十分常见的损失函数。通常对比损失会在设置一个评分函数 D ( ⋅ ) D(⋅) D() ,该得分函数会图稿“真实”(或正)样本(对)的得分,降低“假”(或负)样本(对)的得分。

 类比词向量,我们将对比损失的落脚点放到词与上下文上。词是表示学习的研究主体,这里自然代表图数据中的节点,上下文代表与节点有对应关系的对象。通常情况下,图里的上下文从小到大一次可以是节点的邻居、节点所处的子图、全图。作为节点与上下文之间存在的固有关系,我们希望评分函数提高节点与上下文对的得分,同时降低节点与非上下文对的得分。可以表示为下式:
L v i = − log ⁡ ⁡ ( D ( z i , c ) ⁡ ) + log ⁡ ⁡ ⁡ ( D ( z i , c ˉ ) ⁡ ) L_{v_i}=-\log⁡\big(D(\boldsymbol{z}_i,\boldsymbol{c})⁡\big)+\log⁡⁡\big(D(\boldsymbol{z}_i,\bar{\boldsymbol{c}})⁡\big) Lvi=log(D(zi,c))+log(D(zi,cˉ))
 其中 c \boldsymbol{c} c 表示上下文的表示向量, c ˉ \bar{\boldsymbol{c}} cˉ 表示非上下文的表示向量。下面我们一次来看看该损失函数在不同上下文时的具体形式。

1.邻居作为上下文

 如果把邻居作为上下文,那么上述对比损失就在建模节点与邻居节点的共现关系。在 GraphSAGE 的论文中就描述了这样一种无监督学习方式,与 DeepWalk 一样,我们可以将在随机游走时与中心节点 v i v_i vi 一起出现在固定长度窗口内的节点 v j v_j vj 视为邻居,同时通过负采样的手段,将不符合该关系的节点作为负样本。与 DeepWalk 不同的是,节点的表示学习模型仍使用 GNN \text{GNN} GNN ,即:
Z = GNN ( X , A ) L v i = log ⁡ ( 1 − σ ( z i T z j ) ⁡ ) + E v n ∼ p n ( v i ) log ⁡ ( σ ( z i T z v n ) ⁡ ) \begin{aligned}&Z=\text{GNN}(X,A)\\ \\ &L_{v_i}=\log\big(1-σ(\boldsymbol{z}_i^\text{T}\boldsymbol{z}_j)⁡\big)+\mathbb E_{v_n\sim p_n(v_i)}\log\big(σ(\boldsymbol{z}_i^\text{T}\boldsymbol{z}_{v_n})⁡\big)\end{aligned} Z=GNN(X,A)Lvi=log(1σ(ziTzj))+Evnpn(vi)log(σ(ziTzvn))
 这里的 p n p_n pn 是一个关于节点出现概率的负采样分布,得分函数使用向量内积加 sigmoid 函数,将分数限制在 [ 0 , 1 ] [0,1] [0,1] 内。这个方法在优化目标上与图自编码器基本等同,但是这种负采样形式的对比优化不需要与图自编码器一样显式地解码出邻接矩阵 A ^ \hat{A} A^ ,由于 A ^ \hat{A} A^ 破坏了原始邻接矩阵的稀疏性,因此该方法不需要承担 O ( N 2 ) O(N^2) O(N2) 的空间复杂度。

2.将子图作为上下文

 将邻居作为上下文时,强调的是节点之间的共现关系,这种共现关系更多反映了图中节点间的距离远近,缺乏对节点结构相似性的捕捉。而通常节点局部结构上的相似性是节点分类任务中一个比较关键的因素 [9] 。比如图上两个相距很远的节点如果具有一样的子图结构,基于共现关系的建模方法就难以有效刻画这种结构上的对等性。因此,论文 [10] 就提出直接将子图作为一种上下文进行对比学习。具体子图的定义如图5-3所示:


图5-3 将子图作为上下文进行预测

 对于一个中心节点,如图5-3中的红色节点所示,我们用一个 GNN \text{GNN} GNN 在其 K K K 阶子图上提取其表示向量,同时我们将处于中心节点 r 1 − hop r_1-\text{hop} r1hop r 2 − hop r_2-\text{hop} r2hop 之间的节点定义为该中心节点的上下文锚点,如图5-3所示。设 K = 2 K=2 K=2 r 1 = 1 r_1=1 r1=1 r 2 = 4 r_2=4 r2=4,我们用另一个 GNN \text{GNN} GNN 来提取每个节点作为上下文锚点时的表示向量,同时为了得到一个总的、固定长度的上下文表示向量,我们使用读出机制来聚合上下文锚点的表示向量。用公式表示如下:
Z = GNN ( X , A ) , Z context = GNN context ( X , A ) c i = R ( Z context [ j ] , ∀ v j 是 v j 的 上 下 文 锚 点 ) L v i = log ⁡ ⁡ ( 1 − σ ( z i T c i ) ) + log ⁡ ( σ ( z i T c j ∣ j ≠ i ) ) \begin{aligned}&Z=\text{GNN}(X,A),Z_\text{context}=\text{GNN}_\text{context} (X,A)\\ \\ &\boldsymbol{c}_i=R\big({Z_\text{context}[j],∀v_j 是v_j 的上下文锚点}\big)\\ \\ &L_{v_i}=\log⁡\big(1-σ(\boldsymbol{z}_i^\text{T}\boldsymbol{c}_i)\big)+\log\big(σ(\boldsymbol{z}_i^\text{T}\boldsymbol{c}_{j\mid j\not= i})\big)\end{aligned} Z=GNN(X,A),Zcontext=GNNcontext(X,A)ci=R(Zcontext[j],vjvj)Lvi=log(1σ(ziTci))+log(σ(ziTcjj=i))

3.全图作为上下文

 在引文 [2] 中提出了Deep Graph Infomax(DGI)[11] 的方法对图数据进行无监督表示学习。该方法实现了一种节点与全图之间的对比损失的学习机制。其具体做法如下:
Z = GNN ( X , A ) , Z ˉ = GNN ( X currupt , A currupt ) s = R ( { z i , ∀ v i ∈ V } ) L v i = log ⁡ ⁡ ( 1 − D ( z i , s ) ) + log ⁡ ( D ( z ˉ i , s ) ) \begin{aligned}&Z=\text{GNN}(X,A),\bar{Z}=\text{GNN}(X_\text{currupt},A_\text{currupt})\\ \\ &\boldsymbol{s}=R\big(\{\boldsymbol{z}_i,\forall v_i\in V\}\big)\\ \\ &L_{v_i}=\log⁡\big(1-D(\boldsymbol{z}_i,\boldsymbol{s})\big)+\log\big(D(\bar{\boldsymbol{z}}_i,\boldsymbol{s})\big)\end{aligned} Z=GNN(X,A),Zˉ=GNN(Xcurrupt,Acurrupt)s=R({ zi,viV})Lvi=log(1D(zi,s))+log(D(zˉi,s))
 首先为了得到负采样样本,需要对图数据进行相关扰动,得到 ( X currupt , A currupt ) (X_\text{currupt},A_\text{currupt}) (Xcurrupt,Acurrupt) ,具体的加噪方法上文中已有概括。然后将这两组图数据送到同一个 GNN \text{GNN} GNN 模型中进行学习。为了得到图的全局表示,作者固定了全图表示,对节点进行了负采样的对比学习。这样处理是为了方便后续的节点分类任务。从互信息 [12] [13] 的角度来看,通过一个统一的全局表示最大化全图与节点之间的互信息,这样可以在所有节点的表示之间建立起一层更直接的联系。比如上面提到的相距较远的节点之间的结构相似性的学习问题,这种设计可以保障该性质的高效学习。图5-4为上述过程的示意图:


图5-4 节点与全图对比损失学习机制 [3]

 同时在全图层面的无监督学习上,上述损失函数的负样本刚好相反,需要抽取其他图的表示 s ˉ \bar{\boldsymbol{s}} sˉ 来代替,即:
L s = E v i ∈ G s log ⁡ ⁡ ( 1 − D ( z i , s ) ) + E v i ∈ G s log ⁡ ⁡ ( D ( z i , s ˉ ) ) L_s=\mathbb{E}_{v_i\in G_s}\log⁡\big(1-D(\boldsymbol{z}_i,\boldsymbol{s})\big)+\mathbb{E}_{v_i\in G_s}\log⁡\big(D(\boldsymbol{z}_i,\bar{\boldsymbol{s}})\big) Ls=EviGslog(1D(zi,s))+EviGslog(D(zi,sˉ))
 由此,由于是全图层面的任务,所以我们希望通过上式让全图与其所有局部节点之间实现互信息最大化,也即获得全图最有效、最具代表性的特征,这对图的分类任务十分有益。

参考文献

[0] 刘忠雨, 李彦霖, 周洋.《深入浅出图神经网络: GNN原理解析》.机械工业出版社.

[1] Weihua Hu,Bowen Liu,Joseph Gomes,Marinka Zitnik,Percy Liang , Vijay S.Pande and Jure Leskovec.Pre-training Graph Neural Networks.arXiv preprint arXiv:1905.12265,2019.

[2] VeličkovićP , Fedus W , Hamilton W L , et al.Deep graph infomax[J].arXiv preprint arXiv:1809.10341,2018.

[3] VeličkovićP , Fedus W , Hamilton W L , et al.Deep graph infomax[J].arXiv preprint arXiv:1809.10341,2018.

[6] Kipf T N,Welling M.Variational graph autoencoders[J].arXiv preprint arXiv:1611.07308,2016.

[7] Simonovsky,Martin and Komodakis,Nikos.Graphvae:Towards generation of small graphs using variational autoencoders.arXiv preprint arXiv:1802.03480,2018.

[8] Samanta,Bidisha,De,Abir,Ganguly,Niloy,and GomezRodriguez,Manuel.Designing random graph models using variational autoencoders with applications to chemical design.arXiv preprint arXiv:1802.05283,2018.

[9] Claire Donnat,Marinka Zitnik,David Hallac,and Jure Leskovec.Learning structural node embeddings via diffusion wavelets.In International ACM Conference on Knowledge Discovery and Data Mining(KDD),volume 24,2018.

[10] Weihua Hu,Bowen Liu,Joseph Gomes,Marinka Zitnik,Percy Liang,Vijay S.Pande and Jure Leskovec.Pretraining Graph Neural Networks.arXiv preprint arXiv:1905.12265,2019.

[11] VeličkovićP,Fedus W,Hamilton W L,et al.Deep graph infomax[J].arXiv preprint arXiv:1809.10341,2018.

[12] Hjelm R D,Fedorov A,Lavoie-Marchildon S,et al.Learning deep representations by mutual information estimation and maximization[J].arXiv preprint arXiv:1808.06670,2018.

[13] Melamud O,Goldberger J.Information-theory interpretation of the skip-gram negative-sampling objective function[C]//Proceedings of the 55th Annual Meeting of the Association for Computational Linguistics(Volume 2:Short Papers).2017:167-171.

猜你喜欢

转载自blog.csdn.net/weixin_43360025/article/details/124640062
今日推荐