GAN(Generative Adversarial Networks)在图像、文本数据的表示学习中应用广泛。对抗网络包含两部分,生成器和判别器。生成器的目的是生成与真实数据尽可能相似的数据,去“欺骗”判别器;判别器的目的是尽可能地将真实数据和生成的数据区分开。对抗训练就是生成器和判别器之间的一种“zero-sum”博弈,此消彼长,达到难以区分真实数据和生成器生成数据的效果。
GraphGAN
GraphGAN [1]https://arxiv.org/abs/1711.08267是发表在AAAI 2018上的用对抗生成网络学习图表示的文章。在对抗学习过程中,生成器尽可能地拟合节点 vc 在网络中其他所有节点上地连接分布 ptrue(v|vc) ,并且生成最可能和节点 vc 连接地节点;判别器区分生成节点对(ill-connected)和真实节点对(well-connected),输出为边 (v,vc) 存在地概率。总的来说,生成器和判别器之间是一个最小最大的 game:
minθGmaxθDV(G,D)=∑c=1V(Ev∼ptrue(⋅|vc)[logD(v,vc;θD)]+Ev∼G(⋅|vc;θG)[log(1−D(v,vc;θD))])
Discriminator
判别器要把来自真实数据的正样本,来自生成器的负样本区分开,因而要最大化“贴对标签”的概率。本文采用sigmoid函数作为判别器(当然别的判别模型也是可以作为判别器的):
D(v,vc)=σ(dTv,dvc)=11+exp(−dTv⋅dvc)
其中 dv,dvc∈Rk 是节点在判别器中的k维向量表示。 θG 是所有 dv 的集合。采用梯度下降,只跟新与节点v, vc 相关的参数:
▽θ<