GAN在网络表示中的应用--GraphGAN、Adversarial Network Embedding
来源:互联网 发布:被诅咒的船mac破解版 编辑:程序博客网 时间:2024/06/03 21:18
GAN(Generative Adversarial Networks)在图像、文本数据的表示学习中应用广泛。对抗网络包含两部分,生成器和判别器。生成器的目的是生成与真实数据尽可能相似的数据,去“欺骗”判别器;判别器的目的是尽可能地将真实数据和生成的数据区分开。对抗训练就是生成器和判别器之间的一种“zero-sum”博弈,此消彼长,达到难以区分真实数据和生成器生成数据的效果。
GraphGAN
GraphGAN [1]https://arxiv.org/abs/1711.08267是发表在AAAI 2018上的用对抗生成网络学习图表示的文章。在对抗学习过程中,生成器尽可能地拟合节点
Discriminator
判别器要把来自真实数据的正样本,来自生成器的负样本区分开,因而要最大化“贴对标签”的概率。本文采用sigmoid函数作为判别器(当然别的判别模型也是可以作为判别器的):
其中
Generator
生成器要最小化判别器“贴对标签”的概率,即:最大化判别器犯错的概率;最终拟合数据的真实分布
对
根据上式,计算
- 归一性(Normalized),即:
∑v≠vcG(v|vc;θG)=1 - 结构相关性(Graph-structure-aware), 即:条件概率
G(v|vc;θG) 随着节点间最短距离的增长而变小。 计算有效性(Computationally efficient),即:
G(v|vc;θG) 的计算应该只和网络中的小部分节点相关。在网络中以
vc 节点为根节点(root),构建BFS-tree:Tc ;Nc(v) 表示BFS树中,与节点v直接相连的所有节点:pc(vi|v)=exp(gTvi⋅gv)∑vj∈Nc(v)exp(gTvj⋅gv)
为了计算G(v|vc;θG) , 定义一条从节点vc 到节点v的路径Pvc→v={vr0,vr1,⋯,vrm} ,并且vr0=vc,vrm=v 。G(v|vc)≜(∏j=1mpc(vj|vj−1))⋅p(vj−1|vj)
生成器的生成策略:
总结来说:GraphGAN用DeepWalk、LINE、node2vec训练的向量初始化生成器和判别器的参数;判别器的正样本是网络中可观测到的边,因而训练好的生成器逼近网络的一阶信息。
Adversarial Network Embedding
ANE [1]http://arxiv.org/abs/1711.07838是发表在AAAI 2018上的用对抗生成网络学习网络表示的文章
现有的网络表示方法Deep Walk、LINE、node2vec等保留了网络的一阶、二阶或者更高阶的相似性,但这些方法都缺少增加embedding鲁棒性的限制。本文通过对抗训练的规则来正则化表示学习过程。ANE包含两个部分:结构保留、对抗学习。在结构保留部分,本文实验中分别使用了 Inductive DeepWalk和Denoising Auto encoder两种模型;对抗学习部分主要是学习稳定、鲁棒的网络表示,使结构保留部分生成的网络表示服从先验(prior)分布。
Data Processing
本文对数据进行预处理,将邻接矩阵转换为shifted PPMI 矩阵。
Structure Preserving
在结构保留模块,作者提出了Inductive Deep Walk(IDW)。Deep Walk、LINE这些模型通过look up获得节点的向量表示,并不能给出网络中未出现的节点的Embedding。IDW模型通过生成器生成节点的向量表示,
在生成了向量
Adversarial Learning
生成器相当于是对输入的高维数据进行非线性转换,得到低维的embedding。并且这与IDW公用参数。Deep Walk采用Word2vector的架构,one-hot(input)->embedding(hidden layer)->soft-max(output), Generator相当于是input到hidden layer生成节点的向量表示。
判别器输入的负样本是生成器生成的embedding,正样本从先验(prior)p(z)中获得,也就是说真实数据分布为p(z)。
判别器:
生成器:
本文在实验中,采用了IDW和 Denoising Auto-Encoder作为生成器。并且对于先验分布p(z)分别实验了 均匀分布(Uniform)和高斯分布(Gaussian),这两种先验实验结果基本相同。并且实验过程使用wGAN 中的训练技巧。
- GAN在网络表示中的应用--GraphGAN、Adversarial Network Embedding
- GAN: Generative Adversarial Network
- 李宏毅MLDS课程笔记9:Generative Adversarial Network(GAN)
- Generative Adversarial Network (GAN) papers (不定期更新)
- GAN学习笔记:MMGAN:Manifold-Matching Generative Adversarial Network
- GAN在自然语言处理中的应用
- 生成对抗网络(GAN:Generative Adversarial Networks)
- 生成式对抗网络(Generative Adversarial Networks,GAN)
- 【资料】生成对抗网络(GAN,Generative Adversarial Networks)
- 生成对抗网络(GAN,Generative Adversarial Networks) 学习笔记
- Orion Network Performance Monitor 软件在网络管理中的应用
- 对抗生成网络(Generative Adversarial Network)
- GAN: Generative Adversarial Nets
- Generative Adversarial Nets (GAN)解读
- GAN在目标检测应用
- 生成式对抗网络GAN研究进展(四)——Laplacian Pyramid of Adversarial Networks,LAPGAN
- 生成式对抗网络GAN研究进展(五)——Deep Convolutional Generative Adversarial Nerworks,DCGAN
- 浅析生成对抗网络(GAN)—— Generative Adversarial Nets
- 大学生活随笔
- 3492. 【NOIP2013模拟联考12】数数(count)(循环节/DP)
- 性能测试新法宝:performance.now()
- 兄弟连学python(4)——列表、元祖、字典、集合数据类型介绍
- 一只程序猿的养成日记 第一章 第十二节 输入一个非负整数,返回组成它的数字之和
- GAN在网络表示中的应用--GraphGAN、Adversarial Network Embedding
- 使用TCP协议编写一个网络程序,设置服务器端的监听端口是8002,当与客户端建立连接后,服务器端向客户端发送数据“Hello, world”,客户端收到数据后打印输出。
- 一道数据结构的错题
- unity 鼠标移动 缩放,旋转
- xmind真正有用的几个快捷键(私人总结)
- 混沌图像加密
- 完全卸载oracle 11g 并重装
- 获取摩拜单车在地区的车辆python多线程实现
- requireJS加载模块,define定义模块