2017 KDD | metapath2vec: Scalable Representation Learning for Heterogeneous Networks
Paper: https://ericdongyx.github.io/papers/KDD17-dong-chawla-swami-metapath2vec.pdf
Code: https://ericdongyx.github.io/metapath2vec/m2v.html
2017 KDD | metapath2vec:异构网络可扩展表示学习
作者提到了当前已经提出的采用了word2vec思想的网络表示算法,如Deepwalk,node2vec以及LINE等。但是作者也明确指出了,上述这些算法虽然可以用于网络表示学习,但仅适合那些只包含一类顶点类型和边类型的同构网络(Homogeneous Networks),并不能很好地用于包含多种顶点类型和边类型的复杂关系网络。于是作者在基于meta-path的基础上,提出了能很好应对指定scheme结构的异构复杂关系网络的表示学习方法——metapath2vec和metapath2vec++。
metapath2vec的思路非常的简单,使用的是基于metapath的随机游走策略(deepwalk的游走策略的升级版,没有引入node2vec中的p,q参数),最终底层还是gensim+word2vec来实现embedding。
所谓的metapath就是指:
V表示节点,V可以是不同类型的节点,R表示边,R可以是不同类型边。
metapath2vec需要我们人工事先定义游走的路径,例如
有四种类型的节点,分别是org(机构),author(作者),paper(论文),venue(领域),原文中人工定义了固定的游走路径:
- APA 即 作者-paper-作者 的路径(意思就是两个作者合著了一篇paper)
- APVPA 即 作者-paper-领域-paper-作者(意思就是两个作者写的两篇paper是同一个领域的)
- OAPVPAO 即 机构-作者-paper-领域-paper-作者-机构(意思是两个机构,两个作者的两篇paper属于同一个领域)
人工设定了游走的路径之后,后续生成的序列就只能是这种固定的形式了,
比如当前节点为author,author会和org,paper以及其它author有边存在,此时根据上面的公式,假设我们定义的metapath为APA,则author的下一步不会游走到其邻接的org或其他邻接的author上,只会在邻接的paper上实施和deepwalk一样的游走策略, when 当前节点author游走到某个paper的节点上时,当前节点为paper,此时根据APA的metapath的设定,下一步我们只能游走到当前paper的邻接的其他author上。