生成对抗网络(GAN)在图网络中的应用

1.背景知识

  • 网络表征学习(Graph Representation Learning、 Network Embedding、 Graph Embedding):将图中的每一个节点映射到低维的向量空间,以便进行下游任务(例如节点分类,链路预测等)
  • 图表征学习的研究从很早就开始了,从最简单的邻接矩阵表示,到后面对邻接矩阵进行矩阵分解(SVD),再到基于随机游走的方法(DeepWalk、Node2Vec)以及Graph Neural Network和基于注意力机制的Graph Attention Network模型,都是为了将图中节点映射成低维向量表示。

2.GAN在图表征学习中的应用

  • GraphGAN模型
    1)生成式模型
    生成式模型假设每一个节点都有一个潜在的概率分布,这个概率分布可以体现出该节点和其他每一个节点的连接情况。生成式模型的主要目的就是为图网络中的节点找到一个尽可能接近该潜在概率分布的向量表征。对这个潜在概率分布的表示为Ptrue(V|Vc),其中Vc表示正在观测的节点,Ptrue(V|Vc) 就是指在除了 Vc 之外其他节点(V)与Vc之间构成一条边的概率。
    2)判别式模型
    模型直接去学习两个节点之间有边的概率。这种方法会将边的两个定点Vi 和 Vj 联合作为 feature,然后输出的是边存在的概率 P(|Vi, Vj)。判别式模型往往是有监督的。
    3)GraphGAN==生成式模型+判别式模型
    GraphGAN即为生成式模型和判别式模型的结合,其包含两个重要部分,即生成器G(v|vc ; θG) 和判别器D(v|vc ; θD)。生成器为每一个节点维护一个向量,这些向量组合在一起构成θG。G(v|vc ; θG) 表示生成器认为给定节点Vc和参数θG下,V与Vc之间有一条边的概率。G(v|vc ; θG) 的目的就是通过学习去逼近真实分布Ptrue(V|Vc)。判别器也为每一个节点维护一个向量,这些向量组合在一起构成θD。D(v|vc ; θD)通过向量θD来判断V与Vc之间是否有一条边。

GraphGAN采用GAN网络中常见的对抗机制:生成器G尽可能的逼近Ptrue(V|Vc)以找到与Vc的相邻节点极其相似的节点来欺骗判别器D,而判别器D则会反过来检测给定的节点V是Vc的真实邻居还是由生成器生成的。GraphGAN方法的核心在于公式(1)中的目标函数:
生成对抗网络(GAN)在图网络中的应用_第1张图片
目标函数希望真实样本为邻居的概率尽可能大,生成器生成的样本的概率尽可能小。
工作流程:θD和θG可以通过交替最小化和最大化V(G,D)函数来迭代更新得到。每次迭代,我们从 Ptrue 中 抽样一些跟 Vc 真实相邻的绿点,从 G 中又生成了一些跟 Vc 接近的蓝点。我们将绿点作为正样本,将蓝点作为负样本来训练 D,在得到 D 之后,再用 D 中的信号,通过policy gradient去反过来训练 G。不断重复这个过程,直到生成器 G 和 Ptrue 极为接近。在刚开始的时候,G 相对比较差,因此对于给定的 Vc 而言,G sample 的点都是一些离 Vc 很远的点。随着训练的不断进行,G sample 的点会逐渐向 Vc 接近,到最后 G 抽样的点几乎都变成了真正跟 Vc 相邻的点,也就是 G 和 Ptrue 已经很难被区分了。
生成对抗网络(GAN)在图网络中的应用_第2张图片
https://zhuanlan.zhihu.com/p/47622003
https://zhuanlan.zhihu.com/p/51764593

你可能感兴趣的:(GNN从入门到精通,生成对抗网络,机器学习,深度学习)