前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >KDD 2017 | metapath2vec:异质图的可扩展表示学习

KDD 2017 | metapath2vec:异质图的可扩展表示学习

作者头像
Cyril-KI
发布2022-11-10 11:26:04
4570
发布2022-11-10 11:26:04
举报
文章被收录于专栏:KI的算法杂记

题目:metapath2vec: Scalable Representation Learning for Heterogeneous Networks

会议: KDD 2017

论文地址:https://dl.acm.org/doi/pdf/10.1145/3097983.3098036

前面讲了很多图嵌入方法:

  1. KDD 2016 | node2vec:Scalable Feature Learning for Networks
  2. KDD 2014 | DeepWalk: 社会表征的在线学习
  3. WWW 2015 | LINE:大规模信息网络的嵌入
  4. KDD 2016 | SDNE:结构化深层网络嵌入
  5. 深入理解拉普拉斯特征映射

后面也讲了不少GNN的知识,GNN也可以作为一种图嵌入的手段:

  1. ICLR 2017 | GCN:基于图卷积网络的半监督分类
  2. NeurIPS 2017 | GraphSAGE:大型图的归纳表示学习
  3. ICLR 2018 | GAT:图注意力网络
  4. NeurIPS 2016 | VGAE:变分图自编码器

上面所有图嵌入方法都是针对同质图而言的,也就是图中节点和边的类型都只有一种。而在异质图中,节点和边的类型可能有多种,比如基于社区的问答(cQA)站点:用户可以在互联网上发布问题,其他人可以回答问题,那么在cQA图中就有了不同类型的节点:问题、答案、用户,节点间的链接类型也不一样。

metapath2vec与之前的图嵌入方法不同,metapath2vec是专门处理异质图的,利用metapath2vec我们可以得到异质图中多种不同类型节点的潜在向量表示。

1. 问题定义

首先是异质网络的定义:

G=(V,E,T)

,图中每个节点

v

和每条边

e

都有对应的映射函数

\phi(v):V \to T_V

以及

\phi(e):E\to T_E

T_V

T_E

分别表示节点和边类型的集合,两个集合满足:

|T_V|+|T_E|>2

,也就是说节点类型数和边类型数之和大于2,即不止一种节点或者一种边。

有了以上定义后,可以将异质图表示学习定义为:给定一个异质图

G

,其任务是学习到所有节点的嵌入表示

X\in R^{|V|\times d}

,其中

d << |V|

,嵌入表示

X

能够捕捉到不同类型节点的结构和语义关系。

值得注意的是,虽然异质图中存在不同类型的节点,但它们都会被映射到相同的空间,也就是说不同类型的节点的表示向量的维度都为

d

。图嵌入前提是保持节点与其邻域(上下文)之间的邻近性,在异质环境中,异质图嵌入模型的核心是定义和建模“节点-邻居”的概念以及优化嵌入模型,以有效地维护多种类型节点和关系的结构和语义。

2. metapath2vec

2.1 异质skip-gram

论文首先回忆了word2vec模型及其在同质图中的应用。前面提到的DeepWalk和node2vec模型都是基于skip-gram模型,具体来讲是先得到节点的游走序列,然后再将序列输入到skip-gram中以得到每个节点的嵌入表示。

通常,给定一个网络

G = (V, E)

,其目标是使网络的局部结构概率最大化,即:

这里

N(v)

指节点

v

的上下文节点,这种节点的定义方式有多种,比如DeepWalk中利用随机游走得到上下文节点。

p(c|v;\theta)

指已知节点

v

的情况下,上下文节点

c

存在的概率,这种概率通常用内积+softmax来实现。

为了将异质网络结构引入到skip-gram,metapath2vec提出了异质skip-gram的概念,即在给定节点

v

的情况下,最大化其异质上下文节点

N_t(v)

出现的概率:

这里

N_t(v)

表示节点

v

的第

t

种上下文节点,

p(c_t|v;\theta)

表示已知节点

v

的情况下,上下文节点

c_t

存在的概率,一般来讲,这种概率通常用内积+softmax来实现:

p(c_t|v;\theta)=\frac{e^{X_{c_t}\cdot X_v}}{\sum_{u \in V}e^{X_{u}\cdot X_v}}

与skip-gram中一致,为了解决每次更新时都要对所有节点进行sotmax计算的问题,metapath2vec也引入了负采样策略。给定负样本数

M

,则优化目标可以表示为:

其中

p(u)

是负采样中样本的预定义分布,这个更新公式与带负采样的skip-gram公式基本一致。

2.2 元路径随机游走

同DeepWalk和node2vec等类似,metapath2vec也需要得到节点的游走序列,然后使用2.1中的异质skip-gram模型进行优化。为了得到有效的游走序列,metapath2vec提出了Meta-Path-Based Random Walks,即元路径随机游走。

最简单的一种想法是和DeepWalk一致,进行随机游走,这样也能得到包含不同类型节点的随机游走序列。然而,一些研究表明,异质随机游走偏向于高度可见的节点类型,即那些占据主导地位的路径数量的节点和集中的节点。基于这种理念,本文提出了一种基于元路径的随机游走。

具体来讲,一个meta-path的scheme被定义为:

V_1\overset{R_1}{\rightarrow }V_2\overset{R_2}{\rightarrow}...V_t\overset{R_t}{\rightarrow}V_{t+1}...\overset{R_{l-1}}{\rightarrow}V_l

需要注意的是,元路径中相邻节点的类型是不一样的,即

V_i

V_{i+1}

属于不同类型的节点,

R_i

表示两个节点间的关系。

以下面的学术网络为例:

上图中,A表示作者节点,P表示论文,O表示作者所属组织,V表示期刊会议。根据上述元路径的定义,可以有以下几种简单的元路径:

  1. APA:一篇论文中两个作者的合著关系。
  2. APVPA:两个作者(A)在同一期刊会议(V)上发表了论文。

与node2vec一致,metapath2vec中也给出了每一步的转移概率:

假设当前节点为

v_{t}^i

,那么下一个节点

v^{i+1}

的选择策略为:

  1. 如果
v_{t}^i

v^{i+1}

间存在边,且

v^{i+1}

的类型与meta-path的scheme的定义一致(比如APA中,如果当前为P那么下一节点的类型应该为A),那么

v^{i+1}

被选中的概率是均等的,也就是1/节点个数。

  1. 如果
v_{t}^i

v^{i+1}

间存在边,但

v^{i+1}

的类型与meta-path的scheme的定义不一致,那么不会选择该节点。

  1. 如果
v_{t}^i

v^{i+1}

间不存在边,那么不会选择该节点。

除了上述三点原则以外,元路径还需遵循对称原则,也就是路径中第一个节点

V_1

和最后一个节点

V_l

的类型应该一致,即:

基于元路径的随机游走策略确保了不同类型节点之间的语义关系能够被恰当地整合到skip-gram中。 以下图为例:

在传统的随机游走过程中,从节点CMU过渡到节点

a_4

上的walker的下一步可以是它周围所有类型的节点,即

a_2

a_3

a_5

p_2

p_3

和CMU。然而,在meta-path scheme “OAPVPAO”下,下一步选择的节点会偏向于论文节点P。

3. metapath2vec++

metapath2vec中的优化目标为:

其中:

p(c_t|v;\theta)=\frac{e^{X_{c_t}\cdot X_v}}{\sum_{u \in V}e^{X_{u}\cdot X_v}}

根据要求,我们需要构造节点的邻居函数

N_t(v)

(上下文邻居)。从元路径游走策略可知,metapath2vec中

N_t(v)

是根据meta-path scheme来确定的,然后进行softmax计算时会考虑所有类型的节点,这种方式忽略了softmax中节点的类型信息。换句话说,在进行负采样时,metapath2vec不会区分节点类型,所有类型的节点都有可能被采样到,即上面式子中的

u \in V

,作者认为这样是不合理的。

为此,作者提出了Heterogeneous negative sampling的概念,也就是异质负采样,这不同于一般skip-gram中的负采样,这种采样会考虑节点的类型。

具体来讲就是:

即我们在计算节点向量间的内积并进行softmax时,会根据不同类型的节点的上下文

c_t

进行归一化。简单来讲,如果当前上下文节点类型为

P

,那么我们只需要将类型为

P

的节点向量与该上下文节点

c_t

放到一起来求softmax,而不是metapath2vec中的所有节点。

用一个具体的例子来说明,假设序列为

[A_1,P_1,V_1,P_2,A_2]

,我们设中心节点为

V_1

,当前输入的节点为

A_1

,在metapath2vec中,我们会从所有类型的节点(可以为A,也可以为其他类型)中采样一部分与中心节点求内积再求softmax,而在metapath2vec++中,我们只会选择采样一部分作者类型节点(A),然后去更新skip-gram中的参数。

因此,metapath2vec++的优化目标可以定义为:

它与metapath2vec的优化目标

相比,只是采样分布变化了一下,一个专注于所有类型节点,一个只考虑与当前节点同类型的节点。从这里我们也可以看出metapath2vec++被提出的根本原因:之前所有方法都是基于同质图,同质图中所有节点类型都一致,因此进行负采样时不需要额外考虑节点类型,而异质图中节点类型不一致,因此自然而然地就会想到负采样时区分节点类型。

metapath2vec++算法伪代码如下:

4. 实验

baseline:DeepWalk、LINE、PTE以及Spectral Clustering。

实验结果:

5. 小结

本文提出了异质图嵌入模型metapath2vec和metapath2vec++。具体来讲,首先定义了meta-path scheme及其对应的随机游走策略,该策略能够捕获不同类型节点及关系的结构和语义相关性。然后,将随机游走序列输入到本文提出的异质skip-gram中以得到所有类型节点的嵌入表示。需要注意的是,metapath2vec中skip-gram的负采样策略与同质skip-gram一致,考虑了所有节点;而metapath2vec++中skip-gram在进行负采样时只考虑与上下文节点同类型的节点。

大量实验表明,metapath2vec和metapath2vec++学习的潜在特征表示能够改进各种异质网络挖掘任务,如相似性搜索、节点分类和聚类。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-07-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 KI的算法杂记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 问题定义
  • 2. metapath2vec
    • 2.1 异质skip-gram
      • 2.2 元路径随机游走
      • 3. metapath2vec++
      • 4. 实验
      • 5. 小结
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档