[论文阅读笔记] metapath2vec: Scalable Representation Learning for Heterogeneous Networks
[论文阅读笔记] metapath2vec: Scalable Representation Learning for Heterogeneous Networks
本文结构
- 解决问题
- 主要贡献
- 算法原理
- 参考文献
(1) 解决问题
解决异构网络上的节点嵌入问题。 论文中指出了异构网络嵌入的两个关键问题:
- 在异构网络中,如何定义和建模节点邻域的概念?
- 如何优化嵌入模型,使得其能够有效的保留多种类型的节点和边的结构和语义信息。
(2) 主要贡献
Contribution 1: 定义了异构网络表示学习的问题,总结了异构网络嵌入所带来的挑战。
Contribution 2: 提出两个快速且有效的框架,metapath2vec和metapath2vec++,能够保留异构网络中的结构和语义联系。
Contribution 3:
证明了所提的两个模型能够挖掘到异构网络中不同类型节点的语义联系(现有方法无法识别的)。
(3) 算法原理
以下以一个学术网络为例:
1. metapath2vec 模型
主要框架(类似于DeepWalk):基于元路径的随机游走 + 异构Skip-Gram。
异构 Skip-Gram
和一般的Skip-Gram模型类似,,异构Skip-Gram的网络结构如上图所示,其目标是最大化节点和其异构上下文邻居的共现概率。目标函数如下,和一般的Skip-Gram模型的主要区别在于中间那个求和符号,分别对节点与其异构邻居的关系进行建模。
细节不再过多介绍,可以参考DeepWalk。
基于元路径的随机游走
元路径简单来说是节点类型的序列,用于表达不同节点类型之间或者相同节点类型之间的某种联系,比如 “APVPA”就是一个元路径,表达的是两个作者在某个期刊或者会议上都发表了论文,(A是作者节点类型,P是论文节点类型,V是期刊或者会议节点类型)。一般来说,元路径是事先由先验知识给定的。而基于元路径的随机游走指的是 “下一跳节点的节点类型由当前节点类型和元路径模式确定,按照元路径的指导选择相应的节点类型进行跳转,如果有多个相同节点类型的邻居,则随机选择一个。” 元路径通常设计成一种对称的方式,即他的第一个节点类型和最后一个节点类型要一致,如“APVPA”,这可以重复循环使用指导随机游走。基于元路径的随机游走策略能够捕获不同节点类型之间的联系,并且确保不同类型节点的语义联系可以合理的融合到skip-gram模型中。
2. metapath2vec++ 模型
metapath2vec的异构Skip-Gram根据节点类型区分了节点的不同上下文节点,从而再嵌入过程中重构他的邻域,然而,他在softmax层中忽略了节点的类型信息。换句话说,给定节点v,为了推断其邻域中特定类型的上下文节点,metapath2vec实际上允许所有类型的节点作为其负样本。基于上述问题,作者进一步提出metapath2vec++框架,metapath2vec++框架与metapath2vec框架基本一致,只是softmax函数不再由网络中所有节点来做归一化,而只是取与中心节点同类型的网络中所有节点的来做归一化。用了这个策略之后,skip-gram的输出从一个多项式分布变成了同类型概率的多个多项式分布了,其网络结构如下图所示。
(4) 参考文献
Dong Y, Chawla N V, Swami A. metapath2vec: Scalable representation learning for heterogeneous networks[A]. Proceedings of the 23rd ACM SIGKDD international conference on knowledge discovery and data mining[C]. 2017: 135–144.
[论文阅读笔记] metapath2vec: Scalable Representation Learning for Heterogeneous Networks的更多相关文章
- 论文阅读笔记 Improved Word Representation Learning with Sememes
论文阅读笔记 Improved Word Representation Learning with Sememes 一句话概括本文工作 使用词汇资源--知网--来提升词嵌入的表征能力,并提出了三种基于 ...
- [论文阅读笔记] node2vec Scalable Feature Learning for Networks
[论文阅读笔记] node2vec:Scalable Feature Learning for Networks 本文结构 解决问题 主要贡献 算法原理 参考文献 (1) 解决问题 由于DeepWal ...
- [论文阅读笔记] Adversarial Mutual Information Learning for Network Embedding
[论文阅读笔记] Adversarial Mutual Information Learning for Network Embedding 本文结构 解决问题 主要贡献 算法原理 实验结果 参考文献 ...
- 论文阅读笔记六:FCN:Fully Convolutional Networks for Semantic Segmentation(CVPR2015)
今天来看一看一个比较经典的语义分割网络,那就是FCN,全称如题,原英文论文网址:https://people.eecs.berkeley.edu/~jonlong/long_shelhamer_fcn ...
- 论文阅读笔记二十三:Learning to Segment Instances in Videos with Spatial Propagation Network(CVPR2017)
论文源址:https://arxiv.org/abs/1709.04609 摘要 该文提出了基于深度学习的实例分割框架,主要分为三步,(1)训练一个基于ResNet-101的通用模型,用于分割图像中的 ...
- 论文阅读笔记四十一:Very Deep Convolutional Networks For Large-Scale Image Recongnition(VGG ICLR2015)
论文原址:https://arxiv.org/abs/1409.1556 代码原址:https://github.com/machrisaa/tensorflow-vgg 摘要 本文主要分析卷积网络的 ...
- 论文阅读笔记三十八:Deformable Convolutional Networks(ECCV2017)
论文源址:https://arxiv.org/abs/1703.06211 开源项目:https://github.com/msracver/Deformable-ConvNets 摘要 卷积神经网络 ...
- 论文阅读笔记六十五:Enhanced Deep Residual Networks for Single Image Super-Resolution(CVPR2017)
论文原址:https://arxiv.org/abs/1707.02921 代码: https://github.com/LimBee/NTIRE2017 摘要 以DNN进行超分辨的研究比较流行,其中 ...
- [论文阅读笔记] LouvainNE Hierarchical Louvain Method for High Quality and Scalable Network Embedding
[论文阅读笔记] LouvainNE: Hierarchical Louvain Method for High Quality and Scalable Network Embedding 本文结构 ...
随机推荐
- get、post、
1.get请求 get请求会把参数放在url后面,中间用?隔开,也可以把参数放在请求body中,如果参数中有中文,http传的时候requests框架会将中文换成urlencode编码 2.get和p ...
- Python学习第四天----模块儿导入
1.命名空间 模块儿的名字加上文件的名字,就是命名空间. python如何区分一个普通的文件夹和一个包的? 在一个文件夹下有一个特定的文件__init__.py,此时这个文件夹就是一个包.(前后各两个 ...
- Python爬虫入门(二)之Requests库
Python爬虫入门(二)之Requests库 我是照着小白教程做的,所以该篇是更小白教程hhhhhhhh 一.Requests库的简介 Requests 唯一的一个非转基因的 Python HTTP ...
- 【刷题笔记】DP优化-单调队列优化
单调队列优化 眼界极窄的ZZ之前甚至不会单调队列--(好丢人啊) 单调队列优化的常见情景: 转移可以转化成只需要确定一个维度,而且这个维度的取值范围在某个区间里 修剪草坪 这个题学长讲的好像是另外一个 ...
- Django 的反向解析与有无名分组
无名分组(将加括号的正则表达式匹配到的内容当做位置参数自动传递给对应的视图函数) url(r'^test/(\d+)/',views.test), # 匹配一个或多个数字 def test(reque ...
- PyQt学习随笔:ListView控件获取当前选择项的方法
通过currentIndex()可以获取listView控件的当前选择元素,如果选择了多个,则可以通过selectedIndexes()来获取选择的元素,不过这两个函数返回的是元素数据,而不是索引编号 ...
- 记一次UE4源码编译和游戏项目打包过程
1.首先我们需要注册一个Epic账户,网址如下 http://api.unrealengine.com/CHN/GettingStarted/Installation/index.html#bookm ...
- I am zhoukangyang!
我是 \(\texttt{zhoukangyang}\),一名来自浙江省,杭州市的初二菜鸡 \(\texttt{oier}\) . 洛谷zhoukangyang 很多东西因为太垃圾所以 了,要开 请洛 ...
- WebService-问题
1.引用问题 在用C#对接webservice的时候,常用的方法是下载vs中引用webservice的地址.然后,new对应的client就可以使用了.但在,实际应用中往往会遇到webservice访 ...
- python写几个排序算法
def maopao(data: list): """ 两两比较 :param data: :return: """ length = le ...