GraphGAN
GraphGAN是一种结合了图神经网络和生成对抗网络(GAN)概念的机器学习模型。它旨在通过对抗学习框架解决图数据中的节点分类和链接预测问题,特别是在缺少标签数据的情况下。GraphGAN通过结合生成器和判别器两个主要组件来学习图中节点的有效表示。 GraphGAN的框架如下:设\(G=(V,\mathcal{E})\)为一个给定的图,其中\(V=\begin{Bmatrix}v_1,\ldots,v_V\end{Bmatrix}\)代表顶点的集合,而$\mathcal{E} = \left\{ e_{ij} \right\}_{i,j=1}^{V}$代表边的集合。对于给定的顶点\(\nu_{c}\),定义\(\mathcal{N}\left(\nu_{c}\right)\)为直接连接到\(\nu_{c}\)的顶点集,也就是顶点\(\nu_{c}\)的1-hop邻居。我们将顶点\(\nu_{c}\)的真实连通性分布表示为条件概率\(p_{\mathrm{true}}\left(\nu|\nu_{c}\right)\),它反映了\(\nu_{c}\)的连通性偏好和它所连接顶点的类型。从这个视角来看,\(\mathcal{N}\left(\nu_{c}\right)\)可以被看作是从\(p_{\mathrm{true}}\left(\nu|\nu_{c}\right)\)抽取的一组观察样本。给定图\(\mathrm{G}\),GraphGAN旨在学习以下两个模型: 生成器\(\mathrm{G}\)和判别器\(\mathrm{D}\)作为两个对手: 生成器\(\mathrm{G}\)将试图完美地匹配\(p_{\mathrm{true}}\left(\nu|\nu_{c}\right)\)并生成类似于\(\nu_{c}\)的真实直接邻居的相关顶点以欺骗判别器。而判别器\(\mathrm{D}\)则相反,会尝试检测这些顶点是\(\nu_{c}\)的真实邻居还是由其对手\(\mathrm{G}\)生成的。形式上, \(\mathrm{G}\)和\(\mathrm{D}\)在一个有以下价值函数\(V(G,D)\)的双人博弈中进行对抗: \(\min_{\theta_G}\max_{\theta_D}V(G,D)=\sum_{c=1}^V\left(\mathbb{E}_{\nu\sim p_{\mathbf{tne}}(\nu|\nu_c)}\left[\log D(\nu,\nu_c;\theta_D)\right]+\mathbb{E}_{\nu\sim p_G(\nu|\nu_c;\theta_G)}\left[\log\left(1-D(\nu,\nu_c;\theta_D)\right)\right]\right)\) (1) 上式描述的最小最大(Minimax)博弈公式是生成对抗网络的核心。在图生成对抗网络(GraphGAN)的上下文中,生成器\(\mathrm{G}\)的目标是生成看起来像真实数据的样本。在GraphGAN的情境下,生成器试图生成看似是\(\nu_{c}\)的1-hop邻居的顶点。而鉴别器\(\mathrm{D}\)的目标是区分输入样本是来自于真实数据还是生成器生成的假数据。在GraphGAN中,它试图区分一个顶点对\((\nu,\nu_{c})\)是否是真实的1-hop邻点对。这个公式包含了两个期望(Expectations): 第一部分为真实数据的期望\(E_{v\sim p_{\mathrm{true}}\left(v\mid v_{c}\right)}\left[\log […]