[论文阅读笔记] metapath2vec: Scalable Representation Learning for Heterogeneous Networks


本文结构

  1. 解决问题
  2. 主要贡献
  3. 算法原理
  4. 参考文献

(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的更多相关文章

  1. 论文阅读笔记 Improved Word Representation Learning with Sememes

    论文阅读笔记 Improved Word Representation Learning with Sememes 一句话概括本文工作 使用词汇资源--知网--来提升词嵌入的表征能力,并提出了三种基于 ...

  2. [论文阅读笔记] node2vec Scalable Feature Learning for Networks

    [论文阅读笔记] node2vec:Scalable Feature Learning for Networks 本文结构 解决问题 主要贡献 算法原理 参考文献 (1) 解决问题 由于DeepWal ...

  3. [论文阅读笔记] Adversarial Mutual Information Learning for Network Embedding

    [论文阅读笔记] Adversarial Mutual Information Learning for Network Embedding 本文结构 解决问题 主要贡献 算法原理 实验结果 参考文献 ...

  4. 论文阅读笔记六:FCN:Fully Convolutional Networks for Semantic Segmentation(CVPR2015)

    今天来看一看一个比较经典的语义分割网络,那就是FCN,全称如题,原英文论文网址:https://people.eecs.berkeley.edu/~jonlong/long_shelhamer_fcn ...

  5. 论文阅读笔记二十三:Learning to Segment Instances in Videos with Spatial Propagation Network(CVPR2017)

    论文源址:https://arxiv.org/abs/1709.04609 摘要 该文提出了基于深度学习的实例分割框架,主要分为三步,(1)训练一个基于ResNet-101的通用模型,用于分割图像中的 ...

  6. 论文阅读笔记四十一:Very Deep Convolutional Networks For Large-Scale Image Recongnition(VGG ICLR2015)

    论文原址:https://arxiv.org/abs/1409.1556 代码原址:https://github.com/machrisaa/tensorflow-vgg 摘要 本文主要分析卷积网络的 ...

  7. 论文阅读笔记三十八:Deformable Convolutional Networks(ECCV2017)

    论文源址:https://arxiv.org/abs/1703.06211 开源项目:https://github.com/msracver/Deformable-ConvNets 摘要 卷积神经网络 ...

  8. 论文阅读笔记六十五:Enhanced Deep Residual Networks for Single Image Super-Resolution(CVPR2017)

    论文原址:https://arxiv.org/abs/1707.02921 代码: https://github.com/LimBee/NTIRE2017 摘要 以DNN进行超分辨的研究比较流行,其中 ...

  9. [论文阅读笔记] LouvainNE Hierarchical Louvain Method for High Quality and Scalable Network Embedding

    [论文阅读笔记] LouvainNE: Hierarchical Louvain Method for High Quality and Scalable Network Embedding 本文结构 ...

随机推荐

  1. 蓝桥杯——测试次数·摔手机(2018JavaB组第4题,17分)

    x星球的居民脾气不太好,但好在他们生气的时候唯一的异常举动是:摔手机. 各大厂商也就纷纷推出各种耐摔型手机.x星球的质监局规定了手机必须经过耐摔测试,并且评定出一个耐摔指数来,之后才允许上市流通. x ...

  2. ESP8266 ESP-01制作B站粉丝计数器 | Arduino IDE开发ESP8266 | ESP8266存储读取用户数据

    1.实物图 2.原理图 3.Arduino程序 在程序中修改自己的B站UID和自己家的WiFi名称及密码即可. /*B站粉丝计数器*/ /******************************* ...

  3. [教程] Android Native内存泄漏检测方法

    转载请注明出处:https://www.cnblogs.com/zzcperf/p/9563389.html Android 检测 C/C++内存泄漏的方法越来越简便了,下面列举一下不同场景下检测C/ ...

  4. CenOS下监控工具尝试

    Cacti cacti重图形,有数据历史,需要用到数据库支持,支持web配置,默认不支持告警,可以加插件. Server端配置 安装epel yum install -y epel-release 安 ...

  5. 论如何优雅的抛出SpringBoot注解的异常

    平时我们在写代码的时候肯定要进行很多参数验证,最开始的时候我们一般都是这样处理的  如下图   看起来好像也没什么,但是  如果参数多了呢?你就会看到这样的校验 OMG!!!  有没有感觉稍微有点视觉 ...

  6. Django 多对多表的三种创建方式

    第一种: class Book(models.Model): name = models.CharField(max_length=32) # 第一种自动创建 authors = models.Man ...

  7. 【SHOI2008】JZOJ2020年9月5日提高组 循环的债务

    CSP-2020倒计时:36天 [SHOI2008]JZOJ2020年9月5日提高组 循环的债务 题目 Description Alice.Bob和Cynthia总是为他们之间混乱的债务而烦恼,终于有 ...

  8. django(django学习) 两张表创建 插入数据

      pycharm中直接创建django项目 输入创建项目名(如first_django) 在此输入应用名(如g_tu) 此为项目总目录 将first_django中settings.py中第58行修 ...

  9. 从TFS到git的持续集成之路

    前言 公司目前使用TFS,由于TFS不灵活不能很好的持续集成,且给测试造成很大重的负担,所以近期准备迁移到git上 目标 解决项目运转的瓶颈(版本太多,导致测试跟不上,需引入自动化测试) 过程 主线分 ...

  10. 区块链知识博文1: 共识算法之争(PBFT,Raft,PoW,PoS,DPoS,Ripple)

    注:这是本人读到的关于共识算法最全和最好的分享博文,系统的介绍了拜占庭容错技术以及共识算法的原理和常用共识算法,原文链接请见后. 目录 一.拜占庭容错技术(Byzantine Fault Tolera ...