• 论文地址:https://arxiv.org/pdf/1607.00653.pdf
  • 发表会议:KDD2016

文章目录

  • 1. 引言
  • 2. 采样算法
    • 2.1. 传统的采样算法
    • 2.2. Node2vec中的采样算法
    • 2.3. 使用基于random walk采样的好处(时间空间复杂度分析)
  • 3. node2vec算法流程
  • 4.实验
  • 5. 总结

1. 引言

这篇论文可以说是对DeepWalk的扩展。按照LINE中的说法,DeepWalk只捕捉了节点间的二阶相似性,LINE同时捕捉节点间的一阶相似性二阶相似性。而Node2Vec也是同时捕捉了一阶相似性和二阶相似性,和LINE不同的是,Node2Vec是基于Random Walk实现的。

首先介绍两个重要的概念:

一阶相似性:在Node2Vec中也叫做同质性(homophily)。一阶相似性捕捉的是图中实际存在的结构,比如两个节点由一条边相连,则这两个节点应该具有相似的表示。按照Node2Vec中的说法,高度互连且属于相似网络集群或社区的节点表示应该比较相近。一阶相似性往往可以通过对节点的DFS遍历得到。

二阶相似性:在Node2Vec中也叫做结构对等性(structural equivalence)在网络中具有相似结构的节点表示应该相近,它并不强调两个节点是否在图中存在连接,即使两个节点离得很远,但由于结构上相似(连接的邻居节点相似),它们的表示也应该相似。所以二阶相似性可以发现不同的社区。二阶相似性可以通过对节点的BFS遍历得到。

一阶相似性和二阶相似性的区别可由下图看出:
(图1)

其中节点UUU和节点S6S_6S6​就是属于二阶相似性,可由BFS遍历捕获到;UUU和S1S_1S1​就属于一阶相似性,可由DFS捕获到。

注:这里的结论可能与我们理解的相反,即,一阶相似性不应该由BFS得到吗?下面介绍Node2Vec时会给出我自己的一些想法。


Node2Vec首先借鉴了自然语言处理中的skip-gram算法,给定一个节点,最大化周围邻居节点出现的条件概率:
(公式1)

注:这里Ns(u)N_s(u)Ns​(u)是节点uuu的邻居节点,在Node2vec中,邻居节点有着不一样的定义,它不一定是有直接边相连的节点,而是根据采样策略确定的。后面会有详细介绍。

为了方便优化上式,作者做了两个假设:

  • 条件独立性假设:即各个邻居节点是互相独立的,所以有:
  • 特征空间的对称性:即一个节点和它的邻居节点之间的影响是相互的,于是也可以对邻居节点进行嵌入表示,然后利用点乘的形式刻画条件概率:

    有了以上两点假设,就可以把公式(1)改成以下形式:
    公式(2)

    其中:

    这里我们发现,最终导出的目标函数和LINE中二阶相似性公式很像,实际上两者只相差了一个边的权重wijw_{ij}wij​。和LINE中一样,计算ZuZ_uZu​是耗时的,所以作者也采用了负采样的方法。

注:LINE中对二阶相似性建模的公式:


写到这里可以发现,以上思想和DeepWalk是非常相似的,都是给定一个节点,最大化邻居节点(一次采样路径上的节点)出现的条件概率,只不过由于计算方式的不同,Node2vec捕捉了二阶相似性,DeepWalk捕捉了一阶相似性?(这里存疑)。DeepWalk到这里核心算法其实已经结束了,它接下来都在介绍如何利用Hierarchical Softmax来优化条件概率的计算。而Node2vec到这里才刚刚开始,它和DeepWalk的最大不同就是如何采样节点,即采样邻居节点Ns(u)N_s(u)Ns​(u)。

2. 采样算法

2.1. 传统的采样算法

传统的采样方法主要分为以下两部分:

  • 基于BFS,基于广度优先遍历的采样。那么通常Ns(u)N_s(u)Ns​(u)为节点uuu的直接邻居,即与uuu直接相连的节点。比如在图1中,我们设置采样大小K=3K=3K=3,那么Ns(u)N_s(u)Ns​(u)为s1s_1s1​、s2s_2s2​和s3s_3s3​。
  • 基于DFS,基于深度优先遍历的采样。那么采样的节点会离源节点越来越远。比如在图1中,我们设置采样大小K=3K=3K=3,那么Ns(u)N_s(u)Ns​(u)为s4s_4s4​、s5s_5s5​和s6s_6s6​。

实际上,这两种比较极端的采样方法DFS和BFS对应于前面所说的一阶相似性和二阶相似性,也叫同质性和结构对等性。node2vec就是想通过设计一种采样算法,来融合一阶相似性和二阶相似性。

2.2. Node2vec中的采样算法

node2vec中的采样算法是基于random walk的。给定源节点uuu,采样长度lll,假设当前在第ci−1c_{i-1}ci−1​个采样节点,那么下一个采样节点为xxx的概率为:

其中πvx\pi_{vx}πvx​为从节点vvv到节点xxx的转移概率。ZZZ为归一化的常数。

传统的random walk采样算法是完全随机的,这样就很难刻意让采样过程自动寻找一阶和二阶相似性。为此,作者提出了二阶随机游走(2nd order random walk)

以上图为例,当前在节点vvv,并且上一步在节点ttt,那么对于下一步的转移概率πvx\pi_{vx}πvx​,作者定义πvx=αpq(t,x)⋅wvx\pi_{vx}=\alpha_{pq}(t,x)·w_{vx}πvx​=αpq​(t,x)⋅wvx​,其中:

这里dtxd_{tx}dtx​表示了下一步的动作类型,dtx=0d_{tx}=0dtx​=0表示返回上一步访问过的节点即ttt;dtx=1d_{tx}=1dtx​=1表示访问上一步节点ttt的下一个邻居节点比如x1x_1x1​,即对节点ttt进行BFS遍历访问;dtx=2d_{tx}=2dtx​=2表示访问更远的节点,即从vvv出发继续DFS遍历访问。

而二阶随机游走只需两个参数ppp和qqq就可以完成。
其中ppp指“返回参数”,它控制着返回已经访问过的节点的概率,如果ppp比较大(>max(q,1)>max(q,1)>max(q,1)),那么不太可能会再次访问上一个访问过的节点;如果ppp比较小(<min(q,1)<min(q,1)<min(q,1)),那么很有可能再次访问上一个访问的节点。
qqq指“in-out参数”,它控制着下一步采样是在当前节点周围还是去探索更远的节点,换句话说,是按照BFS采样还是DFS。如果q>1q>1q>1,则采样倾向于在对ttt进行BFS采样,可以捕捉图的局部信息;如果q<1q<1q<1,则采样倾向于对ttt进行DFS采样,可以捕捉图的全局信息。

2.3. 使用基于random walk采样的好处(时间空间复杂度分析)

空间复杂度:因为需要保存每个节点的二阶邻居,所以空间复杂度为O(α2∣V∣)O(\alpha^2|V|)O(α2∣V∣),其中α\alphaα为每个节点的平均度(degree)。
时间复杂度:假设对于长度为lll的一次random walk,每个节点需采样的邻居节点数为kkk,则能为l−kl-kl−k个节点找到他们的邻居节点,那么这一次random walk使用的节点总数就为k(l−k)k(l-k)k(l−k)。以图1为例,l=6l=6l=6,k=3k=3k=3时,一次random walk采样到的节点序列为{u,s4,s5,s6,s8,s9}\{u,s_4,s_5,s_6,s_8,s_9\}{u,s4​,s5​,s6​,s8​,s9​},那么产生的邻居节点Ns(⋅)N_s(·)Ns​(⋅)为,Ns(u)={s4,s5,s6}N_s(u)=\{s_4,s_5,s_6\}Ns​(u)={s4​,s5​,s6​},Ns(s4)={s5,s6,s8}N_s(s_4)=\{s_5,s_6,s_8\}Ns​(s4​)={s5​,s6​,s8​},Ns(5)={s6,s8,s9}N_s(5)=\{s_6,s_8,s_9\}Ns​(5)={s6​,s8​,s9​},即能为6-3=3个节点找到它们的邻居节点,一次random walk使用的节点总数为3*(6-3)=9。同时一次random walk的时间复杂度为lll,那么实际每采样一个节点的平均时间复杂度为O(lk(l−k))O(\frac{l}{k(l-k)})O(k(l−k)l​)。由于样本重用(sample reuse),即不同节点的邻居节点有重合,大大降低了时间复杂度。如果没有样本重用,长度为lll的一次采样只会采样并利用lll个节点。虽然样本重用可能会造成偏差,但是时间复杂度确实提高不少。

3. node2vec算法流程


特征学习算法(输入为图G=(V,E,W)G=(V,E,W)G=(V,E,W),节点维度ddd,每个节点的walk数rrr(并行),步长lll,上下文长度(邻居个数)kkk,返回参数ppp,in-out参数qqq)

  1. 首先计算各条边的转移概率π\piπ
  2. 将转移概率做为权重后的新图G′=(V,E,π)G^{'}=(V,E,\pi)G′=(V,E,π)
  3. 初始化采样路径集合walkswalkswalks为空
  4. 每个节点同时运行rrr个walk
  5.   对于图中每个节点uuu
  6.     利用算法node2vecWalk(G′,u,l)node2vecWalk(G^{'},u,l)node2vecWalk(G′,u,l)采样产生一条从节点uuu开始的路径walkwalkwalk
  7.     将产生的路径加入路径集合walkswalkswalks
  8. 利用随机梯度下降学习节点的表示fff
  9. 返回fff

node2vecWalk算法(输入为图G′=(V,E,π)G^{'}=(V,E,\pi)G′=(V,E,π),开始节点uuu,步长lll)

  1. 初始化采样序列walkwalkwalk为节点[u][u][u]
  2. 从1到lll开始循环(共采样lll个节点)
  3.   取出walkwalkwalk中的当前节点currcurrcurr
  4.   从图G′G^{'}G′中得到currcurrcurr的邻居节点集合VcurrV_{curr}Vcurr​
  5.   根据转移概率π\piπ从VcurrV_{curr}Vcurr​中采样一个节点sss
  6.   将sss加入walkwalkwalk
  7. 返回walkwalkwalk

注:node2vecWalk算法的第5步采用了alias采样算法,可以再O(1)时间内完成。

4.实验

作者首先利用小说《悲惨世界》的人物共现关系验证了node2vec方法的有效性。如下图所示:

其中,位于上面的一副图是设置p=1,q=0.5p=1,q=0.5p=1,q=0.5时节点的表示。相同颜色的节点表示相似。上面的一副图设置侧重于DFS,所以它能捕捉到节点的同质性,即相同社区的节点聚集在一起,颜色相同。我的理解是:偏重DFS时,两个社区可能只有几条边相连,而社区内部相连的边会很多,那么偏重DFS采样时,两个社区的节点同时被采样到的概率会很小,所以两个社区之间节点的相似性就会变小,同时社区之内节点的相似性就会变大。(根据公式(2))。所以偏重DFS会发现不同的社区聚集,即同质性。

下面的一幅图是设置p=1,q=2p=1,q=2p=1,q=2时节点的表示。它侧重于BFS,所以能发现节点的结构等同性,比如位于边缘的节点都是同一颜色,位于中间的节点是同一颜色。我的理解是:偏重BFS时,即使两个社区只有少数边连接,但是采样是根据邻居节点来的,所以不同社区的节点也会进行相似逼近,因为有可能位于两个社区的两个节点是邻居。所以偏重BFS会刻画出图的结构信息,比如位于边缘的节点表示相似,位于中间的节点表示相似,这就是结构等同性。

最后作者在节点多标签分类和链接预测任务上进行了实验,验证了node2vec的优越性。

5. 总结

node2vec可以说是deepwalk的扩展,通过两个参数ppp和qqq来控制bfs和dfs两种方式的随机游走,而deepwalk是一种不加制约,漫无目的的游走,不能显式建模节点之间的结构信息。

图神经网络——node2vec相关推荐

  1. Node2Vec图神经网络论文阅读笔记

    数据集 斯坦福图神经网络数据集snap是Jure等人不间断收集的网络数据集,极大地推动了社交网络领域的发展. 数据集可能存在一些指标或性质说明需要在使用之前先理解: Average clusterin ...

  2. 关于NLP相关技术全部在这里:预训练模型、图神经网络、模型压缩、知识图谱、信息抽取、序列模型、深度学习、语法分析、文本处理...

    NLP近几年非常火,且发展特别快.像BERT.GPT-3.图神经网络.知识图谱等技术应运而生. 我们正处在信息爆炸的时代.面对每天铺天盖地的网络资源和论文.很多时候我们面临的问题并不是缺资源,而是找准 ...

  3. 别太把图神经网络当回事儿

    点击上方"视学算法",选择加"星标"或"置顶" 重磅干货,第一时间送达 选自 | singlelunch.com 作者 | Matt Ran ...

  4. 图神经网络方法总结(Graph Neural Network)

    图神经网络方法(Graph Neural Network) 概要 近年来图神经网络受到大家越来越多的关注,在文本分类(Text classification),序列标注(Sequence labeli ...

  5. 为什么要进行图学习?谈一谈逆势而上的图神经网络

    点击上方 蓝字关注我们 问一问近几年来逆势而上的技术有什么?相信你一定会说出来一个:图神经网络. 图神经网络将会在人工智能的各个领域起着非常重要的作用,虽然目前还没有完全成为各大顶会的焦点,但不可否认 ...

  6. 7天搞定图神经网络,实战助力新冠疫情防控!

    要问这几年一直在逆势而上的技术有哪些?你一定不会忽略它--图神经网络. 相比传统神经网络,图神经网络的优势非常明显: 1.非顺序排序的特征学习:GNN的输出不以节点的输入顺序为转移的. 2.两个节点之 ...

  7. 图神经网络:方法与应用 | 一文展望,四大待解问题

    在 AI Open 杂志 2020 年第一卷中,清华大学周杰等人发表了综述性论文<Graph neural networks: A review of methods and applicati ...

  8. MILA研究院唐建:基于图神经网络的关系推理(附视频)

    2020 北京智源大会 本文属于2020北京智源大会嘉宾演讲的整理报道系列.北京智源大会是北京智源人工智能研究院主办的年度国际性人工智能高端学术交流活动,以国际性.权威性.专业性和前瞻性的" ...

  9. 认知推理:从图表示学习和图神经网络的最新理论看AI的未来

    2020年3月29日,中国中文信息学会·社会媒体处理专委会和北京智源人工智能研究院联合主办的"图神经网络在线研讨会2020"成功召开,超过5000人报名参加本次活动.会上,四位国内 ...

  10. 2021年的第一盆冷水:有人说别太把图神经网络当回事儿

    点击上方,选择星标或置顶,不定期资源大放送! 阅读大概需要10分钟 Follow小博主,每天更新前沿干货 转载自:机器之心 图神经网络(GNN)是目前热门的研究方向,但我们是否应把注意力过多地放在这上 ...

最新文章

  1. typedef和define一些问题
  2. NYOJ 116 士兵杀敌(二)
  3. 各类神经网络知识收集
  4. 博客订阅代码de制作
  5. java日志——基本日志+高级日志
  6. LaTeX学习经验与常用文档
  7. 周末ROS学习沙龙第三期——launch文件、自定义服务通信、控制机器人移动、传感器数据处理
  8. Unicode 和 UTF-8 的区别
  9. 阿里云产品经理吴华剑:SLS 的产品功能与发展历程
  10. Webservice接口开发简单例子
  11. 58集团处罚数据中心的设计与实践
  12. 多元:复相关系数和偏相关系数
  13. python面向对象_05(面向对象封装案例 II)
  14. 英文版系统远程桌面无法连接到远程计算机,windows server 2016远程桌面进去,英文系统修改语言...
  15. layui如何通过view(this.id).render来传递参数
  16. linux新建挂载目录命令,告诉你Ubuntu添加新分区并设置挂载点的方法及命令
  17. EDIUS 9带你剪辑萌萌的《疯狂动物城》
  18. 一年之计在于春,一日之计在于晨,头条android面试节奏
  19. python遍历文件夹中的所有jpg文件
  20. Word文档的锁定与解锁

热门文章

  1. Win 10 UEFI + Ubuntu 18.04 UEFI 双系统 (by quqi99)
  2. html5 抓取网页数据,从网页抓取数据的一般方法
  3. 史上最完整的APP商城源码(含服务器)
  4. 消除if-else/switch语句块来聚合模型的设计与实现
  5. 7代cpu能装虚拟xp系统吗_【精选】减少DCS系统故障的实例与措施
  6. Altium Designer安装包下载
  7. AI圣经!《深度学习》中文版隆重上市!美国亚马逊AI领域排名第一畅销书!
  8. Matlab猜数字游戏GUI界面设计
  9. 【实用】excel中创建项目进度计划
  10. HackerRank - Stock Maximize