[论文阅读笔记] Are Meta-Paths Necessary? Revisiting Heterogeneous Graph Embeddings


本文结构

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

(1) 解决问题

传统的异构网络中的随机游走常常偏向于采样节点数比较多的节点类型。为了克服该问题,metapath2vec提出了基于元路径的随机游走,然而使用元路径策略要么要求先验知识,要么需要通过额外的操作来结合所有短的元路径到一个预定义的序列长度(如多元路径的情况,如何取舍,哪个更重要?)。本文基于该以上传统随机游走存在的偏向性问题出发,提出了不使用元路径策略的另外一种解决方法。


(2) 主要贡献

Contribution: 本篇论文提出了一种基于随机游走的异构网络嵌入算法JUST(不使用元路径),设计了JUmp和STay两个策略来以一种更有效的方式克服上述提出的传统异构网络随机游走偏差的问题。


(3) 算法原理

JUST算法框架主要包含两个部分:首先在图上做基于JUMP和STAY策略的随机游走,其次将得到的节点序列输入Skip-Gram模型学习节点表示向量嵌入(不再赘述)。

基于JUMP和STAY策略的随机游走

相比于同构网络,异构网络中的存在多种节点类型,该论文在传统异构图网络随机游走的基础之上,设计了两种策略来选择随机游走中下一跳节点的类型,即Jump和Stay策略

1. Jump(跳转策略): 即随机游走下一跳跳转到其他节点类型上去,假设下一跳节点类型为q,则所有与当前节点有边的且属于节点类型q的邻居节点都是下一跳节点的候选集。

2. Stay(停留策略): 即随机游走下一跳停留在当前节点的节点类型上,则所有与当前节点有连边且与当前节点同类型的邻居节点为下一跳节点的候选集。

基于以上两种策略,我们需要确定以下细节来控制随机游走:何时jump何时stay?jump的时候,要jump到哪个节点类型合适?

1. 何时jump何时stay?: stay和jump的概率设计如下,

一共包括三种情况:

(1)如果没有与当前节点同类型的邻居节点,那stay不了,就jump。

(2)如果没有与当前节点不同类型的邻居节点,那jump不了,就stay。

(3)如果既有与当前节点同类型的邻居又有不同类型的邻居,那以α的L次方确定stay和Junp的概率。α为初始的stay概率(超参数),L为到目前为止连续访问同一类型节点的次数(为了防止随机游走连续使用停留策略采样同一类型的节点,因此设计以指数概率衰减)。

2. jump的时候,要jump到哪个节点类型合适?: 以如下方式构造待选节点类型集合:

一共包含两种情况:

(1)节点类型q在最近没被选择过(构造一个m大小的队列来存储最近被选择跳转过的节点类型)并且当前节点的q类型节点邻居非空,满足该要求节点类型的为待选节点类型。以下为一个m=2的例子 (Q_hist存储最近被选择跳转的m=2个节点类型,下一跳节点类型跳转就选不到P和A两个类型了):

(2)如果由上述要求构造出来的待选节点类型集合是空的(即没有满足上述条件的节点类型),那就放松条件重新构造该集合。即不和当前节点的节点类型相同的其他节点类型都作为待选节点类型。

构造完待选节点类型之后,下一跳待转移的节点类型从该集合中随机采样即可,选完节点类型之后选择具体节点也是随机的。

通过以上方式生成异构网络上的随机游走序列之后,采用Skip-Gram模型训练节点向量即可。


(4) 参考文献

Hussein R, Yang D, Cudré-Mauroux P. Are Meta-Paths Necessary? Revisiting Heterogeneous Graph Embeddings[A]. Proceedings of the 27th ACM International Conference on Information and Knowledge Management[C]. 2018: 437–446.


[论文阅读笔记] Are Meta-Paths Necessary, Revisiting Heterogeneous Graph Embeddings的更多相关文章

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

    [论文阅读笔记] metapath2vec: Scalable Representation Learning for Heterogeneous Networks 本文结构 解决问题 主要贡献 算法 ...

  2. 论文阅读笔记 - YARN : Architecture of Next Generation Apache Hadoop MapReduceFramework

    作者:刘旭晖 Raymond 转载请注明出处 Email:colorant at 163.com BLOG:http://blog.csdn.net/colorant/ 更多论文阅读笔记 http:/ ...

  3. 论文阅读笔记 - Mesos: A Platform for Fine-Grained ResourceSharing in the Data Center

    作者:刘旭晖 Raymond 转载请注明出处 Email:colorant at 163.com BLOG:http://blog.csdn.net/colorant/ 更多论文阅读笔记 http:/ ...

  4. 论文阅读笔记 Word Embeddings A Survey

    论文阅读笔记 Word Embeddings A Survey 收获 Word Embedding 的定义 dense, distributed, fixed-length word vectors, ...

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

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

  6. [置顶] 人工智能(深度学习)加速芯片论文阅读笔记 (已添加ISSCC17,FPGA17...ISCA17...)

    这是一个导读,可以快速找到我记录的关于人工智能(深度学习)加速芯片论文阅读笔记. ISSCC 2017 Session14 Deep Learning Processors: ISSCC 2017关于 ...

  7. Nature/Science 论文阅读笔记

    Nature/Science 论文阅读笔记 Unsupervised word embeddings capture latent knowledge from materials science l ...

  8. 论文阅读笔记(二十一)【CVPR2017】:Deep Spatial-Temporal Fusion Network for Video-Based Person Re-Identification

    Introduction (1)Motivation: 当前CNN无法提取图像序列的关系特征:RNN较为忽视视频序列前期的帧信息,也缺乏对于步态等具体信息的提取:Siamese损失和Triplet损失 ...

  9. 论文阅读笔记(十八)【ITIP2019】:Dynamic Graph Co-Matching for Unsupervised Video-Based Person Re-Identification

    论文阅读笔记(十七)ICCV2017的扩刊(会议论文[传送门]) 改进部分: (1)惩罚函数:原本由两部分组成的惩罚函数,改为只包含 Sequence Cost 函数: (2)对重新权重改进: ① P ...

随机推荐

  1. java面试一日一题:讲下在什么情况下会发生类加载

    问题:请讲下在什么情况下会发生类加载? 分析:该问题主要考察对java中类加载的知识,什么是类加载,为什么会发生类加载,什么情况下发生类加载? 回答要点: 主要从以下几点去考虑 1.什么是类加载: 2 ...

  2. 一篇博文让你学会HTML5

    HTML 什么是HTML HTML(HyperText Markup Language,超文本标记语言)是用来描述网页的一种语言,它不是一种编程语言,而是一种标记语言. 认识HTML HTML5是构建 ...

  3. 源码篇:ThreadLocal的奇思妙想(万字图文)

    前言 ThreadLocal的文章在网上也有不少,但是看了一些后,理解起来总感觉有绕,而且看了ThreadLocal的源码,无论是线程隔离.类环形数组.弱引用结构等等,实在是太有意思了!我必须也要让大 ...

  4. RESTful中的PUT和PATCH实践

    先放上后台的在线API文档:SkyBlog Swagger API 在UserApi中,有这样三个接口1. PUT /users/{id} 更新用户信息2. PATCH /users/role/{id ...

  5. 【odoo】[经验分享]数据迁移注意事项

    [odoo14]经典好书学习没有烂尾,主体已完成,可移步了解.https://www.cnblogs.com/xushuotec/p/14428210.html 背景 近期,有朋友打算上odoo系统. ...

  6. Python数模笔记-Sklearn(5)支持向量机

    支持向量机(Support vector machine, SVM)是一种二分类模型,是按有监督学习方式对数据进行二元分类的广义线性分类器. 支持向量机经常应用于模式识别问题,如人像识别.文本分类.手 ...

  7. ZwQuerySystemInformation枚举内核模块

    在内核中通过调用此函数来枚举windows系统中已经加载的内核模块. NTSTATUS ZwQuerySystemInformation ( SYSTEM_INFORMATION_CLASS Syst ...

  8. Codeforces Round #712 (Div. 2)

    A. Déjà Vu 题意:就是问能否加上字母a,使得字符串不中心对称 思路:只有一种情况不能加入,就是全部是a,剩下的都可以满足,找a的位置就找哪个字母不是a,然后让它的对称位置是新加的这个a 代码 ...

  9. [技术博客]iview组件样式踩坑记录

    [技术博客]iview组件样式踩坑记录 iview官方文档. 在本次项目开发中,前端项目主要使用vue框架+iview组件构建,其中iview组件在使用过程中遇到了许多官方文档中没有明确说明或是很难注 ...

  10. 【技术博客】使用iview的Tree组件写一棵文件树

    本次项目的前端部分使用vue框架+iview组件构建,其中IDE的文件树部分使用了iview的Tree组件,但是Tree组件本身的接口功能极其有限,网上的相关资料也不多,在使用时费了一番功夫才摸索清楚 ...