[论文阅读笔记] Adversarial Mutual Information Learning for Network Embedding
[论文阅读笔记] Adversarial Mutual Information Learning for Network Embedding
本文结构
- 解决问题
- 主要贡献
- 算法原理
- 实验结果
- 参考文献
(1) 解决问题
现有的基于GAN的方法大多都是先假设服从一个高斯分布,然后再来学习节点嵌入(匹配节点嵌入向量服从这个假设的先验分布)。
这可能存在两个问题:
- 一个问题是(由于真实数据是有很多噪声的,所以会为GAN模型学习的分布带来很多噪声)很难从节点向量表示中区分出噪声节点,因为所有节点都是服从高斯分布的,很容易受到噪声节点的影响?也就是噪声容易影响学习的分布,学习的分布对噪声不稳定?
- 第二个问题是,这种思想没有充分利用GAN的本质优势,作者认为GAN的优势在于其对抗学习的机制而不是学习节点向量表示本身(现有的利用GAN方法来做网络嵌入的方式大多目标是后者,为了学习更好的节点向量)。
所以本文的主要思路就是要在表示机制中融入对抗机制,而不是仅仅为了使得嵌入向量的分布要服从先验分布这个目的。基于以上基本思路,本文提出了一个结合自编码器的对抗学习方法用来实现网络嵌入,把对抗学习用在表示(映射)机制上。
(2) 主要贡献
Contribution:个人感觉这篇论文的主要贡献是把对抗学习这个机制运用在映射机制上而不是运用在表示向量本身,基于这个基本思路,提出了一个结合自编码器的对抗学习方法用来实现网络嵌入,利用对抗训练的机制来进一步优化编码器所学习得到的节点嵌入向量。
(3) 算法原理
模型的主要思路: 下图为论文所提出的AMIL模型的总体框架。AMIL的框架,包括三个部分,如下图所示。一个自编码器,一个负样本生成器和一个互信息判别器,整体是一个对抗过程。整体来说,自编码器部分利用网络拓扑聚合节点属性到节点表示中,解码器使用节点嵌入重构网络拓扑。负样本生成器部分这是一个生成对抗网络,包含一个生成器和属性判别器,是用来生成节点的fake属性向量的。互信息判别器识别编码器的映射机制生成的正样本和负样本生成器生成的负样本。
在AMIL模型中(编码器和生成器都要训练)。编码器部分包含两个目标,一个是传统的自编码器的重构损失,还有一个是互信息判别器的对抗训练目标。也就是说编码器部分根据解码器的反馈(带有结构信息)以及互信息判别器D的反馈(带有属性信息)两部分来更新自己的参数。这个负样本生成器也同样包括两个目标:一个是与自身的属性判别器的对抗目标,还有一个是和互信息判别器D的对抗训练目标。也就是说生成器也根据互信息判别器反馈(带有结构信息或者说负样本生成器只是对节点属性的建模?自己的猜测)和属性判别器(带有属性信息)反馈两个部分来更新自己的参数。以上这个对抗过程不断训练,直到收敛,就可以获得包含结构和属性的节点嵌入向量表示了,理论上可以是编码器的输出也可以是生成器的输出。但是生成器部分毕竟是最小化和真实节点属性向量的差异,可能没有包含拓扑结构的信息,所以感觉取编码器的输出作为最终向量可能会更好。
下面分别介绍以上AMIL框架三个部分的具体细节。
(1) 自编码器:
自编码器的编码器部分论文中采用两层的GCN来搭建,输入邻接矩阵A和属性矩阵X,GCN通过邻接矩阵A反应的图拓扑结构来聚合节点属性从而学习节点表示,每层GCN聚合一跳节点,两层可以聚合两跳节点。解码器部分简单重构网络拓扑,利用编码器得到的嵌入向量内积的sigmoid来重构邻接矩阵,采用交叉熵函数来计算重构损失,具体公式详见原始论文。
(2) 负样本生成器:
负样本生成器部分是一个普通的生成对抗网络(GAN),包含一个生成器和一个判别器。生成器采用三层全连接层的神经网络实现(判别器也是),以一个高斯噪声作为输入,生成节点的fake属性向量,以欺骗判别器。判别器部分目标是去识别真属性和假属性向量。通过迭代训练,生成器生成的节点属性会更加接近真实。GAN具体目标函数详见原始论文。
(3) 互信息判别器:
前面说到模型的核心在于应用对抗学习策略在表示机制上而非表示向量本身,目标是为了学习一个更加有效的嵌入机制。这个核心思路的具体体现就在互信息判别器这一部分。互信息可以表示两个变量之间的依赖关系,越大则两个变量互相依赖(理解为相似?)程度越大。利用这一点,作者使用输入向量和输出向量的互信息来定量表示一个嵌入机制(将输入向量映射到输出向量)的质量,互信息越大表示嵌入质量越好。互信息可以用一些不同的方式定义,但是为了简便和学习效率,作者简单将输入向量和输出向量的拼接定义为互信息的近似。
既然这是一个判别器那么就需要定义正样本和负样本。对于互信息判别器的正样本和负样本定义,我们将编码器生成的节点表示Z和属性信息X的互信息作为正样本(就是编码器的输入和输出嘛)。并且把生成器的输入(噪声高斯分布Z’)和输出(假属性向量X’)的互信息作为负样本。然后互信息判别器的目标就是去区分这对样本了,对正样本输出1,对负样本输出0。互信息判别器的损失详见原始论文。
结合以上三个部分来看AMIL整体框架结构图,其实整个AMIL框架就是一个包含两个竞争对手(指的是映射机制GAN和自编码器)的全局的对抗学习过程,该模型联合训练一个编码器和一个生成器。 AMIL总的目标函数详见原始论文,并且最终使用基于梯度的优化方法来做优化。
(4) 实验结果
- 节点分类
- 节点聚类
- 参数实验
- Citeseer 数据集的可视化结果
(5) 参考文献
He D, Zhai L, Li Z, et al. Adversarial Mutual Information Learning for Network Embedding[C]//Proceedings of IJCAI. 2020: 3321-3327.
[论文阅读笔记] Adversarial Mutual Information Learning for Network Embedding的更多相关文章
- [论文阅读笔记] Community aware random walk for network embedding
[论文阅读笔记] Community aware random walk for network embedding 本文结构 解决问题 主要贡献 算法原理 参考文献 (1) 解决问题 先前许多算法都 ...
- [论文阅读笔记] Adversarial Learning on Heterogeneous Information Networks
[论文阅读笔记] Adversarial Learning on Heterogeneous Information Networks 本文结构 解决问题 主要贡献 算法原理 参考文献 (1) 解决问 ...
- 论文阅读笔记 Improved Word Representation Learning with Sememes
论文阅读笔记 Improved Word Representation Learning with Sememes 一句话概括本文工作 使用词汇资源--知网--来提升词嵌入的表征能力,并提出了三种基于 ...
- [论文阅读笔记] metapath2vec: Scalable Representation Learning for Heterogeneous Networks
[论文阅读笔记] metapath2vec: Scalable Representation Learning for Heterogeneous Networks 本文结构 解决问题 主要贡献 算法 ...
- [论文阅读笔记] node2vec Scalable Feature Learning for Networks
[论文阅读笔记] node2vec:Scalable Feature Learning for Networks 本文结构 解决问题 主要贡献 算法原理 参考文献 (1) 解决问题 由于DeepWal ...
- 论文阅读笔记二十三:Learning to Segment Instances in Videos with Spatial Propagation Network(CVPR2017)
论文源址:https://arxiv.org/abs/1709.04609 摘要 该文提出了基于深度学习的实例分割框架,主要分为三步,(1)训练一个基于ResNet-101的通用模型,用于分割图像中的 ...
- 论文阅读笔记 Word Embeddings A Survey
论文阅读笔记 Word Embeddings A Survey 收获 Word Embedding 的定义 dense, distributed, fixed-length word vectors, ...
- Nature/Science 论文阅读笔记
Nature/Science 论文阅读笔记 Unsupervised word embeddings capture latent knowledge from materials science l ...
- [置顶]
人工智能(深度学习)加速芯片论文阅读笔记 (已添加ISSCC17,FPGA17...ISCA17...)
这是一个导读,可以快速找到我记录的关于人工智能(深度学习)加速芯片论文阅读笔记. ISSCC 2017 Session14 Deep Learning Processors: ISSCC 2017关于 ...
随机推荐
- 模板templates的使用
目录 模板及其渲染 模板查找路径 DTL模板语法 常用的模板标签 DTL常用过滤器 模块结构优化 加载静态文件 模板及其渲染 视图函数只是直接返回文本,而在实际生产环境中其实很少这样用,因为实际的页面 ...
- 基于 RTF specification v1.7 的 RTF 文件解析及 OLE 对象提取(使用 Python 开发)
0x01 Office RTF 文件介绍 RTF 文件也称富文本格式(Rich Text Format, 一般简称为 RTF),意为多文本格式是由微软公司开发的跨平台文档格式.大多数的文字处理软件都能 ...
- Jenkins反序列化漏洞复现
Jenkins Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能. Jenkins功能包括: 持 ...
- Tars-Java客户端源码分析
一.基本RPC框架简介 在分布式计算中,远程过程调用(Remote Procedure Call,缩写 RPC)允许运行于一台计算机的程序调用另一个地址空间计算机的程序,就像调用本地程序一样,无需额外 ...
- vscode插件(摸鱼神器-小霸王游戏机
vscode插件(摸鱼神器-小霸王游戏机 步骤 vscode扩展搜索小霸王,点击下载即可. 使用 默认有一个demo小游戏,即超级玛丽. 本地仓库 可以通过local菜单上的添加按钮添加本地nes r ...
- ATK&CK红队评估实战靶场 (一)的搭建和模拟攻击过程全过程
介绍及环境搭建 靶机地址:http://vulnstack.qiyuanxuetang.net/vuln/detail/2 官方靶机说明: 红队实战系列,主要以真实企业环境为实例搭建一系列靶场,通过练 ...
- 【opencv】VideoCapture打不开本地视频文件或者网络IP摄像头
1.前提:成功打开本地USB摄像头 // 创建VideoCapture对象 VideoCapture vc = new VideoCapture(); // 可以成功打开本地USB摄像头 // 参数可 ...
- MFC Object 与 Windows Object
MFC Object 和 Windows Object的含义 Window Object(Window对象)是Win32下用句柄表示的Windows操作系统对象.MFC Object(MFC对象)是C ...
- python爬虫——汽车之家数据
相信很多买车的朋友,首先会在网上查资料,对比车型价格等,首选就是"汽车之家",于是,今天我就给大家扒一扒汽车之家的数据: 一.汽车价格: 首先获取的数据是各款汽车名称.价格范围以及 ...
- ssh-的搭建和使用
ssh的作用 : 可实现远程客户端登录服务器并对服务器的文件进行操作 ssh服务器的安装 farsight@ubuntu:~$ sudo apt-get install openssh-server ...