图生成对抗网络

(1)动机

图表示学习,也称为网络嵌入,目的是将图(网络)中的每个顶点表示为低维向量,这有助于对顶点和边缘进行网络分析和预测。学习到的嵌入能够帮助广泛的现实应用程序,如链路预测、节点分类、推荐、可视化、知识图表示等。图表示学习的目的是将图中的每个顶点嵌入到一个低维向量空间中。现有的图形表示学习方法可分为两类:学习图中潜在连通性分布的生成模型,以及预测一对顶点之间存在边的概率的判别模型。

(2)创新点

在这篇文章文中,提出了一种创新的图形表示学习框架,它将上述两类方法结合在一起,其中生成模型和判别模型是一种极大极小决策的博弈。此外,在考虑生成模型的实现时,提出了一种新的图形SoftMax来克服传统SoftMax函数的局限性,它能满足规范化、图结构感知和计算效率的要求。

(3)具体方法与技术

在GraphGAN中,主要有两个模型:(1)Generator G(V|VC,θG):生成式模型G,主要是去尽可能地去拟合或预估出真实的连接分布概率,从而在节点集V选择出最有可能与VC连接的节点(2)Discriminator D(V|VC, θD):判别式模型D,主要是去将well-connected的节点对与ill-connected的节点对区分开来,并且计算输出节点V和VC之间存在着边的可能性。
对于G来说,它的目标是生成与VC真实连接的邻居节点相似的点,来骗过判别器D。而对于D,它的目标是判别这些节点哪些是VC的真实邻居,哪些是它的对手G生成的节点。因此,两个对手的一个minmax游戏的目标函数为:

在这里插入图片描述
图生成对抗网络_第1张图片

生成器和判别器的参数是不断地交替训练进行更新的。每一次迭代,判别器D通过来自Ptrue(V|VC)的正样本(图例中所示的绿色节点)和来自G的负样本(图例中为蓝条纹节点)进行训练。生成器G则通过D的指导,按照梯度策略进行更新。
判别器优化
论文中,判别式模型D的实现看作是一个sigmoid函数:
在这里插入图片描述
其中,dv,dvc∈RK是节点v和节点Vc在判别器中的k维向量表达,因此θD就可看作是所有dv的集合。(判别器也可以用其他方法的模型,比如SDNE)
因此,对于给定的节点对(V,Vc),只需要通过梯度上升法去更新对应的节点表达向量dv,dvc:
在这里插入图片描述
生成器优化

对于生成器来说,它的目标函数是最小化minimax函数(1),因此可以通过梯度下降法去优化更新,生成器的梯度为:
图生成对抗网络_第2张图片
需要注意的是,梯度▽θG V(G,D)其实可以看作是权重为log(1-D(V,VC;θD))的梯度▽θG log G(V|VC)的期望求和,也就是说如果一个生成节点被识别出是负样本节点,那么概率D(V,VC;θD)就会很小,则生成节点的梯度对应的权重就会很大,从而使得整个梯度会变大。
论文中,生产式模型的实现是通过softmax函数定义:
在这里插入图片描述

其中,gv,gvc∈Rk是节点v和节点vc在生成器中的k维向量表达因此θG就可看作是所有gv的集合。基于这样的设定,首先就可以按照公式(5)先计算出预估连接分布G(V|Vc;θ),之后根据这个概率值进行随机采样可得到样本集合(V,Vc),最后通过SGD的方法去更加θG。
生成式模型中的预估连接分布是通过softmax去实现的,然而这样做会有一些缺点:(1)传统的softmax模型,一般是要计算整个图中所有的节点的softmax值,这样的话,耗时会很大。(2)网络自身的拓扑结构会隐含着丰富的信息,而softmax函数则完全忽略了这些,因为它是“公平”地看待每一个节点的,只是完成了归一化的任务。
常见的做法有层级softmax以及负采样的方法用来缓解计算开销,但都没有考虑到图的结构信息。像Deepwalk,node2vec这些算法,在(bias)random walk的时候已经将图的结构信息获取到了,因此后续的softmax时只用负采样进行加速即可;而GraphGAN目前实际上是没有考虑到网络结构的,这样的话,学习得到的网络嵌入是没有意义的,因此GraphGAN是想通过softmax这里去嵌入网络结构信息,因此作者在这里将softmax进行修改,提出了Graph Softmax。
Graph Softmax仍然是用于计算预估的连接分布G(▪|VC;θG),它需要满足的条件是:
(1)Normalized 归一化:需要满足有效的概率分布,
(2)Graph-structure-aware:利用网络结构信息,简单的想法就是,对于图中的两个顶点,它们的连通概率应该随着其最短距离的增加而降低。
(3)Computationally efficient:G(V|VC;θD)的计算,应该仅仅涵盖图中少量节点,比如一些与节点VC较为密切的节点。
为了去求这样的graph softmax,论文首先是对原网络ω进行BFS宽搜,将它展开成以VC为根节点的树TC。给定TC,令NC(V)表示的是节点V的邻居节点集合(直接相邻的一阶邻居节点,在树中即为父母节点和孩子节点)。假设给定节点V以及邻居Vi∈Nc(V),定义Vs相当于V的关联概率为:
在这里插入图片描述
要计算G(V|VC;θG)的话,每一个节点V都是可以由根节点VC开始的唯一一条路径到达,定义这个路径为Pvc→v =(Vr0,Vr1,…,Vrm),其中Vr0=Vc,Vrm=V。Graph Softmax定义的G(V|VC;θG)为:
在这里插入图片描述
生成式模型G最后要做的还是要采样,一种简单的方法就计算出所有的graph softmax值G(V|VC;θG),然后再根据这个概率值进行带权重的随机采样。论文中提出了另一种在线采样策略:从树TC的根节点VC开始随机游走,如果当前游走到的节点V的下一步是要游走回父母节点,则V即被选择为采样的节点。
下图展示的就是一个生成器G在线采样策略的图解:
最后,整个GraphGAN算法框架如下:

图生成对抗网络_第3张图片
图生成对抗网络_第4张图片
文章来源:[1] Hongwei Wang,Jia Wang,GraphGAN: Graph Representation Learning with Generative Adversarial Nets.AAAI-18

你可能感兴趣的:(人工智能)