目录

  • 背景
    • 传统算法存在的问题
    • 算法背景
    • 动机
  • 算法
    • 随机序列的生成
    • Node2Vec算法
      • 算法的具体流程:
  • 总结
  • 相关资料

背景

传统算法存在的问题

  1. 一些方法中所提出的特征需要依赖人手工定义,这需要特定领域内专业人士来完成,而且依靠人手工定义特征的有效性无法保证。
  2. 利用一些非监督学习中的降维方法计算效率低,准确度也不够,而且还不能反应出网络的结构特征。

算法背景

  1. Node2Vec继承于随机游走模型DeepWalk算法模型,也是属于图神经网络种随机游走模型一类。
  2. 作者提出网络结构中存在以下两种现象:
    1)同质性:社区关系结构,即同一社区节点表示相似。其中,社区指节点内部结构信息远大于节点外部结构信息的多个节点组成的网络结构,如图中S1、S2、S3、S4、S5、u组成一个社区。
    2)结构相似性:拥有类似结构特征的节点表示相似。如下图中u和S6两个节点存在结构相似性。

动机

设计一个既能保持节点邻居信息而且又容易训练的模型。

算法

随机序列的生成

  1. 为了使得损失函数更加方便计算,引入skip-gram模型的两个假设:
    ①条件独立:即采样的每个邻居都是相互独立的;
    ②特征空间的对称性:两个节点之间的连边表示两者互相之间的影响是等价的。
  2. 节点转移概率计算:如图所示,作者定义了一个概率分布,对于一个随机游走,如果已经采样了,也就是说现在停留在节点v上,且u的上一序列节点为t;
  3. 那么下一个要采样的节点的转移概率计算方式为:
  4. 其中,参数p、q分别代表了不同含义:
    ① 返回概率p:如果 p>max(q,1) ,那么采样会尽量不往回走,对应上图的情况,就是下一个节点不太可能是上一个访问的节点t。如果 p>max(q,1),那么采样会更倾向于返回上一个节点,这样就会一直在起始点周围某些节点来回转来转去。
    ② 出入参数q:如果 q >1 ,那么游走会倾向于在起始点周围的节点之间跑,可以反映出一个节点的BFS特性。如果 q<1 ,那么游走会倾向于往远处跑,反映出DFS特性。
    ③ 特殊的,当 p=1,q=1时,游走方式就等同于DeepWalk中的随机游走。

Node2Vec算法

算法的具体流程:

1. 根据p、q和之前的公式计算一个节点到它的邻居的转移概率;
2. 将这个转移概率加到图G中形成G';
3. walks用来存储随机游走,先初始化为空;
4. 外循环r次表示每个节点作为初始节点要生成r个随机游走;
5. 其中,对图中每个节点生成一条随机游走walk的流程:a. 将初始节点u添加进去;b. walk的长度为l,因此还要再循环添加l-1个节点;c. 当前节点设为walk最后添加的节点;d. 找出当前节点的所有邻居节点;e. 根据转移概率采样选择某个邻居s;f. 将该邻居添加到walk中;
6. 将walk添加到walks中保存;
7. 然后用SGD的方法对walks进行训练。

总结

Node2Vec的思想跟DeepWalk类似,不过改进了DeepWalk中随机游走的生成方式,使得生成的随机游走可以反映深度优先和广度优先两种采样的特性,从而增加单词嵌入的准确性,提高网络嵌入的效果。

相关资料

论文:node2vec: Scalable Feature Learning for Networks

图神经网络之Node2Vec详解相关推荐

  1. python 折线图 尾部_Matplotlib 折线图plot()所有用法详解

    散点图和折线图是数据分析中最常用的两种图形.其中,折线图用于分析自变量和因变量之间的趋势关系,最适合用于显示随着时间而变化的连续数据,同时还可以看出数量的差异,增长情况. Matplotlib 中绘制 ...

  2. 【深度学习系列】卷积神经网络CNN原理详解(一)——基本原理(1)

    上篇文章我们给出了用paddlepaddle来做手写数字识别的示例,并对网络结构进行到了调整,提高了识别的精度.有的同学表示不是很理解原理,为什么传统的机器学习算法,简单的神经网络(如多层感知机)都可 ...

  3. 图之邻接表详解(C语言版)

    文章目录 一.定义 二.结构 三.常用操作 四.测试 结语 附录 一.定义 图的邻接表是一种顺序与链式存储相结合的存储方式.下面给出一个示例,以便大家能够理解邻接表这种存储方式:         无向 ...

  4. 卷积神经网络CNN原理详解(一)——基本原理

    卷积神经网络CNN原理详解(一)--基本原理 转载过来为了自己以后学习方便,大家请看原文章 为什么要用神经网络? 特征提取的高效性. 大家可能会疑惑,对于同一个分类任务,我们可以用机器学习的算法来做, ...

  5. gcn 图卷积神经网络_GCN图卷积网络入门详解

    字幕组双语原文:[GCN]图卷积网络(GCN)入门详解 英语原文:Graph Convolutional Networks (GCN) 翻译:听风1996.大表哥 在这篇文章中,我们将仔细研究一个名为 ...

  6. 卷积神经网络原理图文详解

    卷积神经网络原理详解 前言 卷积(convolution) 池化(pooling) 正则化(normalization)/ReLU 全连接(fully connect) 全连接的另一种解释方式 神经网 ...

  7. 【图结构】之图注意力网络GAT详解

    作者:張張張張 github地址:https://github.com/zhanghekai [转载请注明出处,谢谢!] GATGATGAT源代码地址:https://github.com/Petar ...

  8. 数据结构(C语言版) 第 六 章 图 知识梳理 + 习题详解

    目录 一. 图的基本定义和术语 一.图的基本概念 1.度 2.连通 (1)连通图 (2)强连通/强连通图 3.回路 4.完全图 二.图的三种存储结构 1.邻接矩阵表示法 2.邻接表(链式)表示法 3. ...

  9. python箱线图_Python 箱线图 plt.boxplot() 参数详解

    Python 绘制箱线图主要用 matplotlib 库里 pyplot 模块里的 boxplot() 函数. plt.boxplot() 参数详解 plt.boxplot(x, # 指定要绘制箱线图 ...

  10. 重磅!阿里首次全面公开展示AI布局(附布局图/成绩单/六产业详解)

    01 阿里首次公开展示AI布局 12月20日,阿里云云栖大会·北京峰会召开,作为2017年阿里云栖大会最后一场,阿里做足了噱头,系列预热"重磅"."史无前例"等 ...

最新文章

  1. 机器学习入门(12)— 激活函数层 ReLU、Sigmoid 层的实现
  2. SAP Cloud for Customer Price-计价简介
  3. linux中通过命令生成hex值
  4. (原+转)ubuntu14中结束多个caffe进程中的某个
  5. 在将计算机技术应用于会计工作的初期,所开发的会计核算软件主要用于,电算化考前试七.doc...
  6. 九十三、动态规划系列之股票问题(下)
  7. 电大 计算机应用基础 专科 教材,2016年电大计算机应用基础(专科).doc
  8. python3键盘事件_python+selenium3 鼠标事件和键盘事件
  9. datatable相同列合并_使用Power Query合并查询
  10. scrapy-redis的官方文档和源码位置
  11. Layabox的2d精灵的性能优化
  12. 一个完全免费的在线文字云网站
  13. creator创建密匙库,查询密匙库密匙,校对密匙
  14. 【优化求解】基于生物地理学结合重力引力搜索优化求解算法matlab代码
  15. viewModel生命周期
  16. 金弘同创怎么样:拼多多获取奖励金的办法
  17. 5G-SUPI-SUPC-IMSI
  18. python压缩pdf_【转】PDF 用python 压缩
  19. c语言学生成员管理代码报告怎么写,C语言学生通信录管理系统课程设计报告
  20. 2019全国大学生电子设计大赛(回忆录)

热门文章

  1. 免费提供离线地图部署服务
  2. 编辑器Sublime Text安装配置
  3. 【语音识别】基于MFCC实现声纹识别matlab源码
  4. android 9 one ui,终于!三星S9系列国行开测安卓9.0系统:OneUI真香!
  5. BiometricPrompt之三 - Fingerprint, Iris, Face UI优先级
  6. 天涯明月刀ol最新服务器列表,天涯明月刀手游开服表 新区开服时间表汇总[多图]...
  7. CSS 中文字体的英文名称 (simhei, simsun) 宋体 微软雅黑
  8. 如何查询服务器jdk版本信息,linux服务器jdk版本查看_linux如何查看jdk版本
  9. matlab之数据拟合
  10. 如何建立高效的需求管理机制?