《GraphGAN:Graph Representation Learning with Generative Adversarial Nets》论文阅读笔记

最近在准备硕士期间的毕业论文的开题工作,也是比较愁于没有什么好的毕业设计的想法。在学习完这篇论文后,我发现基于生成对抗网络的网络表示学习的方法挺有意思。通过写这篇博客也是想要加深自己对这篇论文的idea的理解,同时也想着是否我也可以提出一种改进或是适当借鉴一下这种思想。

 GraphGAN: Graph Representation Learning with Generative Adversarial Nets

ABSTRACT

网络表示学习的目的就是对于给定图的任意节点学习到该节点的一个低维的向量表示embedding。作者将目前的网络表示学习的方法分成了两类:基于生成式模型和基于判别式模型的网络表示学习的方法。其中,基于生成式模型的方法旨在网络中学习一个潜在的连通性分布,而基于判别式模型的方法则是试图学习一个判别器用来判别两个节点之间存在边关系的概率。论文提出了一种新的结合了生成式和判别式模型的思想的网络表示学习的框架,通过设计生成器G对于给定节点v拟合它与图中其他节点的潜在的真实的连通性分布,同时基于设计的生成策略生成节点能够欺骗过判别器D。同时与之对应的判别器D的目的就是判别选取的节点是从真实分布中选取的还是由生成器G生成的节点。通过这种对抗的思想,经过反复迭代同时提高两个模型的性能。

INTRODUCTION

图表示学习也叫网络表示学习或图特征学习,目的是学习图中节点的表示向量。众所周知,网络的邻接矩阵表示方式是一种简单、直接的表示方式。但是在处理大规模的网络的情况下,特别是网络的节点数量上升到百万级别时,网络节点的表示向量也相应的上升到相当高的维度。这时网络的邻接矩阵的表示方式就会很大程度的影响计算效率和极大的浪费空间成本。网络表示学习的目的就是针对于这种现象,对于图中的每一个节点学习一个低维的向量表示embedding,同时也要能够保存原图中节点的结构性息和距离信息。目前是一个非常火的研究方向,可以应用在各类下游的具体任务中:

  • Link prediction(链接预测)
  • Node classification(节点分类)
  • Recommendation(推荐系统)
  • Visualization(可视化)
  • Knowledge graph representation(知识图谱表示)
  • Clustering(聚类)
  • Text embedding(文本嵌入)
  • Social network analysis(社交网络分析任务)

作者简单介绍了下相关工作,并将现有的网络表示学习方法划分为了两类:

  • 生成式模型,这种方法假定对于图中的任意节点v_c都存在一个潜在的、真实的连通性分布p_{true} (v|v_c),表明节点v_c的联通性偏好(或是相关性分布)对于图中的每个节点,典型的有Deepwalk和Node2vec方法
  • 判别式模型,这种方法旨在通过训练学习一个判别器用来直接判断节点对间存在边的概率,i.e.,p(edge|(v_i,v_j))。典型的有SDNE和PPNE方法

同时作者也指出,生成式模型和判别式模型就像一个硬币的正反两面。实际上LINE就是一种对这两种模型进行结合的网络表示学习方法,即唐建老师提出的一阶相似度和二阶相似度实质上是一种早期的尝试。本文提出了一种结合生成式模型和判别式模型的基于生成对抗网络的网络表示学习的方法GraphGAN。

具体来讲,GraphGAN试图通过学习训练得到两个模型:生成器G(v|v_c)和判别器D(v,v_c)。通过进行一种two player minimax-game的游戏策略:生成器通过判别器的信号指示生成(在图中挑选)那些最不容易被区分的节点,同时判别器试图在那些伪造的节点和ground truth的节点中画出一条明显的分界线。

这篇文章的另一个创新之处就是作者提出了一种新型的图的softmax方法作为生成器的实现。同时这种图的softmax满足如下三个要素:

  • 正规化
  • 图结构敏感
  • 计算高效

Graph Generative Adversarial Nets

GraphGAN Framework

作者接下来介绍了论文的核心,一种minimax-game的对抗思想。作者将生成器和判别器看作是一组对手,具体来讲是生成器对于给定的节点想要去生成(在图中精确来说是选取sample)节点在判别器看来是真实存在边的关系,与之对应的是判别式要能够区分得到的节点是从真实的连通性分布中选取的还是由生成器生成的节点。

正式的,作者利用生成对抗网络中的这个minimax-game式子刻画了生成器和判别器的这种对抗关系。

 通过反复的交替迭代,上式最终会趋于一个稳定的状态。下图展示了GraphGAN的训练过程。

 Discriminator Optimization

作者指出,在GraphGAN中任何判别模型都可以用作具体的判别器的实现,例如SDNE中提出的判别式模型。这篇论文设计的判别器是一个简单是sigmoid函数:

其中,d_vd_{v_c} 是通过训练得到的节点vv_c的表示向量embedding。具体的参数优化按照如下的梯度上升策略进行:

Generator Optimization

生成器的优化要采用policy gradient策略进行,具体如下:

然后作者探讨了生成器的具体实现,首先一个直接的想法是直接对图上的所有节点设计一个softmax函数。

其中g_vg_{v_c}是节点vv_c的表示向量embedding。但是这种做法计算要涉及全图所有节点,会造成巨大的计算开销,因此作者提出了一种新的基于图的softmax方法。

Graph Softmax for Generator

作者首先提出设计的生成器要满足三个性质:

  • 正规化。生成器必须是一个有效的概率分布函数
  • 图结构敏感。生成器在去拟合图的真实连通性分布的时候要注意保留图的结构特征,例如,对于图中的两个节点,它们的连通性概率要随着节点之间的最短路径的长度的增长而减小。
  • 计算高效性。区别于对图中所有节点的softmax,新的softmax函数的计算应该只涉及到图中的少量节点。

然后作者定义了对于选定节点与其邻居节点间的关联性概率,

从而根据关联性概率设计了如下的生成器:

具体的节点生成策略,作者设计了一个如下的生成器在线生成策略:

然后算法的框架设计:

 Experiments

作者在五个数据集上进行了实验,用作对比的baseline算法分别选取了Deepwalk、Node2vec、LINE和Struct2vec。实验表明,在Link prediction、Node classification和Recommendation任务中,GraphGAN的实验结果明显优于上述baseline算法。

 Conclusions

这篇文章将最近非常火的生成对抗网络GAN的思想运用在了网络表示学习中,是一个很novel的idea。具有很好的启发作用,同时也意识到文章的不足之处。

  1. 文章设计的生成器无法作用在有权图上,要针对有权图的图表示学习需要重新设计生成器,不具有一般性。
  2. 可能是数据集选取的原因,GraphGAN的实验效果作用于节点分类任务中相较于其他的baseline算法虽然有提升,但是效果确实还是不够好。

猜你喜欢

转载自blog.csdn.net/zxcvzzh/article/details/81086960