
GraphGAN: Graph Representation Learning with Generative Adversarial Nets
代码:https://github.com/hwwang55/GraphGAN
数据集:https://snap.stanford.edu/data/ca-AstroPh.html
https://snap.stanford.edu/data/ca-GrQc.html
http://socialcomputing.asu.edu/datasets/BlogCatalog
http://www.mattmahoney.net/dc/textdata
https://grouplens.org/datasets/movielens/1m/
3. Motivation
网络表示学习方法可以分成两个类别。
一种是Generative model(生成式模型),假定对于每一个顶点,在图中存在一个潜在的、真实的连续性分布 Pt_ttr_rru_uue_ee(v|vc_cc), 图中的每条边都可以看作是从Pt_ttr_rru_uue_ee里采样的一些样本。生成式方法都试图将边的似然概率最大化,来学习vertex embedding。例如DeepWalk (KDD 2014) and node2vec (KDD 2016)。
Discriminative Model(判别式模型)将两顶点联合作为feature,预测两点之间存在边的概率。例如SDNE (KDD 2016) and PPNE (DASFAA, 2017)。
LINE (WWW 2015) 尝试将两者结合起来。
目标
在GraphGAN的学习过程中训练两个模型:
- 生成器G(vvv| vcv_cvc),它尽可能地拟合潜在的真实连通性分布PtP_tPtr_rru_uue_ee(vvv| vcv_cvc),并生成最有可能与vcv_cvc连接的顶点;
- 鉴别器D(vvv,vcv_cvc),它试图区分好连通顶点对和不连通顶点对,并计算vvv和vcv_cvc之间是否存在边的概率。在提出的GraphGAN中,G和D在minimax博弈中扮演两个角色:生成器试图在鉴别器提供的指导下生成最难区分的“fake”顶点,而鉴别器则试图在True和“fake”之间划清界限,在这个博弈中促使他们两个都提高自己的能力,直到D无法与真实的连通性分布区分开来。
- G和D的目标函数为:(GAN学习笔记(1))

GraphGAN框架

在每一次迭代中,用来自PtP_tPtr_rru_uue_ee(·| vcv_cvc)(绿色顶点)的正样本和来自生成器G(·| vcv_cvc;θGθ_GθG)(带蓝色条纹的顶点)的负样本训练鉴别器D,并在D的指导下用策略梯度更新生成器G。G和D之间的博弈促使它们改进各自的方法,直到G与真实的连通性分布无法区分为止。
Discriminator Optimization
在GraphGAN中,将D定义为两个输入顶点内积的sigmoid函数:


这里任何判别模型都可以作为D,如SDNE
式(2)只涉及v和vcv_cvc,这表明给定一个样本对(v,vcv_cvc),我们只需要通过相对于它们的梯度上升来更新dvd_vdv和dvd_vdvc_cc

Generator Optimization
policy gradient

果一个生成节点被识别出是负样本节点,那么概率D(V,VC;θD)就会很小,则生成节点的梯度对应的权重就会很大,从而使得整个梯度会变大。
论文中,将生成器定义为所有其他顶点上的softmax函数

gv_vv和gv_vvc_cc是生成器产生的向量,更新采用随机梯度下降
缺陷:
公式(5)中Softmax的计算涉及到图中的所有顶点,这意味着对于每个生成的样本v,我们需要计算梯度∇θglog(v | vc;θG)并更新所有顶点。这在计算上效率低下,尤其是对于具有数百万顶点的真实世界大型图。2) 图结构编码了丰富的顶点之间的接近信息,而softmax在不加区分地处理顶点时,完全忽略了对图中结构信息的利用。
改进:Graph Softmax for Generator
Graph Softmax仍然是用于计算预估的连接分布G(▪|VC;θG),它需要满足的条件是:
(1)Normalized 归一化:需要满足有效的概率分布,
(2)Graph-structure-aware:利用网络结构信息,简单的想法就是,对于图中的两个顶点,它们的连通概率应该随着其最短距离的增加而降低。
(3)Computationally efficient:G(V|VC;θD)的计算,应该仅仅涵盖图中少量节点,比如一些与节点VC较为密切的节点。
为了去求这样的graph softmax,论文首先是对原网络ω进行BFS,将它展开成以VCV_CVC为根节点的树TCT_CTC。给定TCT_CTC,令NC_CC(_((V_VV)_))表示的是节点V的邻居节点集合(直接相邻的一阶邻居节点,在树中即为父母节点和孩子节点)。假设给定节点VVV以及邻居Vi_ii∈NC_CC(_((V_VV)_)),定义给定V的Vi_ii的关联概率为:

要计算G(V|VC_CC;θG_GG)的话,每一个节点V都是可以由根节点VC_CC开始的唯一一条路径到达,定义这个路径为Pvcv_cvc→v =(Vr0r_0r0,Vr1r_1r1,…,Vrmr_mrm),其中Vr0r_0r0=Vc_cc,Vrmr_mrm)=V。Graph Softmax定义的G(V|VC_CC;θG_GG)为:

生成式模型G最后要做的还是要采样,一种简单的方法就计算出所有的graph softmax值G(V|VC_CC;θG_GG),然后再根据这个概率值进行带权重的随机采样。论文中提出了另一种在线采样策略:从树TC_CC的根节点VCV_CVC开始随机游走,如果当前游走到的节点V的下一步是要游走回父母节点,则V即被选择为采样的节点。
下图展示的就是一个生成器G在线采样策略的图解:
最后,整个GraphGAN算法框架如下



实验
数据集见开头
1.Link Prediction
在原始图中随机隐藏10%的边作为基本事实,训练后,得到所有顶点的表示向量,并用logistic回归方法预测给定顶点对的边存在概率。测试集由原始图中隐藏的10%的顶点对(边)作为正样本,随机选取断开的顶点对作为相等数量的负样本。我们使用arXiv AstroPh和arXiv GrQc作为数据集,并在表1中报告精度和宏F1的结果。我们发现:
1)LINE和struc2vec在链路预测方面的性能较差,因为它们不能很好地捕捉到图中边的存在模式。
2) DeepWalk和node2vec的性能优于LINE和struc2vec。这可能是因为DeepWalk和node2vec都使用了基于随机行走的Skip-Gram模型,这种模型在提取顶点之间的邻近信息方面更为有效。
3) GraphGAN在链路预测方面优于所有基线。特别是,GraphGAN将arXiv AstroPh和arXiv GrQc的精度分别提高了1.18%到4.27%和0.59%到11.13%。我们的解释是,对抗训练为graph提供了比单模型基线训练更高的学习灵活性。

学习曲线:

生成器的性能在收敛后表现突出,而鉴别器的性能开始提高,但逐渐下降到0.8以下。请注意,鉴别器不会降级到随机猜测级别,因为生成器在实际操作中仍然提供大量的真实负样本。
Node Classification
在节点分类中,为每个顶点指定一个或多个标签。在我们观察到一小部分顶点及其标签之后,我们的目标是预测剩余顶点的标签。因此,节点分类的性能可以揭示不同图表示学习方法下顶点的可区分性。为了进行实验,在整个图上训练GraphGAN和基线以获得顶点表示,并使用logistic回归作为分类器,以9:1的训练测试比进行节点分类。我们使用BlogCatalog和Wikipedia作为数据集。表2给出了精度和宏-F1的结果。

Recommendation
使用Movielens-1M作为推荐数据集。对于每个用户,目标是推荐一组尚未观看但可能会被用户喜欢的电影
首先将所有的4星和5星评级作为边,得到一个二分图,然后随机隐藏原始图中10%的边作为测试集,为每个用户构造一个BFS树。注意,与上述两个实验场景不同的是,连通性分布是在特定顶点的所有其他顶点上定义的,在推荐中,一个用户的连通概率仅分布在图中的一小部分顶点上,如所有电影上。因此,我们“shortcut”所有用户顶点在BFS树(除了根)添加直接边在所有电影对由一个用户顶点链接。在训练并获得用户和电影的代表性后,针对每一个用户,我们选择其内部产品最高的未匹配电影中的K作为推荐结果。结果精度@K以及召回@K如图5所示,

GraphGAN结合生成式和判别式模型,通过生成对抗网络(GAN)在图表示学习中实现更高效、准确的顶点嵌入。该方法通过对抗训练提升模型灵活性,实验证明在链路预测、节点分类和推荐任务中优于基线。
(GraphGAN)&spm=1001.2101.3001.5002&articleId=108257285&d=1&t=3&u=ec6ef59715ca4683b88f94bfab184eeb)
1890

被折叠的 条评论
为什么被折叠?



